YACC(I) 11/25/74 YACC(I)
NAME
yacc - yet another compiler-compiler
SYNOPSIS
yacc [ -vor ] [ grammar ]
DESCRIPTION
Yacc converts a context-free grammar into a set of tables
for a simple automaton which executes an LR(1) parsing algo-
rithm. The grammar may be ambiguous; specified precedence
rules are used to break ambiguities.
The output is y.tab.c, which must be compiled by the C com-
piler and loaded with any other routines required (perhaps a
lexical analyzer) and the Yacc library:
cc y.tab.c other.o -ly
If the -v flag is given, the file y.output is prepared,
which contains a description of the parsing tables and a re-
port on conflicts generated by ambiguities in the grammar.
The -o flag calls an optimizer for the tables; the optimized
tables, with parser included, appear on file y.tab.c
The -r flag causes Yacc to accept grammars with Ratfor ac-
tions, and produce Ratfor output on y.tab.r; -r implies the
-o flag. Typical usage is then
rc y.tab.r other.o
SEE ALSO
``LR Parsing'', by A. V. Aho and S. C. Johnson, Computing
Surveys, June, 1974. ``The YACC Compiler-compiler'', inter-
nal memorandum.
AUTHOR
S. C. Johnson
FILES
y.output
y.tab.c
y.tab.r when ratfor output is obtained
yacc.tmp when optimizer is called
/lib/liby.a runtime library for compiler
/usr/yacc/fpar.r ratfor parser
/usr/yacc/opar.c parser for optimized tables
/usr/yacc/yopti optimizer postpass
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.
- 1 -
YACC(I) 11/25/74 YACC(I)
BUGS
Because file names are fixed, at most one Yacc process can
be active in a given directory at a time.
- 2 -