=================================================================== RCS file: /cvs/mandoc/mdoc.h,v retrieving revision 1.19 retrieving revision 1.21 diff -u -p -r1.19 -r1.21 --- mandoc/mdoc.h 2009/01/12 10:31:53 1.19 +++ mandoc/mdoc.h 2009/01/14 11:58:24 1.21 @@ -1,4 +1,4 @@ -/* $Id: mdoc.h,v 1.19 2009/01/12 10:31:53 kristaps Exp $ */ +/* $Id: mdoc.h,v 1.21 2009/01/14 11:58:24 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -193,6 +193,8 @@ #define MDOC_Symbolic 61 #define MDOC_ARG_MAX 62 +/* FIXME: have these be generic groups. */ + enum mdoc_err { ERR_SYNTAX_QUOTE, /* NOTUSED */ ERR_SYNTAX_UNQUOTE, @@ -221,6 +223,7 @@ enum mdoc_err { ERR_ARGS_LE8, ERR_ARGS_MANY, ERR_SYNTAX_CHILDBAD, + ERR_SYNTAX_PARENTBAD, ERR_SYNTAX_CHILDHEAD, ERR_SYNTAX_CHILDBODY, ERR_SYNTAX_EMPTYBODY, @@ -249,7 +252,9 @@ enum mdoc_warn { WARN_SYNTAX_MACLIKE, WARN_SYNTAX_ARGLIKE, WARN_SYNTAX_QUOTED, + WARN_SYNTAX_EMPTYHEAD, WARN_SYNTAX_EMPTYBODY, + WARN_SYNTAX_NOBODY, WARN_IGN_AFTER_BLK, WARN_IGN_BEFORE_BLK, WARN_IGN_OBSOLETE, @@ -379,27 +384,16 @@ struct mdoc_text { }; struct mdoc_block { - int tok; size_t argc; struct mdoc_arg *argv; + struct mdoc_node *head; + struct mdoc_node *body; + struct mdoc_node *tail; }; -struct mdoc_head { - int tok; -}; - -struct mdoc_tail { - int tok; -}; - -struct mdoc_body { - int tok; -}; - struct mdoc_elem { size_t sz; char **args; - int tok; size_t argc; struct mdoc_arg *argv; }; @@ -407,9 +401,6 @@ struct mdoc_elem { union mdoc_data { struct mdoc_text text; struct mdoc_elem elem; - struct mdoc_body body; - struct mdoc_head head; - struct mdoc_tail tail; struct mdoc_block block; }; @@ -420,6 +411,7 @@ struct mdoc_node { struct mdoc_node *prev; int line; int pos; + int tok; enum mdoc_type type; union mdoc_data data; }; @@ -443,6 +435,8 @@ int mdoc_parseln(struct mdoc *, int, char *buf); const struct mdoc_node *mdoc_result(struct mdoc *); int mdoc_endparse(struct mdoc *); + +char *mdoc_type2a(enum mdoc_type); __END_DECLS