=================================================================== RCS file: /cvs/mandoc/mdoc.h,v retrieving revision 1.29 retrieving revision 1.33 diff -u -p -r1.29 -r1.33 --- mandoc/mdoc.h 2009/02/20 07:43:15 1.29 +++ mandoc/mdoc.h 2009/02/23 09:33:34 1.33 @@ -1,4 +1,4 @@ -/* $Id: mdoc.h,v 1.29 2009/02/20 07:43:15 kristaps Exp $ */ +/* $Id: mdoc.h,v 1.33 2009/02/23 09:33:34 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -19,6 +19,14 @@ #ifndef MDOC_H #define MDOC_H +/* + * This library implements a validating scanner/parser for ``mdoc'' roff + * macro documents, a.k.a. BSD manual page documents. The mdoc.c file + * drives the parser, while macro.c describes the macro ontologies. + * validate.c pre- and post-validates parsed macros, and action.c + * performs actions on parsed and validated macros. + */ + /* What follows is a list of ALL possible macros. */ #define MDOC___ 0 @@ -382,7 +390,7 @@ struct mdoc_node { #define MDOC_ACTED (1 << 1) enum mdoc_type type; union mdoc_data data; - /* FIXME: have an enum mdoc_sec. */ + enum mdoc_sec sec; }; /* Call-backs for parse messages. */ @@ -413,13 +421,19 @@ struct mdoc *mdoc_alloc(void *data, const struct mdoc int mdoc_parseln(struct mdoc *, int, char *buf); /* Get result first node (after mdoc_endparse!). */ -const struct mdoc_node *mdoc_node(struct mdoc *); +const struct mdoc_node *mdoc_node(const struct mdoc *); /* Get result meta-information (after mdoc_endparse!). */ -const struct mdoc_meta *mdoc_meta(struct mdoc *); +const struct mdoc_meta *mdoc_meta(const struct mdoc *); /* Signal end of parse sequence (boolean retval). */ int mdoc_endparse(struct mdoc *); + +/* The following are utility functions. */ +const char *mdoc_arch2a(enum mdoc_arch); +const char *mdoc_vol2a(enum mdoc_vol); +const char *mdoc_msec2a(enum mdoc_msec); +int mdoc_isdelim(const char *); __END_DECLS