YACC(1) General Commands Manual YACC(1)
yacc - yet another compiler-compiler
yacc [ -vd ] 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; 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 ana-
lyzer program, yylex, as well as main and yyerror, an error handling
routine. These routines must be supplied by the user; Lex(1) is useful
for creating lexical analyzers usable by yacc.
If the -v flag is given, the file y.output is prepared, which contains
a description of the parsing tables and a report on conflicts generated
by ambiguities in the grammar.
If the -d flag is used, 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.
y.tab.h defines for token names
yacc.tmp, yacc.acts temporary files
/usr/lib/yaccpar parser prototype for C programs
/lib/liby.a library with default `main' and `yyerror'
LR Parsing by A. V. Aho and S. C. Johnson, Computing Surveys, June,
YACC - Yet Another Compiler Compiler by S. C. Johnson.
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, if some rules are not reachable from the start sym-
bol, this is also reported.
Because file names are fixed, at most one yacc process can be active in
a given directory at a time.