version 1.22, 2010/07/07 15:04:54 |
version 1.30, 2011/02/09 09:18:15 |
|
|
.Os |
.Os |
.Sh NAME |
.Sh NAME |
.Nm man , |
.Nm man , |
|
.Nm man_addeqn , |
|
.Nm man_addspan , |
.Nm man_alloc , |
.Nm man_alloc , |
.Nm man_endparse , |
.Nm man_endparse , |
.Nm man_free , |
.Nm man_free , |
|
|
.In mandoc.h |
.In mandoc.h |
.In man.h |
.In man.h |
.Vt extern const char * const * man_macronames; |
.Vt extern const char * const * man_macronames; |
|
.Ft int |
|
.Fo man_addeqn |
|
.Fa "struct man *man" |
|
.Fa "const struct eqn *eqn" |
|
.Fc |
|
.Ft int |
|
.Fo man_addspan |
|
.Fa "struct man *man" |
|
.Fa "const struct tbl_span *span" |
|
.Fc |
.Ft "struct man *" |
.Ft "struct man *" |
.Fo man_alloc |
.Fo man_alloc |
.Fa "struct regset *regs" |
.Fa "struct regset *regs" |
.Fa "void *data" |
.Fa "void *data" |
.Fa "int pflags" |
|
.Fa "mandocmsg msgs" |
.Fa "mandocmsg msgs" |
.Fc |
.Fc |
.Ft int |
.Ft int |
|
|
.Fn man_reset |
.Fn man_reset |
function may be used in order to reset the parser for another input |
function may be used in order to reset the parser for another input |
sequence. |
sequence. |
See the |
|
.Sx EXAMPLES |
|
section for a full example. |
|
.Pp |
.Pp |
Beyond the full set of macros defined in |
Beyond the full set of macros defined in |
.Xr man 7 , |
.Xr man 7 , |
the |
the |
.Nm |
.Nm |
library also accepts the following macros: |
library also accepts the following macro: |
.Pp |
.Pp |
.Bl -tag -width Ds -compact |
.Bl -tag -width Ds -compact |
.It PD |
.It PD |
Has no effect. Handled as a current-scope line macro. |
Has no effect. |
.It Sp |
|
A synonym for |
|
.Sq sp 0.5v |
|
.Pq part of the standard preamble for Perl documentation . |
|
Handled as a line macro. |
|
.It Vb |
|
A synonym for |
|
.Sq nf |
|
.Pq part of the standard preamble for Perl documentation . |
|
Handled as a current-scope line macro. |
Handled as a current-scope line macro. |
.It Ve |
|
A synonym for |
|
.Sq fi , |
|
closing |
|
.Sq Vb |
|
.Pq part of the standard preamble for Perl documentation . |
|
Handled as a current-scope line macro. |
|
.El |
.El |
.Pp |
|
Furthermore, the following escapes are accepted to allow |
|
.Xr pod2man 1 |
|
documents to be correctly formatted: |
|
\e*(-- (dash), |
|
\e*(PI (pi), |
|
\e*(L" (left double-quote), |
|
\e*(R" (right double-quote), |
|
\e*(C+ (C++), |
|
\e*(C` (left single-quote), |
|
\e*(C' (right single-quote), |
|
\e*(Aq (apostrophe), |
|
\e*^ (hat), |
|
\e*, (comma), |
|
\e*~ (tilde), |
|
\e*/ (forward slash), |
|
\e*: (umlaut), |
|
\e*8 (beta), |
|
\e*o (degree), |
|
\e*(D- (Eth), |
|
\e*(d- (eth), |
|
\e*(Th (Thorn), |
|
and |
|
\e*(th (thorn). |
|
.Sh REFERENCE |
|
This section further defines the |
|
.Sx Types , |
|
.Sx Functions |
|
and |
|
.Sx Variables |
|
available to programmers. |
|
Following that, the |
|
.Sx Abstract Syntax Tree |
|
section documents the output tree. |
|
.Ss Types |
.Ss Types |
Both functions (see |
|
.Sx Functions ) |
|
and variables (see |
|
.Sx Variables ) |
|
may use the following types: |
|
.Bl -ohang |
.Bl -ohang |
.It Vt struct man |
.It Vt struct man |
An opaque type defined in |
An opaque type. |
.Pa man.c . |
|
Its values are only used privately within the library. |
Its values are only used privately within the library. |
.It Vt mandocmsg |
|
A function callback type defined in |
|
.Pa mandoc.h . |
|
.It Vt struct man_node |
.It Vt struct man_node |
A parsed node. |
A parsed node. |
Defined in |
|
.Pa man.h . |
|
See |
See |
.Sx Abstract Syntax Tree |
.Sx Abstract Syntax Tree |
for details. |
for details. |
.El |
.El |
.Ss Functions |
.Ss Functions |
Function descriptions follow: |
If |
|
.Fn man_addeqn , |
|
.Fn man_addspan , |
|
.Fn man_parseln , |
|
or |
|
.Fn man_endparse |
|
return 0, calls to any function but |
|
.Fn man_reset |
|
or |
|
.Fn man_free |
|
will raise an assertion. |
.Bl -ohang |
.Bl -ohang |
|
.It Fn man_addeqn |
|
Add an equation to the parsing stream. |
|
Returns 0 on failure, 1 on success. |
|
.It Fn man_addspan |
|
Add a table span to the parsing stream. |
|
Returns 0 on failure, 1 on success. |
.It Fn man_alloc |
.It Fn man_alloc |
Allocates a parsing structure. |
Allocates a parsing structure. |
The |
The |
.Fa data |
.Fa data |
pointer is passed to |
pointer is passed to |
.Fa msgs . |
.Fa msgs . |
The |
Always returns a valid pointer. |
.Fa pflags |
The pointer must be freed with |
arguments are defined in |
|
.Pa man.h . |
|
Returns NULL on failure. |
|
If non-NULL, the pointer must be freed with |
|
.Fn man_free . |
.Fn man_free . |
.It Fn man_reset |
.It Fn man_reset |
Reset the parser for another parse routine. |
Reset the parser for another parse routine. |
Line 197 The input buffer |
|
Line 156 The input buffer |
|
is modified by this function. |
is modified by this function. |
.It Fn man_endparse |
.It Fn man_endparse |
Signals that the parse is complete. |
Signals that the parse is complete. |
Note that if |
|
.Fn man_endparse |
|
is called subsequent to |
|
.Fn man_node , |
|
the resulting tree is incomplete. |
|
Returns 0 on failure, 1 on success. |
Returns 0 on failure, 1 on success. |
.It Fn man_node |
.It Fn man_node |
Returns the first node of the parse. |
Returns the first node of the parse. |
Note that if |
|
.Fn man_parseln |
|
or |
|
.Fn man_endparse |
|
return 0, the tree will be incomplete. |
|
.It Fn man_meta |
.It Fn man_meta |
Returns the document's parsed meta-data. |
Returns the document's parsed meta-data. |
If this information has not yet been supplied or |
|
.Fn man_parseln |
|
or |
|
.Fn man_endparse |
|
return 0, the data will be incomplete. |
|
.El |
.El |
.Ss Variables |
.Ss Variables |
The following variables are also defined: |
The following variables are also defined: |
|
|
|
|
bzero(®s, sizeof(struct regset)); |
bzero(®s, sizeof(struct regset)); |
line = 1; |
line = 1; |
man = man_alloc(®s, NULL, 0, NULL); |
man = man_alloc(®s, NULL, NULL); |
buf = NULL; |
buf = NULL; |
alloc_len = 0; |
alloc_len = 0; |
|
|
Line 322 parsed(man, node); |
|
Line 266 parsed(man, node); |
|
man_free(man); |
man_free(man); |
.Ed |
.Ed |
.Pp |
.Pp |
Please see |
To compile this, execute |
|
.Pp |
|
.Dl % cc main.c libman.a libmandoc.a |
|
.Pp |
|
where |
.Pa main.c |
.Pa main.c |
in the source archive for a rigorous reference. |
is the example file. |
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr mandoc 1 , |
.Xr mandoc 1 , |
.Xr man 7 |
.Xr man 7 |