So, does it stand, regarding bison that (at least):
If one does not define
%define lr.type
so it remains the default "lalr",
and does *not* try to resume from errors (yyerror() is fatal, it exits),
and bison is called with warning swithes
-Wall -Werror
(and there is no "-Wno-conflicts-sr" nor "-Wno-conflicts-rr")
and there are no "%expect-rr" nor "%expect" directives,
and there are no midrule-actions,
and there are no precedences nor associativities,
then for each action (call it "action0"), one can be sure that, for example, if
the rule is
...
| alfa "+" beta ";" {action0}
...
;
then the preceding action was one of beta's actions (the last nonterminal),
i.e. if beta can be produced by three rules:
beta: .... {action1} | .... {action2} | .... {action3} ;
then the last action before action0 have to be one of action1, action2 or
action3
?
Hans Åberg:
If the grammar is unambiguous relative to the parser algorithm, by default
LALR(1), then the grammar rules are treated as a set and
_______________________________________________
[email protected] https://lists.gnu.org/mailman/listinfo/help-bison