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:
Akim Demaille
2012-07-27 14:20:00 +02:00
parent d6a44ffd00
commit cd735a8c6c
11 changed files with 76 additions and 62 deletions

6
NEWS
View File

@@ -28,15 +28,15 @@ GNU Bison NEWS
for other actions such as printers, destructors, or initial actions. It
now does.
** Type names in printers and destructors
** Type names in actions
For consistency with rule actions, it is now possible to qualify $$ by a
type-name in printers and destructors. For instance:
type-name in destructors, printers, and initial actions. For instance:
%printer { fprintf (yyo, "(%d, %f)", $<ival>$, $<fval>$); } <*> <>;
will display two values for each typed and untyped symbol (provided
that YYSTYPE supports it).
that YYSTYPE has both "ival" and "fval" fields).
* Noteworthy changes in release 2.6 (2012-07-19) [stable]