Adela, I'm pushing this (I need it for ongoing work), you should remove the corresponding definition from your wip about "union" in D.
Cheers! commit 6dc09317fb6185de7d48fdcb395f99350babcc33 Author: Akim Demaille <[email protected]> Date: Sat Jan 30 17:17:18 2021 +0100 m4: provide macros for api.value.type=union * data/skeletons/bison.m4 (b4_union_if): New. Remove support for "%define variant", which was deprecated long ago. * tests/local.at (AT_UNION_IF): New. diff --git a/data/skeletons/bison.m4 b/data/skeletons/bison.m4 index a7fba9578..0375c755a 100644 --- a/data/skeletons/bison.m4 +++ b/data/skeletons/bison.m4 @@ -1132,14 +1132,18 @@ m4_define([b4_parse_error_bmatch], +# b4_union_if([IF-UNION-ARE-USED], [IF-NOT]) # b4_variant_if([IF-VARIANT-ARE-USED], [IF-NOT]) # ---------------------------------------------- -b4_percent_define_if_define([variant]) +# Depend on whether api.value.type is union, or variant. +m4_define([b4_union_flag], [[0]]) m4_define([b4_variant_flag], [[0]]) b4_percent_define_ifdef([[api.value.type]], [m4_case(b4_percent_define_get_kind([[api.value.type]]), [keyword], - [m4_case(b4_percent_define_get([[api.value.type]]), [variant], - [m4_define([b4_variant_flag], [[1]])])])]) + [m4_case(b4_percent_define_get([[api.value.type]]), + [union], [m4_define([b4_union_flag], [[1]])], + [variant], [m4_define([b4_variant_flag], [[1]])])])]) +b4_define_flag_if([union]) b4_define_flag_if([variant]) diff --git a/tests/local.at b/tests/local.at index 238a3657e..8411bfa36 100644 --- a/tests/local.at +++ b/tests/local.at @@ -315,6 +315,8 @@ m4_pushdef([AT_TOKEN_PREFIX], [m4_bregexp([$3], [%define api\.token\.prefix {\(.*\)}], [\1])])]) m4_pushdef([AT_TOKEN_RAW_IF], [m4_bmatch([$3], [%define api\.token\.raw], [$1], [$2])]) +m4_pushdef([AT_UNION_IF], +[m4_bmatch([$3], [%define api\.value\.type union], [$1], [$2])]) m4_pushdef([AT_VARIANT_IF], [m4_bmatch([$3], [%define api\.value\.type variant], [$1], [$2])]) m4_pushdef([AT_API_prefix], @@ -440,6 +442,7 @@ m4_popdef([AT_YYERROR_ARG_LOC_IF]) m4_popdef([AT_API_PREFIX]) m4_popdef([AT_API_prefix]) m4_popdef([AT_VARIANT_IF]) +m4_popdef([AT_UNION_IF]) m4_popdef([AT_TOKEN_RAW_IF]) m4_popdef([AT_TOKEN_PREFIX]) m4_popdef([AT_TOKEN_CTOR_IF])
