From a940e84e293e55228f7c7341bc4cc7b4c6c61c98 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Fri, 10 Aug 2001 09:35:01 +0000 Subject: [PATCH] Regen. --- doc/bison.info | 102 ++++++++--------- doc/bison.info-3 | 162 ++++++++++---------------- doc/bison.info-4 | 288 +++++++++++++---------------------------------- doc/bison.info-5 | 209 ++++++++++++++++++++++++++++++++++ doc/stamp-vti | 2 +- doc/version.texi | 2 +- 6 files changed, 401 insertions(+), 364 deletions(-) diff --git a/doc/bison.info b/doc/bison.info index 86ca9ee9..bb9e2009 100644 --- a/doc/bison.info +++ b/doc/bison.info @@ -33,8 +33,8 @@ Indirect: bison.info-1: 1307 bison.info-2: 50189 bison.info-3: 99814 -bison.info-4: 149693 -bison.info-5: 196958 +bison.info-4: 148012 +bison.info-5: 190796  Tag Table: (Indirect) @@ -86,54 +86,54 @@ Node: Actions95726 Node: Action Types98511 Node: Mid-Rule Actions99814 Node: Locations105384 -Node: Location Type106049 -Node: Actions and Locations106607 -Node: Location Default Action107771 -Node: Declarations108978 -Node: Token Decl110297 -Node: Precedence Decl112310 -Node: Union Decl113861 -Node: Type Decl114705 -Node: Expect Decl115611 -Node: Start Decl117157 -Node: Pure Decl117535 -Node: Decl Summary119212 -Node: Multiple Parsers124595 -Node: Interface126089 -Node: Parser Function126961 -Node: Lexical127796 -Node: Calling Convention129202 -Node: Token Values131973 -Node: Token Positions133122 -Node: Pure Calling134007 -Node: Error Reporting136939 -Node: Action Features139061 -Node: Algorithm142356 -Node: Look-Ahead144649 -Node: Shift/Reduce146781 -Node: Precedence149693 -Node: Why Precedence150344 -Node: Using Precedence152209 -Node: Precedence Examples153177 -Node: How Precedence153878 -Node: Contextual Precedence155027 -Node: Parser States156818 -Node: Reduce/Reduce158061 -Node: Mystery Conflicts161622 -Node: Stack Overflow165008 -Node: Error Recovery166381 -Node: Context Dependency171517 -Node: Semantic Tokens172365 -Node: Lexical Tie-ins175382 -Node: Tie-in Recovery176930 -Node: Debugging179102 -Node: Invocation182403 -Node: Bison Options183655 -Node: Environment Variables187089 -Node: Option Cross Key187937 -Node: VMS Invocation188781 -Node: Table of Symbols189565 -Node: Glossary196958 -Node: Index203248 +Node: Location Type106032 +Node: Actions and Locations106590 +Node: Location Default Action108746 +Node: Declarations110209 +Node: Token Decl111528 +Node: Precedence Decl113541 +Node: Union Decl115092 +Node: Type Decl115936 +Node: Expect Decl116842 +Node: Start Decl118388 +Node: Pure Decl118766 +Node: Decl Summary120443 +Node: Multiple Parsers125826 +Node: Interface127320 +Node: Parser Function128192 +Node: Lexical129027 +Node: Calling Convention130433 +Node: Token Values133204 +Node: Token Positions134353 +Node: Pure Calling135238 +Node: Error Reporting138170 +Node: Action Features140292 +Node: Algorithm143587 +Node: Look-Ahead145880 +Node: Shift/Reduce148012 +Node: Precedence150924 +Node: Why Precedence151575 +Node: Using Precedence153440 +Node: Precedence Examples154408 +Node: How Precedence155109 +Node: Contextual Precedence156258 +Node: Parser States158049 +Node: Reduce/Reduce159292 +Node: Mystery Conflicts162853 +Node: Stack Overflow166239 +Node: Error Recovery167612 +Node: Context Dependency172748 +Node: Semantic Tokens173596 +Node: Lexical Tie-ins176613 +Node: Tie-in Recovery178161 +Node: Debugging180333 +Node: Invocation183634 +Node: Bison Options184886 +Node: Environment Variables188320 +Node: Option Cross Key189168 +Node: VMS Invocation190012 +Node: Table of Symbols190796 +Node: Glossary198189 +Node: Index204479  End Tag Table diff --git a/doc/bison.info-3 b/doc/bison.info-3 index 88a0a73b..a0634a70 100644 --- a/doc/bison.info-3 +++ b/doc/bison.info-3 @@ -165,7 +165,7 @@ Tracking Locations Though grammar rules and semantic actions are enough to write a fully functional parser, it can be useful to process some additionnal -informations, especially locations of tokens and groupings. +informations, especially symbol locations. The way locations are handled is defined by providing a data type, and actions to take when rules are matched. @@ -213,19 +213,47 @@ elements being matched. The location of the Nth component of the right hand side is `@N', while the location of the left hand side grouping is `@$'. - Here is a simple example using the default data type for locations: + Here is a basic example using the default data type for locations: exp: ... - | exp '+' exp + | exp '/' exp { + @$.first_column = @1.first_column; + @$.first_line = @1.first_line; @$.last_column = @3.last_column; @$.last_line = @3.last_line; - $$ = $1 + $3; + if ($3) + $$ = $1 / $3; + else + { + $$ = 1; + printf("Division by zero, l%d,c%d-l%d,c%d", + @3.first_line, @3.first_column, + @3.last_line, @3.last_column); + } } -In the example above, there is no need to set the beginning of `@$'. The -output parser always sets `@$' to `@1' before executing the C code of a -given action, whether you provide a processing for locations or not. + As for semantic values, there is a default action for locations that +is run each time a rule is matched. It sets the beginning of `@$' to the +beginning of the first symbol, and the end of `@$' to the end of the +last symbol. + + With this default action, the location tracking can be fully +automatic. The example above simply rewrites this way: + + exp: ... + | exp '/' exp + { + if ($3) + $$ = $1 / $3; + else + { + $$ = 1; + printf("Division by zero, l%d,c%d-l%d,c%d", + @3.first_line, @3.first_column, + @3.last_line, @3.last_column); + } + }  File: bison.info, Node: Location Default Action, Prev: Actions and Locations, Up: Locations @@ -235,26 +263,35 @@ Default Action for Locations Actually, actions are not the best place to compute locations. Since locations are much more general than semantic values, there is room in -the output parser to define a default action to take for each rule. The -`YYLLOC_DEFAULT' macro is called each time a rule is matched, before -the associated action is run. +the output parser to redefine the default action to take for each rule. +The `YYLLOC_DEFAULT' macro is called each time a rule is matched, +before the associated action is run. + + Most of the time, this macro is general enough to suppress location +dedicated code from semantic actions. + + The `YYLLOC_DEFAULT' macro takes three parameters. The first one is +the location of the grouping (the result of the computation). The +second one is an array holding locations of all right hand side +elements of the rule being matched. The last one is the size of the +right hand side rule. + + By default, it is defined this way: - This macro takes two parameters, the first one being the location of -the grouping (the result of the computation), and the second one being -the location of the last element matched. Of course, before -`YYLLOC_DEFAULT' is run, the result is set to the location of the first -component matched. + #define YYLLOC_DEFAULT(Current, Rhs, N) \ + Current.last_line = Rhs[N].last_line; \ + Current.last_column = Rhs[N].last_column; - By default, this macro computes a location that ranges from the -beginning of the first element to the end of the last element. It is -defined this way: + When defining `YYLLOC_DEFAULT', you should consider that: - #define YYLLOC_DEFAULT(Current, Last) \ - Current.last_line = Last.last_line; \ - Current.last_column = Last.last_column; + * All arguments are free of side-effects. However, only the first + one (the result) should be modified by `YYLLOC_DEFAULT'. -Most of the time, the default action for locations is general enough to -suppress location dedicated code from most actions. + * Before `YYLLOC_DEFAULT' is executed, the output parser sets `@$' + to `@1'. + + * For consistency with semantic actions, valid indexes for the + location array range from 1 to N.  File: bison.info, Node: Declarations, Next: Multiple Parsers, Prev: Locations, Up: Grammar File @@ -1241,82 +1278,3 @@ sequence. The current look-ahead token is stored in the variable `yychar'. *Note Special Features for Use in Actions: Action Features. - -File: bison.info, Node: Shift/Reduce, Next: Precedence, Prev: Look-Ahead, Up: Algorithm - -Shift/Reduce Conflicts -====================== - - Suppose we are parsing a language which has if-then and if-then-else -statements, with a pair of rules like this: - - if_stmt: - IF expr THEN stmt - | IF expr THEN stmt ELSE stmt - ; - -Here we assume that `IF', `THEN' and `ELSE' are terminal symbols for -specific keyword tokens. - - When the `ELSE' token is read and becomes the look-ahead token, the -contents of the stack (assuming the input is valid) are just right for -reduction by the first rule. But it is also legitimate to shift the -`ELSE', because that would lead to eventual reduction by the second -rule. - - This situation, where either a shift or a reduction would be valid, -is called a "shift/reduce conflict". Bison is designed to resolve -these conflicts by choosing to shift, unless otherwise directed by -operator precedence declarations. To see the reason for this, let's -contrast it with the other alternative. - - Since the parser prefers to shift the `ELSE', the result is to attach -the else-clause to the innermost if-statement, making these two inputs -equivalent: - - if x then if y then win (); else lose; - - if x then do; if y then win (); else lose; end; - - But if the parser chose to reduce when possible rather than shift, -the result would be to attach the else-clause to the outermost -if-statement, making these two inputs equivalent: - - if x then if y then win (); else lose; - - if x then do; if y then win (); end; else lose; - - The conflict exists because the grammar as written is ambiguous: -either parsing of the simple nested if-statement is legitimate. The -established convention is that these ambiguities are resolved by -attaching the else-clause to the innermost if-statement; this is what -Bison accomplishes by choosing to shift rather than reduce. (It would -ideally be cleaner to write an unambiguous grammar, but that is very -hard to do in this case.) This particular ambiguity was first -encountered in the specifications of Algol 60 and is called the -"dangling `else'" ambiguity. - - To avoid warnings from Bison about predictable, legitimate -shift/reduce conflicts, use the `%expect N' declaration. There will be -no warning as long as the number of shift/reduce conflicts is exactly N. -*Note Suppressing Conflict Warnings: Expect Decl. - - The definition of `if_stmt' above is solely to blame for the -conflict, but the conflict does not actually appear without additional -rules. Here is a complete Bison input file that actually manifests the -conflict: - - %token IF THEN ELSE variable - %% - stmt: expr - | if_stmt - ; - - if_stmt: - IF expr THEN stmt - | IF expr THEN stmt ELSE stmt - ; - - expr: variable - ; - diff --git a/doc/bison.info-4 b/doc/bison.info-4 index 4ba59581..a6fcb308 100644 --- a/doc/bison.info-4 +++ b/doc/bison.info-4 @@ -28,6 +28,85 @@ License", "Conditions for Using Bison" and this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. + +File: bison.info, Node: Shift/Reduce, Next: Precedence, Prev: Look-Ahead, Up: Algorithm + +Shift/Reduce Conflicts +====================== + + Suppose we are parsing a language which has if-then and if-then-else +statements, with a pair of rules like this: + + if_stmt: + IF expr THEN stmt + | IF expr THEN stmt ELSE stmt + ; + +Here we assume that `IF', `THEN' and `ELSE' are terminal symbols for +specific keyword tokens. + + When the `ELSE' token is read and becomes the look-ahead token, the +contents of the stack (assuming the input is valid) are just right for +reduction by the first rule. But it is also legitimate to shift the +`ELSE', because that would lead to eventual reduction by the second +rule. + + This situation, where either a shift or a reduction would be valid, +is called a "shift/reduce conflict". Bison is designed to resolve +these conflicts by choosing to shift, unless otherwise directed by +operator precedence declarations. To see the reason for this, let's +contrast it with the other alternative. + + Since the parser prefers to shift the `ELSE', the result is to attach +the else-clause to the innermost if-statement, making these two inputs +equivalent: + + if x then if y then win (); else lose; + + if x then do; if y then win (); else lose; end; + + But if the parser chose to reduce when possible rather than shift, +the result would be to attach the else-clause to the outermost +if-statement, making these two inputs equivalent: + + if x then if y then win (); else lose; + + if x then do; if y then win (); end; else lose; + + The conflict exists because the grammar as written is ambiguous: +either parsing of the simple nested if-statement is legitimate. The +established convention is that these ambiguities are resolved by +attaching the else-clause to the innermost if-statement; this is what +Bison accomplishes by choosing to shift rather than reduce. (It would +ideally be cleaner to write an unambiguous grammar, but that is very +hard to do in this case.) This particular ambiguity was first +encountered in the specifications of Algol 60 and is called the +"dangling `else'" ambiguity. + + To avoid warnings from Bison about predictable, legitimate +shift/reduce conflicts, use the `%expect N' declaration. There will be +no warning as long as the number of shift/reduce conflicts is exactly N. +*Note Suppressing Conflict Warnings: Expect Decl. + + The definition of `if_stmt' above is solely to blame for the +conflict, but the conflict does not actually appear without additional +rules. Here is a complete Bison input file that actually manifests the +conflict: + + %token IF THEN ELSE variable + %% + stmt: expr + | if_stmt + ; + + if_stmt: + IF expr THEN stmt + | IF expr THEN stmt ELSE stmt + ; + + expr: variable + ; +  File: bison.info, Node: Precedence, Next: Contextual Precedence, Prev: Shift/Reduce, Up: Algorithm @@ -1058,212 +1137,3 @@ is equivalent to the following command under POSIX. In the above example, the output file would instead be named `foo_tab.c'. - -File: bison.info, Node: Table of Symbols, Next: Glossary, Prev: Invocation, Up: Top - -Bison Symbols -************* - -`error' - A token name reserved for error recovery. This token may be used - in grammar rules so as to allow the Bison parser to recognize an - error in the grammar without halting the process. In effect, a - sentence containing an error may be recognized as valid. On a - parse error, the token `error' becomes the current look-ahead - token. Actions corresponding to `error' are then executed, and - the look-ahead token is reset to the token that originally caused - the violation. *Note Error Recovery::. - -`YYABORT' - Macro to pretend that an unrecoverable syntax error has occurred, - by making `yyparse' return 1 immediately. The error reporting - function `yyerror' is not called. *Note The Parser Function - `yyparse': Parser Function. - -`YYACCEPT' - Macro to pretend that a complete utterance of the language has been - read, by making `yyparse' return 0 immediately. *Note The Parser - Function `yyparse': Parser Function. - -`YYBACKUP' - Macro to discard a value from the parser stack and fake a - look-ahead token. *Note Special Features for Use in Actions: - Action Features. - -`YYERROR' - Macro to pretend that a syntax error has just been detected: call - `yyerror' and then perform normal error recovery if possible - (*note Error Recovery::), or (if recovery is impossible) make - `yyparse' return 1. *Note Error Recovery::. - -`YYERROR_VERBOSE' - Macro that you define with `#define' in the Bison declarations - section to request verbose, specific error message strings when - `yyerror' is called. - -`YYINITDEPTH' - Macro for specifying the initial size of the parser stack. *Note - Stack Overflow::. - -`YYLEX_PARAM' - Macro for specifying an extra argument (or list of extra - arguments) for `yyparse' to pass to `yylex'. *Note Calling - Conventions for Pure Parsers: Pure Calling. - -`YYLTYPE' - Macro for the data type of `yylloc'; a structure with four - members. *Note Data Types of Locations: Location Type. - -`yyltype' - Default value for YYLTYPE. - -`YYMAXDEPTH' - Macro for specifying the maximum size of the parser stack. *Note - Stack Overflow::. - -`YYPARSE_PARAM' - Macro for specifying the name of a parameter that `yyparse' should - accept. *Note Calling Conventions for Pure Parsers: Pure Calling. - -`YYRECOVERING' - Macro whose value indicates whether the parser is recovering from a - syntax error. *Note Special Features for Use in Actions: Action - Features. - -`YYSTYPE' - Macro for the data type of semantic values; `int' by default. - *Note Data Types of Semantic Values: Value Type. - -`yychar' - External integer variable that contains the integer value of the - current look-ahead token. (In a pure parser, it is a local - variable within `yyparse'.) Error-recovery rule actions may - examine this variable. *Note Special Features for Use in Actions: - Action Features. - -`yyclearin' - Macro used in error-recovery rule actions. It clears the previous - look-ahead token. *Note Error Recovery::. - -`yydebug' - External integer variable set to zero by default. If `yydebug' is - given a nonzero value, the parser will output information on input - symbols and parser action. *Note Debugging Your Parser: Debugging. - -`yyerrok' - Macro to cause parser to recover immediately to its normal mode - after a parse error. *Note Error Recovery::. - -`yyerror' - User-supplied function to be called by `yyparse' on error. The - function receives one argument, a pointer to a character string - containing an error message. *Note The Error Reporting Function - `yyerror': Error Reporting. - -`yylex' - User-supplied lexical analyzer function, called with no arguments - to get the next token. *Note The Lexical Analyzer Function - `yylex': Lexical. - -`yylval' - External variable in which `yylex' should place the semantic value - associated with a token. (In a pure parser, it is a local - variable within `yyparse', and its address is passed to `yylex'.) - *Note Semantic Values of Tokens: Token Values. - -`yylloc' - External variable in which `yylex' should place the line and column - numbers associated with a token. (In a pure parser, it is a local - variable within `yyparse', and its address is passed to `yylex'.) - You can ignore this variable if you don't use the `@' feature in - the grammar actions. *Note Textual Positions of Tokens: Token - Positions. - -`yynerrs' - Global variable which Bison increments each time there is a parse - error. (In a pure parser, it is a local variable within - `yyparse'.) *Note The Error Reporting Function `yyerror': Error - Reporting. - -`yyparse' - The parser function produced by Bison; call this function to start - parsing. *Note The Parser Function `yyparse': Parser Function. - -`%debug' - Equip the parser for debugging. *Note Decl Summary::. - -`%defines' - Bison declaration to create a header file meant for the scanner. - *Note Decl Summary::. - -`%left' - Bison declaration to assign left associativity to token(s). *Note - Operator Precedence: Precedence Decl. - -`%no_lines' - Bison declaration to avoid generating `#line' directives in the - parser file. *Note Decl Summary::. - -`%nonassoc' - Bison declaration to assign non-associativity to token(s). *Note - Operator Precedence: Precedence Decl. - -`%prec' - Bison declaration to assign a precedence to a specific rule. - *Note Context-Dependent Precedence: Contextual Precedence. - -`%pure_parser' - Bison declaration to request a pure (reentrant) parser. *Note A - Pure (Reentrant) Parser: Pure Decl. - -`%right' - Bison declaration to assign right associativity to token(s). - *Note Operator Precedence: Precedence Decl. - -`%start' - Bison declaration to specify the start symbol. *Note The - Start-Symbol: Start Decl. - -`%token' - Bison declaration to declare token(s) without specifying - precedence. *Note Token Type Names: Token Decl. - -`%token_table' - Bison declaration to include a token name table in the parser file. - *Note Decl Summary::. - -`%type' - Bison declaration to declare nonterminals. *Note Nonterminal - Symbols: Type Decl. - -`%union' - Bison declaration to specify several possible data types for - semantic values. *Note The Collection of Value Types: Union Decl. - - These are the punctuation and delimiters used in Bison input: - -`%%' - Delimiter used to separate the grammar rule section from the Bison - declarations section or the additional C code section. *Note The - Overall Layout of a Bison Grammar: Grammar Layout. - -`%{ %}' - All code listed between `%{' and `%}' is copied directly to the - output file uninterpreted. Such code forms the "C declarations" - section of the input file. *Note Outline of a Bison Grammar: - Grammar Outline. - -`/*...*/' - Comment delimiters, as in C. - -`:' - Separates a rule's result from its components. *Note Syntax of - Grammar Rules: Rules. - -`;' - Terminates a rule. *Note Syntax of Grammar Rules: Rules. - -`|' - Separates alternate rules for the same result nonterminal. *Note - Syntax of Grammar Rules: Rules. - diff --git a/doc/bison.info-5 b/doc/bison.info-5 index de8fa66c..7ef93919 100644 --- a/doc/bison.info-5 +++ b/doc/bison.info-5 @@ -28,6 +28,215 @@ License", "Conditions for Using Bison" and this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. + +File: bison.info, Node: Table of Symbols, Next: Glossary, Prev: Invocation, Up: Top + +Bison Symbols +************* + +`error' + A token name reserved for error recovery. This token may be used + in grammar rules so as to allow the Bison parser to recognize an + error in the grammar without halting the process. In effect, a + sentence containing an error may be recognized as valid. On a + parse error, the token `error' becomes the current look-ahead + token. Actions corresponding to `error' are then executed, and + the look-ahead token is reset to the token that originally caused + the violation. *Note Error Recovery::. + +`YYABORT' + Macro to pretend that an unrecoverable syntax error has occurred, + by making `yyparse' return 1 immediately. The error reporting + function `yyerror' is not called. *Note The Parser Function + `yyparse': Parser Function. + +`YYACCEPT' + Macro to pretend that a complete utterance of the language has been + read, by making `yyparse' return 0 immediately. *Note The Parser + Function `yyparse': Parser Function. + +`YYBACKUP' + Macro to discard a value from the parser stack and fake a + look-ahead token. *Note Special Features for Use in Actions: + Action Features. + +`YYERROR' + Macro to pretend that a syntax error has just been detected: call + `yyerror' and then perform normal error recovery if possible + (*note Error Recovery::), or (if recovery is impossible) make + `yyparse' return 1. *Note Error Recovery::. + +`YYERROR_VERBOSE' + Macro that you define with `#define' in the Bison declarations + section to request verbose, specific error message strings when + `yyerror' is called. + +`YYINITDEPTH' + Macro for specifying the initial size of the parser stack. *Note + Stack Overflow::. + +`YYLEX_PARAM' + Macro for specifying an extra argument (or list of extra + arguments) for `yyparse' to pass to `yylex'. *Note Calling + Conventions for Pure Parsers: Pure Calling. + +`YYLTYPE' + Macro for the data type of `yylloc'; a structure with four + members. *Note Data Types of Locations: Location Type. + +`yyltype' + Default value for YYLTYPE. + +`YYMAXDEPTH' + Macro for specifying the maximum size of the parser stack. *Note + Stack Overflow::. + +`YYPARSE_PARAM' + Macro for specifying the name of a parameter that `yyparse' should + accept. *Note Calling Conventions for Pure Parsers: Pure Calling. + +`YYRECOVERING' + Macro whose value indicates whether the parser is recovering from a + syntax error. *Note Special Features for Use in Actions: Action + Features. + +`YYSTYPE' + Macro for the data type of semantic values; `int' by default. + *Note Data Types of Semantic Values: Value Type. + +`yychar' + External integer variable that contains the integer value of the + current look-ahead token. (In a pure parser, it is a local + variable within `yyparse'.) Error-recovery rule actions may + examine this variable. *Note Special Features for Use in Actions: + Action Features. + +`yyclearin' + Macro used in error-recovery rule actions. It clears the previous + look-ahead token. *Note Error Recovery::. + +`yydebug' + External integer variable set to zero by default. If `yydebug' is + given a nonzero value, the parser will output information on input + symbols and parser action. *Note Debugging Your Parser: Debugging. + +`yyerrok' + Macro to cause parser to recover immediately to its normal mode + after a parse error. *Note Error Recovery::. + +`yyerror' + User-supplied function to be called by `yyparse' on error. The + function receives one argument, a pointer to a character string + containing an error message. *Note The Error Reporting Function + `yyerror': Error Reporting. + +`yylex' + User-supplied lexical analyzer function, called with no arguments + to get the next token. *Note The Lexical Analyzer Function + `yylex': Lexical. + +`yylval' + External variable in which `yylex' should place the semantic value + associated with a token. (In a pure parser, it is a local + variable within `yyparse', and its address is passed to `yylex'.) + *Note Semantic Values of Tokens: Token Values. + +`yylloc' + External variable in which `yylex' should place the line and column + numbers associated with a token. (In a pure parser, it is a local + variable within `yyparse', and its address is passed to `yylex'.) + You can ignore this variable if you don't use the `@' feature in + the grammar actions. *Note Textual Positions of Tokens: Token + Positions. + +`yynerrs' + Global variable which Bison increments each time there is a parse + error. (In a pure parser, it is a local variable within + `yyparse'.) *Note The Error Reporting Function `yyerror': Error + Reporting. + +`yyparse' + The parser function produced by Bison; call this function to start + parsing. *Note The Parser Function `yyparse': Parser Function. + +`%debug' + Equip the parser for debugging. *Note Decl Summary::. + +`%defines' + Bison declaration to create a header file meant for the scanner. + *Note Decl Summary::. + +`%left' + Bison declaration to assign left associativity to token(s). *Note + Operator Precedence: Precedence Decl. + +`%no_lines' + Bison declaration to avoid generating `#line' directives in the + parser file. *Note Decl Summary::. + +`%nonassoc' + Bison declaration to assign non-associativity to token(s). *Note + Operator Precedence: Precedence Decl. + +`%prec' + Bison declaration to assign a precedence to a specific rule. + *Note Context-Dependent Precedence: Contextual Precedence. + +`%pure_parser' + Bison declaration to request a pure (reentrant) parser. *Note A + Pure (Reentrant) Parser: Pure Decl. + +`%right' + Bison declaration to assign right associativity to token(s). + *Note Operator Precedence: Precedence Decl. + +`%start' + Bison declaration to specify the start symbol. *Note The + Start-Symbol: Start Decl. + +`%token' + Bison declaration to declare token(s) without specifying + precedence. *Note Token Type Names: Token Decl. + +`%token_table' + Bison declaration to include a token name table in the parser file. + *Note Decl Summary::. + +`%type' + Bison declaration to declare nonterminals. *Note Nonterminal + Symbols: Type Decl. + +`%union' + Bison declaration to specify several possible data types for + semantic values. *Note The Collection of Value Types: Union Decl. + + These are the punctuation and delimiters used in Bison input: + +`%%' + Delimiter used to separate the grammar rule section from the Bison + declarations section or the additional C code section. *Note The + Overall Layout of a Bison Grammar: Grammar Layout. + +`%{ %}' + All code listed between `%{' and `%}' is copied directly to the + output file uninterpreted. Such code forms the "C declarations" + section of the input file. *Note Outline of a Bison Grammar: + Grammar Outline. + +`/*...*/' + Comment delimiters, as in C. + +`:' + Separates a rule's result from its components. *Note Syntax of + Grammar Rules: Rules. + +`;' + Terminates a rule. *Note Syntax of Grammar Rules: Rules. + +`|' + Separates alternate rules for the same result nonterminal. *Note + Syntax of Grammar Rules: Rules. +  File: bison.info, Node: Glossary, Next: Index, Prev: Table of Symbols, Up: Top diff --git a/doc/stamp-vti b/doc/stamp-vti index facfcecc..ca45c1a0 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -1,3 +1,3 @@ -@set UPDATED 9 August 2001 +@set UPDATED 10 August 2001 @set EDITION 1.28c @set VERSION 1.28c diff --git a/doc/version.texi b/doc/version.texi index facfcecc..ca45c1a0 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,3 +1,3 @@ -@set UPDATED 9 August 2001 +@set UPDATED 10 August 2001 @set EDITION 1.28c @set VERSION 1.28c -- 2.45.2