From 9e6e3b6be0e9ffe29cf4876ce0b7ded2c3c386b9 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Thu, 2 Apr 2015 22:48:17 +0000 Subject: Second step towards parser unification: Replace struct mdoc_node and struct man_node by a unified struct roff_node. To be able to use the tok member for both mdoc(7) and man(7) without defining all the macros in roff.h, sacrifice a tiny bit of type safety and make tok an int rather than an enum. Almost mechanical, no functional change. Written on the Eurostar from Bruxelles to London on the way to p2k15. --- mdoc.c | 82 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 41 insertions(+), 41 deletions(-) (limited to 'mdoc.c') diff --git a/mdoc.c b/mdoc.c index 42739ee7..055babd8 100644 --- a/mdoc.c +++ b/mdoc.c @@ -83,19 +83,19 @@ const char *const __mdoc_argnames[MDOC_ARG_MAX] = { const char * const *mdoc_macronames = __mdoc_macronames; const char * const *mdoc_argnames = __mdoc_argnames; -static void mdoc_node_free(struct mdoc_node *); +static void mdoc_node_free(struct roff_node *); static void mdoc_node_unlink(struct mdoc *, - struct mdoc_node *); + struct roff_node *); static void mdoc_free1(struct mdoc *); static void mdoc_alloc1(struct mdoc *); -static struct mdoc_node *node_alloc(struct mdoc *, int, int, - enum mdoct, enum roff_type); -static void node_append(struct mdoc *, struct mdoc_node *); +static struct roff_node *node_alloc(struct mdoc *, int, int, + int, enum roff_type); +static void node_append(struct mdoc *, struct roff_node *); static int mdoc_ptext(struct mdoc *, int, char *, int); static int mdoc_pmacro(struct mdoc *, int, char *, int); -const struct mdoc_node * +const struct roff_node * mdoc_node(const struct mdoc *mdoc) { @@ -137,7 +137,7 @@ mdoc_alloc1(struct mdoc *mdoc) memset(&mdoc->meta, 0, sizeof(struct mdoc_meta)); mdoc->flags = 0; mdoc->lastnamed = mdoc->lastsec = SEC_NONE; - mdoc->last = mandoc_calloc(1, sizeof(struct mdoc_node)); + mdoc->last = mandoc_calloc(1, sizeof(*mdoc->last)); mdoc->first = mdoc->last; mdoc->last->type = ROFFT_ROOT; mdoc->last->tok = MDOC_MAX; @@ -201,7 +201,7 @@ mdoc_endparse(struct mdoc *mdoc) void mdoc_addeqn(struct mdoc *mdoc, const struct eqn *ep) { - struct mdoc_node *n; + struct roff_node *n; n = node_alloc(mdoc, ep->ln, ep->pos, MDOC_MAX, ROFFT_EQN); n->eqn = ep; @@ -214,7 +214,7 @@ mdoc_addeqn(struct mdoc *mdoc, const struct eqn *ep) void mdoc_addspan(struct mdoc *mdoc, const struct tbl_span *sp) { - struct mdoc_node *n; + struct roff_node *n; n = node_alloc(mdoc, sp->line, 0, MDOC_MAX, ROFFT_TBL); n->span = sp; @@ -277,7 +277,7 @@ mdoc_macro(MACRO_PROT_ARGS) static void -node_append(struct mdoc *mdoc, struct mdoc_node *p) +node_append(struct mdoc *mdoc, struct roff_node *p) { assert(mdoc->last); @@ -354,13 +354,13 @@ node_append(struct mdoc *mdoc, struct mdoc_node *p) } } -static struct mdoc_node * +static struct roff_node * node_alloc(struct mdoc *mdoc, int line, int pos, - enum mdoct tok, enum roff_type type) + int tok, enum roff_type type) { - struct mdoc_node *p; + struct roff_node *p; - p = mandoc_calloc(1, sizeof(struct mdoc_node)); + p = mandoc_calloc(1, sizeof(*p)); p->sec = mdoc->lastsec; p->line = line; p->pos = pos; @@ -381,19 +381,19 @@ node_alloc(struct mdoc *mdoc, int line, int pos, } void -mdoc_tail_alloc(struct mdoc *mdoc, int line, int pos, enum mdoct tok) +mdoc_tail_alloc(struct mdoc *mdoc, int line, int pos, int tok) { - struct mdoc_node *p; + struct roff_node *p; p = node_alloc(mdoc, line, pos, tok, ROFFT_TAIL); node_append(mdoc, p); mdoc->next = MDOC_NEXT_CHILD; } -struct mdoc_node * -mdoc_head_alloc(struct mdoc *mdoc, int line, int pos, enum mdoct tok) +struct roff_node * +mdoc_head_alloc(struct mdoc *mdoc, int line, int pos, int tok) { - struct mdoc_node *p; + struct roff_node *p; assert(mdoc->first); assert(mdoc->last); @@ -403,10 +403,10 @@ mdoc_head_alloc(struct mdoc *mdoc, int line, int pos, enum mdoct tok) return(p); } -struct mdoc_node * -mdoc_body_alloc(struct mdoc *mdoc, int line, int pos, enum mdoct tok) +struct roff_node * +mdoc_body_alloc(struct mdoc *mdoc, int line, int pos, int tok) { - struct mdoc_node *p; + struct roff_node *p; p = node_alloc(mdoc, line, pos, tok, ROFFT_BODY); node_append(mdoc, p); @@ -414,11 +414,11 @@ mdoc_body_alloc(struct mdoc *mdoc, int line, int pos, enum mdoct tok) return(p); } -struct mdoc_node * -mdoc_endbody_alloc(struct mdoc *mdoc, int line, int pos, enum mdoct tok, - struct mdoc_node *body, enum mdoc_endbody end) +struct roff_node * +mdoc_endbody_alloc(struct mdoc *mdoc, int line, int pos, int tok, + struct roff_node *body, enum mdoc_endbody end) { - struct mdoc_node *p; + struct roff_node *p; body->flags |= MDOC_ENDED; body->parent->flags |= MDOC_ENDED; @@ -431,11 +431,11 @@ mdoc_endbody_alloc(struct mdoc *mdoc, int line, int pos, enum mdoct tok, return(p); } -struct mdoc_node * +struct roff_node * mdoc_block_alloc(struct mdoc *mdoc, int line, int pos, - enum mdoct tok, struct mdoc_arg *args) + int tok, struct mdoc_arg *args) { - struct mdoc_node *p; + struct roff_node *p; p = node_alloc(mdoc, line, pos, tok, ROFFT_BLOCK); p->args = args; @@ -464,9 +464,9 @@ mdoc_block_alloc(struct mdoc *mdoc, int line, int pos, void mdoc_elem_alloc(struct mdoc *mdoc, int line, int pos, - enum mdoct tok, struct mdoc_arg *args) + int tok, struct mdoc_arg *args) { - struct mdoc_node *p; + struct roff_node *p; p = node_alloc(mdoc, line, pos, tok, ROFFT_ELEM); p->args = args; @@ -487,7 +487,7 @@ mdoc_elem_alloc(struct mdoc *mdoc, int line, int pos, void mdoc_word_alloc(struct mdoc *mdoc, int line, int pos, const char *p) { - struct mdoc_node *n; + struct roff_node *n; n = node_alloc(mdoc, line, pos, MDOC_MAX, ROFFT_TEXT); n->string = roff_strdup(mdoc->roff, p); @@ -498,7 +498,7 @@ mdoc_word_alloc(struct mdoc *mdoc, int line, int pos, const char *p) void mdoc_word_append(struct mdoc *mdoc, const char *p) { - struct mdoc_node *n; + struct roff_node *n; char *addstr, *newstr; n = mdoc->last; @@ -511,7 +511,7 @@ mdoc_word_append(struct mdoc *mdoc, const char *p) } static void -mdoc_node_free(struct mdoc_node *p) +mdoc_node_free(struct roff_node *p) { if (p->type == ROFFT_BLOCK || p->type == ROFFT_ELEM) @@ -524,7 +524,7 @@ mdoc_node_free(struct mdoc_node *p) } static void -mdoc_node_unlink(struct mdoc *mdoc, struct mdoc_node *n) +mdoc_node_unlink(struct mdoc *mdoc, struct roff_node *n) { /* Adjust siblings. */ @@ -561,7 +561,7 @@ mdoc_node_unlink(struct mdoc *mdoc, struct mdoc_node *n) } void -mdoc_node_delete(struct mdoc *mdoc, struct mdoc_node *p) +mdoc_node_delete(struct mdoc *mdoc, struct roff_node *p) { while (p->child) { @@ -575,7 +575,7 @@ mdoc_node_delete(struct mdoc *mdoc, struct mdoc_node *p) } void -mdoc_node_relink(struct mdoc *mdoc, struct mdoc_node *p) +mdoc_node_relink(struct mdoc *mdoc, struct roff_node *p) { mdoc_node_unlink(mdoc, p); @@ -589,8 +589,8 @@ mdoc_node_relink(struct mdoc *mdoc, struct mdoc_node *p) static int mdoc_ptext(struct mdoc *mdoc, int line, char *buf, int offs) { + struct roff_node *n; char *c, *ws, *end; - struct mdoc_node *n; assert(mdoc->last); n = mdoc->last; @@ -705,9 +705,9 @@ mdoc_ptext(struct mdoc *mdoc, int line, char *buf, int offs) static int mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int offs) { - struct mdoc_node *n; + struct roff_node *n; const char *cp; - enum mdoct tok; + int tok; int i, sv; char mac[5]; @@ -861,7 +861,7 @@ mdoc_isdelim(const char *p) } void -mdoc_deroff(char **dest, const struct mdoc_node *n) +mdoc_deroff(char **dest, const struct roff_node *n) { char *cp; size_t sz; -- cgit