mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-13 22:33:03 +00:00
Fix bug that mistakes braced code in a declaration in the rules section
to be a rule action. Mentioned at <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00105.html>. * src/scan-gram.l: Move midrule action detection from the start of the scanning of any braced code to... * src/parse-gram.y (rhs): ... the parsing of braced code as a rule action. For readability, use $2 and @2 rather than the equivalent global variables. * tests/regression.at (Braced code in declaration in rules section): New test to catch the error fixed by the above patch. Work on code readability some. * src/scan-code.l (current_rule): Get rid of this misleading and redundant declaration: it's actually extern'ed in reader.h. (YY_DECL, code_lex, handle_action_dollar, handle_action_at, translate_action): Add a rule argument and use it instead of the global current_rule. (translate_rule_action): This already receives current_rule through an argument, so pass it on to translate_action instead of assigning current_rule to current_rule. (translate_symbol_action, translate_code): Pass rule = NULL to translate_action.
This commit is contained in:
@@ -473,8 +473,11 @@ rhs:
|
||||
| rhs symbol
|
||||
{ grammar_current_rule_symbol_append ($2, @2); }
|
||||
| rhs "{...}"
|
||||
{ grammar_current_rule_action_append (gram_last_string,
|
||||
gram_last_braced_code_loc); }
|
||||
{
|
||||
if (current_rule && current_rule->action)
|
||||
grammar_midrule_action ();
|
||||
grammar_current_rule_action_append ($2, @2);
|
||||
}
|
||||
| rhs "%prec" symbol
|
||||
{ grammar_current_rule_prec_set ($3, @3); }
|
||||
| rhs "%dprec" INT
|
||||
|
||||
Reference in New Issue
Block a user