d: add support for %printer
commitf8594626580382f88f2767c55dfa42b6f8e8a799
authorAkim Demaille <akim.demaille@gmail.com>
Wed, 6 Jan 2021 18:22:18 +0000 (6 19:22 +0100)
committerAkim Demaille <akim.demaille@gmail.com>
Thu, 7 Jan 2021 05:31:28 +0000 (7 06:31 +0100)
tree6658c69abb257bf4e69a155d9b1771a3f3efbf1b
parentdc8b16424a89297368dbc66c69787ed0882966f0
d: add support for %printer

Currently we display the addresses of the semantic values.  Instead,
print the values.

Add support for YY_USE across languages.

* data/skeletons/c.m4, data/skeletons/d.m4 (b4_use): New.
* data/skeletons/bison.m4 (b4_symbol_actions): Use b4_use to be
portable to D.

Add support for %printer, and use it.

* data/skeletons/d.m4: Instead of duplicating what's already in
c-like.m4, include it.
(b4_symbol_action): New.
Differs from the one in bison.m4 in that it uses yyval/yyloc instead
of *yyvaluep and *yylocationp.

* data/skeletons/lalr1.d (yy_symbol_print): Avoid calls to formatting,
just call write directly.
Use the %printer.
* examples/d/calc/calc.y: Specify a printer.
Enable traces when $YYDEBUG is set.
* tests/calc.at: Fix the use of %printer with D.
data/skeletons/bison.m4
data/skeletons/c.m4
data/skeletons/d.m4
data/skeletons/lalr1.d
examples/d/calc/calc.y
tests/calc.at