mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
TODO: lalr1.cc master vs maint
* TODO: here.
This commit is contained in:
23
TODO
23
TODO
@@ -7,6 +7,29 @@ sure to check that the initial-action is performed once per parsing.
|
||||
b4_shared_declarations is no longer what it is. Make it
|
||||
b4_parser_declaration for instance.
|
||||
|
||||
** yychar in lalr1.cc
|
||||
There is a large difference bw maint and master on the handling of
|
||||
yychar (which was removed in lalr1.cc). See what needs to be
|
||||
back-ported.
|
||||
|
||||
|
||||
/* User semantic actions sometimes alter yychar, and that requires
|
||||
that yytoken be updated with the new translation. We take the
|
||||
approach of translating immediately before every use of yytoken.
|
||||
One alternative is translating here after every semantic action,
|
||||
but that translation would be missed if the semantic action
|
||||
invokes YYABORT, YYACCEPT, or YYERROR immediately after altering
|
||||
yychar. In the case of YYABORT or YYACCEPT, an incorrect
|
||||
destructor might then be invoked immediately. In the case of
|
||||
YYERROR, subsequent parser actions might lead to an incorrect
|
||||
destructor call or verbose syntax error message before the
|
||||
lookahead is translated. */
|
||||
|
||||
/* Make sure we have latest lookahead translation. See comments at
|
||||
user semantic actions for why this is necessary. */
|
||||
yytoken = yytranslate_ (yychar);
|
||||
|
||||
|
||||
** $ and others in epilogue
|
||||
A stray $ is a warning in the actions, but an error in the epilogue.
|
||||
IMHO, it should not even be a warning in the epilogue.
|
||||
|
||||
Reference in New Issue
Block a user