diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2018-12-30 00:49:54 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2018-12-30 00:49:54 +0000 |
commit | 0cd2663fe9e76ba0ad357a566dc3416eccab70e5 (patch) | |
tree | bdd4ce48b3029984474e5d53e3fdbca949b317c9 /mandoc.3 | |
parent | cf618db57fee5de46ee351c83eeb03292758f546 (diff) | |
download | mandoc-0cd2663fe9e76ba0ad357a566dc3416eccab70e5.tar.gz |
Cleanup, no functional change:
The struct roff_man used to be a bad mixture of internal parser
state and public parsing results. Move the public results to the
parsing result struct roff_meta, which is already public. Move the
rest of struct roff_man to the parser-internal header roff_int.h.
Since the validators need access to the parser state, call them
from the top level parser during mparse_result() rather than from
the main programs, also reducing code duplication.
This keeps parser internal state out of thee main programs (five
in mandoc portable) and out of eight formatters.
Diffstat (limited to 'mandoc.3')
-rw-r--r-- | mandoc.3 | 63 |
1 files changed, 13 insertions, 50 deletions
@@ -21,8 +21,6 @@ .Sh NAME .Nm mandoc , .Nm deroff , -.Nm man_validate , -.Nm mdoc_validate , .Nm mparse_alloc , .Nm mparse_copy , .Nm mparse_free , @@ -68,11 +66,9 @@ .Fo mparse_reset .Fa "struct mparse *parse" .Fc -.Ft void +.Ft struct roff_meta * .Fo mparse_result .Fa "struct mparse *parse" -.Fa "struct roff_man **man" -.Fa "char **sodest" .Fc .In roff.h .Ft void @@ -85,18 +81,10 @@ .In mdoc.h .Vt extern const char * const * mdoc_argnames; .Vt extern const char * const * mdoc_macronames; -.Ft void -.Fo mdoc_validate -.Fa "struct roff_man *mdoc" -.Fc .In sys/types.h .In mandoc.h .In man.h .Vt extern const char * const * man_macronames; -.Ft void -.Fo man_validate -.Fa "struct roff_man *man" -.Fc .Sh DESCRIPTION The .Nm mandoc @@ -137,27 +125,13 @@ close it with retrieve the syntax tree with .Fn mparse_result ; .It -depending on whether the -.Fa macroset -member of the returned -.Vt struct roff_man -is -.Dv MACROSET_MDOC -or -.Dv MACROSET_MAN , -validate it with -.Fn mdoc_validate -or -.Fn man_validate , -respectively; -.It if information about the validity of the input is needed, fetch it with .Fn mparse_updaterc ; .It iterate over parse nodes with starting from the .Fa first member of the returned -.Vt struct roff_man ; +.Vt struct roff_meta ; .It free all allocated memory with .Fn mparse_free @@ -205,29 +179,11 @@ including text contained in its child nodes. To be used on children of the .Fa first member of -.Vt struct roff_man . +.Vt struct roff_meta . When it is no longer needed, the pointer returned from .Fn deroff can be passed to .Xr free 3 . -.It Fn man_validate -Validate the -.Dv MACROSET_MAN -parse tree obtained with -.Fn mparse_result . -Declared in -.In man.h , -implemented in -.Pa man.c . -.It Fn mdoc_validate -Validate the -.Dv MACROSET_MDOC -parse tree obtained with -.Fn mparse_result . -Declared in -.In mdoc.h , -implemented in -.Pa mdoc.c . .It Fn mparse_alloc Allocate a parser. The arguments have the following effect: @@ -249,8 +205,8 @@ file inclusion requests are always honoured. Otherwise, if the request is the only content in an input file, only the file name is remembered, to be returned in the .Fa sodest -argument of -.Fn mparse_result . +field of +.Vt struct roff_meta . .Pp When the .Dv MPARSE_QUICK @@ -259,6 +215,14 @@ This is for example useful in .Xr makewhatis 8 .Fl Q to quickly build minimal databases. +.Pp +When the +.Dv MARSE_VALIDATE +bit is set, +.Fn mparse_result +runs the validation functions before returning the syntax tree. +This is almost always required, except in certain debugging scenarios, +for example to dump unvalidated syntax trees. .It Ar os_e Operating system to check base system conventions for. If @@ -347,7 +311,6 @@ implemented in .Pa read.c . .It Fn mparse_result Obtain the result of a parse. -One of the two pointers will be filled in. Declared in .In mandoc.h , implemented in |