[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/9] muscle: factor conditionals on defined %define variables
From: |
Akim Demaille |
Subject: |
[PATCH 1/9] muscle: factor conditionals on defined %define variables |
Date: |
Mon, 15 Apr 2013 10:58:20 +0200 |
* data/bison.m4 (b4_percent_define_ifdef_): New.
Use it where appropriate.
---
data/bison.m4 | 29 +++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/data/bison.m4 b/data/bison.m4
index a5466aa..e96e183 100644
--- a/data/bison.m4
+++ b/data/bison.m4
@@ -702,9 +702,9 @@ m4_define([b4_percent_define_use],
# b4_percent_define_get([[foo]])
m4_define([b4_percent_define_get],
[b4_percent_define_use([$1])dnl
-m4_ifdef([b4_percent_define(]$1[)],
- [m4_indir([b4_percent_define(]$1[)])],
- [$2])])
+b4_percent_define_ifdef_([$1],
+ [m4_indir([b4_percent_define(]$1[)])],
+ [$2])])
# b4_percent_define_get_loc(VARIABLE)
# -----------------------------------
@@ -756,6 +756,19 @@ m4_define([b4_percent_define_get_syncline],
[m4_indir([b4_percent_define_syncline(]$1[)])],
[b4_fatal([[$0: undefined %%define variable '%s']], [$1])])])
+# b4_percent_define_ifdef_(VARIABLE, IF-TRUE, [IF-FALSE])
+# ------------------------------------------------------
+# If the %define variable VARIABLE is defined, expand IF-TRUE, else expand
+# IF-FALSE. Don't record usage of VARIABLE.
+#
+# For example:
+#
+# b4_percent_define_ifdef_([[foo]], [[it's defined]], [[it's undefined]])
+m4_define([b4_percent_define_ifdef_],
+[m4_ifdef([b4_percent_define(]$1[)],
+ [$2],
+ [$3])])
+
# b4_percent_define_ifdef(VARIABLE, IF-TRUE, [IF-FALSE])
# ------------------------------------------------------
# Mimic muscle_percent_define_ifdef in ../src/muscle-tab.h exactly. That is,
@@ -767,9 +780,9 @@ m4_define([b4_percent_define_get_syncline],
#
# b4_percent_define_ifdef([[foo]], [[it's defined]], [[it's undefined]])
m4_define([b4_percent_define_ifdef],
-[m4_ifdef([b4_percent_define(]$1[)],
- [b4_percent_define_use([$1])$2],
- [$3])])
+[b4_percent_define_ifdef_([$1],
+ [b4_percent_define_use([$1])$2],
+ [$3])])
## --------- ##
@@ -812,7 +825,7 @@ m4_define([b4_percent_define_flag_if],
#
# b4_percent_define_default([[foo]], [[default value]])
m4_define([b4_percent_define_default],
-[m4_ifndef([b4_percent_define(]$1[)],
+[b4_percent_define_ifdef_([$1], [],
[m4_define([b4_percent_define(]$1[)], [$2])dnl
m4_define([b4_percent_define_loc(]$1[)],
[[[[<skeleton default value>:-1.-1]],
@@ -855,7 +868,7 @@ m4_define([b4_percent_define_check_values],
[_b4_percent_define_check_values(b4_sublist)])])
m4_define([_b4_percent_define_check_values],
-[m4_ifdef([b4_percent_define(]$1[)],
+[b4_percent_define_ifdef_([$1],
[m4_pushdef([b4_good_value], [0])dnl
m4_if($#, 1, [],
[m4_foreach([b4_value], m4_dquote(m4_shift($@)),
--
1.8.2
- [PATCH 0/9] {master} check the kind of %define variable values, Akim Demaille, 2013/04/15
- [PATCH 4/9] muscle: factor the handling of used variables, Akim Demaille, 2013/04/15
- [PATCH 1/9] muscle: factor conditionals on defined %define variables,
Akim Demaille <=
- [PATCH 7/9] muscle: minor refactoring, Akim Demaille, 2013/04/15
- [PATCH 5/9] muscle: factor the field retrieval, Akim Demaille, 2013/04/15
- [PATCH 8/9] muscle: let -D/-F support the three kinds of %define variable values, Akim Demaille, 2013/04/15
- [PATCH 2/9] muscle: factor the kind check in M4, Akim Demaille, 2013/04/15
- [PATCH 6/9] muscle: minor simplification which uncovers a missing warning, Akim Demaille, 2013/04/15
- [PATCH 9/9] muscle: enforce definition syntax for keyword variables, Akim Demaille, 2013/04/15
- [PATCH 3/9] muscle: factor the computation of variable names, Akim Demaille, 2013/04/15