summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd C. Miller <Todd.Miller@sudo.ws>2020-11-10 07:36:11 +0100
committerAkim Demaille <akim.demaille@gmail.com>2020-11-11 08:47:21 +0100
commitc47bb87f9f1285309377adee7bb21263decc503c (patch)
treea5e2c03fb181129a6365ff731e23cdb6eb714b29
parent98c35e0025f43838d4c451553a4cf8b345b047f8 (diff)
downloadbison-c47bb87f9f1285309377adee7bb21263decc503c.tar.gz
yacc.c: fix #definition of YYEMPTY
When generating a C parser, YYEMPTY is present in enum yytokentype but there is no corresponding #define like there is for the other values. There is a special case for YYEMPTY in b4_token_enums but no corresponding case in b4_token_defines. * data/skeletons/c.m4 (b4_token_defines): Do define YYEMPTY.
-rw-r--r--NEWS4
-rw-r--r--data/skeletons/c.m47
2 files changed, 8 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index 32671d01..399d560d 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,10 @@ GNU Bison NEWS
* Noteworthy changes in release ?.? (????-??-??) [?]
+** Bug fixes
+
+ In Yacc mode, all the tokens are defined twice: once as an enum, and then
+ as a macro. YYEMPTY was missing its macro.
* Noteworthy changes in release 3.7.3 (2020-10-13) [stable]
diff --git a/data/skeletons/c.m4 b/data/skeletons/c.m4
index 2452ed2e..c8689038 100644
--- a/data/skeletons/c.m4
+++ b/data/skeletons/c.m4
@@ -509,10 +509,11 @@ m4_define([b4_token_define],
# ----------------
# Output the definition of the tokens.
m4_define([b4_token_defines],
-[b4_any_token_visible_if([/* Token kinds. */
-m4_join([
+[[/* Token kinds. */
+#define ]b4_symbol([-2], [id])[ -2
+]m4_join([
], b4_symbol_map([b4_token_define]))
-])])
+])
# b4_token_enum(TOKEN-NUM)