189 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\"	$NetBSD: yacc.1,v 1.13 2003/08/07 11:17:55 agc Exp $
 | 
						|
.\"
 | 
						|
.\" Copyright (c) 1989, 1990 The Regents of the University of California.
 | 
						|
.\" All rights reserved.
 | 
						|
.\"
 | 
						|
.\" This code is derived from software contributed to Berkeley by
 | 
						|
.\" Robert Paul Corbett.
 | 
						|
.\"
 | 
						|
.\" Redistribution and use in source and binary forms, with or without
 | 
						|
.\" modification, are permitted provided that the following conditions
 | 
						|
.\" are met:
 | 
						|
.\" 1. Redistributions of source code must retain the above copyright
 | 
						|
.\"    notice, this list of conditions and the following disclaimer.
 | 
						|
.\" 2. Redistributions in binary form must reproduce the above copyright
 | 
						|
.\"    notice, this list of conditions and the following disclaimer in the
 | 
						|
.\"    documentation and/or other materials provided with the distribution.
 | 
						|
.\" 3. Neither the name of the University nor the names of its contributors
 | 
						|
.\"    may be used to endorse or promote products derived from this software
 | 
						|
.\"    without specific prior written permission.
 | 
						|
.\"
 | 
						|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
						|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
						|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
						|
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
						|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
						|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
						|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
						|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
						|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
						|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
						|
.\" SUCH DAMAGE.
 | 
						|
.\"
 | 
						|
.\"	from: @(#)yacc.1	5.7 (Berkeley) 7/30/91
 | 
						|
.\"	$NetBSD: yacc.1,v 1.13 2003/08/07 11:17:55 agc Exp $
 | 
						|
.\"
 | 
						|
.Dd July 30, 1991
 | 
						|
.Dt YACC 1
 | 
						|
.Os
 | 
						|
.Sh NAME
 | 
						|
.Nm yacc
 | 
						|
.Nd an
 | 
						|
.Tn LALR(1)
 | 
						|
parser generator
 | 
						|
.Sh SYNOPSIS
 | 
						|
.Nm
 | 
						|
.Op Fl dlrtv
 | 
						|
.Op Fl b Ar prefix
 | 
						|
.Op Fl o Ar outputfile
 | 
						|
.Op Fl p Ar symbol_prefix
 | 
						|
.Ar filename
 | 
						|
.Sh DESCRIPTION
 | 
						|
.Nm
 | 
						|
reads the grammar specification in the file
 | 
						|
.Ar filename
 | 
						|
and generates an
 | 
						|
.Tn LR(1)
 | 
						|
parser for it.
 | 
						|
The parsers consist of a set of
 | 
						|
.Tn LALR(1)
 | 
						|
parsing tables and a driver routine
 | 
						|
written in the C programming language.
 | 
						|
.Nm
 | 
						|
normally writes the parse tables and the driver routine to the file
 | 
						|
.Pa y.tab.c .
 | 
						|
.Pp
 | 
						|
The following options are available:
 | 
						|
.Bl -tag -width Ar
 | 
						|
.It Fl b Ar prefix
 | 
						|
The
 | 
						|
.Fl b
 | 
						|
option changes the prefix prepended to the output file names to
 | 
						|
the string denoted by
 | 
						|
.Ar prefix .
 | 
						|
The default prefix is the character
 | 
						|
.Ar y .
 | 
						|
.It Fl d
 | 
						|
The
 | 
						|
.Fl d
 | 
						|
option causes the header file
 | 
						|
.Pa y.tab.h
 | 
						|
to be written.
 | 
						|
.It Fl l
 | 
						|
If the
 | 
						|
.Fl l
 | 
						|
option is not specified,
 | 
						|
.Nm
 | 
						|
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
 | 
						|
.Fl l
 | 
						|
option is specified,
 | 
						|
.Nm
 | 
						|
will not insert the #line directives.
 | 
						|
#line directives specified by the user will be retained.
 | 
						|
.It Fl o Ar outputfile
 | 
						|
The
 | 
						|
.Fl o
 | 
						|
option specifies an explicit output file name should be used instead
 | 
						|
of the default.
 | 
						|
.It Fl p Ar symbol_prefix
 | 
						|
The
 | 
						|
.Fl p
 | 
						|
option changes the prefix prepended to yacc-generated symbols to
 | 
						|
the string denoted by
 | 
						|
.Ar symbol_prefix .
 | 
						|
The default prefix is the string
 | 
						|
.Ar yy .
 | 
						|
.It Fl r
 | 
						|
The
 | 
						|
.Fl r
 | 
						|
option causes
 | 
						|
.Nm
 | 
						|
to produce separate files for code and tables.
 | 
						|
The code file is named
 | 
						|
.Pa y.code.c ,
 | 
						|
and the tables file is named
 | 
						|
.Pa y.tab.c .
 | 
						|
.It Fl t
 | 
						|
The
 | 
						|
.Fl t
 | 
						|
option changes the preprocessor directives generated by
 | 
						|
.Nm
 | 
						|
so that debugging statements will be incorporated in the compiled code.
 | 
						|
.It Fl v
 | 
						|
The
 | 
						|
.Fl v
 | 
						|
option causes a human-readable description of the generated parser to
 | 
						|
be written to the file
 | 
						|
.Pa y.output .
 | 
						|
.El
 | 
						|
.Sh ENVIRONMENT
 | 
						|
The following environment variable is referenced by
 | 
						|
.Nm :
 | 
						|
.Bl -tag -width TMPDIR
 | 
						|
.It Ev TMPDIR
 | 
						|
If the environment variable
 | 
						|
.Ev TMPDIR
 | 
						|
is set, the string denoted by
 | 
						|
.Ev TMPDIR
 | 
						|
will be used as the name of the directory where the temporary
 | 
						|
files are created.
 | 
						|
.El
 | 
						|
.Sh TABLES
 | 
						|
The names of the tables generated by this version of
 | 
						|
.Nm
 | 
						|
are
 | 
						|
.Dq yylhs ,
 | 
						|
.Dq yylen ,
 | 
						|
.Dq yydefred ,
 | 
						|
.Dq yydgoto ,
 | 
						|
.Dq yysindex ,
 | 
						|
.Dq yyrindex ,
 | 
						|
.Dq yygindex ,
 | 
						|
.Dq yytable ,
 | 
						|
and
 | 
						|
.Dq yycheck .
 | 
						|
Two additional tables,
 | 
						|
.Dq yyname
 | 
						|
and
 | 
						|
.Dq yyrule ,
 | 
						|
are created if
 | 
						|
.Dv YYDEBUG
 | 
						|
is defined and non-zero.
 | 
						|
.Sh FILES
 | 
						|
.Bl -tag -width /tmp/yacc.uXXXXXXXX -compact
 | 
						|
.It Pa y.code.c
 | 
						|
.It Pa y.tab.c
 | 
						|
.It Pa y.tab.h
 | 
						|
.It Pa y.output
 | 
						|
.It Pa /tmp/yacc.aXXXXXX
 | 
						|
.It Pa /tmp/yacc.tXXXXXX
 | 
						|
.It Pa /tmp/yacc.uXXXXXX
 | 
						|
.El
 | 
						|
.Sh DIAGNOSTICS
 | 
						|
If there are rules that are never reduced, the number of such rules is
 | 
						|
written to the standard error.
 | 
						|
If there are any
 | 
						|
.Tn LALR(1)
 | 
						|
conflicts, the number of conflicts is also written
 | 
						|
to the standard error.
 | 
						|
.\" .Sh SEE ALSO
 | 
						|
.\" .Xr yyfix 1
 | 
						|
.Sh STANDARDS
 | 
						|
The
 | 
						|
.Nm
 | 
						|
utility conforms to
 | 
						|
.St -p1003.2 .
 |