aboutsummaryrefslogtreecommitdiff
path: root/doc/grecs_format_node.3
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-05-19 09:49:20 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2011-05-19 09:49:20 +0300
commit304935a296997c9781688f08693ef70180dd24e4 (patch)
tree7b7801f3a97a780af1719826b2b9ef471151a352 /doc/grecs_format_node.3
parent6ef143bd53c35635b6d7edc6410d45fa58f54da2 (diff)
downloadgrecs-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.333
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"

Return to:

Send suggestions and report system problems to the System administrator.