Manual page for YACC(1)
yacc - yet another compiler-compiler: parsing program generator
SYNOPSIS
yacc
[
-dvlt
]
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,
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
parsers.
OPTIONS
- -d
-
Generate the file
y.tab.h
with the
define
statements that associate 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 parsing tables
and a report on conflicts generated by ambiguities in the grammar.
- -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.
FILES
- 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.
SEE ALSO
cc.1v
lex.1
[a manual with the abbreviation PUL]
LR Parsing
by A. V. Aho and S. C. Johnson, Computing Surveys, June, 1974
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, it is also reported
if some rules are not reachable from the
start symbol.
NOTES
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.
BUGS
Because file names are fixed, no more than one
yacc
process should be active in a given directory at a time.
Created by unroff & hp-tools.
© somebody (See intro for details). All Rights Reserved.
Last modified 11/5/97