Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / bsd / byacc / bin / yacc.1
blob3ea4cd22a6d6729241d85af49d9bc60b5121e870
1 .\"     $NetBSD: yacc.1,v 1.13 2003/08/07 11:17:55 agc Exp $
2 .\"
3 .\" Copyright (c) 1989, 1990 The Regents of the University of California.
4 .\" All rights reserved.
5 .\"
6 .\" This code is derived from software contributed to Berkeley by
7 .\" Robert Paul Corbett.
8 .\"
9 .\" Redistribution and use in source and binary forms, with or without
10 .\" modification, are permitted provided that the following conditions
11 .\" are met:
12 .\" 1. Redistributions of source code must retain the above copyright
13 .\"    notice, this list of conditions and the following disclaimer.
14 .\" 2. Redistributions in binary form must reproduce the above copyright
15 .\"    notice, this list of conditions and the following disclaimer in the
16 .\"    documentation and/or other materials provided with the distribution.
17 .\" 3. Neither the name of the University nor the names of its contributors
18 .\"    may be used to endorse or promote products derived from this software
19 .\"    without specific prior written permission.
20 .\"
21 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 .\" SUCH DAMAGE.
32 .\"
33 .\"     from: @(#)yacc.1        5.7 (Berkeley) 7/30/91
34 .\"     $NetBSD: yacc.1,v 1.13 2003/08/07 11:17:55 agc Exp $
35 .\"
36 .Dd October 29, 2009
37 .Dt YACC 1
38 .Os
39 .Sh NAME
40 .Nm yacc
41 .Nd an
42 .Tn LALR(1)
43 parser generator
44 .Sh SYNOPSIS
45 .Nm
46 .Op Fl dglrtv
47 .Op Fl b Ar prefix
48 .Op Fl o Ar outputfile
49 .Op Fl p Ar symbol_prefix
50 .Ar filename
51 .Sh DESCRIPTION
52 .Nm
53 reads the grammar specification in the file
54 .Ar filename
55 and generates an
56 .Tn LR(1)
57 parser for it.
58 The parsers consist of a set of
59 .Tn LALR(1)
60 parsing tables and a driver routine
61 written in the C programming language.
62 .Nm
63 normally writes the parse tables and the driver routine to the file
64 .Pa y.tab.c .
65 .Pp
66 The following options are available:
67 .Bl -tag -width Ar
68 .It Fl b Ar prefix
69 The
70 .Fl b
71 option changes the prefix prepended to the output file names to
72 the string denoted by
73 .Ar prefix .
74 The default prefix is the character
75 .Ar y .
76 .It Fl d
77 The
78 .Fl d
79 option causes the header file
80 .Pa y.tab.h
81 to be written.
82 .It Fl g
83 The
84 .Fl g
85 option causes a graphical description of the generated LALR(1) parser to
86 be written to the file
87 .Pa y.dot
88 in graphviz format, ready to be processed by
89 .Xr dot 1 .
90 .It Fl l
91 If the
92 .Fl l
93 option is not specified,
94 .Nm
95 will insert #line directives in the generated code.
96 The #line directives let the C compiler relate errors in the
97 generated code to the user's original code.
98 If the
99 .Fl l
100 option is specified,
102 will not insert the #line directives.
103 #line directives specified by the user will be retained.
104 .It Fl o Ar outputfile
106 .Fl o
107 option specifies an explicit output file name should be used instead
108 of the default.
109 .It Fl p Ar symbol_prefix
111 .Fl p
112 option changes the prefix prepended to yacc-generated symbols to
113 the string denoted by
114 .Ar symbol_prefix .
115 The default prefix is the string
116 .Ar yy .
117 .It Fl r
119 .Fl r
120 option causes
122 to produce separate files for code and tables.
123 The code file is named
124 .Pa y.code.c ,
125 and the tables file is named
126 .Pa y.tab.c .
127 .It Fl t
129 .Fl t
130 option changes the preprocessor directives generated by
132 so that debugging statements will be incorporated in the compiled code.
133 .It Fl v
135 .Fl v
136 option causes a human-readable description of the generated parser to
137 be written to the file
138 .Pa y.output .
140 .Sh ENVIRONMENT
141 The following environment variable is referenced by
142 .Nm :
143 .Bl -tag -width TMPDIR
144 .It Ev TMPDIR
145 If the environment variable
146 .Ev TMPDIR
147 is set, the string denoted by
148 .Ev TMPDIR
149 will be used as the name of the directory where the temporary
150 files are created.
152 .Sh TABLES
153 The names of the tables generated by this version of
156 .Dq yylhs ,
157 .Dq yylen ,
158 .Dq yydefred ,
159 .Dq yydgoto ,
160 .Dq yysindex ,
161 .Dq yyrindex ,
162 .Dq yygindex ,
163 .Dq yytable ,
165 .Dq yycheck .
166 Two additional tables,
167 .Dq yyname
169 .Dq yyrule ,
170 are created if
171 .Dv YYDEBUG
172 is defined and non-zero.
173 .Sh FILES
174 .Bl -tag -width /tmp/yacc.uXXXXXXXX -compact
175 .It Pa y.code.c
176 .It Pa y.tab.c
177 .It Pa y.tab.h
178 .It Pa y.output
179 .It Pa /tmp/yacc.aXXXXXX
180 .It Pa /tmp/yacc.tXXXXXX
181 .It Pa /tmp/yacc.uXXXXXX
183 .Sh DIAGNOSTICS
184 If there are rules that are never reduced, the number of such rules is
185 written to the standard error.
186 If there are any
187 .Tn LALR(1)
188 conflicts, the number of conflicts is also written
189 to the standard error.
190 .\" .Sh SEE ALSO
191 .\" .Xr yyfix 1
192 .Sh STANDARDS
195 utility conforms to
196 .St -p1003.2 .