yacc(1)
_________________________________________________________________
yacc Command
yet another compiler-compiler
_________________________________________________________________
SYNTAX
yacc [ -vdlt ] grammar
DESCRIPTION
Yacc converts a context-free grammar into a set of tables for a
simple automaton that executes an LR(1) parsing algorithm. The
grammar may be ambiguous; specified precedence rules are used to
break ambiguities.
The output file, y.tab.c, must be compiled by the C compiler to
produce a program yyparse. This program must be loaded with the
lexical analyzer program, yylex, as well as main and yyerror, an
error handling routine. The user must supply these routines.
Lex(1) is useful for creating lexical analyzers usable by yacc.
If you use -v flag, the file y.output is prepared. It contains a
description of the parsing tables and a report on conflicts
generated by ambiguities in the grammar.
If you use the -d flag, the file y.tab.h is generated with the
#define statements that associate the yacc-assigned token codes
with the user-declared token names. This allows source files
other than y.tab.c to access the token codes.
If you use the -l flag, the code produced in y.tab.c will not
contain any #line constructs. Use this after the grammar and the
associated actions are fully debugged.
Runtime debugging code is always generated in y.tab.c under
conditional compilation control. By default, this code is not
included when y.tab.c is compiled. However, when yacc's -t
option is used, this debugging code will be compiled by default.
With or without -t option, the runtime debugging code is under
the control of YYDEBUG, a pre-processor symbol. If YYDEBUG has a
non-zero value, then the debugging code is included. If its
value is zero, then the code will not be included. The size and
execution time of a program produced without the runtime
debugging code will be smaller and slightly faster.
FILES
DG/UX 4.00 Page 1
Licensed material--property of copyright holder(s)
yacc(1)
y.output
y.tab.c
y.tab.h Defines for token names
yacc.tmp,
yacc.debug, yacc.acts Temporary files
SEE ALSO
lex(1).
"Yacc-Yet Another Compiler Compiler" in Programmer's Guide to the
DG/UX System.
DIAGNOSTICS
The number of reduce-reduce and shift-reduce conflicts is
reported on the standard error output; a more detailed report is
found in the y.output file. Similarly, if some rules are not
reachable from the start symbol, this is also reported.
BUGS
Because file names are fixed, at most one yacc process can be
active in a given directory at a time.
DG/UX 4.00 Page 2
Licensed material--property of copyright holder(s)