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.
This commit is contained in:
Akim Demaille
2021-01-30 17:17:18 +01:00
parent fc0dbb3bba
commit 6dc09317fb
2 changed files with 10 additions and 3 deletions

View File

@@ -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])

View File

@@ -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])