summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2019-09-30 07:17:01 +0200
committerAkim Demaille <akim.demaille@gmail.com>2019-09-30 07:25:56 +0200
commita57e74a5bf4ebaaba6eb592f8c5b5047fdc6bc79 (patch)
tree32209b12792093f02c8d5ccbe0854e5191b8d948
parent4971409e392c5b9a326a9a7ec1c0e4d990327f4f (diff)
downloadbison-a57e74a5bf4ebaaba6eb592f8c5b5047fdc6bc79.tar.gz
style: prefer symbolic values rather than litterals
Instead of #define YYPACT_NINF -130 #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-130))) generate #define YYPACT_NINF (-130) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) * data/skeletons/c.m4 (b4_table_value_equals): Add support for $4. * data/skeletons/glr.c, data/skeletons/yacc.c: Use it. Also, use shorter macro argument names, the name of the macro is clear enough.
-rw-r--r--data/skeletons/c.m48
-rw-r--r--data/skeletons/glr.c10
-rw-r--r--data/skeletons/yacc.c10
3 files changed, 14 insertions, 14 deletions
diff --git a/data/skeletons/c.m4 b/data/skeletons/c.m4
index 27aa2939..6bb6fd79 100644
--- a/data/skeletons/c.m4
+++ b/data/skeletons/c.m4
@@ -189,16 +189,16 @@ m4_define([b4_int_type_for],
[b4_int_type($1_min, $1_max)])
-# b4_table_value_equals(TABLE, VALUE, LITERAL)
-# --------------------------------------------
+# b4_table_value_equals(TABLE, VALUE, LITERAL, SYMBOL)
+# ----------------------------------------------------
# Without inducing a comparison warning from the compiler, check if the
# literal value LITERAL equals VALUE from table TABLE, which must have
-# TABLE_min and TABLE_max defined.
+# TABLE_min and TABLE_max defined. SYMBOL denotes
m4_define([b4_table_value_equals],
[m4_if(m4_eval($3 < m4_indir([b4_]$1[_min])
|| m4_indir([b4_]$1[_max]) < $3), [1],
[[0]],
- [(!!(($2) == ($3)))])])
+ [(($2) == $4)])])
## ----------------- ##
diff --git a/data/skeletons/glr.c b/data/skeletons/glr.c
index 4bf1991e..65ef56bd 100644
--- a/data/skeletons/glr.c
+++ b/data/skeletons/glr.c
@@ -375,8 +375,8 @@ static const char *const yytname[] =
};
#endif
-#define YYPACT_NINF ]b4_pact_ninf[
-#define YYTABLE_NINF ]b4_table_ninf[
+#define YYPACT_NINF (]b4_pact_ninf[)
+#define YYTABLE_NINF (]b4_table_ninf[)
]b4_parser_tables_define[
@@ -968,7 +968,7 @@ yylhsNonterm (yyRuleNum yyrule)
}
#define yypact_value_is_default(Yyn) \
- ]b4_table_value_equals([[pact]], [[Yyn]], [b4_pact_ninf])[
+ ]b4_table_value_equals([[pact]], [[Yyn]], [b4_pact_ninf], [YYPACT_NINF])[
/** True iff LR state YYSTATE has only a default reduction (regardless
* of token). */
@@ -985,8 +985,8 @@ yydefaultAction (yyStateNum yystate)
return yydefact[yystate];
}
-#define yytable_value_is_error(Yytable_value) \
- ]b4_table_value_equals([[table]], [[Yytable_value]], [b4_table_ninf])[
+#define yytable_value_is_error(Yyn) \
+ ]b4_table_value_equals([[table]], [[Yyn]], [b4_table_ninf], [YYTABLE_NINF])[
/** The action to take in YYSTATE on seeing YYTOKEN.
* Result R means
diff --git a/data/skeletons/yacc.c b/data/skeletons/yacc.c
index 9f1cdd06..0dac4c8a 100644
--- a/data/skeletons/yacc.c
+++ b/data/skeletons/yacc.c
@@ -643,15 +643,15 @@ static const ]b4_int_type_for([b4_toknum])[ yytoknum[] =
};
# endif
-#define YYPACT_NINF ]b4_pact_ninf[
+#define YYPACT_NINF (]b4_pact_ninf[)
#define yypact_value_is_default(Yyn) \
- ]b4_table_value_equals([[pact]], [[Yyn]], [b4_pact_ninf])[
+ ]b4_table_value_equals([[pact]], [[Yyn]], [b4_pact_ninf], [YYPACT_NINF])[
-#define YYTABLE_NINF ]b4_table_ninf[
+#define YYTABLE_NINF (]b4_table_ninf[)
-#define yytable_value_is_error(Yytable_value) \
- ]b4_table_value_equals([[table]], [[Yytable_value]], [b4_table_ninf])[
+#define yytable_value_is_error(Yyn) \
+ ]b4_table_value_equals([[table]], [[Yyn]], [b4_table_ninf], [YYTABLE_NINF])[
]b4_parser_tables_define[