1 .\" $Id: roff.3,v 1.1 2010/05/25 22:16:59 kristaps Exp $
3 .\" Copyright (c) 2010 Kristaps Dzonsons <kristaps@bsd.lv>
5 .\" Permission to use, copy, modify, and distribute this software for any
6 .\" purpose with or without fee is hereby granted, provided that the above
7 .\" copyright notice and this permission notice appear in all copies.
9 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 .Dd $Mdocdate: May 25 2010 $
27 .Nd roff macro compiler library
32 .Fn roff_alloc "mandocmsg msgs" "void *data"
34 .Fn roff_endparse "struct roff *roff"
36 .Fn roff_free "struct roff *roff"
39 .Fa "struct roff *roff"
47 .Fn roff_reset "struct roff *roff"
51 library processes lines of
55 In general, applications initiate a parsing sequence with
57 parse each line in a document with
59 close the parsing session with
61 and finally free all allocated memory with
65 function may be used in order to reset the parser for another input
70 function should be invoked before passing a line into the
78 section for a full example.
80 This section further defines the
84 available to programmers.
88 may use the following types:
91 Instructions for further processing to the caller of
94 An opaque type defined in
96 Its values are only used privately within the library.
98 A function callback type defined in
102 Function descriptions follow:
105 Allocates a parsing structure.
112 arguments are defined in
114 Returns NULL on failure.
115 If non-NULL, the pointer must be freed with
118 Reset the parser for another parse routine.
121 behaves as if invoked for the first time.
123 Free all resources of a parser.
124 The pointer is no longer valid after invocation.
126 Parse a nil-terminated line of input.
129 may be modified or reallocated within this function.
132 will be modified accordingly.
135 pointer will be modified if the line start during subsequent processing
136 of the line is not at the zeroth index.
137 This line should not contain the trailing newline.
138 Returns 0 on failure, 1 on success.
140 Signals that the parse is complete.
141 Returns 0 on failure, 1 on success.
146 in the source distribution for an example of usage.
155 library was written by
156 .An Kristaps Dzonsons Aq kristaps@bsd.lv .