%merge: delegate the generation of calls to mergers to m4

Don't generate C code from bison, leave that to the skeletons.

* src/output.c (merger_output): Emit invocations to b4_call_merger.
* data/skeletons/glr.c (b4_call_merger): New.
This commit is contained in:
Akim Demaille
2020-12-30 09:10:05 +01:00
parent a26f7cf98f
commit 84b00b6bf0
2 changed files with 12 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
-*- C -*-
# -*- C -*-
# GLR skeleton for Bison
@@ -145,6 +145,15 @@ m4_define([b4_rhs_location],
[(b4_rhs_data([$1], [$2]).yyloc)])
# b4_call_merger(MERGER-NUM, MERGER-NAME, SYMBOL-SUM)
# ---------------------------------------------------
m4_define([b4_call_merger],
[b4_case([$1],
[ b4_symbol_if([$3], [has_type],
[yy0->b4_symbol($3, type) = $2 (*yy0, *yy1);],
[*yy0 = $2 (*yy0, *yy1);])])])
## -------------- ##
## Declarations. ##
## -------------- ##