yacc(1) DG/UX 4.30 yacc(1)
NAME
yacc - yet another compiler-compiler
SYNOPSIS
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
y.output
y.tab.c
y.tab.h Defines for token names
yacc.tmp,
yacc.debug, yacc.acts Temporary files
SEE ALSO
Licensed material--property of copyright holder(s) Page 1
yacc(1) DG/UX 4.30 yacc(1)
lex(1).
"Yacc-Yet Another Compiler Compiler" in Using DG/UX System
Programming Tools.
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.
Licensed material--property of copyright holder(s) Page 2