File: bison.html

package info (click to toggle)
bisonc%2B%2B 6.09.02-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,984 kB
  • sloc: cpp: 9,375; ansic: 1,505; fortran: 1,134; makefile: 1,062; sh: 526; yacc: 84; lex: 60
file content (268 lines) | stat: -rw-r--r-- 24,662 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                      "http://www.w3.org/TR/html40/loose.dtd">
<HTML>
<!-- Created on January, 28 2005 by texi2html 1.66 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
            Karl Berry  <karl@freefriends.org>
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
            and many others.
Maintained by: Many creative people <dev@texi2html.cvshome.org>
Send bugs and suggestions to <users@texi2html.cvshome.org>

-->
<HEAD>
<TITLE>Bison 2.21.5: Bison 2.21.5</TITLE>

<META NAME="description" CONTENT="Bison 2.21.5: Bison 2.21.5">
<META NAME="keywords" CONTENT="Bison 2.21.5: Bison 2.21.5">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="texi2html 1.66">

</HEAD>

<BODY LANG="en" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">

<A NAME="SEC_Top"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bison.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bison_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bison_15.html#SEC92">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bison_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Bison 2.21.5</H1>

<P>

This manual documents version 2.21.5 of Bison.
</P>
<P>

</P>
<TABLE BORDER="0" CELLSPACING="0">
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_1.html#SEC1">Introduction</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_2.html#SEC2">Conditions for Using Bison</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_3.html#SEC3">GNU GENERAL PUBLIC LICENSE</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The GNU General Public License says
                        how you can copy and share Bison</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Tutorial sections:
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_4.html#SEC6">1. The Concepts of Bison</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Basic concepts for understanding Bison.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC14">2. Examples</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Three simple explained examples of using Bison.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Reference sections:
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC33">3. Bison Grammar Files</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Writing Bison declarations and rules.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_7.html#SEC58">4. Parser C-Language Interface</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">C-language interface to the parser function <CODE>yyparse</CODE>.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC67">5. The Bison Parser Algorithm</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How the Bison parser works at run-time.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_9.html#SEC80">6. Error Recovery</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Writing rules for error recovery.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_10.html#SEC81">7. Handling Context Dependencies</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What to do if your language syntax is too
                        messy for Bison to handle straightforwardly.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_11.html#SEC85">8. Debugging Your Parser</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Debugging Bison parsers that parse wrong.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_12.html#SEC86">9. Invoking Bison</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to run Bison (to produce the parser source file).</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_13.html#SEC90">A. Bison Symbols</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">All the keywords of the Bison language are explained.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_14.html#SEC91">B. Glossary</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Basic concepts are explained.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_15.html#SEC92">Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Cross-references to the text.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> -- The Detailed Node Listing ---
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">The Concepts of Bison
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_4.html#SEC7">1.1 Languages and Context-Free Grammars</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Languages and context-free grammars,
                            as mathematical ideas.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_4.html#SEC8">1.2 From Formal Rules to Bison Input</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How we represent grammars for Bison's sake.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_4.html#SEC9">1.3 Semantic Values</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Each token or syntactic grouping can have
                        a semantic value (the value of an integer,
                        the name of an identifier, etc.).</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_4.html#SEC10">1.4 Semantic Actions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Each rule can have an action containing C code.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_4.html#SEC11">1.5 Bison Output: the Parser File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What are Bison's input and output,
                        how is the output used?</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_4.html#SEC12">1.6 Stages in Using Bison</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Stages in writing and running Bison grammars.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_4.html#SEC13">1.7 The Overall Layout of a Bison Grammar</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Overall structure of a Bison grammar file.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Examples
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC15">2.1 Reverse Polish Notation Calculator</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Reverse polish notation calculator;
                        a first example with no operator precedence.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC26">2.2 Infix Notation Calculator: <CODE>calc</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Infix (algebraic) notation calculator.
                        Operator precedence is introduced.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC27">2.3 Simple Error Recovery</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Continuing after syntax errors.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC28">2.4 Multi-Function Calculator: <CODE>mfcalc</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Calculator with memory and trig functions.
                        It uses multiple data-types for semantic values.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC32">2.5 Exercises</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Ideas for improving the multi-function calculator.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Reverse Polish Notation Calculator
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC16">2.1.1 Declarations for <CODE>rpcalc</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Bison and C declarations for rpcalc.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC17">2.1.2 Grammar Rules for <CODE>rpcalc</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Grammar Rules for rpcalc, with explanation.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC21">2.1.3 The <CODE>rpcalc</CODE> Lexical Analyzer</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The lexical analyzer.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC22">2.1.4 The Controlling Function</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The controlling function.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC23">2.1.5 The Error Reporting Routine</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The error reporting function.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC24">2.1.6 Running Bison to Make the Parser</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Running Bison on the grammar file.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC25">2.1.7 Compiling the Parser File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Run the C compiler on the output code.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Grammar Rules for <CODE>rpcalc</CODE>
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC18">2.1.2.1 Explanation of <CODE>input</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC19">2.1.2.2 Explanation of <CODE>line</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC20">2.1.2.3 Explanation of <CODE>expr</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Multi-Function Calculator: <CODE>mfcalc</CODE>
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC29">2.4.1 Declarations for <CODE>mfcalc</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Bison declarations for multi-function calculator.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC30">2.4.2 Grammar Rules for <CODE>mfcalc</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Grammar rules for the calculator.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_5.html#SEC31">2.4.3 The <CODE>mfcalc</CODE> Symbol Table</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Symbol table management subroutines.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Bison Grammar Files
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC34">3.1 Outline of a Bison Grammar</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Overall layout of the grammar file.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC39">3.2 Symbols, Terminal and Nonterminal</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Terminal and nonterminal symbols.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC40">3.3 Syntax of Grammar Rules</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to write grammar rules.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC41">3.4 Recursive Rules</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Writing recursive rules.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC42">3.5 Defining Language Semantics</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Semantic values and actions.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC48">3.6 Bison Declarations</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">All kinds of Bison declarations are described here.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC57">3.7 Multiple Parsers in the Same Program</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Putting more than one Bison parser in one program.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Outline of a Bison Grammar
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC35">3.1.1 The C Declarations Section</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Syntax and usage of the C declarations section.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC36">3.1.2 The Bison Declarations Section</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Syntax and usage of the Bison declarations section.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC37">3.1.3 The Grammar Rules Section</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Syntax and usage of the grammar rules section.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC38">3.1.4 The Additional C Code Section</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Syntax and usage of the additional C code section.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Defining Language Semantics
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC43">3.5.1 Data Types of Semantic Values</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying one data type for all semantic values.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC44">3.5.2 More Than One Value Type</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying several alternative data types.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC45">3.5.3 Actions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An action is the semantic definition of a grammar rule.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC46">3.5.4 Data Types of Values in Actions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying data types for actions to operate on.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC47">3.5.5 Actions in Mid-Rule</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Most actions go at the end of a rule.
                      This says when, why and how to use the exceptional
                        action in the middle of a rule.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Bison Declarations
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC49">3.6.1 Token Type Names</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Declaring terminal symbols.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC50">3.6.2 Operator Precedence</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Declaring terminals with precedence and associativity.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC51">3.6.3 The Collection of Value Types</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Declaring the set of all semantic value types.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC52">3.6.4 Nonterminal Symbols</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Declaring the choice of type for a nonterminal symbol.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC53">3.6.5 Suppressing Conflict Warnings</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Suppressing warnings about shift/reduce conflicts.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC54">3.6.6 The Start-Symbol</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying the start symbol.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC55">3.6.7 A Pure (Reentrant) Parser</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Requesting a reentrant parser.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_6.html#SEC56">3.6.8 Bison Declaration Summary</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Table of all Bison declarations.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Parser C-Language Interface
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_7.html#SEC59">4.1 The Parser Function <CODE>yyparse</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to call <CODE>yyparse</CODE> and what it returns.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_7.html#SEC60">4.2 The Lexical Analyzer Function <CODE>yylex</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">You must supply a function <CODE>yylex</CODE> 
                        which reads tokens.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_7.html#SEC65">4.3 The Error Reporting Function <CODE>yyerror</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">You must supply a function <CODE>yyerror</CODE>.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_7.html#SEC66">4.4 Special Features for Use in Actions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Special features for use in actions.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">The Lexical Analyzer Function <CODE>yylex</CODE>
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_7.html#SEC61">4.2.1 Calling Convention for <CODE>yylex</CODE></A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How <CODE>yyparse</CODE> calls <CODE>yylex</CODE>.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_7.html#SEC62">4.2.2 Semantic Values of Tokens</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How <CODE>yylex</CODE> must return the semantic value
                        of the token it has read.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_7.html#SEC63">4.2.3 Textual Positions of Tokens</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How <CODE>yylex</CODE> must return the text position</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">                        (line number, etc.) of the token, if the
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">                         actions want that.
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_7.html#SEC64">4.2.4 Calling Conventions for Pure Parsers</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How the calling convention differs
                        in a pure parser (@pxref{Pure Decl, ,A Pure (Reentrant) Parser}).</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">The Bison Parser Algorithm 
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC68">5.1 Look-Ahead Tokens</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Parser looks one token ahead when deciding what to do.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC69">5.2 Shift/Reduce Conflicts</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Conflicts: when either shifting or reduction is valid.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC70">5.3 Operator Precedence</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Operator precedence works by resolving conflicts.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC75">5.4 Context-Dependent Precedence</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">When an operator's precedence depends on context.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC76">5.5 Parser States</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The parser is a finite-state-machine with stack.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC77">5.6 Reduce/Reduce Conflicts</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">When two rules are applicable in the same situation.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC78">5.7 Mysterious Reduce/Reduce Conflicts</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Reduce/reduce conflicts that look unjustified.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC79">5.8 Stack Overflow, and How to Avoid It</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What happens when stack gets full.  How to avoid it.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Operator Precedence
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC71">5.3.1 When Precedence is Needed</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example showing why precedence is needed.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC72">5.3.2 Specifying Operator Precedence</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to specify precedence in Bison grammars.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC73">5.3.3 Precedence Examples</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How these features are used in the previous example.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_8.html#SEC74">5.3.4 How Precedence Works</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How they work.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Handling Context Dependencies
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_10.html#SEC82">7.1 Semantic Info in Token Types</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Token parsing can depend on the semantic context.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_10.html#SEC83">7.2 Lexical Tie-ins</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Token parsing can depend on the syntactic context.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_10.html#SEC84">7.3 Lexical Tie-ins and Error Recovery</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Lexical tie-ins have implications for how
                        error recovery rules must be written.</TD></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Invoking Bison
</TH></TR>
<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
</TH></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_12.html#SEC87">9.1 Bison Options</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">All the options described in detail, 
			in alphabetical order by short options.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_12.html#SEC88">9.2 Option Cross Key</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Alphabetical list of long options.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bison_12.html#SEC89">9.3 Invoking Bison under VMS</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Bison command syntax on VMS.</TD></TR>
</TABLE>
<P>

<HR SIZE=1>
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Frank B. Brokken</I> on <I>January, 28 2005</I>
using <A HREF="http://texi2html.cvshome.org"><I>texi2html</I></A>
</FONT>

</BODY>
</HTML>