yacc(1) CLIX yacc(1)
NAME
yacc - Runs a compiler-compiler
SYNOPSIS
yacc [-vdlt] grammar
FLAGS
-v Prepares the file y.output, which contains a description of the
parsing tables and a report on conflicts generated by ambiguities in
the grammar.
-d Generates the file y.tab.h 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.
-l Excludes #line constructs from the code produced in y.tab.c. This
should only be used after the grammar and the associated actions are
fully debugged.
-t Compiles the runtime debugging code generated in y.tab.c.
DESCRIPTION
The yacc (yet another compiler compiler) command converts a context-free
grammar into a set of tables for a simple automaton which executes a
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 analyzer
program, yylex, as well as main and yyerror, an error handling function.
These functions must be supplied by the user. The lex command is useful
for creating lexical analyzers usable by yacc.
Runtime debugging code is always generated in y.tab.c under conditional
compilation control. By default, this code is not included when y.tab.c
is compiled. However, when the -t flag is used, this debugging code will
be compiled by default. Independent of whether the -t flag was used, the
runtime debugging code is under the control of YYDEBUG, a preprocessor
symbol. If YYDEBUG has a nonzero value, then the debugging code is
included. If its value is zero, then the code will not be included. The
size and execution time of a program produced without the runtime
debugging code will be smaller and slightly faster.
FILES
y.output
2/94 - Intergraph Corporation 1
yacc(1) CLIX yacc(1)
y.tab.c
y.tab.h
Definitions for token names.
yacc.tmp
Temporary file.
yacc.debug
Temporary file.
yacc.acts
Temporary file.
/usr/lib/yaccpar
Parser prototype for C programs.
NOTES
Because filenames are fixed, at most one yacc process can be active in a
given directory at a given time.
EXIT VALUES
The number of reduce-reduce and shift-reduce conflicts is reported on
stderr; a more detailed report is found in the y.output file. Similarly,
if some rules are not reachable from the start symbol, this is also
reported.
RELATED INFORMATION
Commands: lex(1)
2 Intergraph Corporation - 2/94