YACC(1) YACC(1)
NAME
yacc - yet another compiler-compiler
SYNOPSIS
yacc [ -vd ] grammar
DESCRIPTION
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.
FILES
y.output
y.tab.c
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'
SEE ALSO
lex(1)
LR Parsing by A. V. Aho and S. C. Johnson, Computing Surveys, June,
1974.
YACC - Yet Another Compiler Compiler by S. C. Johnson.
DIAGNOSTICS
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.
BUGS
Because file names are fixed, at most one yacc process can be active in
a given directory at a time.
YACC(1)
|