* doc/bison.texinfo: Modernize @node' and @top' use: just name

the nodes.
Be sure to tag the `detailmenu'.
This commit is contained in:
Akim Demaille
2001-08-29 12:07:46 +00:00
parent 8f5d3a2dd5
commit 27c1ceb8da
8 changed files with 222 additions and 211 deletions

View File

@@ -1,3 +1,9 @@
2001-08-29 Akim Demaille <akim@epita.fr>
* doc/bison.texinfo: Modernize `@node' and `@top' use: just name
the nodes.
Be sure to tag the `detailmenu'.
2001-08-29 Akim Demaille <akim@epita.fr> 2001-08-29 Akim Demaille <akim@epita.fr>
* Makefile.maint (do-po-update): Wget refuses to overwrite files: * Makefile.maint (do-po-update): Wget refuses to overwrite files:

View File

@@ -31,111 +31,111 @@ instead of in the original English.
 
Indirect: Indirect:
bison.info-1: 1313 bison.info-1: 1313
bison.info-2: 50357 bison.info-2: 50345
bison.info-3: 99982 bison.info-3: 99970
bison.info-4: 148180 bison.info-4: 148168
bison.info-5: 191142 bison.info-5: 191130
 
Tag Table: Tag Table:
(Indirect) (Indirect)
Node: Top1313 Node: Top1313
Node: Introduction8698 Node: Introduction8686
Node: Conditions9973 Node: Conditions9961
Node: Copying11437 Node: Copying11425
Node: Concepts30640 Node: Concepts30628
Node: Language and Grammar31719 Node: Language and Grammar31707
Node: Grammar in Bison36735 Node: Grammar in Bison36723
Node: Semantic Values38659 Node: Semantic Values38647
Node: Semantic Actions40760 Node: Semantic Actions40748
Node: Locations Overview41949 Node: Locations Overview41937
Node: Bison Parser43396 Node: Bison Parser43384
Node: Stages45708 Node: Stages45696
Node: Grammar Layout46991 Node: Grammar Layout46979
Node: Examples48248 Node: Examples48236
Node: RPN Calc49383 Node: RPN Calc49371
Node: Rpcalc Decls50357 Node: Rpcalc Decls50345
Node: Rpcalc Rules51944 Node: Rpcalc Rules51932
Node: Rpcalc Input53744 Node: Rpcalc Input53732
Node: Rpcalc Line55205 Node: Rpcalc Line55193
Node: Rpcalc Expr56320 Node: Rpcalc Expr56308
Node: Rpcalc Lexer58265 Node: Rpcalc Lexer58253
Node: Rpcalc Main60837 Node: Rpcalc Main60825
Node: Rpcalc Error61235 Node: Rpcalc Error61223
Node: Rpcalc Gen62243 Node: Rpcalc Gen62231
Node: Rpcalc Compile63392 Node: Rpcalc Compile63380
Node: Infix Calc64267 Node: Infix Calc64255
Node: Simple Error Recovery66974 Node: Simple Error Recovery66962
Node: Multi-function Calc68860 Node: Multi-function Calc68848
Node: Mfcalc Decl70426 Node: Mfcalc Decl70414
Node: Mfcalc Rules72449 Node: Mfcalc Rules72437
Node: Mfcalc Symtab73829 Node: Mfcalc Symtab73817
Node: Exercises80202 Node: Exercises80190
Node: Grammar File80708 Node: Grammar File80696
Node: Grammar Outline81556 Node: Grammar Outline81544
Node: C Declarations82290 Node: C Declarations82278
Node: Bison Declarations82870 Node: Bison Declarations82858
Node: Grammar Rules83282 Node: Grammar Rules83270
Node: C Code83742 Node: C Code83730
Node: Symbols84672 Node: Symbols84660
Node: Rules89753 Node: Rules89741
Node: Recursion91392 Node: Recursion91380
Node: Semantics93111 Node: Semantics93099
Node: Value Type94205 Node: Value Type94193
Node: Multiple Types94877 Node: Multiple Types94865
Node: Actions95894 Node: Actions95882
Node: Action Types98679 Node: Action Types98667
Node: Mid-Rule Actions99982 Node: Mid-Rule Actions99970
Node: Locations105552 Node: Locations105540
Node: Location Type106200 Node: Location Type106188
Node: Actions and Locations106758 Node: Actions and Locations106746
Node: Location Default Action108914 Node: Location Default Action108902
Node: Declarations110377 Node: Declarations110365
Node: Token Decl111696 Node: Token Decl111684
Node: Precedence Decl113709 Node: Precedence Decl113697
Node: Union Decl115260 Node: Union Decl115248
Node: Type Decl116104 Node: Type Decl116092
Node: Expect Decl117010 Node: Expect Decl116998
Node: Start Decl118556 Node: Start Decl118544
Node: Pure Decl118934 Node: Pure Decl118922
Node: Decl Summary120611 Node: Decl Summary120599
Node: Multiple Parsers125994 Node: Multiple Parsers125982
Node: Interface127488 Node: Interface127476
Node: Parser Function128360 Node: Parser Function128348
Node: Lexical129195 Node: Lexical129183
Node: Calling Convention130601 Node: Calling Convention130589
Node: Token Values133372 Node: Token Values133360
Node: Token Positions134521 Node: Token Positions134509
Node: Pure Calling135406 Node: Pure Calling135394
Node: Error Reporting138338 Node: Error Reporting138326
Node: Action Features140460 Node: Action Features140448
Node: Algorithm143755 Node: Algorithm143743
Node: Look-Ahead146048 Node: Look-Ahead146036
Node: Shift/Reduce148180 Node: Shift/Reduce148168
Node: Precedence151092 Node: Precedence151080
Node: Why Precedence151743 Node: Why Precedence151731
Node: Using Precedence153608 Node: Using Precedence153596
Node: Precedence Examples154576 Node: Precedence Examples154564
Node: How Precedence155277 Node: How Precedence155265
Node: Contextual Precedence156426 Node: Contextual Precedence156414
Node: Parser States158217 Node: Parser States158205
Node: Reduce/Reduce159460 Node: Reduce/Reduce159448
Node: Mystery Conflicts163021 Node: Mystery Conflicts163009
Node: Stack Overflow166407 Node: Stack Overflow166395
Node: Error Recovery167780 Node: Error Recovery167768
Node: Context Dependency172916 Node: Context Dependency172904
Node: Semantic Tokens173764 Node: Semantic Tokens173752
Node: Lexical Tie-ins176781 Node: Lexical Tie-ins176769
Node: Tie-in Recovery178329 Node: Tie-in Recovery178317
Node: Debugging180501 Node: Debugging180489
Node: Invocation183802 Node: Invocation183790
Node: Bison Options185054 Node: Bison Options185042
Node: Environment Variables188666 Node: Environment Variables188654
Node: Option Cross Key189514 Node: Option Cross Key189502
Node: VMS Invocation190358 Node: VMS Invocation190346
Node: Table of Symbols191142 Node: Table of Symbols191130
Node: Glossary198781 Node: Glossary198769
Node: Copying This Manual205085 Node: Copying This Manual205073
Node: GNU Free Documentation License205294 Node: GNU Free Documentation License205282
Node: Index225159 Node: Index225147
 
End Tag Table End Tag Table

View File

@@ -29,9 +29,12 @@ included in translations approved by the Free Software Foundation
instead of in the original English. instead of in the original English.
 
File: bison.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) File: bison.info, Node: Top, Next: Introduction, Up: (dir)
This manual documents version 1.28c of Bison. Bison
*****
This manual documents version 1.28c of Bison, updated 29 August 2001.
* Menu: * Menu:
@@ -58,7 +61,6 @@ Reference sections:
* Copying This Manual:: License for copying this manual. * Copying This Manual:: License for copying this manual.
* Index:: Cross-references to the text. * Index:: Cross-references to the text.
--- The Detailed Node Listing ---
The Concepts of Bison The Concepts of Bison

View File

@@ -129,11 +129,13 @@ Cover art by Etienne Suvasa.
@contents @contents
@node Top, Introduction, (dir), (dir) @ifnottex
@node Top
@top Bison
@ifinfo This manual documents version @value{VERSION} of Bison, updated
This manual documents version @value{VERSION} of Bison. @value{UPDATED}.
@end ifinfo @end ifnottex
@menu @menu
* Introduction:: * Introduction::
@@ -159,7 +161,7 @@ Reference sections:
* Copying This Manual:: License for copying this manual. * Copying This Manual:: License for copying this manual.
* Index:: Cross-references to the text. * Index:: Cross-references to the text.
--- The Detailed Node Listing --- @detailmenu --- The Detailed Node Listing ---
The Concepts of Bison The Concepts of Bison
@@ -301,9 +303,10 @@ Copying This Manual
* GNU Free Documentation License:: License for copying this manual. * GNU Free Documentation License:: License for copying this manual.
@end detailmenu
@end menu @end menu
@node Introduction, Conditions, Top, Top @node Introduction
@unnumbered Introduction @unnumbered Introduction
@cindex introduction @cindex introduction
@@ -329,7 +332,7 @@ multi-character string literals and other features.
This edition corresponds to version @value{VERSION} of Bison. This edition corresponds to version @value{VERSION} of Bison.
@node Conditions, Copying, Introduction, Top @node Conditions
@unnumbered Conditions for Using Bison @unnumbered Conditions for Using Bison
As of Bison version 1.24, we have changed the distribution terms for As of Bison version 1.24, we have changed the distribution terms for
@@ -359,7 +362,7 @@ using the other GNU tools.
@include gpl.texi @include gpl.texi
@node Concepts, Examples, Copying, Top @node Concepts
@chapter The Concepts of Bison @chapter The Concepts of Bison
This chapter introduces many of the basic concepts without which the This chapter introduces many of the basic concepts without which the
@@ -381,7 +384,7 @@ use Bison or Yacc, we suggest you start by reading this chapter carefully.
* Grammar Layout:: Overall structure of a Bison grammar file. * Grammar Layout:: Overall structure of a Bison grammar file.
@end menu @end menu
@node Language and Grammar, Grammar in Bison, , Concepts @node Language and Grammar
@section Languages and Context-Free Grammars @section Languages and Context-Free Grammars
@cindex context-free grammar @cindex context-free grammar
@@ -490,7 +493,7 @@ the grammar's start symbol. If we use a grammar for C, the entire input
must be a `sequence of definitions and declarations'. If not, the parser must be a `sequence of definitions and declarations'. If not, the parser
reports a syntax error. reports a syntax error.
@node Grammar in Bison, Semantic Values, Language and Grammar, Concepts @node Grammar in Bison
@section From Formal Rules to Bison Input @section From Formal Rules to Bison Input
@cindex Bison grammar @cindex Bison grammar
@cindex grammar, Bison @cindex grammar, Bison
@@ -535,7 +538,7 @@ stmt: RETURN expr ';'
@noindent @noindent
@xref{Rules, ,Syntax of Grammar Rules}. @xref{Rules, ,Syntax of Grammar Rules}.
@node Semantic Values, Semantic Actions, Grammar in Bison, Concepts @node Semantic Values
@section Semantic Values @section Semantic Values
@cindex semantic value @cindex semantic value
@cindex value, semantic @cindex value, semantic
@@ -577,7 +580,7 @@ semantic value that is a number. In a compiler for a programming
language, an expression typically has a semantic value that is a tree language, an expression typically has a semantic value that is a tree
structure describing the meaning of the expression. structure describing the meaning of the expression.
@node Semantic Actions, Locations Overview, Semantic Values, Concepts @node Semantic Actions
@section Semantic Actions @section Semantic Actions
@cindex semantic actions @cindex semantic actions
@cindex actions, semantic @cindex actions, semantic
@@ -608,7 +611,7 @@ expr: expr '+' expr @{ $$ = $1 + $3; @}
The action says how to produce the semantic value of the sum expression The action says how to produce the semantic value of the sum expression
from the values of the two subexpressions. from the values of the two subexpressions.
@node Locations Overview, Bison Parser, Semantic Actions, Concepts @node Locations Overview
@section Locations @section Locations
@cindex location @cindex location
@cindex textual position @cindex textual position
@@ -637,7 +640,7 @@ rule how @code{@@$} should be formed. When building a new location for a given
grouping, the default behavior of the output parser is to take the beginning grouping, the default behavior of the output parser is to take the beginning
of the first symbol, and the end of the last symbol. of the first symbol, and the end of the last symbol.
@node Bison Parser, Stages, Locations Overview, Concepts @node Bison Parser
@section Bison Output: the Parser File @section Bison Output: the Parser File
@cindex Bison parser @cindex Bison parser
@cindex Bison utility @cindex Bison utility
@@ -682,7 +685,7 @@ Therefore, you should avoid using C identifiers starting with @samp{yy}
or @samp{YY} in the Bison grammar file except for the ones defined in or @samp{YY} in the Bison grammar file except for the ones defined in
this manual. this manual.
@node Stages, Grammar Layout, Bison Parser, Concepts @node Stages
@section Stages in Using Bison @section Stages in Using Bison
@cindex stages in using Bison @cindex stages in using Bison
@cindex using Bison @cindex using Bison
@@ -724,7 +727,7 @@ Compile the code output by Bison, as well as any other source files.
Link the object files to produce the finished product. Link the object files to produce the finished product.
@end enumerate @end enumerate
@node Grammar Layout, , Stages, Concepts @node Grammar Layout
@section The Overall Layout of a Bison Grammar @section The Overall Layout of a Bison Grammar
@cindex grammar file @cindex grammar file
@cindex file format @cindex file format
@@ -767,7 +770,7 @@ definition of the lexical analyzer @code{yylex} goes here, plus subroutines
called by the actions in the grammar rules. In a simple program, all the called by the actions in the grammar rules. In a simple program, all the
rest of the program can go here. rest of the program can go here.
@node Examples, Grammar File, Concepts, Top @node Examples
@chapter Examples @chapter Examples
@cindex simple examples @cindex simple examples
@cindex examples, simple @cindex examples, simple
@@ -796,7 +799,7 @@ to try them.
* Exercises:: Ideas for improving the multi-function calculator. * Exercises:: Ideas for improving the multi-function calculator.
@end menu @end menu
@node RPN Calc, Infix Calc, , Examples @node RPN Calc
@section Reverse Polish Notation Calculator @section Reverse Polish Notation Calculator
@cindex reverse polish notation @cindex reverse polish notation
@cindex polish notation calculator @cindex polish notation calculator
@@ -821,7 +824,7 @@ The source code for this calculator is named @file{rpcalc.y}. The
* Comp: Rpcalc Compile. Run the C compiler on the output code. * Comp: Rpcalc Compile. Run the C compiler on the output code.
@end menu @end menu
@node Rpcalc Decls, Rpcalc Rules, , RPN Calc @node Rpcalc Decls
@subsection Declarations for @code{rpcalc} @subsection Declarations for @code{rpcalc}
Here are the C and Bison declarations for the reverse polish notation Here are the C and Bison declarations for the reverse polish notation
@@ -861,7 +864,7 @@ arithmetic operators are designated by single-character literals, so the
only terminal symbol that needs to be declared is @code{NUM}, the token only terminal symbol that needs to be declared is @code{NUM}, the token
type for numeric constants. type for numeric constants.
@node Rpcalc Rules, Rpcalc Lexer, Rpcalc Decls, RPN Calc @node Rpcalc Rules
@subsection Grammar Rules for @code{rpcalc} @subsection Grammar Rules for @code{rpcalc}
Here are the grammar rules for the reverse polish notation calculator. Here are the grammar rules for the reverse polish notation calculator.
@@ -912,7 +915,7 @@ rule are referred to as @code{$1}, @code{$2}, and so on.
* Rpcalc Expr:: * Rpcalc Expr::
@end menu @end menu
@node Rpcalc Input, Rpcalc Line, , Rpcalc Rules @node Rpcalc Input
@subsubsection Explanation of @code{input} @subsubsection Explanation of @code{input}
Consider the definition of @code{input}: Consider the definition of @code{input}:
@@ -946,7 +949,7 @@ The parser function @code{yyparse} continues to process input until a
grammatical error is seen or the lexical analyzer says there are no more grammatical error is seen or the lexical analyzer says there are no more
input tokens; we will arrange for the latter to happen at end of file. input tokens; we will arrange for the latter to happen at end of file.
@node Rpcalc Line, Rpcalc Expr, Rpcalc Input, Rpcalc Rules @node Rpcalc Line
@subsubsection Explanation of @code{line} @subsubsection Explanation of @code{line}
Now consider the definition of @code{line}: Now consider the definition of @code{line}:
@@ -971,7 +974,7 @@ uninitialized (its value will be unpredictable). This would be a bug if
that value were ever used, but we don't use it: once rpcalc has printed the that value were ever used, but we don't use it: once rpcalc has printed the
value of the user's input line, that value is no longer needed. value of the user's input line, that value is no longer needed.
@node Rpcalc Expr, , Rpcalc Line, Rpcalc Rules @node Rpcalc Expr
@subsubsection Explanation of @code{expr} @subsubsection Explanation of @code{expr}
The @code{exp} grouping has several rules, one for each kind of expression. The @code{exp} grouping has several rules, one for each kind of expression.
@@ -1030,7 +1033,7 @@ exp: NUM
@noindent @noindent
The latter, however, is much more readable. The latter, however, is much more readable.
@node Rpcalc Lexer, Rpcalc Main, Rpcalc Rules, RPN Calc @node Rpcalc Lexer
@subsection The @code{rpcalc} Lexical Analyzer @subsection The @code{rpcalc} Lexical Analyzer
@cindex writing a lexical analyzer @cindex writing a lexical analyzer
@cindex lexical analyzer, writing @cindex lexical analyzer, writing
@@ -1105,7 +1108,7 @@ yylex (void)
@end group @end group
@end example @end example
@node Rpcalc Main, Rpcalc Error, Rpcalc Lexer, RPN Calc @node Rpcalc Main
@subsection The Controlling Function @subsection The Controlling Function
@cindex controlling function @cindex controlling function
@cindex main function in simple example @cindex main function in simple example
@@ -1124,7 +1127,7 @@ main (void)
@end group @end group
@end example @end example
@node Rpcalc Error, Rpcalc Gen, Rpcalc Main, RPN Calc @node Rpcalc Error
@subsection The Error Reporting Routine @subsection The Error Reporting Routine
@cindex error reporting routine @cindex error reporting routine
@@ -1153,7 +1156,7 @@ have not written any error rules in this example, so any invalid input will
cause the calculator program to exit. This is not clean behavior for a cause the calculator program to exit. This is not clean behavior for a
real calculator, but it is adequate for the first example. real calculator, but it is adequate for the first example.
@node Rpcalc Gen, Rpcalc Compile, Rpcalc Error, RPN Calc @node Rpcalc Gen
@subsection Running Bison to Make the Parser @subsection Running Bison to Make the Parser
@cindex running Bison (introduction) @cindex running Bison (introduction)
@@ -1182,7 +1185,7 @@ Bison contains the source code for @code{yyparse}. The additional
functions in the input file (@code{yylex}, @code{yyerror} and @code{main}) functions in the input file (@code{yylex}, @code{yyerror} and @code{main})
are copied verbatim to the output. are copied verbatim to the output.
@node Rpcalc Compile, , Rpcalc Gen, RPN Calc @node Rpcalc Compile
@subsection Compiling the Parser File @subsection Compiling the Parser File
@cindex compiling the parser @cindex compiling the parser
@@ -1227,7 +1230,7 @@ example session using @code{rpcalc}.
% %
@end example @end example
@node Infix Calc, Simple Error Recovery, RPN Calc, Examples @node Infix Calc
@section Infix Notation Calculator: @code{calc} @section Infix Notation Calculator: @code{calc}
@cindex infix notation calculator @cindex infix notation calculator
@cindex @code{calc} @cindex @code{calc}
@@ -1313,7 +1316,7 @@ Here is a sample run of @file{calc.y}:
9 9
@end example @end example
@node Simple Error Recovery, Multi-function Calc, Infix Calc, Examples @node Simple Error Recovery
@section Simple Error Recovery @section Simple Error Recovery
@cindex error recovery, simple @cindex error recovery, simple
@@ -1355,7 +1358,7 @@ input lines; it would also have to discard the rest of the current line of
input. We won't discuss this issue further because it is not specific to input. We won't discuss this issue further because it is not specific to
Bison programs. Bison programs.
@node Multi-function Calc, Exercises, Simple Error Recovery, Examples @node Multi-function Calc
@section Multi-Function Calculator: @code{mfcalc} @section Multi-Function Calculator: @code{mfcalc}
@cindex multi-function calculator @cindex multi-function calculator
@cindex @code{mfcalc} @cindex @code{mfcalc}
@@ -1407,7 +1410,7 @@ Note that multiple assignment and nested function calls are permitted.
* Symtab: Mfcalc Symtab. Symbol table management subroutines. * Symtab: Mfcalc Symtab. Symbol table management subroutines.
@end menu @end menu
@node Mfcalc Decl, Mfcalc Rules, , Multi-function Calc @node Mfcalc Decl
@subsection Declarations for @code{mfcalc} @subsection Declarations for @code{mfcalc}
Here are the C and Bison declarations for the multi-function calculator. Here are the C and Bison declarations for the multi-function calculator.
@@ -1458,7 +1461,7 @@ just as @code{%token} is used for declaring token types. We have not used
implicitly by the rules that define them. But @code{exp} must be declared implicitly by the rules that define them. But @code{exp} must be declared
explicitly so we can specify its value type. @xref{Type Decl, ,Nonterminal Symbols}. explicitly so we can specify its value type. @xref{Type Decl, ,Nonterminal Symbols}.
@node Mfcalc Rules, Mfcalc Symtab, Mfcalc Decl, Multi-function Calc @node Mfcalc Rules
@subsection Grammar Rules for @code{mfcalc} @subsection Grammar Rules for @code{mfcalc}
Here are the grammar rules for the multi-function calculator. Here are the grammar rules for the multi-function calculator.
@@ -1492,7 +1495,7 @@ exp: NUM @{ $$ = $1; @}
%% %%
@end smallexample @end smallexample
@node Mfcalc Symtab, , Mfcalc Rules, Multi-function Calc @node Mfcalc Symtab
@subsection The @code{mfcalc} Symbol Table @subsection The @code{mfcalc} Symbol Table
@cindex symbol table example @cindex symbol table example
@@ -1733,7 +1736,7 @@ This program is both powerful and flexible. You may easily add new
functions, and it is a simple job to modify this code to install predefined functions, and it is a simple job to modify this code to install predefined
variables such as @code{pi} or @code{e} as well. variables such as @code{pi} or @code{e} as well.
@node Exercises, , Multi-function Calc, Examples @node Exercises
@section Exercises @section Exercises
@cindex exercises @cindex exercises
@@ -1751,7 +1754,7 @@ Make the program report an error if the user refers to an
uninitialized variable in any way except to store a value in it. uninitialized variable in any way except to store a value in it.
@end enumerate @end enumerate
@node Grammar File, Interface, Examples, Top @node Grammar File
@chapter Bison Grammar Files @chapter Bison Grammar Files
Bison takes as input a context-free grammar specification and produces a Bison takes as input a context-free grammar specification and produces a
@@ -1771,7 +1774,7 @@ The Bison grammar input file conventionally has a name ending in @samp{.y}.
* Multiple Parsers:: Putting more than one Bison parser in one program. * Multiple Parsers:: Putting more than one Bison parser in one program.
@end menu @end menu
@node Grammar Outline, Symbols, , Grammar File @node Grammar Outline
@section Outline of a Bison Grammar @section Outline of a Bison Grammar
A Bison grammar file has four main sections, shown here with the A Bison grammar file has four main sections, shown here with the
@@ -1800,7 +1803,7 @@ Comments enclosed in @samp{/* @dots{} */} may appear in any of the sections.
* C Code:: Syntax and usage of the additional C code section. * C Code:: Syntax and usage of the additional C code section.
@end menu @end menu
@node C Declarations, Bison Declarations, , Grammar Outline @node C Declarations
@subsection The C Declarations Section @subsection The C Declarations Section
@cindex C declarations section @cindex C declarations section
@cindex declarations, C @cindex declarations, C
@@ -1813,7 +1816,7 @@ that they precede the definition of @code{yyparse}. You can use
need any C declarations, you may omit the @samp{%@{} and @samp{%@}} need any C declarations, you may omit the @samp{%@{} and @samp{%@}}
delimiters that bracket this section. delimiters that bracket this section.
@node Bison Declarations, Grammar Rules, C Declarations, Grammar Outline @node Bison Declarations
@subsection The Bison Declarations Section @subsection The Bison Declarations Section
@cindex Bison declarations (introduction) @cindex Bison declarations (introduction)
@cindex declarations, Bison (introduction) @cindex declarations, Bison (introduction)
@@ -1823,7 +1826,7 @@ terminal and nonterminal symbols, specify precedence, and so on.
In some simple grammars you may not need any declarations. In some simple grammars you may not need any declarations.
@xref{Declarations, ,Bison Declarations}. @xref{Declarations, ,Bison Declarations}.
@node Grammar Rules, C Code, Bison Declarations, Grammar Outline @node Grammar Rules
@subsection The Grammar Rules Section @subsection The Grammar Rules Section
@cindex grammar rules section @cindex grammar rules section
@cindex rules section for grammar @cindex rules section for grammar
@@ -1835,7 +1838,7 @@ There must always be at least one grammar rule, and the first
@samp{%%} (which precedes the grammar rules) may never be omitted even @samp{%%} (which precedes the grammar rules) may never be omitted even
if it is the first thing in the file. if it is the first thing in the file.
@node C Code, , Grammar Rules, Grammar Outline @node C Code
@subsection The Additional C Code Section @subsection The Additional C Code Section
@cindex additional C code section @cindex additional C code section
@cindex C code, section for additional @cindex C code, section for additional
@@ -1856,7 +1859,7 @@ with @samp{yy} and many macros whose names start with @samp{YY}. It is a
good idea to avoid using any such names (except those documented in this good idea to avoid using any such names (except those documented in this
manual) in the additional C code section of the grammar file. manual) in the additional C code section of the grammar file.
@node Symbols, Rules, Grammar Outline, Grammar File @node Symbols
@section Symbols, Terminal and Nonterminal @section Symbols, Terminal and Nonterminal
@cindex nonterminal symbol @cindex nonterminal symbol
@cindex terminal symbol @cindex terminal symbol
@@ -1968,7 +1971,7 @@ The symbol @code{error} is a terminal symbol reserved for error recovery
(@pxref{Error Recovery}); you shouldn't use it for any other purpose. (@pxref{Error Recovery}); you shouldn't use it for any other purpose.
In particular, @code{yylex} should never return this value. In particular, @code{yylex} should never return this value.
@node Rules, Recursion, Symbols, Grammar File @node Rules
@section Syntax of Grammar Rules @section Syntax of Grammar Rules
@cindex rule syntax @cindex rule syntax
@cindex grammar rule syntax @cindex grammar rule syntax
@@ -2063,7 +2066,7 @@ expseq1: exp
It is customary to write a comment @samp{/* empty */} in each rule It is customary to write a comment @samp{/* empty */} in each rule
with no components. with no components.
@node Recursion, Semantics, Rules, Grammar File @node Recursion
@section Recursive Rules @section Recursive Rules
@cindex recursive rule @cindex recursive rule
@@ -2132,7 +2135,7 @@ primary: constant
defines two mutually-recursive nonterminals, since each refers to the defines two mutually-recursive nonterminals, since each refers to the
other. other.
@node Semantics, Locations, Recursion, Grammar File @node Semantics
@section Defining Language Semantics @section Defining Language Semantics
@cindex defining language semantics @cindex defining language semantics
@cindex language semantics, defining @cindex language semantics, defining
@@ -2156,7 +2159,7 @@ the numbers associated with @var{x} and @var{y}.
action in the middle of a rule. action in the middle of a rule.
@end menu @end menu
@node Value Type, Multiple Types, , Semantics @node Value Type
@subsection Data Types of Semantic Values @subsection Data Types of Semantic Values
@cindex semantic value type @cindex semantic value type
@cindex value type, semantic @cindex value type, semantic
@@ -2178,7 +2181,7 @@ specify some other type, define @code{YYSTYPE} as a macro, like this:
This macro definition must go in the C declarations section of the grammar This macro definition must go in the C declarations section of the grammar
file (@pxref{Grammar Outline, ,Outline of a Bison Grammar}). file (@pxref{Grammar Outline, ,Outline of a Bison Grammar}).
@node Multiple Types, Actions, Value Type, Semantics @node Multiple Types
@subsection More Than One Value Type @subsection More Than One Value Type
In most programs, you will need different data types for different kinds In most programs, you will need different data types for different kinds
@@ -2202,7 +2205,7 @@ and for groupings with the @code{%type} Bison declaration (@pxref{Type
Decl, ,Nonterminal Symbols}). Decl, ,Nonterminal Symbols}).
@end itemize @end itemize
@node Actions, Action Types, Multiple Types, Semantics @node Actions
@subsection Actions @subsection Actions
@cindex action @cindex action
@vindex $$ @vindex $$
@@ -2278,7 +2281,7 @@ As long as @code{bar} is used only in the fashion shown here, @code{$0}
always refers to the @code{expr} which precedes @code{bar} in the always refers to the @code{expr} which precedes @code{bar} in the
definition of @code{foo}. definition of @code{foo}.
@node Action Types, Mid-Rule Actions, Actions, Semantics @node Action Types
@subsection Data Types of Values in Actions @subsection Data Types of Values in Actions
@cindex action data types @cindex action data types
@cindex data types in actions @cindex data types in actions
@@ -2323,7 +2326,7 @@ reference. For example, if you have defined types as shown here:
then you can write @code{$<itype>1} to refer to the first subunit of the then you can write @code{$<itype>1} to refer to the first subunit of the
rule as an integer, or @code{$<dtype>1} to refer to it as a double. rule as an integer, or @code{$<dtype>1} to refer to it as a double.
@node Mid-Rule Actions, , Action Types, Semantics @node Mid-Rule Actions
@subsection Actions in Mid-Rule @subsection Actions in Mid-Rule
@cindex actions in mid-rule @cindex actions in mid-rule
@cindex mid-rule actions @cindex mid-rule actions
@@ -2485,7 +2488,7 @@ the action is now at the end of its rule. Any mid-rule action can be
converted to an end-of-rule action in this way, and this is what Bison converted to an end-of-rule action in this way, and this is what Bison
actually does to implement mid-rule actions. actually does to implement mid-rule actions.
@node Locations, Declarations, Semantics, Grammar File @node Locations
@section Tracking Locations @section Tracking Locations
@cindex location @cindex location
@cindex textual position @cindex textual position
@@ -2506,7 +2509,7 @@ to take when rules are matched.
* Location Default Action:: Defining a general way to compute locations. * Location Default Action:: Defining a general way to compute locations.
@end menu @end menu
@node Location Type, Actions and Locations, , Locations @node Location Type
@subsection Data Type of Locations @subsection Data Type of Locations
@cindex data type of locations @cindex data type of locations
@cindex default location type @cindex default location type
@@ -2528,7 +2531,7 @@ struct
@} @}
@end example @end example
@node Actions and Locations, Location Default Action, Location Type, Locations @node Actions and Locations
@subsection Actions and Locations @subsection Actions and Locations
@cindex location actions @cindex location actions
@cindex actions, location @cindex actions, location
@@ -2595,7 +2598,7 @@ exp: @dots{}
@end group @end group
@end example @end example
@node Location Default Action, , Actions and Locations, Locations @node Location Default Action
@subsection Default Action for Locations @subsection Default Action for Locations
@vindex YYLLOC_DEFAULT @vindex YYLLOC_DEFAULT
@@ -2639,7 +2642,7 @@ For consistency with semantic actions, valid indexes for the location array
range from 1 to @var{n}. range from 1 to @var{n}.
@end itemize @end itemize
@node Declarations, Multiple Parsers, Locations, Grammar File @node Declarations
@section Bison Declarations @section Bison Declarations
@cindex declarations, Bison @cindex declarations, Bison
@cindex Bison declarations @cindex Bison declarations
@@ -2668,7 +2671,7 @@ it explicitly (@pxref{Language and Grammar, ,Languages and Context-Free Grammars
* Decl Summary:: Table of all Bison declarations. * Decl Summary:: Table of all Bison declarations.
@end menu @end menu
@node Token Decl, Precedence Decl, , Declarations @node Token Decl
@subsection Token Type Names @subsection Token Type Names
@cindex declaring token type names @cindex declaring token type names
@cindex token type names, declaring @cindex token type names, declaring
@@ -2742,7 +2745,7 @@ interchangeably in further declarations or the grammar rules. The
@code{yylex} function can use the token name or the literal string to @code{yylex} function can use the token name or the literal string to
obtain the token type code number (@pxref{Calling Convention}). obtain the token type code number (@pxref{Calling Convention}).
@node Precedence Decl, Union Decl, Token Decl, Declarations @node Precedence Decl
@subsection Operator Precedence @subsection Operator Precedence
@cindex precedence declarations @cindex precedence declarations
@cindex declaring operator precedence @cindex declaring operator precedence
@@ -2791,7 +2794,7 @@ When two tokens declared in different precedence declarations associate,
the one declared later has the higher precedence and is grouped first. the one declared later has the higher precedence and is grouped first.
@end itemize @end itemize
@node Union Decl, Type Decl, Precedence Decl, Declarations @node Union Decl
@subsection The Collection of Value Types @subsection The Collection of Value Types
@cindex declaring value types @cindex declaring value types
@cindex value types, declaring @cindex value types, declaring
@@ -2822,7 +2825,7 @@ for a terminal or nonterminal symbol (@pxref{Type Decl, ,Nonterminal Symbols}).
Note that, unlike making a @code{union} declaration in C, you do not write Note that, unlike making a @code{union} declaration in C, you do not write
a semicolon after the closing brace. a semicolon after the closing brace.
@node Type Decl, Expect Decl, Union Decl, Declarations @node Type Decl
@subsection Nonterminal Symbols @subsection Nonterminal Symbols
@cindex declaring value types, nonterminals @cindex declaring value types, nonterminals
@cindex value types, nonterminals, declaring @cindex value types, nonterminals, declaring
@@ -2849,7 +2852,7 @@ use the same @code{<@var{type}>} construction in a declaration for the
terminal symbol. All kinds of token declarations allow terminal symbol. All kinds of token declarations allow
@code{<@var{type}>}. @code{<@var{type}>}.
@node Expect Decl, Start Decl, Type Decl, Declarations @node Expect Decl
@subsection Suppressing Conflict Warnings @subsection Suppressing Conflict Warnings
@cindex suppressing conflict warnings @cindex suppressing conflict warnings
@cindex preventing warnings about conflicts @cindex preventing warnings about conflicts
@@ -2897,7 +2900,7 @@ Now Bison will stop annoying you about the conflicts you have checked, but
it will warn you again if changes in the grammar result in additional it will warn you again if changes in the grammar result in additional
conflicts. conflicts.
@node Start Decl, Pure Decl, Expect Decl, Declarations @node Start Decl
@subsection The Start-Symbol @subsection The Start-Symbol
@cindex declaring the start symbol @cindex declaring the start symbol
@cindex start symbol, declaring @cindex start symbol, declaring
@@ -2912,7 +2915,7 @@ may override this restriction with the @code{%start} declaration as follows:
%start @var{symbol} %start @var{symbol}
@end example @end example
@node Pure Decl, Decl Summary, Start Decl, Declarations @node Pure Decl
@subsection A Pure (Reentrant) Parser @subsection A Pure (Reentrant) Parser
@cindex reentrant parser @cindex reentrant parser
@cindex pure parser @cindex pure parser
@@ -2952,7 +2955,7 @@ Whether the parser is pure has nothing to do with the grammar rules.
You can generate either a pure parser or a nonreentrant parser from any You can generate either a pure parser or a nonreentrant parser from any
valid grammar. valid grammar.
@node Decl Summary, , Pure Decl, Declarations @node Decl Summary
@subsection Bison Declaration Summary @subsection Bison Declaration Summary
@cindex Bison declaration summary @cindex Bison declaration summary
@cindex declaration summary @cindex declaration summary
@@ -3109,7 +3112,7 @@ The number of parser states (@pxref{Parser States}).
@end table @end table
@end table @end table
@node Multiple Parsers,, Declarations, Grammar File @node Multiple Parsers
@section Multiple Parsers in the Same Program @section Multiple Parsers in the Same Program
Most programs that use Bison parse only one language and therefore contain Most programs that use Bison parse only one language and therefore contain
@@ -3139,7 +3142,7 @@ of the parser source file, defining @code{yyparse} as
@code{@var{prefix}parse}, and so on. This effectively substitutes one @code{@var{prefix}parse}, and so on. This effectively substitutes one
name for the other in the entire parser file. name for the other in the entire parser file.
@node Interface, Algorithm, Grammar File, Top @node Interface
@chapter Parser C-Language Interface @chapter Parser C-Language Interface
@cindex C-language interface @cindex C-language interface
@cindex interface @cindex interface
@@ -3161,7 +3164,7 @@ C code in the grammar file, you are likely to run into trouble.
* Action Features:: Special features for use in actions. * Action Features:: Special features for use in actions.
@end menu @end menu
@node Parser Function, Lexical, , Interface @node Parser Function
@section The Parser Function @code{yyparse} @section The Parser Function @code{yyparse}
@findex yyparse @findex yyparse
@@ -3189,7 +3192,7 @@ Return immediately with value 0 (to report success).
Return immediately with value 1 (to report failure). Return immediately with value 1 (to report failure).
@end table @end table
@node Lexical, Error Reporting, Parser Function, Interface @node Lexical
@section The Lexical Analyzer Function @code{yylex} @section The Lexical Analyzer Function @code{yylex}
@findex yylex @findex yylex
@cindex lexical analyzer @cindex lexical analyzer
@@ -3218,7 +3221,7 @@ that need it. @xref{Invocation, ,Invoking Bison}.@refill
in a pure parser (@pxref{Pure Decl, ,A Pure (Reentrant) Parser}). in a pure parser (@pxref{Pure Decl, ,A Pure (Reentrant) Parser}).
@end menu @end menu
@node Calling Convention, Token Values, , Lexical @node Calling Convention
@subsection Calling Convention for @code{yylex} @subsection Calling Convention for @code{yylex}
The value that @code{yylex} returns must be the numeric code for the type The value that @code{yylex} returns must be the numeric code for the type
@@ -3295,7 +3298,7 @@ The @code{yytname} table is generated only if you use the
@code{%token_table} declaration. @xref{Decl Summary}. @code{%token_table} declaration. @xref{Decl Summary}.
@end itemize @end itemize
@node Token Values, Token Positions, Calling Convention, Lexical @node Token Values
@subsection Semantic Values of Tokens @subsection Semantic Values of Tokens
@vindex yylval @vindex yylval
@@ -3341,7 +3344,7 @@ then the code in @code{yylex} might look like this:
@end group @end group
@end example @end example
@node Token Positions, Pure Calling, Token Values, Lexical @node Token Positions
@subsection Textual Positions of Tokens @subsection Textual Positions of Tokens
@vindex yylloc @vindex yylloc
@@ -3362,7 +3365,7 @@ feature makes the parser noticeably slower.
@tindex YYLTYPE @tindex YYLTYPE
The data type of @code{yylloc} has the name @code{YYLTYPE}. The data type of @code{yylloc} has the name @code{YYLTYPE}.
@node Pure Calling, , Token Positions, Lexical @node Pure Calling
@subsection Calling Conventions for Pure Parsers @subsection Calling Conventions for Pure Parsers
When you use the Bison declaration @code{%pure_parser} to request a When you use the Bison declaration @code{%pure_parser} to request a
@@ -3469,7 +3472,7 @@ You can use @samp{%pure_parser} to request a reentrant parser without
also using @code{YYPARSE_PARAM}. Then you should call @code{yyparse} also using @code{YYPARSE_PARAM}. Then you should call @code{yyparse}
with no arguments, as usual. with no arguments, as usual.
@node Error Reporting, Action Features, Lexical, Interface @node Error Reporting
@section The Error Reporting Function @code{yyerror} @section The Error Reporting Function @code{yyerror}
@cindex error reporting function @cindex error reporting function
@findex yyerror @findex yyerror
@@ -3529,7 +3532,7 @@ encountered so far. Normally this variable is global; but if you
request a pure parser (@pxref{Pure Decl, ,A Pure (Reentrant) Parser}) then it is a local variable request a pure parser (@pxref{Pure Decl, ,A Pure (Reentrant) Parser}) then it is a local variable
which only the actions can access. which only the actions can access.
@node Action Features, , Error Reporting, Interface @node Action Features
@section Special Features for Use in Actions @section Special Features for Use in Actions
@cindex summary, action features @cindex summary, action features
@cindex action features summary @cindex action features summary
@@ -3643,7 +3646,7 @@ Tracking Locations}.
@end table @end table
@node Algorithm, Error Recovery, Interface, Top @node Algorithm
@chapter The Bison Parser Algorithm @chapter The Bison Parser Algorithm
@cindex Bison parser algorithm @cindex Bison parser algorithm
@cindex algorithm of parser @cindex algorithm of parser
@@ -3710,7 +3713,7 @@ This kind of parser is known in the literature as a bottom-up parser.
* Stack Overflow:: What happens when stack gets full. How to avoid it. * Stack Overflow:: What happens when stack gets full. How to avoid it.
@end menu @end menu
@node Look-Ahead, Shift/Reduce, , Algorithm @node Look-Ahead
@section Look-Ahead Tokens @section Look-Ahead Tokens
@cindex look-ahead token @cindex look-ahead token
@@ -3765,7 +3768,7 @@ doing so would produce on the stack the sequence of symbols @code{expr
The current look-ahead token is stored in the variable @code{yychar}. The current look-ahead token is stored in the variable @code{yychar}.
@xref{Action Features, ,Special Features for Use in Actions}. @xref{Action Features, ,Special Features for Use in Actions}.
@node Shift/Reduce, Precedence, Look-Ahead, Algorithm @node Shift/Reduce
@section Shift/Reduce Conflicts @section Shift/Reduce Conflicts
@cindex conflicts @cindex conflicts
@cindex shift/reduce conflicts @cindex shift/reduce conflicts
@@ -3861,7 +3864,7 @@ expr: variable
; ;
@end example @end example
@node Precedence, Contextual Precedence, Shift/Reduce, Algorithm @node Precedence
@section Operator Precedence @section Operator Precedence
@cindex operator precedence @cindex operator precedence
@cindex precedence of operators @cindex precedence of operators
@@ -3878,7 +3881,7 @@ shift and when to reduce.
* How Precedence:: How they work. * How Precedence:: How they work.
@end menu @end menu
@node Why Precedence, Using Precedence, , Precedence @node Why Precedence
@subsection When Precedence is Needed @subsection When Precedence is Needed
Consider the following ambiguous grammar fragment (ambiguous because the Consider the following ambiguous grammar fragment (ambiguous because the
@@ -3925,7 +3928,7 @@ matter of whether the parser chooses to shift or reduce when the stack
contains @w{@samp{1 - 2}} and the look-ahead token is @samp{-}: shifting contains @w{@samp{1 - 2}} and the look-ahead token is @samp{-}: shifting
makes right-associativity. makes right-associativity.
@node Using Precedence, Precedence Examples, Why Precedence, Precedence @node Using Precedence
@subsection Specifying Operator Precedence @subsection Specifying Operator Precedence
@findex %left @findex %left
@findex %right @findex %right
@@ -3946,7 +3949,7 @@ order in which they are declared. The first @code{%left} or
precedence is lowest, the next such declaration declares the operators precedence is lowest, the next such declaration declares the operators
whose precedence is a little higher, and so on. whose precedence is a little higher, and so on.
@node Precedence Examples, How Precedence, Using Precedence, Precedence @node Precedence Examples
@subsection Precedence Examples @subsection Precedence Examples
In our example, we would want the following declarations: In our example, we would want the following declarations:
@@ -3972,7 +3975,7 @@ declared with @code{'-'}:
and so on. We assume that these tokens are more than one character long and so on. We assume that these tokens are more than one character long
and therefore are represented by names, not character literals.) and therefore are represented by names, not character literals.)
@node How Precedence, , Precedence Examples, Precedence @node How Precedence
@subsection How Precedence Works @subsection How Precedence Works
The first effect of the precedence declarations is to assign precedence The first effect of the precedence declarations is to assign precedence
@@ -3993,7 +3996,7 @@ how each conflict was resolved.
Not all rules and not all tokens have precedence. If either the rule or Not all rules and not all tokens have precedence. If either the rule or
the look-ahead token has no precedence, then the default is to shift. the look-ahead token has no precedence, then the default is to shift.
@node Contextual Precedence, Parser States, Precedence, Algorithm @node Contextual Precedence
@section Context-Dependent Precedence @section Context-Dependent Precedence
@cindex context-dependent precedence @cindex context-dependent precedence
@cindex unary operator precedence @cindex unary operator precedence
@@ -4051,7 +4054,7 @@ exp: @dots{}
@end group @end group
@end example @end example
@node Parser States, Reduce/Reduce, Contextual Precedence, Algorithm @node Parser States
@section Parser States @section Parser States
@cindex finite-state machine @cindex finite-state machine
@cindex parser state @cindex parser state
@@ -4077,7 +4080,7 @@ There is one other alternative: the table can say that the look-ahead token
is erroneous in the current state. This causes error processing to begin is erroneous in the current state. This causes error processing to begin
(@pxref{Error Recovery}). (@pxref{Error Recovery}).
@node Reduce/Reduce, Mystery Conflicts, Parser States, Algorithm @node Reduce/Reduce
@section Reduce/Reduce Conflicts @section Reduce/Reduce Conflicts
@cindex reduce/reduce conflict @cindex reduce/reduce conflict
@cindex conflicts, reduce/reduce @cindex conflicts, reduce/reduce
@@ -4192,7 +4195,7 @@ redirects:redirect
; ;
@end example @end example
@node Mystery Conflicts, Stack Overflow, Reduce/Reduce, Algorithm @node Mystery Conflicts
@section Mysterious Reduce/Reduce Conflicts @section Mysterious Reduce/Reduce Conflicts
Sometimes reduce/reduce conflicts can occur that don't look warranted. Sometimes reduce/reduce conflicts can occur that don't look warranted.
@@ -4300,7 +4303,7 @@ return_spec:
; ;
@end example @end example
@node Stack Overflow, , Mystery Conflicts, Algorithm @node Stack Overflow
@section Stack Overflow, and How to Avoid It @section Stack Overflow, and How to Avoid It
@cindex stack overflow @cindex stack overflow
@cindex parser stack overflow @cindex parser stack overflow
@@ -4334,7 +4337,7 @@ You can control how much stack is allocated initially by defining the
macro @code{YYINITDEPTH}. This value too must be a compile-time macro @code{YYINITDEPTH}. This value too must be a compile-time
constant integer. The default is 200. constant integer. The default is 200.
@node Error Recovery, Context Dependency, Algorithm, Top @node Error Recovery
@chapter Error Recovery @chapter Error Recovery
@cindex error recovery @cindex error recovery
@cindex recovery from errors @cindex recovery from errors
@@ -4452,7 +4455,7 @@ value 1 when the parser is recovering from a syntax error, and 0 the
rest of the time. A value of 1 indicates that error messages are rest of the time. A value of 1 indicates that error messages are
currently suppressed for new syntax errors. currently suppressed for new syntax errors.
@node Context Dependency, Debugging, Error Recovery, Top @node Context Dependency
@chapter Handling Context Dependencies @chapter Handling Context Dependencies
The Bison paradigm is to parse tokens first, then group them into larger The Bison paradigm is to parse tokens first, then group them into larger
@@ -4471,7 +4474,7 @@ languages.
(Actually, ``kludge'' means any technique that gets its job done but is (Actually, ``kludge'' means any technique that gets its job done but is
neither clean nor robust.) neither clean nor robust.)
@node Semantic Tokens, Lexical Tie-ins, , Context Dependency @node Semantic Tokens
@section Semantic Info in Token Types @section Semantic Info in Token Types
The C language has a context dependency: the way an identifier is used The C language has a context dependency: the way an identifier is used
@@ -4546,7 +4549,7 @@ here the information is global, and is used for other purposes in the
program. A true lexical tie-in has a special-purpose flag controlled by program. A true lexical tie-in has a special-purpose flag controlled by
the syntactic context. the syntactic context.
@node Lexical Tie-ins, Tie-in Recovery, Semantic Tokens, Context Dependency @node Lexical Tie-ins
@section Lexical Tie-ins @section Lexical Tie-ins
@cindex lexical tie-in @cindex lexical tie-in
@@ -4600,7 +4603,7 @@ the parser file is needed to make it accessible to the actions
(@pxref{C Declarations, ,The C Declarations Section}). You must also write the code in @code{yylex} (@pxref{C Declarations, ,The C Declarations Section}). You must also write the code in @code{yylex}
to obey the flag. to obey the flag.
@node Tie-in Recovery, , Lexical Tie-ins, Context Dependency @node Tie-in Recovery
@section Lexical Tie-ins and Error Recovery @section Lexical Tie-ins and Error Recovery
Lexical tie-ins make strict demands on any error recovery rules you have. Lexical tie-ins make strict demands on any error recovery rules you have.
@@ -4655,7 +4658,7 @@ make sure your error recovery rules are not of this kind. Each rule must
be such that you can be sure that it always will, or always won't, have to be such that you can be sure that it always will, or always won't, have to
clear the flag. clear the flag.
@node Debugging, Invocation, Context Dependency, Top @node Debugging
@chapter Debugging Your Parser @chapter Debugging Your Parser
@findex YYDEBUG @findex YYDEBUG
@findex yydebug @findex yydebug
@@ -4737,7 +4740,7 @@ yyprint (FILE *file, int type, YYSTYPE value)
@} @}
@end smallexample @end smallexample
@node Invocation, Table of Symbols, Debugging, Top @node Invocation
@chapter Invoking Bison @chapter Invoking Bison
@cindex invoking Bison @cindex invoking Bison
@cindex Bison invocation @cindex Bison invocation
@@ -4783,7 +4786,7 @@ will produce @file{output.c++} and @file{outfile.h++}.
* VMS Invocation:: Bison command syntax on VMS. * VMS Invocation:: Bison command syntax on VMS.
@end menu @end menu
@node Bison Options, Environment Variables, , Invocation @node Bison Options
@section Bison Options @section Bison Options
Bison supports both traditional single-letter options and mnemonic long Bison supports both traditional single-letter options and mnemonic long
@@ -4907,7 +4910,7 @@ Bison. If the grammar file is @file{foo.y}, the VCG output file will
be @file{foo.vcg}. be @file{foo.vcg}.
@end table @end table
@node Environment Variables, Option Cross Key, Bison Options, Invocation @node Environment Variables
@section Environment Variables @section Environment Variables
@cindex environment variables @cindex environment variables
@cindex BISON_HAIRY @cindex BISON_HAIRY
@@ -4932,7 +4935,7 @@ also be specified or overridden in a similar fashion, with the
@end table @end table
@node Option Cross Key, VMS Invocation, Environment Variables, Invocation @node Option Cross Key
@section Option Cross Key @section Option Cross Key
Here is a list of options, alphabetized by long option, to help you find Here is a list of options, alphabetized by long option, to help you find
@@ -4976,7 +4979,7 @@ the corresponding short option.
@end example @end example
@end ifinfo @end ifinfo
@node VMS Invocation, , Option Cross Key, Invocation @node VMS Invocation
@section Invoking Bison under VMS @section Invoking Bison under VMS
@cindex invoking Bison under VMS @cindex invoking Bison under VMS
@cindex VMS @cindex VMS
@@ -5004,7 +5007,7 @@ The VMS file system does not permit filenames such as
@file{foo.tab.c}. In the above example, the output file @file{foo.tab.c}. In the above example, the output file
would instead be named @file{foo_tab.c}. would instead be named @file{foo_tab.c}.
@node Table of Symbols, Glossary, Invocation, Top @node Table of Symbols
@appendix Bison Symbols @appendix Bison Symbols
@cindex Bison symbols, table of @cindex Bison symbols, table of
@cindex symbols in Bison, table of @cindex symbols in Bison, table of
@@ -5223,7 +5226,7 @@ Separates alternate rules for the same result nonterminal.
@xref{Rules, ,Syntax of Grammar Rules}. @xref{Rules, ,Syntax of Grammar Rules}.
@end table @end table
@node Glossary, Copying This Manual, Table of Symbols, Top @node Glossary
@appendix Glossary @appendix Glossary
@cindex glossary @cindex glossary
@@ -5384,7 +5387,7 @@ grammatically indivisible. The piece of text it represents is a token.
@xref{Language and Grammar, ,Languages and Context-Free Grammars}. @xref{Language and Grammar, ,Languages and Context-Free Grammars}.
@end table @end table
@node Copying This Manual, Index, Glossary, Top @node Copying This Manual
@appendix Copying This Manual @appendix Copying This Manual
@menu @menu
@@ -5393,7 +5396,7 @@ grammatically indivisible. The piece of text it represents is a token.
@include fdl.texi @include fdl.texi
@node Index, , Copying This Manual, Top @node Index
@unnumbered Index @unnumbered Index
@printindex cp @printindex cp

View File

@@ -1,4 +1,3 @@
@node GNU Free Documentation License @node GNU Free Documentation License
@appendixsec GNU Free Documentation License @appendixsec GNU Free Documentation License
@@ -400,4 +399,3 @@ to permit their use in free software.
@c Local Variables: @c Local Variables:
@c ispell-local-pdict: "ispell-dict" @c ispell-local-pdict: "ispell-dict"
@c End: @c End:

View File

@@ -1,4 +1,4 @@
@node Copying, Concepts, Conditions, Top @node Copying
@unnumbered GNU GENERAL PUBLIC LICENSE @unnumbered GNU GENERAL PUBLIC LICENSE
@center Version 2, June 1991 @center Version 2, June 1991

View File

@@ -1,3 +1,4 @@
@set UPDATED 16 August 2001 @set UPDATED 29 August 2001
@set UPDATED-MONTH August 2001
@set EDITION 1.28c @set EDITION 1.28c
@set VERSION 1.28c @set VERSION 1.28c

View File

@@ -1,3 +1,4 @@
@set UPDATED 16 August 2001 @set UPDATED 29 August 2001
@set UPDATED-MONTH August 2001
@set EDITION 1.28c @set EDITION 1.28c
@set VERSION 1.28c @set VERSION 1.28c