112 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\"	%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_prefix\fR
 | 
						|
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-d\fR 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-l\fR option is specified,
 | 
						|
.I yacc
 | 
						|
will not insert the #line directives.
 | 
						|
\&#line directives specified by the user will be retained.
 | 
						|
.TP
 | 
						|
\fB-p \fIsymbol_prefix\fR
 | 
						|
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.
 |