YACC(1) General Commands Manual YACC(1)
yacc - yet another compiler-compiler: parsing program generator
yacc [ -dvlt ] grammar
yacc converts a context-free grammar into a set of tables for a simple
automaton which executes an LR(1) parsing algorithm. The grammar may
be ambiguous, in which case specified precedence rules may be used to
break those ambiguities.
The output file, y.tab.c, must be compiled by the C compiler to produce
a function named yyparse(). The yyparse() function must be loaded with
the lexical analyzer yylex(), as well as main() and the error handling
routine yyerror(). These routines must be supplied by the user; lex(1)
is useful for creating lexical analyzers usable by yacc-produced
-d Generate the file y.tab.h with the define statements that asso-
ciate the yacc-assigned "token codes" with the user-declared
"token names" so that source files other than y.tab.c can access
the token codes.
-v Prepare the file y.output containing a description of the pars-
ing tables and a report on conflicts generated by ambiguities in
-l Generate y.tab.c containing no numbered line directives.
-t Set the preprocessor symbol yydebug, so y.tab.c will be compiled
with runtime debugging code.
y.output description of parsing tables and conflict report
y.tab.c output parser
y.tab.h defines for token names
yacc.tmp, yacc.acts temporary files
/usr/lib/yaccpar parser prototype for C programs
/usr/5lib/liby.a library provides primitive routines main() and
yyerror() to facilitate the initial use of yacc.
LR Parsing by A. V. Aho and S. C. Johnson, Computing Surveys, June,
The number of reduce-reduce and shift-reduce conflicts is reported on
the standard output; a more detailed report is found in the y.output
file. Similarly, it is also reported if some rules are not reachable
from the start symbol.
Because the cc(1V) command does not generate or support 8-bit symbol
names, it is inappropriate to make yacc 8-bit clean. See cc(1V) for an
explanation about why cc is not 8-bit clean.
Because file names are fixed, no more than one yacc process should be
active in a given directory at a time.
1 February 1989 YACC(1)