- ." %W% %R% (Berkeley) %E%
- ."
- .TH YACC 1 "July 15, 1990"
- .UC 6
- .SH NAME
- yacc - an LALR(1) parser generator
- .SH SYNOPSIS
- .B yacc [ -dlrtv ] [ -b
- .I file_prefix
- .B ] [ -p
- .I symbol_prefix
- .B ]
- .I filename
- .SH DESCRIPTION
- .I Yacc
- reads the grammar specification in the file
- .I 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.
- .I Yacc
- normally writes the parse tables and the driver routine to the file
- .IR y.tab.c.
- .PP
- The following options are available:
- .RS
- .TP
- fB-b fIfile_prefixfR
- The
- .B -b
- option changes the prefix prepended to the output file names to
- the string denoted by
- .IR file_prefix.
- The default prefix is the character
- .IR y.
- .TP
- .B -d
- The fB-dfR option causes the header file
- .IR y.tab.h
- to be written.
- .TP
- .B -l
- If the
- .B -l
- option is not specified,
- .I 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 fB-lfR option is specified,
- .I yacc
- will not insert the #line directives.
- &#line directives specified by the user will be retained.
- .TP
- fB-p fIsymbol_prefixfR
- The
- .B -p
- option changes the prefix prepended to yacc-generated symbols to
- the string denoted by
- .IR symbol_prefix.
- The default prefix is the string
- .IR yy.
- .TP
- .B -r
- The
- .B -r
- option causes
- .I yacc
- to produce separate files for code and tables. The code file
- is named
- .IR y.code.c,
- and the tables file is named
- .IR y.tab.c.
- .TP
- .B -t
- The
- .B -t
- option changes the preprocessor directives generated by
- .I yacc
- so that debugging statements will be incorporated in the compiled code.
- .TP
- .B -v
- The
- .B -v
- option causes a human-readable description of the generated parser to
- be written to the file
- .IR y.output.
- .RE
- .PP
- If the environment variable TMPDIR is set, the string denoted by
- TMPDIR will be used as the name of the directory where the temporary
- files are created.
- .SH FILES
- .IR y.code.c
- .br
- .IR y.tab.c
- .br
- .IR y.tab.h
- .br
- .IR y.output
- .br
- .IR /tmp/yacc.aXXXXXX
- .br
- .IR /tmp/yacc.tXXXXXX
- .br
- .IR /tmp/yacc.uXXXXXX
- .SH DIAGNOSTICS
- If there are rules that are never reduced, the number of such rules is
- reported on standard error.
- If there are any LALR(1) conflicts, the number of conflicts is reported
- on standard error.