diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-03-20 11:41:24 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-03-20 11:41:24 +0000 |
commit | 0dd455c3616d3ebf78cdbd98891180fa3e4db3ed (patch) | |
tree | 337b6245a2f58a67a8c98a109601c0f1280995df /mandoc.h | |
parent | a94b19b8c2bc397ca6842a84bf286e1456f51d98 (diff) | |
download | mandoc-0dd455c3616d3ebf78cdbd98891180fa3e4db3ed.tar.gz |
Split the document parsing sequence out of main.c and into read.c,
putting the interface into mandoc.h. This effectively makes the
function of main.c be command-line handling, invoking the parser, and
sending its output to the output handler. The sequence of parsing
(pfile(), pdesc(), etc.) has changed very little but for clean-up of
some state variables (curp->fd, etc.).
Diffstat (limited to 'mandoc.h')
-rw-r--r-- | mandoc.h | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -328,11 +328,36 @@ enum mdelim { DELIM_CLOSE }; +/* + * The type of parse sequence. This value is usually passed via the + * mandoc(1) command line of -man and -mdoc. It's almost exclusively + * -mandoc but the others have been retained for compatibility. + */ +enum mparset { + MPARSE_AUTO, /* magically determine the document type */ + MPARSE_MDOC, /* assume -mdoc */ + MPARSE_MAN /* assume -man */ +}; + typedef void (*mandocmsg)(enum mandocerr, void *, int, int, const char *); +typedef int (*mevt_open)(void *, const char *); +typedef void (*mevt_close)(void *, const char *); + +struct mparse; +struct mdoc; +struct man; __BEGIN_DECLS +void mparse_free(struct mparse *); +void mparse_reset(struct mparse *); +struct mparse *mparse_alloc(enum mparset, mevt_open, + mevt_close, mandocmsg, void *); +void mparse_setstatus(struct mparse *, enum mandoclevel); +enum mandoclevel mparse_readfd(struct mparse *, int, const char *); +void mparse_result(struct mparse *, struct mdoc **, struct man **); + void *mandoc_calloc(size_t, size_t); void *mandoc_malloc(size_t); void *mandoc_realloc(void *, size_t); |