Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / bsd / byacc / dist / yacc.1
blob55f0a9e366f2215f2d3796fe0385b4198014a76a
1 .\"     $NetBSD: yacc.1,v 1.13 2003/08/07 11:17:55 agc Exp $
2 .\" Id: yacc.1,v 1.6 2005/05/04 22:11:56 tom Exp
3 .\"
4 .TH YACC 1 "July\ 15,\ 1990"
5 .UC 6
6 .SH NAME
7 Yacc \- an LALR(1) parser generator
8 .SH SYNOPSIS
9 .B yacc [ -dglrtv ] [ \-b
10 .I file_prefix
11 .B ] [ \-p
12 .I symbol_prefix
13 .B ]
14 .I filename
15 .SH DESCRIPTION
16 .B Yacc
17 reads the grammar specification in the file
18 .I filename
19 and generates an LALR(1) parser for it.
20 The parsers consist of a set of LALR(1) parsing tables and a driver routine
21 written in the C programming language.
22 .B Yacc
23 normally writes the parse tables and the driver routine to the file
24 .IR y.tab.c.
25 .PP
26 The following options are available:
27 .RS
28 .TP
29 \fB\-b \fP\fIfile_prefix\fR
30 The
31 .B \-b
32 option changes the prefix prepended to the output file names to
33 the string denoted by
34 .IR file_prefix.
35 The default prefix is the character
36 .IR y.
37 .TP
38 .B \-d
39 The \fB-d\fR option causes the header file
40 .IR y.tab.h
41 to be written.
42 .TP
43 .B \-g
44 The
45 .B \-g
46 option causes a graphical description of the generated LALR(1) parser to
47 be written to the file
48 .IR y.dot
49 in graphviz format, ready to be processed by dot(1).
50 .TP
51 .B \-l
52 If the
53 .B \-l
54 option is not specified,
55 .B yacc
56 will insert \fI#line\fP directives in the generated code.
57 The \fI#line\fP directives let the C compiler relate errors in the
58 generated code to the user's original code.
59 If the \fB-l\fR option is specified,
60 .B yacc
61 will not insert the \fI#line\fP directives.
62 \&\fI#line\fP directives specified by the user will be retained.
63 .TP
64 \fB\-o \fP\fIoutput_file\fR
65 specify the filename for the parser file.
66 If this option is not given, the output filename is
67 the file prefix concatenated with the file suffix, e.g., \fBy.tab.c\fP.
68 This overrides the \fB-p\fP option.
69 .TP
70 \fB\-p \fP\fIsymbol_prefix\fR
71 The
72 .B \-p
73 option changes the prefix prepended to yacc-generated symbols to
74 the string denoted by
75 .IR symbol_prefix.
76 The default prefix is the string
77 .IR yy.
78 .TP
79 .B \-r
80 The
81 .B \-r
82 option causes
83 .B yacc
84 to produce separate files for code and tables.  The code file
85 is named
86 .IR y.code.c,
87 and the tables file is named
88 .IR y.tab.c.
89 .TP
90 .B \-t
91 The
92 .B \-t
93 option changes the preprocessor directives generated by
94 .B yacc
95 so that debugging statements will be incorporated in the compiled code.
96 .TP
97 .B \-v
98 The
99 .B \-v
100 option causes a human-readable description of the generated parser to
101 be written to the file
102 .IR y.output.
104 .B \-V
105 print the version number to the standard output.
107 .SH DIAGNOSTICS
108 If there are rules that are never reduced, the number of such rules is
109 reported on standard error.
110 If there are any LALR(1) conflicts, the number of conflicts is reported
111 on standard error.