yacc - an LALR(1) parser generator
yacc [-dlrtv] [-b prefix] [-o output_file] [-p
symbol_prefix] filename
yacc reads the grammar specification in the file filename
and generates
an LR(1) parser for it. The parsers consist of a set of
LALR(1) parsing
tables and a driver routine written in the C programming
language. yacc
normally writes the parse tables and the driver routine to
the file
y.tab.c.
The options are as follows:
-b prefix
The -b option changes the prefix prepended to the
output file
names to the string denoted by prefix. The default
prefix is the
character y.
-d The -d option causes the header file y.tab.h to be
written.
-l If the -l option is not specified, yacc will insert
#line directives
in the generated code. The #line directives
let the C compiler
relate errors in the generated code to the user's original
code. If the -l option is specified, yacc will not
insert the
#line directives. #line directives specified by the
user will be
retained.
-o output_file
The -o option specifies an explicit name for the
parser's output
file name instead of the default. The names of the
other output
files are constructed from output_file as described
under the -d
and -v options.
-p symbol_prefix
The -p option changes the prefix prepended to yaccgenerated symbols
to the string denoted by symbol_prefix. The
default prefix
is the string yy.
-r The -r option causes yacc to produce separate files
for code and
tables. The code file is named y.code.c, and the
tables file is
named y.tab.c.
-t The -t option changes the preprocessor directives
generated by
yacc so that debugging statements will be incorporated in the
compiled code.
-v The -v option causes a human-readable description of
the generated
parser to be written to the file y.output.
TMPDIR Name of directory where temporary files are to be
created.
The names of the tables generated by this version of yacc
are ``yylhs'',
``yylen'', ``yydefred'', ``yydgoto'', ``yysindex'',
``yyrindex'',
``yygindex'', ``yytable'', and ``yycheck''. Two additional
tables,
``yyname'' and ``yyrule'', are created if YYDEBUG is defined
and non-zero.
y.code.c
y.tab.c
y.tab.h
y.output
/tmp/yacc.aXXXXXXXXXX
/tmp/yacc.tXXXXXXXXXX
/tmp/yacc.uXXXXXXXXXX
If there are rules that are never reduced, the number of
such rules is
written to the standard error. If there are any LALR(1)
conflicts, the
number of conflicts is also written to the standard error.
yyfix(1)
The yacc utility conforms to IEEE Std 1003.2 (``POSIX.2'').
OpenBSD 3.6 July 30, 1991
[ Back ] |