Paul Eggert [Fri, 13 Dec 2002 04:50:32 +0000 (04:50 +0000)]
(derives_compute): Do not subtract NTOKENS from
the pointer DSET returned by malloc; this isn't portable.
Instead, always use DSET[i - NTOKENS] rather than DSET[i].
Similarly for DERIVES.
(derives_compute): Do not bother invoking
int_of_rule_number, since rule numbers are integers.
All uses of XCALLOC, XMALLOC, and XREALLOC changed to use new macros
CALLOC, MALLOC, REALLOC. All uses of XFREE changed to free.
Paul Eggert [Fri, 13 Dec 2002 04:45:45 +0000 (04:45 +0000)]
All uses of XCALLOC, XMALLOC, and XREALLOC changed to use new macros
CALLOC, MALLOC, REALLOC. All uses of XFREE changed to free.
Paul Eggert [Fri, 13 Dec 2002 04:45:04 +0000 (04:45 +0000)]
All uses of XCALLOC, XMALLOC, and XREALLOC changed to use new macros
CALLOC, MALLOC, REALLOC. All uses of XFREE changed to free.
Don't subtract from the value that malloc returns; it's not portable.
Paul Eggert [Fri, 13 Dec 2002 04:40:56 +0000 (04:40 +0000)]
(AC_CHECK_TYPES): Check for uintptr_t.
Paul Eggert [Wed, 11 Dec 2002 07:17:47 +0000 (07:17 +0000)]
Change identifier spellings to avoid collisions with names
that are reserved by POSIX.
Fix misspelling in names.
Sort include-file uses.
Paul Eggert [Wed, 11 Dec 2002 07:00:15 +0000 (07:00 +0000)]
(Torturing the Scanner): Rename value_t -> value,
value_t_as_yystype -> value_as_yystype.
Paul Eggert [Wed, 11 Dec 2002 06:59:39 +0000 (06:59 +0000)]
(_AT_DATA_CALC_Y, Simple LALR Calculator):
Rename value_t -> value.
Paul Eggert [Wed, 11 Dec 2002 06:59:06 +0000 (06:59 +0000)]
(G_EXPAND): Renamed from G_STRETCH.
(G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
(N_EXPAND): Renamed from N_STRETCH.
(G_NODE_ALIGNMENT): Renamed from G_NODE_ALIGNEMENT.
Paul Eggert [Wed, 11 Dec 2002 06:58:17 +0000 (06:58 +0000)]
(enum color): Renamed from enum color_e.
(enum textmode): Renamed from enum textmode_e.
(enum shape): Renamed from enum shape_e.
(struct colorentry): Renamed from struct colorentry_s.
(struct classname): Renamed from struct classname_s.
(struct infoname): Renamed from struct infoname_s.
(enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
(enum decision): Renamed from enum decision_e.
(enum orientation): Renamed from enum orientation_e.
(enum alignment): Renamed from enum alignment_e.
(enum arrow_mode): Renamed form enum arrow_mode_e.
(enum crossing_type): Renamed from enum crossing_type_e.
(enum view): Renamed from enum view_e.
(struct node): Renamed from struct node_s.
(node): Renamed from node_t.
(enum linestyle): Renamed from enum linestyle_e.
(enum arrowstyle): Renamed from enum arrowstyle_e.
(struct edge): Renamed from struct edge.
(edge): Renamed from edge_t.
(struct graph): Renamed from struct graph_s.
(graph): Renamed from graph_t.
(struct node_s.expand): Renamed from struct node_s.stretch.
(struct graph_s.expand): Renamed from struct graph_s.stretch.
(enum_alignment_e): Renamed from enum_alignement_e.
Paul Eggert [Wed, 11 Dec 2002 06:56:18 +0000 (06:56 +0000)]
Adjust to renamings.
Paul Eggert [Wed, 11 Dec 2002 06:55:34 +0000 (06:55 +0000)]
(base_number): Renamed from base_t.
Paul Eggert [Wed, 11 Dec 2002 06:54:42 +0000 (06:54 +0000)]
(vector_number): Renamed from vector_number_t.
(action_number): Renamed from action_t.
(VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
(BASE_MAXIMUM): Renamed from BASE_MAX.
(BASE_MINIMUM): Renamed from BASE_MIN.
(ACTION_MAX): Remove; unused.
(ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
Paul Eggert [Wed, 11 Dec 2002 06:54:00 +0000 (06:54 +0000)]
Do not include <errno.h>.
(TAB_EXT): Renamed from EXT_TAB.
(OUTPUT_EXT): Renamed from EXT_OUTPUT.
(time_report): Remove; decl is now in lib/timevar.h.
Paul Eggert [Wed, 11 Dec 2002 06:53:20 +0000 (06:53 +0000)]
(symbol_number): Renamed from symbol_number_t.
(struct symbol): Renamed from struct symbol_s.
(symbol): Renamed from symbol_t.
Paul Eggert [Wed, 11 Dec 2002 06:52:09 +0000 (06:52 +0000)]
(symbol_list): Renamed from symbol_list_t.
(struct symbol_list): Renamed from struct symbol_list_s.
Paul Eggert [Wed, 11 Dec 2002 06:50:40 +0000 (06:50 +0000)]
(state_number): Renamed from state_number_t.
(struct state): Renamed from struct state_s.
(state): Renamed from state_t.
(transitions): Renamed from transitions_t. Unused (and
misspelled) transtion_s tag removed.
(errs): Renamed from errs_t. Unused errs_s tag removed.
(reductions): Renamed from reductions_t. Unused tag
reductions_s removed.
(STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
Include "gram.h".
Paul Eggert [Wed, 11 Dec 2002 06:48:54 +0000 (06:48 +0000)]
Sort include files.
Paul Eggert [Wed, 11 Dec 2002 06:48:18 +0000 (06:48 +0000)]
(<INITIAL>{int}): Use set_errno and get_errno instead of errno.
(<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-
9abcdefABCDEF]+): Likewise.
(handle_action_dollar, handle_action_at): Likewise.
(obstack_for_string): Renamed from string_obstack.
Paul Eggert [Wed, 11 Dec 2002 06:46:55 +0000 (06:46 +0000)]
(relation_node): Renamed from relation_node_t.
(relation_nodes): Renamed from relation_nodes_t.
(relation): Renamed from relation_t.
Paul Eggert [Wed, 11 Dec 2002 06:44:28 +0000 (06:44 +0000)]
(braced_code): Renamed from braced_code_t.
Remove brace_code_e tag.
Paul Eggert [Wed, 11 Dec 2002 06:43:08 +0000 (06:43 +0000)]
(static_graph): Renamed from graph.
Paul Eggert [Wed, 11 Dec 2002 06:40:51 +0000 (06:40 +0000)]
(<chars>): Renamed from <string>.
Paul Eggert [Wed, 11 Dec 2002 06:39:20 +0000 (06:39 +0000)]
(output_skeleton): Use get_errno instead of errno.
Paul Eggert [Wed, 11 Dec 2002 06:38:17 +0000 (06:38 +0000)]
(struct rule_list): Renamed from struct rule_list_s.
(rule_list): Renamed from rule_list_t.
Paul Eggert [Wed, 11 Dec 2002 06:37:17 +0000 (06:37 +0000)]
(muscle_entry_t): Remove; moved to muscle_tab.c and renamed to muscle_entry.
Paul Eggert [Wed, 11 Dec 2002 06:36:41 +0000 (06:36 +0000)]
(muscle_entry): Renamed from muscle_entry_t,
and moved here from muscle_tab.h.
Paul Eggert [Wed, 11 Dec 2002 06:35:35 +0000 (06:35 +0000)]
(location): Renamed from location_t.
Paul Eggert [Wed, 11 Dec 2002 06:35:10 +0000 (06:35 +0000)]
Adjust to type renaming.
Paul Eggert [Wed, 11 Dec 2002 06:34:37 +0000 (06:34 +0000)]
(goto_number): Renamed from goto_number_t.
(GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
Paul Eggert [Wed, 11 Dec 2002 06:33:59 +0000 (06:33 +0000)]
(struct goto_list): Renamed from struct goto_list_s.
(goto_list): Renamed from goto_list_t.
Paul Eggert [Wed, 11 Dec 2002 06:33:22 +0000 (06:33 +0000)]
(item_number): Renamed from item_number_t.
(rule_number): Renamed from rule_number_t.
(struct rule_s): Remove the "rule_s" part; not used.
(rule): Renamed from rule_t.
(rule_filter): Renamed from rule_filter_t.
(ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
Remove; unused.
Paul Eggert [Wed, 11 Dec 2002 06:31:14 +0000 (06:31 +0000)]
(enum trace): Renamed from enum trace_e.
(enum report): Renamed from enum report_e.
Paul Eggert [Wed, 11 Dec 2002 06:30:36 +0000 (06:30 +0000)]
Adjust to struniq renaming.
Paul Eggert [Wed, 11 Dec 2002 06:29:17 +0000 (06:29 +0000)]
(strsuffix, stringappend): Remove; unused.
Paul Eggert [Wed, 11 Dec 2002 06:28:25 +0000 (06:28 +0000)]
(xfopen, xfclose): Use get_errno instead of errno.
(strsuffix): Remove; unused.
(concat2): Renamed from stringappend. Now static.
Paul Eggert [Wed, 11 Dec 2002 06:26:42 +0000 (06:26 +0000)]
Include "gram.h".
Paul Eggert [Wed, 11 Dec 2002 06:25:26 +0000 (06:25 +0000)]
(enum conflict_resolution): Renamed from enum conflict_resolution_e.
Paul Eggert [Wed, 11 Dec 2002 06:23:40 +0000 (06:23 +0000)]
Don't include stdlib.h, string.h _LIBC stuff.
Paul Eggert [Wed, 11 Dec 2002 05:32:51 +0000 (05:32 +0000)]
Adjust to type name changes.
Paul Eggert [Wed, 11 Dec 2002 05:31:40 +0000 (05:31 +0000)]
(assoc): Renamed from assoc_t.
Paul Eggert [Wed, 11 Dec 2002 05:31:12 +0000 (05:31 +0000)]
Adjust to type renamings.
Paul Eggert [Wed, 11 Dec 2002 05:30:26 +0000 (05:30 +0000)]
(bison_SOURCES): Rename struniq.c and struniq.h to uniqstr.c and uniqstr.h.
Paul Eggert [Wed, 11 Dec 2002 05:29:17 +0000 (05:29 +0000)]
(struct state_list): Renamed from struct state_list_s.
(state_list): Renamed from state_list_t.
Paul Eggert [Wed, 11 Dec 2002 05:28:00 +0000 (05:28 +0000)]
(timevar_report): New decl.
Paul Eggert [Wed, 11 Dec 2002 05:27:29 +0000 (05:27 +0000)]
(timevar_report): Renamed from time_report, for consistency with other
names.
Paul Eggert [Wed, 11 Dec 2002 05:26:00 +0000 (05:26 +0000)]
(libbison_a_SOURCES): Add get-errno.h, get-errno.c.
Paul Eggert [Wed, 11 Dec 2002 05:25:27 +0000 (05:25 +0000)]
(YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
Paul Eggert [Wed, 11 Dec 2002 05:23:54 +0000 (05:23 +0000)]
Rename struniq -> uniqstr to avoid collision with <string.h>.
Paul Eggert [Wed, 11 Dec 2002 05:22:48 +0000 (05:22 +0000)]
Initial revision
Paul Eggert [Wed, 11 Dec 2002 05:22:23 +0000 (05:22 +0000)]
Initial revision.
Paul Eggert [Wed, 11 Dec 2002 05:20:31 +0000 (05:20 +0000)]
Rename struniq to uniqstr, to avoid collision with <string.h>.
Paul Eggert [Mon, 9 Dec 2002 04:48:38 +0000 (04:48 +0000)]
* data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
since this causes problems when __file__ contains character
sequences like "@" that are treated specially by src/scan-skel.l.
Instead, just use the file's basename. This fixes the bug
reported by Martin Mokrejs in
<http://mail.gnu.org/pipermail/bug-bison/2002-December/001949.html>.
Paul Eggert [Sat, 7 Dec 2002 08:09:17 +0000 (08:09 +0000)]
Add support for rules that do not have trailing semicolons, as
POSIX requires. Improve the quality of locations in Bison
diagnostics.
Remove duplicate decl of current_file.
Fix minor promotion problem in templates.
Fix Debian Bug 102878.
Paul Eggert [Sat, 7 Dec 2002 06:16:58 +0000 (06:16 +0000)]
(Invalid inputs): No longer `expecting ";"
or "|"' now that so many other tokens are allowed by the new grammar.
Paul Eggert [Sat, 7 Dec 2002 06:16:30 +0000 (06:16 +0000)]
(Useless Rules, Reduced Automaton, Underivable Rules): Adjust reported
locations to match the more-precise results now expected.
Paul Eggert [Sat, 7 Dec 2002 06:15:55 +0000 (06:15 +0000)]
(Invalid $n, Invalid @n, Type Clashes):
Adjust reported locations to match the more-precise
results now expected.
Paul Eggert [Sat, 7 Dec 2002 06:15:18 +0000 (06:15 +0000)]
(S/R in initial, Defaulted Conflicted Reduction):
Adjust reported locations to match the more-precise
results now expected.
Paul Eggert [Sat, 7 Dec 2002 06:14:27 +0000 (06:14 +0000)]
Include "files.h".
(YY_USER_INIT): Initialize scanner_cursor instead
of *loc.
(STEP): Remove. No longer needed, now that adjust_location does
the work. All uses removed.
(scanner_cursor): New var.
(adjust_location): Renamed from extend_location. It now sets
*loc and adjusts the scanner cursor. All uses changed.
Don't bother testing for CR.
(handle_syncline): Remove location arg; now updates scanner cursor.
All callers changed.
(unexpected_end_of_file): Now accepts start boundary of token or
comment, not location. All callers changed. Update scanner cursor,
not the location.
(SC_AFTER_IDENTIFIER): New state.
(context_state): Renamed from c_context. All uses changed.
(id_loc, code_start, token_start): New local vars.
(<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
processing of Yacc white space and equivalents here.
(<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
instead of returning ID immediately, since we need to search for
a subsequent colon.
(<INITIAL>"'", "\""): Save token_start.
(<INITIAL>"%{", "{", "%%"): Save code_start.
(<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
(<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
BEGIN context_state at end, not INITIAL.
(<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
<SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
Return correct token start.
(<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
the start of a character, string or multiline comment is found.
Paul Eggert [Sat, 7 Dec 2002 06:12:48 +0000 (06:12 +0000)]
(nonterminals_reduce): Use warn_at rather than rolling our own.
Paul Eggert [Sat, 7 Dec 2002 06:11:11 +0000 (06:11 +0000)]
Include location.h.
(scanner_cursor): New decl.
Paul Eggert [Sat, 7 Dec 2002 06:02:10 +0000 (06:02 +0000)]
Adjust to new location_t layout.
Paul Eggert [Sat, 7 Dec 2002 06:01:20 +0000 (06:01 +0000)]
(lloc_default): New function, which handles
empty locations more accurately.
(YYLLOC_DEFAULT): Use it.
(%token COLON): Remove.
(%token ID_COLON): New token.
(rules): Use it.
(declarations, rules): Remove trailing semicolon.
(declaration, rules_or_grammar_declaration):
Allow empty (";") declaration.
(symbol_def): Remove empty actions; no longer needed.
(rules_or_grammar_declaration): Remove trailing semicolon.
(semi_colon.opt): Remove.
Paul Eggert [Sat, 7 Dec 2002 05:58:38 +0000 (05:58 +0000)]
Do not include <quotearg.h>; no longer needed.
(boundary): New type.
(location_t): Use it. This allows locations to span file boundaries.
All member uses changed: file -> start.file or end.file (as needed),
first_line -> start.line, first_column -> start.column,
last_line -> end.line, last_column -> end.column.
(equal_boundaries): New function.
(LOCATION_RESET, LOCATION_STEP): Remove.
(LOCATION_PRINT): Remove. All callers changed to use location_print.
(empty_location): Now const.
(location_print): New decl.
Paul Eggert [Sat, 7 Dec 2002 05:57:32 +0000 (05:57 +0000)]
* src/location.c: Include <quotearg.h>.
(empty_location): Now const.
(location_print): New function. Follow the recommendation of the
GNU Coding Standards for locations that span file boundaries.
Paul Eggert [Sat, 7 Dec 2002 05:55:28 +0000 (05:55 +0000)]
LOCATION_PRINT -> location_print
Paul Eggert [Sat, 7 Dec 2002 05:54:29 +0000 (05:54 +0000)]
(current_file): Remove duplicate decl;
current_file is now owned by files.h.
Paul Eggert [Sat, 7 Dec 2002 05:53:51 +0000 (05:53 +0000)]
Include files.h. LOCATION_PRINT -> location_print.
Paul Eggert [Sat, 7 Dec 2002 05:50:45 +0000 (05:50 +0000)]
(Table of Symbols): YYERROR_VERBOSE should
be #defined in the prologue, not in the Bison declarations.
This fixes Debian Bug 102878, reported by Shaul Karl.
Paul Eggert [Sat, 7 Dec 2002 05:46:30 +0000 (05:46 +0000)]
(yy_reduce_print): Don't assume that yyrline[yyrule] promotes to int;
it might be unsigned int.
Paul Eggert [Sat, 7 Dec 2002 05:45:46 +0000 (05:45 +0000)]
(yy_reduce_print): Don't assume that yyrline[yyrule]
promotes to int; it might be unsigned int.
Paul Eggert [Mon, 2 Dec 2002 18:20:30 +0000 (18:20 +0000)]
Add strtoul.c
In src/scan-gram.l, move helper function definitions to epilogue.
Paul Eggert [Mon, 2 Dec 2002 18:19:51 +0000 (18:19 +0000)]
(AC_REPLACE_FUNCS): Add strtoul.
Paul Eggert [Mon, 2 Dec 2002 18:19:30 +0000 (18:19 +0000)]
New file, from gnulib.
Paul Eggert [Sun, 1 Dec 2002 02:37:56 +0000 (02:37 +0000)]
(no_cr_read, extend_location): Move to epilogue,
and put only a forward declaration in the prologue. This is for
consistency with the other scanner helper functions.
Paul Eggert [Sat, 30 Nov 2002 09:52:42 +0000 (09:52 +0000)]
Type clashes now generate warnings, not errors, since it
appears that POSIX may allow some grammars with type clashes.
Paul Eggert [Sat, 30 Nov 2002 09:52:11 +0000 (09:52 +0000)]
(grammar_current_rule_check): Warn about
type clashes instead of complaining.
Paul Eggert [Sat, 30 Nov 2002 09:51:50 +0000 (09:51 +0000)]
(Type Clashes): Expect warnings, not complaints.
Paul Eggert [Sat, 30 Nov 2002 09:25:06 +0000 (09:25 +0000)]
fund -> found
Paul Eggert [Sat, 30 Nov 2002 09:20:52 +0000 (09:20 +0000)]
Add Yacc Library.
gram_error is static.
yylex and yyerror must be declared.
Paul Eggert [Sat, 30 Nov 2002 09:18:34 +0000 (09:18 +0000)]
Describe Yacc library, lex-param and parse-param changes.
Paul Eggert [Sat, 30 Nov 2002 09:16:54 +0000 (09:16 +0000)]
(gram_error): Now static. Add static decl.
(print_token_value): Omit parameter names from forward decl,
for consistency.
Paul Eggert [Sat, 30 Nov 2002 09:16:32 +0000 (09:16 +0000)]
(gram_error): Remove decl.
Paul Eggert [Sat, 30 Nov 2002 09:11:30 +0000 (09:11 +0000)]
(Yacc Library): New node. Regenerate top menu.
Paul Eggert [Sat, 30 Nov 2002 09:10:55 +0000 (09:10 +0000)]
(lib_LIBRARIES, liby_a_SOURCES): New macros.
Paul Eggert [Sat, 30 Nov 2002 09:10:20 +0000 (09:10 +0000)]
lib/main.c, lib/yyerror.c: New files.
Paul Eggert [Sat, 30 Nov 2002 07:42:37 +0000 (07:42 +0000)]
Emphasize that yylex and yyerror must be declared before being used.
E.g., one should typically declare them in the prologue. Use GNU
coding style in examples. Put "const" consistently after the type it
modifies. Mention that C99 supports "inline". Mention that yyerror
traditionally returns "int".
Paul Eggert [Fri, 29 Nov 2002 09:03:16 +0000 (09:03 +0000)]
[a-f] -> [abcdef], so that we don't assume the C locale.
Paul Eggert [Fri, 29 Nov 2002 08:45:33 +0000 (08:45 +0000)]
%parse-param and %lex-param now take just one argument, the
declaration; the argument name is deduced from the declaration.
Paul Eggert [Fri, 29 Nov 2002 08:45:14 +0000 (08:45 +0000)]
(Simple LALR Calculator): Adopt new convention for %parse-param
and %lex-param.
Paul Eggert [Fri, 29 Nov 2002 08:44:40 +0000 (08:44 +0000)]
"," now elicits a warning, rather than being
a token; this is more compatible with byacc.
Paul Eggert [Fri, 29 Nov 2002 08:44:04 +0000 (08:44 +0000)]
(add_param): New function.
(COMMA): Remove.
(declaration): Implement new rule for %parse-param and %lex-param.
Paul Eggert [Fri, 29 Nov 2002 08:43:12 +0000 (08:43 +0000)]
(Parser Function, Pure Calling, Error Reporting, Table of Symbols):
%parse-param and %lex-param now take just one argument, the
declaration; the argument name is deduced from the declaration.
Paul Eggert [Fri, 29 Nov 2002 05:59:59 +0000 (05:59 +0000)]
(reader): Remove gram_control; it wasn't being used.
Paul Eggert [Thu, 28 Nov 2002 00:42:28 +0000 (00:42 +0000)]
Sync with gnulib.
Paul Eggert [Wed, 27 Nov 2002 18:36:41 +0000 (18:36 +0000)]
Rename identifiers to avoid real and potential collisions.
Paul Eggert [Wed, 27 Nov 2002 18:34:14 +0000 (18:34 +0000)]
(STEP): Renamed from YY_STEP. All uses changed.
(STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
(STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
(STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
Paul Eggert [Wed, 27 Nov 2002 18:33:42 +0000 (18:33 +0000)]
(struct gram_control_s, gram_control_t): Remove.
(YY_DECL): Don't use "yy" at start of local variables.
All uses changed, e.g., yylloc -> loc.
Paul Eggert [Wed, 27 Nov 2002 18:33:18 +0000 (18:33 +0000)]
(print_token_value): Renamed from yyprint.
All uses changed.
(YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
The name "yycontrol" violates the name space rules, and this stuff
wasn't being used anyway.
(input): Remove action; this stuff wasn't being used.
(gram_error): Rename local variable yylloc -> loc.
Paul Eggert [Wed, 27 Nov 2002 18:32:12 +0000 (18:32 +0000)]
yyprint -> print_token_value
Paul Eggert [Wed, 27 Nov 2002 18:31:27 +0000 (18:31 +0000)]
(_AT_CHECK_PRINTER_AND_DESTRUCTOR): yyout -> yyoutput,
to avoid collision with lex macro described by Bruce Lilly in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001929.html>.