* data/bison.simple (b4_token_enum): New.

(b4_token_defines): Use it to output tokens both as #define and
enums.
Suggested by Paul Eggert.
* src/output.c (token_definitions_output): Don't output spurious
white spaces.
This commit is contained in:
Akim Demaille
2002-05-03 08:42:48 +00:00
parent 1f41899519
commit 83ccf991a6
5 changed files with 35 additions and 26 deletions

View File

@@ -50,8 +50,8 @@ m4_define([b4_rhs_location],
[location_stack_@<:@m4_eval([$1 - $2])@:>@])
# b4_token_defines(TOKEN-NAME, TOKEN-NUMBER)
# ------------------------------------------
# b4_token_define(TOKEN-NAME, TOKEN-NUMBER)
# -----------------------------------------
# Output the definition of this token as #define.
m4_define([b4_token_define],
[#define $1 $2

View File

@@ -70,19 +70,39 @@ m4_define_default([b4_header_guard],
[[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]], [_])])
# b4_token_defines(TOKEN-NAME, TOKEN-NUMBER)
# ------------------------------------------
# b4_token_define(TOKEN-NAME, TOKEN-NUMBER)
# -----------------------------------------
# Output the definition of this token as #define.
m4_define([b4_token_define],
[#define $1 $2
])
# b4_token_enum(TOKEN-NAME, TOKEN-NUMBER)
# ---------------------------------------
# Output the definition of this token as an enum.
m4_define([b4_token_enum],
[enum $1 = $2])
# b4_token_defines(LIST-OF-PAIRS-TOKEN-NAME-TOKEN-NUMBER)
# -------------------------------------------------------
# Output the definition of the tokens as #define.
m4_define([b4_token_defines],
[m4_map([b4_token_define], [$@])])
[#ifndef YYTOKENTYPE
# if defined (__STDC__) || defined (__cplusplus)
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
m4_map_sep([ b4_token_enum], [,
],
[$@])
};
/* POSIX requires `int' for tokens in interfaces. */
# define YYTOKENTYPE int
# endif
#endif
m4_map([b4_token_define], [$@])])
m4_divert(0)dnl