Joel E. Denny [Tue, 29 Dec 2009 17:43:26 +0000 (12:43 -0500)]
portability: `<' and `>' are not always defined on addresses.
Specifically, don't sort objects by their memory addresses when
they're not allocated in the same array or other object. Though
I haven't found a test case where that fails on my platform, C
says the behavior is undefined.
* src/AnnotationList.c (AnnotationList__insertInto): Remove
FIXME. Use new id field of InadequacyList nodes rather than
their memory addresses when sorting.
(AnnotationList__compute_from_inadequacies): Add
inadequacy_list_node_count argument to pass to
InadequacyList__new_conflict.
* src/AnnotationList.h
(AnnotationList__compute_from_inadequacies): Update prototype
and documentation for new argument.
* src/InadequacyList.c (InadequacyList__new_conflict): Add
node_count argument and use it to assign a unique ID.
* src/InadequacyList.h (InadequacyListNodeCount): New typedef.
(InadequacyList): Add id field.
(InadequacyList__new_conflict): Update prototype and
documentation for new argument.
* src/ielr.c (ielr_compute_annotation_lists): Update
AnnotationList__compute_from_inadequacies invocation.
Joel E. Denny [Sun, 20 Dec 2009 07:22:53 +0000 (02:22 -0500)]
Fix handling of yychar manipulation in user semantic actions.
The problem was that yacc.c didn't always update the yychar
translation afterwards. However, other skeletons appear to be
fine. glr.c appears to already translate yychar before every
use. lalr1.cc does not define yychar and does not document its
replacement, yyla, for users. It does provide yyclearin, but
that does not manipulate yyla and thus requires no translation
update. In lalr1.java, yychar is out of scope during semantic
actions.
* NEWS (2.5): Document.
* data/yacc.c (YYBACKUP): Don't bother translating yychar into
yytoken here.
(yyparse, yypush_parse): Instead, translate before every use of
yytoken, and add comments explaining this approach.
* tests/actions.at (Destroying lookahead assigned by semantic
action): New test group checking that translation happens before
lookahead destructor calls at parser return. Previously,
incorrect destructors were called.
* tests/conflicts.at (%error-verbose and consistent
errors): New test group checking that translation happens at
syntax error detection before the associated verbose error
message and the associated lookahead destructor calls. While
the destructor call is fixed by this patch, the verbose error
message is currently incorrect due to another bug (see
comments in test group), so this is an expected failure for now.
(cherry picked from commit
df222dfaf4da6becae8665d344669eefc705d7f7)
Conflicts:
src/parse-gram.c
src/parse-gram.h
Joel E. Denny [Mon, 21 Dec 2009 19:58:48 +0000 (14:58 -0500)]
YYFAIL: warn about uses and remove from lalr1.java.
* NEWS (2.5): Document.
* data/lalr1.java (parser::YYStack::YYFAIL): Rename to YYERRLAB,
and make it private. Update all uses.
* src/scan-code.l (SC_RULE_ACTION): Implement warning.
(cherry picked from commit
4395a9ff4fd518580b9abe9482783e8eba192f34)
Conflicts:
data/lalr1.java
Joel E. Denny [Mon, 21 Dec 2009 19:51:40 +0000 (14:51 -0500)]
YYFAIL: deprecate.
* NEWS (2.4.2): Document deprecation and the phase-out plan.
* data/lalr1.java (parser::YYStack::YYFAIL): Add comment about
deprecation.
* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
YYFAIL from GCC cpp's -Wunused-macros.
* doc/bison.texinfo (Java Action Features): Remove YYFAIL
documentation.
(LocalWords): Remove YYFAIL.
(cherry picked from commit
1625df5b18bc1ad696f149f059e6677ca0759dfc)
Conflicts:
src/parse-gram.c
src/parse-gram.h
Joel E. Denny [Thu, 17 Dec 2009 06:09:09 +0000 (01:09 -0500)]
Code cleanup.
* src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
function, which is no longer used.
(cherry picked from commit
387b4d504728391605f751e74a36fb7d0d441b19)
Joel E. Denny [Wed, 16 Dec 2009 18:19:19 +0000 (13:19 -0500)]
Add gcc's -Wundef to test suite and fix another warning from it.
* NEWS (2.4.2): Update description of -Wundef fix.
* configure.ac (WARN_CXXFLAGS_TEST): New substitution.
(WARN_CFLAGS_TEST): New substitution.
* data/glr.c: Avoid warning about __STRICT_ANSI__.
* tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of
WARN_CFLAGS.
(NO_WERROR_CFLAGS): Likewise.
(CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS.
(cherry picked from commit
a603c6e0bb8b9e79d4136ee0fd0d1bf6a7d010ef)
Joel E. Denny [Wed, 16 Dec 2009 06:41:17 +0000 (01:41 -0500)]
* data/yacc.c: Reformat m4 a little.
(cherry picked from commit
19750d310c1f21b72fc26d0b8905fac08d175130)
Joel E. Denny [Wed, 16 Dec 2009 06:14:44 +0000 (01:14 -0500)]
Document gcc -Wundef fix.
* NEWS (2.4.2): Here.
* THANKS (Jonathan Nieder): Add.
(cherry picked from commit
c938d650dbddd3d94b3543bab76e1afce99c409d)
Jonathan Nieder [Wed, 16 Dec 2009 04:07:46 +0000 (22:07 -0600)]
Simplify y.tab.c when location tracking is disabled.
* data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location
tracking is not enabled. Instead, unconditionally define
YY_LOCATION_PRINT as a no-op for backward compatibility.
(cherry picked from commit
fcd32abd3a4b68ef525d7766dbed1c98465e23b9)
Jonathan Nieder [Wed, 16 Dec 2009 04:03:18 +0000 (22:03 -0600)]
Avoid warnings from gcc -Wundef y.tab.c.
* data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are
defined before using them.
* data/lalr1.cc: Likewise.
* data/yacc.c: Likewise.
(cherry picked from commit
ae93128c9671b58bdc2b557c382ecd84e659ab52)
Joel E. Denny [Tue, 15 Dec 2009 23:56:52 +0000 (18:56 -0500)]
autoconf: update to latest for fix of M4 detection.
Reported by Eric Blake.
* submodules/autoconf: Update.
(cherry picked from commit
c843aaab352ab1f40c7d218fb5bb2c6fd6fd3a88)
Joel E. Denny [Tue, 15 Dec 2009 05:15:41 +0000 (00:15 -0500)]
portability: use -DGNULIB_POSIXCHECK.
Reported by Eric Blake. See discussions at
<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00008.html>
and
<http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00108.html>.
* HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
* bootstrap.conf (gnulib_modules): Add all the printf modules
suggested by -DGNULIB_POSIXCHECK. Add realloc-posix as
suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
(excluded_files): Remove m4/printf-posix.m4.
* tests/atlocal.in (LIBS): As for LDADD in src/Makefile.am, add
lib/libbison.a so gnulib libraries can be linked.
(cherry picked from commit
5c99151aeb4396bf35b482e27075948c33088afa)
Conflicts:
lib/.cvsignore
lib/.gitignore
m4/.cvsignore
m4/.gitignore
Joel E. Denny [Mon, 14 Dec 2009 23:04:57 +0000 (18:04 -0500)]
Enable assertion output and --disable-assert for configure.
* bootstrap.conf (gnulib_modules): Add assert module.
* src/system.h (aver): Define as assert, and summarize the
discussion on this issue.
(cherry picked from commit
ca01f454f01645533622a59ef0df335ee07679e5)
Joel E. Denny [Mon, 14 Dec 2009 21:04:00 +0000 (16:04 -0500)]
Expand GLR acronym in summary of Bison.
Based on discussion with Akim Demaille starting at
<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00087.html>.
* doc/bison.texinfo (Introduction): Here.
* src/getargs.c (usage): Here.
Alex Rozenman [Sat, 14 Nov 2009 20:06:26 +0000 (22:06 +0200)]
Document named references.
* doc/bison.texinfo (Actions): Add new example and xref to
Using Named References node.
(Using Named References): New node.
Joel E. Denny [Fri, 16 Oct 2009 23:27:12 +0000 (19:27 -0400)]
cleanup.
* src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
of char*.
(Sbitset__isEmpty): Use Sbitset instead of char*.
* src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
instead of char. This helps to avoid casting errors.
(Sbitset__or): Use Sbitset instead of char*.
(cherry picked from commit
5297ebb3bcdf4f957bdab9c5535c2c9c47f7dc07)
Joel E. Denny [Fri, 16 Oct 2009 23:20:43 +0000 (19:20 -0400)]
portability: don't assume 8-bit bytes.
That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
* src/Sbitset.h (Sbitset__nbytes): Here.
(Sbitset__byteAddress): Here.
(Sbitset__bit_mask): Here.
(Sbitset__last_byte_mask): Here.
(Sbitset__ones): Here.
(SBITSET__FOR_EACH): Here.
(cherry picked from commit
175620d3c65209ce72e451bd75756f6bb67e33a1)
Joel E. Denny [Sun, 11 Oct 2009 20:15:39 +0000 (16:15 -0400)]
portability: use va_start and va_end in the same function.
* src/complain.c (error_message): Move va_end from here...
(ERROR_MESSAGE): ... to here.
(cherry picked from commit
786578e394700615f6a841614e1280bf6284ec8c)
Joel E. Denny [Thu, 8 Oct 2009 21:08:01 +0000 (17:08 -0400)]
* data/bison.m4: Update comments for rename to muscle-tab.h.
Joel E. Denny [Thu, 8 Oct 2009 20:58:22 +0000 (16:58 -0400)]
Rename muscle_tab.* to muscle-tab.* for consistency with
* src/Makefile.am (bison_SOURCES): Update.
* src/getargs.c, src/ielr.c, src/lalr.c, src/main.c,
src/output.c, src/parse-gram.y, src/print.c, src/reader.c,
src/tables.c: Update include.
* src/muscle_tab.c, src/muscle_tab.h: Rename to...
* src/muscle-tab.c, src/muscle-tab.h: ... these and update
include.
Joel E. Denny [Thu, 8 Oct 2009 03:09:43 +0000 (23:09 -0400)]
Minor code cleanup.
* src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
replace all uses with UNIQSTR_CONCAT.
* src/uniqstr.c (uniqstr_vsprintf): New function.
* src/uniqstr.h (uniqstr_vsprintf): Add prototype.
(UNIQSTR_CONCAT, UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): New
macros.
(cherry picked from commit
10659d0ec997368fe57712a7c564795c530ba0c2)
Conflicts:
src/muscle_tab.c
Joel E. Denny [Mon, 5 Oct 2009 03:44:44 +0000 (23:44 -0400)]
Minor code cleanup.
* src/parse-gram.y: Clean up sorting of declarations.
Use types to simplify %printer declarations where possible.
Provide %printer for BRACKETED_ID and symbol.prec.
* src/symtab.c: Whitespace change.
(cherry picked from commit
b143f4048fe39451ec739d956b4ca1f4fd8e694d)
Conflicts:
src/parse-gram.c
src/parse-gram.h
src/parse-gram.y
Joel E. Denny [Mon, 5 Oct 2009 02:59:18 +0000 (22:59 -0400)]
tests: skip tests of file names that platform does not support.
Reported by Michael Raskin at
<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00001.html>.
* THANKS (Michael Raskin): Add.
* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Fix. Cygwin used
to fail at least for file names containing ":" or "\".
(cherry picked from commit
2ceb8c617cac934b45f101ab44508d72239c894b)
Joel E. Denny [Wed, 23 Sep 2009 21:54:04 +0000 (17:54 -0400)]
yysyntax_error: avoid duplicate lookahead collection.
Except when memory reallocation is required, this change
eliminates the need to invoke yysyntax_error twice and thus to
repeat the collection of lookaheads. It also prepares for
future extensions that will make those repetitions more
expensive and that will require additional memory management in
yysyntax_error. Finally, it fixes an obscure bug already
exercised in the test suite.
* data/yacc.c (yysyntax_error): Add arguments for message
buffer variables stored in the parser. Instead of size, return
status similar to yyparse status but indicating success of
message creation. Other than the actual reallocation of the
message buffer, import and clean up memory management code
from...
(yyparse, yypush_parse): ... here.
* tests/regression.at (%error-verbose overflow): No longer an
expected failure.
(cherry picked from commit
45319f1365eb8d125424f31401d9d33cc02ff4ad)
Conflicts:
src/parse-gram.c
src/parse-gram.h
Joel E. Denny [Wed, 23 Sep 2009 21:53:15 +0000 (17:53 -0400)]
yysyntax_error: test memory management more.
* tests/atlocal.in (NO_WERROR_CFLAGS): New cpp macro.
* tests/regression.at (%error-verbose and YYSTACK_USE_ALLOCA):
New test group.
(%error-verbose overflow): New test group that reveals an
obscure bug. Expected fail for now.
(cherry picked from commit
52cea04ad36abf3ab684b88cba45d6c26dda80c9)
Akim Demaille [Wed, 10 Dec 2008 23:59:13 +0000 (00:59 +0100)]
Pass the token type to yysyntax_error.
* data/yacc.c (yysyntax_error): Take the transated token instead
of the raw number.
Adjust callers.
(cherry picked from commit
84eedf86fefd2496f288e72731bd0586e0b216f3)
Conflicts:
TODO
Akim Demaille [Wed, 10 Dec 2008 23:59:13 +0000 (00:59 +0100)]
Simplify the i18n of the error messages.
* data/yacc.c (yysyntax_error): Rewrite, using a switch instead
of building dynamically the format string.
(cherry picked from commit
eeb29422377c730846f784716f22be1759491bcf)
Conflicts:
data/lalr1.cc
Joel E. Denny [Sat, 3 Oct 2009 15:53:05 +0000 (11:53 -0400)]
Remove dead code.
* src/symtab.c (symbol_pack): Here because every symbol's number
is always defined by this time.
(cherry picked from commit
f74d6d25914371ed894583a69f99d547f9f283bf)
Alex Rozenman [Sat, 3 Oct 2009 16:29:14 +0000 (18:29 +0200)]
Add additional space after periods in NEWS.
* NEWS (2.5): here.
Joel E. Denny [Tue, 29 Sep 2009 10:54:38 +0000 (06:54 -0400)]
Use the correct conversion specifier for size_t.
Reported by Jim Meyering.
* src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
because Sbitset__Index is size_t.
* src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
(cherry picked from commit
47eced3099712180364f4e01b839242027d9a9d8)
Joel E. Denny [Sun, 27 Sep 2009 18:37:00 +0000 (14:37 -0400)]
tests: don't abuse AT_BISON_CHECK.
* tests/regression.at (parse-gram.y: LALR = IELR): Move
additional shell commands outside of AT_BISON_CHECK.
(cherry picked from commit
d8f68fc29536fa1c1e7b1b200b1e8088762c3e93)
Conflicts:
tests/regression.at
Joel E. Denny [Sat, 26 Sep 2009 18:49:20 +0000 (14:49 -0400)]
tests: check that parse-gram.y's IELR and LALR are identical.
* tests/atlocal.in (abs_top_srcdir): New shell variable.
* tests/regression.at (parse-gram.y: LALR = IELR): New test
group.
(cherry picked from commit
43aabb70a95ecbd20c76797c53554641c3576db4)
Akim Demaille [Wed, 16 Sep 2009 20:11:33 +0000 (22:11 +0200)]
doc: comment changes.
* doc/bison.texinfo: Comment changes.
(cherry picked from commit
6b5a0de9600b9112f58ddeb98aa0fe354077ffd4)
Conflicts:
doc/bison.texinfo
Akim Demaille [Wed, 16 Sep 2009 20:18:57 +0000 (22:18 +0200)]
doc: spell checking.
* doc/bison.texinfo: here.
(cherry picked from commit
f50bfcd6a1750507926dd33bdd37baa8e0eda16d)
Conflicts:
doc/bison.texinfo
Alex Rozenman [Sat, 19 Sep 2009 09:59:33 +0000 (12:59 +0300)]
Keep sub-messages aligned. Fix strings for translation.
* src/location.h: (location_print): Add return value.
* src/location.c: (location_print): Return number of printed
characters.
* src/complain.h: Two new functions (complain_at_indent,
warn_at_indent).
* src/complain.cpp: Implement the alignment mechanism. Add new
static variable (indent_ptr). Use and update it (error_message,
complain_at_indent, warn_at_indent).
* src/scan-code.l: Fix strings for translations. Use new *_indent
functions (parse_ref, show_sub_messages).
* tests/named-ref.at: Adjust testcases.
* NEWS (2.5): Add an announcement about named references.
Joel E. Denny [Sun, 13 Sep 2009 17:45:05 +0000 (13:45 -0400)]
tests: clean up push.at test group titles.
* tests/push.at: Remove "Push Parsing: " from test group titles
because these are already under the banner "Push Parsing Tests".
(cherry picked from commit
00d80a9cedbffda49212c0cdb90e90c27a561bb2)
Alex Rozenman [Sat, 12 Sep 2009 08:48:56 +0000 (11:48 +0300)]
Provide an additional sub-message for clarity.
Add "symbol not found in production" error message when
an "invalid reference" is detected in named references
resolution.
* src/scan-code.l: Update "invalid reference" case.
* tests/named-ref.at: Adjust test-cases.
Joel E. Denny [Sun, 6 Sep 2009 20:59:04 +0000 (16:59 -0400)]
Clean up yacc.c a little.
* data/yacc.c: Clean up M4 for readability, and make output
whitespace more consistent. For the main parse function
comment, instead of saying "yyparse or yypush_parse", say either
"yyparse" or "yypush_parse" depending on which it actually is.
(cherry picked from commit
bb31eb56abd67c0ccf92244d160855ff06a336ac)
Conflicts:
src/parse-gram.c
src/parse-gram.h
Joel E. Denny [Thu, 3 Sep 2009 20:04:10 +0000 (16:04 -0400)]
Complain about unused %define variables and %code qualifiers.
* NEWS (2.5): Document.
* data/bison.m4 (b4_check_user_names): Complain instead of warn.
* doc/bison.texinfo (Decl Summary): Document complaint, and
improve %define documentation a little otherwise.
* tests/input.at (Reject unused %code qualifiers): Update.
(%define errors): Update.
(%define, --define, --force-define): Update.
(%define backward compatibility): Update.
(Unused %define api.pure): Update.
* tests/push.at (Push Parsing: Unsupported Skeletons): Update.
(cherry picked from commit
c6abeab182fed54a2068fd75978a97f9c09d9da7)
Conflicts:
ChangeLog
Joel E. Denny [Thu, 3 Sep 2009 17:59:07 +0000 (13:59 -0400)]
Use aver not assert.
* src/output.c: Don't include assert.h.
(output_skeleton): Use aver not assert.
* src/system.h (aver): In documentation of why, add links to
Paul Eggert's explanations in the mailing lists.
(cherry picked from commit
9789acf09124eb5ffbe5f0737261aec91b32ebd4)
Alex Rozenman [Sat, 5 Sep 2009 10:16:45 +0000 (13:16 +0300)]
Use "Unresolved reference" error message when no symbols were found
in a symbolic reference resolution. Remove .expr and -expr from
the shown reference when the reference is unresolved.
* src/scan-code.l: Change the error message, adjust location columns,
rename variable "exact_mode" to "explicit_bracketing".
* tests/named-ref.at: Adjust existing tests and add a new one.
Akim Demaille [Thu, 3 Sep 2009 09:03:14 +0000 (11:03 +0200)]
NEWS: Internationalization.
* NEWS (2.4.2): Add "Internationalization" item.
(cherry picked from commit
2755de8fec58b581faed33f76a23eeb681e2edc5)
Akim Demaille [Thu, 3 Sep 2009 08:50:32 +0000 (10:50 +0200)]
bootstrap: fix/improve find_tool.
* bootstrap (find_tool): Improve error messages.
Fix typo about find_tool_names.
(cherry-picked from
1deef26d0ca3df3d1c845a8cf41fc0cdef009d79).
Joel E. Denny [Sat, 29 Aug 2009 20:25:58 +0000 (16:25 -0400)]
Fix gcc 3.4.4 shadowing warning reported by Eric Blake.
See
<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00093.html>.
* src/scan-code.h (code_props_rule_action_init): Rename
named_ref arg to name so it doesn't shadow named_ref type. This
makes it consistent with the function definition in scan-code.l
anyway.
(cherry picked from commit
2646cd540bfdd35f457e0e0a1bcc5f9b26a96849)
Joel E. Denny [Fri, 28 Aug 2009 18:31:10 +0000 (14:31 -0400)]
ChangeLog: Fix typo for commit f3749, but it's too late for git log.
Joel E. Denny [Fri, 28 Aug 2009 07:46:37 +0000 (03:46 -0400)]
%define: accept unquoted values.
* NEWS (2.5): Group all %define changes together, and document
this one. Remove quotes in IELR and canonical LR entry.
* doc/bison.texinfo: Remove quotes in most examples throughout.
(Decl Summary): Update %define documentation.
(Table of Symbols): Likewise.
* src/ielr.c (LrType): Update documentation.
* src/parse-gram.y (content.opt): Add production for ID.
* tests/calc.at: Likewise.
* tests/existing.at: Likewise.
* tests/input.at: Likewise.
* tests/local.at: Likewise.
* tests/push.at: Likewise.
* tests/reduce.at: Likewise.
* tests/torture.at: Likewise.
(cherry picked from commit
cf499cff31eabd04e37107484647bdd453137d1d)
Conflicts:
doc/bison.texinfo
src/parse-gram.c
src/parse-gram.h
tests/actions.at
tests/calc.at
Joel E. Denny [Fri, 28 Aug 2009 04:57:06 +0000 (00:57 -0400)]
%define lr.type: make values lowercase IDs.
That is, "LALR" => "lalr", "IELR" => "ielr", and
"canonical LR" => "canonical-lr".
* NEWS (2.5): Update documentation.
* doc/bison.texinfo (Decl Summary): Likewise.
* src/ielr.c (ielr): Use new values.
* src/ielr.h (ielr): Update documentation.
* src/reader.c (prepare_percent_define_front_end_variables): Use
and validate new values.
* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): Update test
grammars.
* tests/reduce.at (AT_TEST_LR_TYPE): Likewise.
(cherry picked from commit
6ba9640406758718fdcfb7a1154e58ce4d9b196c)
Eric Blake [Thu, 27 Aug 2009 16:56:53 +0000 (10:56 -0600)]
scan-gram: avoid portability trap with ctype usage.
* src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
Avoid compiler warning.
Signed-off-by: Eric Blake <ebb9@byu.net>
(cherry picked from commit
bbbbe221d7c2ff2fff88f7a0c8dbfee73f2e8a58)
Joel E. Denny [Thu, 27 Aug 2009 07:52:53 +0000 (03:52 -0400)]
tests: use perl for printing special sequences to files.
And skip tests if perl is not available. This is better than
playing tricks with shell portability. Suggested by Akim
Demaille.
* tests/input.at (Bad character literals): Use it here for
omitting final newlines.
(Bad escapes in literals): Use it here for special characters.
(cherry picked from commit
b70c7fb4e1db54e78d4f3d4a0f110a81118ffc60)
Joel E. Denny [Wed, 26 Aug 2009 18:15:53 +0000 (14:15 -0400)]
tests: show a use of %define lr.default-reductions "consistent"
* tests/conflicts.at (%nonassoc and eof): Extend to test that it
prevents the omission of expected tokens for %error-verbose.
(cherry picked from commit
d1cc31c5f04b81a3620fa291020ce23490f3f9e7)
Akim Demaille [Wed, 26 Aug 2009 09:53:18 +0000 (11:53 +0200)]
tests: portability fix.
* tests/input.at (Bad escapes in literals): Don't expect "echo
'\0'" to output \ then 0.
(cherry picked from commit
3bed3a757fef03bb063e210ed74918bb875fe2e1)
Joel E. Denny [Wed, 26 Aug 2009 06:40:38 +0000 (02:40 -0400)]
Actually handle the yytable zero value correctly this time.
* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Don't
mention zero values in the YYTABLE comments.
* data/glr.c (yytable_value_is_error): Don't check for zero
value.
* data/lalr1.cc (yy_table_value_is_error_): Likewise.
* data/yacc.c (yytable_value_is_error): Likewise.
* data/lalr1.java (yy_table_value_is_error_): Likewise.
(yysyntax_error): Fix typo in code: use yytable_ not yycheck_.
* src/tables.h: In header comments, explain why it's useless to
check for a zero value in yytable.
(cherry picked from commit
aa0cb40d61cda5bfa9d325a45735439cbbd06327)
Conflicts:
data/bison.m4
data/lalr1.java
Joel E. Denny [Tue, 25 Aug 2009 23:41:49 +0000 (19:41 -0400)]
More fixes related to last two patches.
* data/c.m4 (b4_table_value_equals): Comment that YYID must be
defined.
* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Fix
yytable comments: zero indicates syntax error not default
action.
* data/glr.c (yyis_pact_ninf): Rename to...
(yypact_value_is_default): ... this.
(yyisDefaultedState): Update for rename.
(yyis_table_ninf): Rename to...
(yytable_value_is_error): ... this, and check for value zero
besides just YYTABLE_NINF.
(yygetLRActions): Check for default value from yypact. It
appears that this check is always performed before this function
is invoked, and so adding the check here is probably redundant.
However, the code may evolve after this subtlety is forgotten.
Also, update for rename to yytable_value_is_error. Because that
macro now checks for zero, a different but equivalent branch of
the if-then-else here is evaluated.
(yyreportSyntaxError): Update for rename to
yytable_value_is_error. The zero condition was mishandled
before.
(yyrecoverSyntaxError): Update for renames. No behavioral
changes.
* data/lalr1.cc, data/lalr1.java (yy_pact_value_is_default_):
New function.
(yy_table_value_is_error_): New function.
(parse): Use new functions where possible. No behavioral
changes.
(yysyntax_error_, yysyntax_error): Use yy_table_value_is_error_.
The zero condition was mishandled before.
* data/yacc.c (yyis_pact_ninf): Rename to...
(yypact_value_is_default): ... this.
(yyis_table_ninf): Rename to...
(yytable_value_is_error): ... this, and check for value zero
besides just YYTABLE_NINF.
(yysyntax_error): Update for rename to yytable_value_is_error.
The zero condition was mishandled before.
(yyparse): Update for renames. No behavioral changes.
* src/tables.h: Improve comments about yypact, yytable, etc.
more. Most importantly, say yytable value of zero means syntax
error not default action.
(cherry picked from commit
f2b30bdf3713e6fa9fafd0fc6caed68e38248ebc)
Conflicts:
data/bison.m4
data/lalr1.cc
data/lalr1.java
data/yacc.c
src/parse-gram.c
src/parse-gram.h
Joel E. Denny [Tue, 25 Aug 2009 05:13:02 +0000 (01:13 -0400)]
Fix %error-verbose for conflicts resolved by %nonassoc.
* NEWS (2.5): Document.
* data/glr.c (yyreportSyntaxError): Fix this by checking
yyis_table_ninf.
* data/yacc.c (yysyntax_error): Likewise.
* data/lalr1.cc (yysyntax_error_): Fix this by checking
yytable_ninf_.
* data/lalr1.java (yysyntax_error): Likewise.
* tests/conflicts.at (%nonassoc and eof): Update expected output
and remove FIXME.
(cherry picked from commit
53f036ce027289d3f5e70c88735b88aa6725381d)
Conflicts:
data/lalr1.cc
data/lalr1.java
src/parse-gram.c
src/parse-gram.h
Joel E. Denny [Tue, 25 Aug 2009 05:12:37 +0000 (01:12 -0400)]
Some code and documentation improvements.
* data/c.m4 (b4_table_value_equals): New macro to capture
some repeated code.
* data/glr.c (yyis_pact_ninf): Use it here.
(yyis_table_ninf): Likewise.
(yyreportSyntaxError): Improve internal comments.
* data/yacc.c (yyis_pact_ninf): New macro copied from glr.c.
Use it everywhere possible.
(yyis_table_ninf): Likewise.
(yysyntax_error): Improve internal comments.
* data/lalr1.cc (yysyntax_error_): Likewise.
* data/lalr1.java (yysyntax_error): Likewise.
* src/tables.h: Improve comments about yypact, yytable, etc.
(cherry picked from commit
87412882128fc3ae807f47db23884552f5841e74)
Conflicts:
data/lalr1.java
data/yacc.c
Joel E. Denny [Sat, 22 Aug 2009 00:09:54 +0000 (20:09 -0400)]
Use locale when quoting.
* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER): Use
quote rather than implementing quoting here.
(cherry picked from commit
e6c849d82a95be8a595c254cc3046cfae725f064)
Eric Blake [Thu, 20 Aug 2009 22:52:19 +0000 (16:52 -0600)]
Make previous patch more robust.
* src/output.c (ARRAY_CARDINALITY): New macro, copied from
argmatch.h.
(output_skeleton): Use it.
Suggested by Akim Demaille.
Signed-off-by: Eric Blake <ebb9@byu.net>
(cherry picked from commit
1266b636740f0c6719d8cc11a5d569084fa37009)
Eric Blake [Thu, 20 Aug 2009 15:48:49 +0000 (09:48 -0600)]
Import latest m4/m4.m4.
* submodules/autoconf: Update to autoconf 2.64.
* configure.ac (M4_GNU_OPTION): New define.
* src/output.c (output_skeleton): Use it to resolve FIXME.
* NEWS: Mention this.
Signed-off-by: Eric Blake <ebb9@byu.net>
(cherry picked from commit
b9ad39c1fb2482e1513cdf9800b31e71b7986b39)
Joel E. Denny [Thu, 20 Aug 2009 00:37:28 +0000 (20:37 -0400)]
Fix complaints about escape sequences.
Discussed starting at
<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00036.html>.
* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER):
For a \0 and similar escape sequences meaning the null
character, report an invalid escape sequence instead of an
invalid null character because the latter does not actually
appear in the user's input.
In all escape sequence complaints, don't escape the initial
backslash, and don't quote when the sequence appears at the end
of the complaint line unless there's whitespace that quotearg
won't escape.
Consistently say "invalid" not "unrecognized".
Consistently prefer "empty character literal" over "extra
characters in character literal" warning for invalid escape
sequences; that is, consistently discard those sequences.
* tests/input.at (Bad escapes in literals): New.
(cherry picked from commit
c2724603c9d87e816dbdf1a9bfd7d70ffc1bd137)
Akim Demaille [Wed, 19 Aug 2009 12:51:50 +0000 (14:51 +0200)]
doc: fixes.
* doc/bison.texinfo: Fix minor Texinfo errors.
(cherry picked from commit
17aed602c6780058fe591e871c97f19d6a14d57a)
Akim Demaille [Wed, 19 Aug 2009 11:34:48 +0000 (13:34 +0200)]
doc: %initial-action to initialize yylloc.
Reported by Bill Allombert.
* doc/bison.texinfo: Set fill-column to 76.
(Location Type): Document the use of %initial-action to initialize
yylloc.
(cherry picked from commit
d59e456dbf5d9747e2fe0c0539f2ec670ce6f9c4)
Joel E. Denny [Tue, 18 Aug 2009 22:29:54 +0000 (18:29 -0400)]
maint: update for gnulib's recent update-copyright changes
* gnulib: Update.
* .x-update-copyright (COPYING): Add as it's no longer implied
when .x-update-copyright is present.
* cfg.mk (update-copyright-local): Remove, now ignored.
(update-copyright): Declare update-b4-copyright as a dependency.
(cherry picked from commit
c67e466f9d4f63d360d82dc23b9bfffb4d846209)
Akim Demaille [Mon, 17 Aug 2009 08:51:08 +0000 (10:51 +0200)]
build: require gettext 0.17.
Suggested by Bruno Haible.
http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00009.html
* configure.ac: require gettext 0.17 to ensure compatibility with
gnulib.
(cherry picked from commit
af6d23584362436f19baadc311987b65849ce024)
Akim Demaille [Mon, 17 Aug 2009 07:22:41 +0000 (09:22 +0200)]
build: lower gettext requirements.
Bison was uselessly requiring the formatstring macros from
gettext, which resulted in mo files not being installed on systems
that perfectly supported Bison mo files. Lower the requirement.
http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html
* configure.ac: Require need-ngettext instead of
need-formatstring-macros.
Reported by Martin Jabocs.
Suggested by Bruno Haible.
* INSTALL: Restructure.
(Internationalization): New.
(cherry picked from commit
b9e42bb439643b6b193ba44696c370bbb35d2ec0)
Joel E. Denny [Fri, 14 Aug 2009 21:05:06 +0000 (17:05 -0400)]
maint: fix use of copyright year intervals.
* gnulib: Update.
* bootstrap.conf (gnulib_modules): Update getopt to getopt-gnu
as now recommended in gnulib/NEWS.
* build-aux/update-b4-copyright: Fix.
* cfg.mk (update-copyright-env): Configure update-copyright.
(cherry picked from commit
75ac158b82be1fab5157b140287368165a50ec82)
Joel E. Denny [Sun, 9 Aug 2009 00:19:01 +0000 (20:19 -0400)]
Make it easier to write deterministic tests.
Continues Akim's work from his 2009-06-10 commits.
* src/reader.c (check_and_convert_grammar): Don't add any
symbols after the first symbols_do invocation.
* src/symtab.c (symbols_sorted): New static global.
(user_token_number_redeclaration): Update comments.
(symbol_from_uniqstr): If a new symbol is being created, assert
that symbols_sorted hasn't been allocated yet.
(symbols_free): Free symbols_sorted.
(symbols_cmp, symbols_cmp_qsort): New functions.
(symbols_do): Sort symbol_table into symbols_sorted on first
invocation.
* tests/input.at (Numbered tokens): Recombine tests now that the
output should be deterministic across multiple numbers.
(cherry picked from commit
83b60c97ee1f98bb1f15ffa38acdc4cc765515f5)
Akim Demaille [Wed, 1 Jul 2009 10:19:18 +0000 (12:19 +0200)]
distcheck: fix.
* examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
(cherry picked from commit
67af719840616ed07ca120b8255a998f4533ce17)
Joel E. Denny [Tue, 11 Aug 2009 03:39:43 +0000 (23:39 -0400)]
* tests/Makefile.am (TESTSUITE_AT): Add named-refs.at.
Joel E. Denny [Tue, 11 Aug 2009 01:43:07 +0000 (21:43 -0400)]
Miscellaneous code readability improvements.
* src/reader.c (reader): Move %define front-end variable
defaults and checking into...
(prepare_percent_define_front_end_variables): ... this new
function.
* src/scan-gram.l (INITIAL): For consistency with string
literals, don't store open quote on character literal. It's
discarded before returning anyway.
(SC_ESCAPED_CHARACTER): Similarly, don't store close quote.
Make length test more readable, and make the character stored
for an empty literal more obvious while consistent with the
previous behavior.
* src/symtab.c, src/symtab.h: Rename USER_NUMBER_ALIAS to
USER_NUMBER_HAS_STRING_ALIAS throughout.
* src/symtab.c (symbol_make_alias): Remove comment from symtab.c
that is repeated in symtab.h. Improve argument names to make it
clear which side of the symbol-string alias pair is which.
(symbol_check_alias_consistency): Improve local variable names
for the same purpose.
* src/symtab.h (struct symbol): Make comments about aliases
clearer.
(symbol_make_alias): Improve comments and argument name.
* src/output.c (token_definitions_output): Update for rename to
USER_NUMBER_HAS_STRING_ALIAS and improve comments about aliases.
(cherry picked from commit
dfaa48602d4e6d329e3ae9063f44929490928b3d)
Conflicts:
src/symtab.c
src/symtab.h
Alex Rozenman [Sat, 8 Aug 2009 15:10:23 +0000 (18:10 +0300)]
Convert "misleading reference" messages to warnings.
* src/scan-code.l: New function 'show_sub_messages', more
factoring.
* tests/named-ref.at: Adjust tests.
Joel E. Denny [Thu, 6 Aug 2009 23:15:28 +0000 (19:15 -0400)]
maint: run "make update-copyright"
Joel E. Denny [Thu, 6 Aug 2009 15:34:09 +0000 (11:34 -0400)]
maint: make update-b4-copyright easier to use
* build-aux/update-b4-copyright: In warnings, report line
numbers rather than character positions.
* cfg.mk (update-copyright-local): Set to update-b4-copyright so
that update-copyright runs it.
* gnulib: Update.
(cherry picked from commit
a1a9422d4a2f70ff89e06318ba154851c3700f60)
Joel E. Denny [Wed, 5 Aug 2009 23:52:41 +0000 (19:52 -0400)]
maint: clean up update-b4-copyright code
* build-aux/update-b4-copyright: Do not accept 2-digit
UPDATE_COPYRIGHT_YEAR, which was not handled correctly.
Don't accept a `[' in a b4_copyright argument.
Format code more consistently.
Don't assume b4*copyright never occurs.
(cherry picked from commit
0b61a8ec1842bfbd6130714d06b758165b32ead4)
Joel E. Denny [Tue, 4 Aug 2009 22:06:20 +0000 (18:06 -0400)]
maint: automate b4_copyright updates.
* Makefile.am (update-b4-copyright): New target rule.
* build-aux/Makefile.am (EXTRA_DIST): Add update-b4-copyright.
* build-aux/update-b4-copyright: New.
* data/yacc.c: Remove stray characters around b4_copyright
invocations.
(cherry picked from commit
269e222e24b03ccc4ab7881d960750ddeb131b05)
Conflicts:
build-aux/local.mk
data/yacc.c
Joel E. Denny [Thu, 30 Jul 2009 21:12:10 +0000 (17:12 -0400)]
maint: automate annual package-wide copyright-year update.
* .x-update-copyright: New.
* Makefile.am (EXTRA_DIST): Remove maint.mk.
* bootstrap.conf (gnulib_modules): Add maintainer-makefile and
update-copyright. Remove gnumakefile, which is implied by
maintainer-makefile.
* cfg.mk (bootstrap-tools): Copy from old maint.mk.
* gnulib: Update.
* maint.mk: Remove, now copied from gnulib.
* examples/extexi: Add missing "(C)" in copyright statement so
update-copyright can recognize it.
* src/LR0.h: Likewise.
* src/print.h: Likewise.
* src/print_graph.h: Likewise.
* src/named-ref.c: Likewise.
* src/named-ref.h: Likewise.
* src/gram.c: Add missing comma in copyright statement.
* src/gram.h: Likewise.
(cherry picked from commit
50bcb22c4cda30353f44930b0a29519609527408)
Conflicts:
gnulib
src/gram.c
Joel E. Denny [Tue, 4 Aug 2009 18:48:48 +0000 (14:48 -0400)]
Fix "make distcheck".
* examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead
of just calc.stamp.
(cherry picked from commit
cfc9e431c31f7f7291dd16a4a505d6a41e662d0c)
Joel E. Denny [Sat, 1 Aug 2009 21:51:34 +0000 (17:51 -0400)]
Pacify "gcc -Wunused" for the input function from Flex.
Reported by Alex Rozenman. This warning shows up with gcc-4.3.0
and later.
* src/scan-code.l: Add "%option noinput", which I cannot find in
the Flex manual, but which Flex has supported since at least as
far back as 2.5.4. However, if any of our developers still use
Flex 2.5.4, they'll need to stop configuring with
--enable-gcc-warnings because "%option noinput" didn't work
correctly until Flex 2.5.6.
* src/scan-gram.l: Likewise.
* src/scan-skel.l: Likewise.
(cherry picked from commit
42f8609bbd033edf6cca102ca080eade94ed08ef)
Alex Rozenman [Fri, 31 Jul 2009 19:36:18 +0000 (22:36 +0300)]
Fix mail address in ChangeLog.
Alex Rozenman [Fri, 31 Jul 2009 19:23:23 +0000 (22:23 +0300)]
Fix --enable-gcc-warnings problems.
* src/reader.c: Adjust variable names.
* src/scan-code.l: Fix prototypes and adjust names.
* src/named-ref.c: Remove redundant "if".
Joel E. Denny [Wed, 29 Jul 2009 17:47:02 +0000 (13:47 -0400)]
Fix a --enable-gcc-warnings problem.
* src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
variable.
Alex Rozenman [Fri, 24 Jul 2009 18:04:16 +0000 (21:04 +0300)]
Fix some memory leaks.
* src/named-ref.c: Add a pointer check (named_ref_free).
* src/scan-code.l: New function (variant_table_free). Called in
code_scanner_free.
* src/symlist.c: Call to named_ref_free (symbol_list_free).
Joel E. Denny [Fri, 24 Jul 2009 14:29:07 +0000 (10:29 -0400)]
Warn about character literals not of length one.
* NEWS (2.5): Document.
* src/scan-gram.l (INITIAL): Remove comment that we don't check
the length.
(SC_ESCAPED_CHARACTER): Warn if length is wrong.
* tests/input.at (Bad character literals): New test group.
Joel E. Denny [Fri, 24 Jul 2009 13:59:42 +0000 (09:59 -0400)]
* src/lalr.c (state_lookahead_tokens_count): Correct comment.
Joel E. Denny [Wed, 22 Jul 2009 19:06:49 +0000 (15:06 -0400)]
Some M4 cleanup in the testsuite.
Suggested by Eric Blake at
<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00083.html>.
* tests/existing.at (_AT_TEST_EXISTING_GRAMMAR): Do not
complicate the code by distinguishing between a missing value
and an empty string value for an optional argument. This fix is
allowed by the similar fix in AT_TEST_TABLES_AND_PARSE below.
* tests/local.at (_AT_TEST_TABLES_AND_PARSE): Merge into...
(AT_TEST_TABLES_AND_PARSE): ... this now that the special
arguments are not needed because of the following changes.
Fix stale comments.
Bison developers should use GNU M4 and should not use
POSIXLY_CORRECT when building the test suite, so do not
complicate the code by avoiding $10 and above.
Do not quote an empty string value for an optional argument, and
do not distinguish between a missing value and an empty string
value.
Joel E. Denny [Tue, 21 Jul 2009 18:10:54 +0000 (14:10 -0400)]
* m4/m4.m4: Make it a sym link to submodules/autoconf/m4/m4.m4.
Joel E. Denny [Wed, 15 Jul 2009 08:21:00 +0000 (04:21 -0400)]
Revert unnecessary column realignment in --help output.
Reported by Akim Demaille at
<http://lists.gnu.org/archive/html/bison-patches/2009-06/msg00010.html>.
* src/getargs.c (usage): Here.
Alex Rozenman [Sat, 4 Jul 2009 19:59:29 +0000 (22:59 +0300)]
Alphabetical order in src/Makefile.am.
* src/Makefile.am: Adjust.
Alex Rozenman [Sat, 4 Jul 2009 19:17:09 +0000 (22:17 +0300)]
Regen.
Alex Rozenman [Sat, 4 Jul 2009 19:16:17 +0000 (22:16 +0300)]
Style changes and factoring.
* src/named-ref.h: Add comments.
* src/parse-gram.y: Readability and style changes.
* src/reader.c: Factoring: assign_named_ref function.
* src/scan-code.l: Factoring and style changes. Rename
parse_named_ref to parse_ref. Use "c-ctype.h" from gnulib.
Use "unsigned" type for variant index. Improve readablity.
* src/scan-gram.l: Change error messages and add comments.
* src/symlist.h: symbol_list_null: New function decl.
* src/symlist.c: symbol_list_null: Implement here.
* tests/named-refs.at: Adjust for new error messages.
Eric Blake [Mon, 29 Jun 2009 14:34:21 +0000 (08:34 -0600)]
scan-code: avoid compiler warnings
* src/scan-code.l (parse_named_ref): Use correct specifiers.
Signed-off-by: Eric Blake <ebb9@byu.net>
Akim Demaille [Mon, 29 Jun 2009 13:02:48 +0000 (15:02 +0200)]
build: avoid concurrent extraction of calc++.
* examples/calc++/Makefile.am (calc.stamp): New.
Depend on it to create the sources of calc++ so that concurrent
builds don't launch several "extexi" in parallel.
Not only this is inefficient, this also builds incorrect sources
with several extractions mixed together.
Cherry-picked from
5ece73eaa19c79d5dd40b36a2a7d38cb397c2fcd.
Alex Rozenman [Sat, 27 Jun 2009 20:45:54 +0000 (23:45 +0300)]
Regen.
Alex Rozenman [Sat, 23 May 2009 15:48:03 +0000 (18:48 +0300)]
Named symbol references.
Discussed in:
http://lists.gnu.org/archive/html/bison-patches/2009-01/msg00000.html
http://lists.gnu.org/archive/html/bison-patches/2009-02/msg00002.html
http://lists.gnu.org/archive/html/bison-patches/2009-03/msg00009.html
* src/parse-gram.y: Add new syntax (named_ref.opt).
* src/reader.c: Store named refs in symbol lists.
* src/reader.h: New argument for symbol_append and
action_append functions.
* src/scan-code.h: Add new field (named_ref) into
code_props data structure. Keeps named ref of midrule
actions.
* src/scan-code.l: Support for named refs in semantic
action code. New function 'parse_named_ref'.
* src/scan-gram.l: Support bracketed id.
* src/symlist.c: Store named refs in symbol lists.
* src/symlist.h: New field in symbol list: named_ref.
* src/named-ref.h: New file, a struct for named_ref.
* src/named-ref.c: New file, named_ref_new function.
* src/Makefile.am: Add two new files.
* tests/testsuite.at: Include new test group:
* tests/named-refs.at: this new file.
Akim Demaille [Thu, 25 Jun 2009 04:03:18 +0000 (06:03 +0200)]
hash: check insertion for memory exhaustion.
* src/uniqstr.c (uniqstr_new): New.
Akim Demaille [Thu, 11 Jun 2009 12:50:25 +0000 (14:50 +0200)]
style changes.
* data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
* src/print-xml.c: Style changes.
* tests/conflicts.at: Comment changes.
Akim Demaille [Thu, 11 Jun 2009 12:45:10 +0000 (14:45 +0200)]
xml: beware of user strings used to give a %prec to rules.
* tests/conflicts.at (%prec with user strings): New.
* src/gram.c (grammar_rules_print_xml): Escape the precedence for
XML output.
Akim Demaille [Thu, 11 Jun 2009 12:42:12 +0000 (14:42 +0200)]
hash: check insertion for memory exhaustion.
* src/muscle-tab.c (muscle_insert, muscle_grow)
* src/state.c (state_hash_insert): Check the return value of
hash_insert.
Akim Demaille [Thu, 11 Jun 2009 13:24:13 +0000 (15:24 +0200)]
gnulib: update.
Akim Demaille [Wed, 10 Jun 2009 18:14:52 +0000 (20:14 +0200)]
deterministic test suite.
Some consistency checks on symbols are performed after all the
symbols were read, by an iteration over the symbol table. This
traversal is nondeterministic, which can be a problem for test
cases.
Avoid this.
Addresses another form of nondeterminism reported by Joel E. Denny.
http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
* tests/input.at (Numbered tokens): Split the hexadecimal/decimal
test in two.
Use different file names for the three tests to make the
maintenance easier.
Akim Demaille [Wed, 3 Jun 2009 21:15:38 +0000 (23:15 +0200)]
deterministic user-token-number redeclaration errors.
Address nondeterminism reported by Joel E. Denny.
http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
* src/uniqstr.h: Comment changes.
* src/location.h (boundary_cmp, location_cmp): New.
* src/symtab.c (user_token_number_redeclaration): New.
(symbol_translation): Use it.
* tests/input.at (Numbered tokens): Adjust the expected output.