Make %push-parser imply %pure-parser. This fixes several bugs; see

<http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00148.html>.
* src/parse-gram.y (prologue_declaration): For %push-parser, also set
pure_parser = true.
* data/push.c: Don't bother testing b4_push_if when deciding whether
to expand b4_declare_parser_variables globally.
(yypush_parse): Likewise in here.

* data/push.c (yypush_parse): Add b4_parse_param to arguments.
(yy_reduce_print): Reformat M4 for readability.
This commit is contained in:
Joel E. Denny
2006-12-17 01:33:31 +00:00
parent ee5abb379b
commit 791934e4b5
4 changed files with 23 additions and 9 deletions

View File

@@ -2053,7 +2053,7 @@ yyreduce:
/* Line 1269 of yacc.c */
#line 258 "parse-gram.y"
{ push_parser = true; }
{ push_parser = true; pure_parser = true; }
break;
case 29:

View File

@@ -255,7 +255,7 @@ prologue_declaration:
| "%output" "=" STRING { spec_outfile = $3; } /* deprecated */
| "%parse-param" "{...}" { add_param ("parse_param", $2, @2); }
| "%pure-parser" { pure_parser = true; }
| "%push-parser" { push_parser = true; }
| "%push-parser" { push_parser = true; pure_parser = true; }
| "%require" STRING { version_check (&@2, $2); }
| "%skeleton" STRING { skeleton = $2; }
| "%token-table" { token_table_flag = true; }