=================================================================== RCS file: /cvs/mandoc/mdoc.h,v retrieving revision 1.13 retrieving revision 1.16 diff -u -p -r1.13 -r1.16 --- mandoc/mdoc.h 2009/01/03 18:38:39 1.13 +++ mandoc/mdoc.h 2009/01/07 15:53:00 1.16 @@ -1,4 +1,4 @@ -/* $Id: mdoc.h,v 1.13 2009/01/03 18:38:39 kristaps Exp $ */ +/* $Id: mdoc.h,v 1.16 2009/01/07 15:53:00 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -19,7 +19,7 @@ #ifndef MDOC_H #define MDOC_H -#define MDOC_LINEARG_MAX 8 +#define MDOC_LINEARG_MAX 12 #define MDOC___ 0 #define MDOC_Dd 1 @@ -217,11 +217,13 @@ enum mdoc_err { ERR_ARGS_EQ1, ERR_ARGS_GE1, ERR_ARGS_LE2, + ERR_ARGS_LE8, ERR_ARGS_MANY, ERR_SYNTAX_CHILDHEAD, ERR_SYNTAX_CHILDBODY, ERR_SYNTAX_EMPTYBODY, - ERR_SYNTAX_EMPTYHEAD + ERR_SYNTAX_EMPTYHEAD, + ERR_SYNTAX_NOTEXT }; enum mdoc_att { @@ -265,6 +267,7 @@ enum mdoc_type { MDOC_TEXT, MDOC_ELEM, MDOC_HEAD, + MDOC_TAIL, MDOC_BODY, MDOC_BLOCK }; @@ -376,11 +379,13 @@ struct mdoc_block { }; struct mdoc_head { - size_t sz; - char **args; int tok; }; +struct mdoc_tail { + int tok; +}; + struct mdoc_body { int tok; }; @@ -398,6 +403,7 @@ union mdoc_data { struct mdoc_elem elem; struct mdoc_body body; struct mdoc_head head; + struct mdoc_tail tail; struct mdoc_block block; }; @@ -406,6 +412,8 @@ struct mdoc_node { struct mdoc_node *child; struct mdoc_node *next; struct mdoc_node *prev; + int line; + int pos; enum mdoc_type type; union mdoc_data data; }; @@ -425,9 +433,10 @@ struct mdoc; void mdoc_free(struct mdoc *); struct mdoc *mdoc_alloc(void *data, const struct mdoc_cb *); -int mdoc_parseln(struct mdoc *, char *buf); +int mdoc_parseln(struct mdoc *, int, char *buf); const struct mdoc_node *mdoc_result(struct mdoc *); +int mdoc_endparse(struct mdoc *); __END_DECLS