-#define REWIND_REWIND (1 << 0)
-#define REWIND_NOHALT (1 << 1)
-#define REWIND_HALT (1 << 2)
-
-static int obsolete(MACRO_PROT_ARGS);
-static int blk_part_exp(MACRO_PROT_ARGS);
-static int in_line_eoln(MACRO_PROT_ARGS);
-static int in_line_argn(MACRO_PROT_ARGS);
-static int in_line(MACRO_PROT_ARGS);
-static int blk_full(MACRO_PROT_ARGS);
-static int blk_exp_close(MACRO_PROT_ARGS);
-static int blk_part_imp(MACRO_PROT_ARGS);
-
-static int phrase(struct mdoc *, int, int, char *);
-static int rew_dohalt(int, enum mdoc_type,
- const struct mdoc_node *);
-static int rew_alt(int);
-static int rew_dobreak(int, const struct mdoc_node *);
-static int rew_elem(struct mdoc *, int);
-static int rew_impblock(struct mdoc *, int, int, int);
-static int rew_expblock(struct mdoc *, int, int, int);
-static int rew_subblock(enum mdoc_type,
- struct mdoc *, int, int, int);
-static int rew_last(struct mdoc *, struct mdoc_node *);
-static int append_delims(struct mdoc *, int, int *, char *);
-static int lookup(struct mdoc *, int, int, int, const char *);
-static int swarn(struct mdoc *, enum mdoc_type, int, int,
- const struct mdoc_node *);
-
-/* Central table of library: who gets parsed how. */
-
-const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
- { in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* Ap */
+static void blk_full(MACRO_PROT_ARGS);
+static void blk_exp_close(MACRO_PROT_ARGS);
+static void blk_part_exp(MACRO_PROT_ARGS);
+static void blk_part_imp(MACRO_PROT_ARGS);
+static void ctx_synopsis(MACRO_PROT_ARGS);
+static void in_line_eoln(MACRO_PROT_ARGS);
+static void in_line_argn(MACRO_PROT_ARGS);
+static void in_line(MACRO_PROT_ARGS);
+static void phrase_ta(MACRO_PROT_ARGS);
+
+static void append_delims(struct roff_man *, int, int *, char *);
+static void dword(struct roff_man *, int, int, const char *,
+ enum mdelim, int);
+static int find_pending(struct roff_man *, enum roff_tok,
+ int, int, struct roff_node *);
+static int lookup(struct roff_man *, int, int, int, const char *);
+static int macro_or_word(MACRO_PROT_ARGS, char *, int);
+static void break_intermediate(struct roff_node *,
+ struct roff_node *);
+static int parse_rest(struct roff_man *, enum roff_tok,
+ int, int *, char *);
+static enum roff_tok rew_alt(enum roff_tok);
+static void rew_elem(struct roff_man *, enum roff_tok);
+static void rew_last(struct roff_man *, const struct roff_node *);
+static void rew_pending(struct roff_man *,
+ const struct roff_node *);
+
+static const struct mdoc_macro mdoc_macros[MDOC_MAX - MDOC_Dd] = {