mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
also support $<foo>$ in the %initial-action
scan-code.l is already passing argument to b4_dollar_dollar for the initial acton, but its definition (of b4_dollar_dollar) does not use this argument. Generalize this definition, and use it for the %initial-action too. * data/c.m4 (b4_dollar_dollar_, b4_dollar_pushdef, b4_dollar_popdef): Instead of expecting a pointer, require a value, and use ".". Since they are now generic enough, move to... * data/c-like.m4: this new file. * data/c.m4, data/java.m4: Load it. * data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Use b4_dollar_pushdef for the %initial-action. * tests/actions.at: Check that. * data/Makefile.am: Adjust. * NEWS, doc/bison.texi: Document.
This commit is contained in:
@@ -458,12 +458,10 @@ b4_lexer_if([[
|
||||
yyerrstatus_ = 0;
|
||||
|
||||
]m4_ifdef([b4_initial_action], [
|
||||
m4_pushdef([b4_at_dollar], [yylloc])dnl
|
||||
m4_pushdef([b4_dollar_dollar], [yylval])dnl
|
||||
/* User initialization code. */
|
||||
b4_user_initial_action
|
||||
m4_popdef([b4_dollar_dollar])dnl
|
||||
m4_popdef([b4_at_dollar])])dnl
|
||||
b4_dollar_pushdef([yylval], [], [yylloc])dnl
|
||||
/* User initialization code. */
|
||||
b4_user_initial_action
|
||||
b4_dollar_popdef])[]dnl
|
||||
|
||||
[ /* Initialize the stack. */
|
||||
yystack.push (yystate, yylval]b4_locations_if([, yylloc])[);
|
||||
|
||||
Reference in New Issue
Block a user