diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-19 09:49:20 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-19 09:49:20 +0300 |
commit | 304935a296997c9781688f08693ef70180dd24e4 (patch) | |
tree | 7b7801f3a97a780af1719826b2b9ef471151a352 /doc/grecs_format_node.3 | |
parent | 6ef143bd53c35635b6d7edc6410d45fa58f54da2 (diff) | |
download | grecs-304935a296997c9781688f08693ef70180dd24e4.tar.gz grecs-304935a296997c9781688f08693ef70180dd24e4.tar.bz2 |
Reimplement grecs_format_ familiy as output-independent functions.
* src/format.c (grecs_format_docstring): Rename to grecs_print_docstring.
(grecs_format_simple_statement): Rename to grecs_print_simple_statement.
(grecs_format_block_statement): Rename to grecs_print_block_statement.
(grecs_format_statement_array): Rename to grecs_print_statement_array.
(grecs_format_locus): Rename to grecs_print_locus.
(grecs_format_node_path): Rename to grecs_print_node_path.
(grecs_format_value): Rename to grecs_print_value.
(grecs_format_node): Rename to grecs_print_node.
(grecs_format_locus,grecs_format_node_path)
(grecs_format_value,grecs_format_node): Reimplement as
output-independent functions.
All uses changed.
* src/grecs.h: Update prototypes.
* doc/grecs_format_locus.3: Update.
* doc/grecs_format_node.3: Update.
* doc/grecs_format_node_path.3: Update.
* doc/grecs_format_value.3: Update.
Diffstat (limited to 'doc/grecs_format_node.3')
-rw-r--r-- | doc/grecs_format_node.3 | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/doc/grecs_format_node.3 b/doc/grecs_format_node.3 index 095a494..dd87ca7 100644 --- a/doc/grecs_format_node.3 +++ b/doc/grecs_format_node.3 @@ -14,7 +14,7 @@ .\" You should have received a copy of the GNU General Public License .\" along with Grecs. If not, see <http://www.gnu.org/licenses/>. .\" -.TH GRECS_FORMAT_NODE 3 "May 4, 2011" "GRECS" "Grecs User Reference" +.TH GRECS_FORMAT_NODE 3 "May 19, 2011" "GRECS" "Grecs User Reference" .SH NAME grecs_format_node \- format and print a single node from a syntax tree .SH SYNOPSIS @@ -22,11 +22,19 @@ grecs_format_node \- format and print a single node from a syntax tree .B #include <grecs.h> .sp .BI "void grecs_format_node(struct grecs_node *" "node" ", int " \ + "flags" "," +.ti +17 +.BI "struct grecs_format_closure " "*clos" ); +.sp +.BI "void grecs_print_node(struct grecs_node *" "node" ", int " \ "flags" ", FILE " "*fp" ); .SH DESCRIPTION -\fBgrecs_format_node\fR prints to the output file \fBfp\fR the -contents of a parse tree node \fBnode\fR, according to formatting -options, given by \fBflags\fR. +\fBgrecs_format_node\fR formats the contents of a parse tree node +\fInode\fR, according to formatting options, given by \fIflags\fR. The +formatter closure \fIclos\fR is used for actual output. +.PP +\fBgrecs_print_node\fR is an alternative entry point, which formats +the node to the given file. .PP The \fBflags\fR argument is a bitwise \fBOR\fR of one or more of the following options: @@ -72,6 +80,23 @@ Same as GRECS_NODE_FLAG_PATH|GRECS_NODE_FLAG_VALUE|GRECS_NODE_FLAG_QUOTE .PP If \fBflag\fR is 0, \fBGRECS_NODE_FLAG_DEFAULT\fR is assumed. +.SH CLOSURE +The format closure is defined as: +.sp +.nf +.in +5 +struct grecs_format_closure +{ + int (*fmtfun)(const char *str, void *data); + void *data; +}; +.in +.fi +.PP +While formatting the node, the formatter function \fBfmtfun\fR can +be called one or more times. On each invocation, it is supplied with +the string to be output as its first argument, and pointer to +\fBdata\fR as the second one. .SH "RETURN VALUE" None. .SH "SEE ALSO" |