[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
m4: provide macros for api.value.type=union
From: |
Akim Demaille |
Subject: |
m4: provide macros for api.value.type=union |
Date: |
Sun, 31 Jan 2021 07:55:20 +0100 |
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 <akim.demaille@gmail.com>
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])
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- m4: provide macros for api.value.type=union,
Akim Demaille <=