X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/9289898605f2a7f68236741748ded7fd29123048..5348bfbe2923560fe0e03a486466a738a392626c:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index bedd2c3c..a59c0ca3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,885 @@
+2003-08-25  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc (Parser::reduce_print_): New.
+	Use it.
+
+2003-08-25  Akim Demaille  <akim@epita.fr>
+
+	Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
+	error recovery loops.  This patch is based on
+	<http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
+	Also, augment the similarity between lalr1.cc and yacc.c.
+	Note: the locations of error recovery rules are not correct yet.
+
+	* data/lalr1.cc: Comment changes to augment the similarity between
+	lalr1.cc and yacc.c.
+	(YYERROR): Goto to yyerrorlab, not yyerrlab1.
+	(yyerrlab1): Remove, but where it used to be (now the bottom part of
+	yyerrlab), when hitting EOF, pop the whole stack here instead of
+	merely falling thru the default error handling mechanism.
+	(yyerrorlab): New label, with the old contents of YYERROR,
+	plus the following change: pop the stack of rhs corresponding
+	to the production that invoked YYERROR.  That is how Yacc
+	behaves (required by POSIX).
+	* tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
+	fail.
+
+2003-08-25  Akim Demaille  <akim@epita.fr>
+
+	Tune local.at so that people can "autom4te -l autotest calc.at -o
+	calc" for instance, to extract a sub test suite.
+
+	* tests/testsuite.at: Move the initialization, Autotest version
+	requirement, and AT_TESTED invocation into...
+	* tests/local.at: here.
+	* tests/testsuite.at: Include it for compatibility with Autoconf
+	2.57.
+	* tests/Makefile.am ($(TESTSUITE)): Report that the warning should
+	be ignore.
+
+2003-08-04  Paul Eggert  <eggert@twinsun.com>
+
+	Rework code slightly to avoid gcc -Wtraditional warnings.
+	* data/glr.c (yyuserMerge): Return void, not YYSTYPE.
+	The returned value is now stored in *YY0.  All callers changed.
+	* src/output.c (merge_output): Adjust to the above change.
+
+2003-07-26  Paul Eggert  <eggert@twinsun.com>
+
+	* data/glr.c (YYASSERT): New macro.
+	(yyfillin, yydoAction, yyglrReduce, yysplitStack,
+	yyresolveStates, yyprocessOneStack):
+	Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
+	Derived from a suggestion by Frank Heckenbach.
+
+2003-07-25  Paul Eggert  <eggert@twinsun.com>
+
+	* data/glr.c (yyglrReduce): Don't use C89 string concatenation,
+	for portability to K&R C (after ansi2knr, presumably).  See
+	<http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
+	by Frank Heckenbach, though I have omitted the structure-initialization
+	part of his glr-knr.diff patch since I recall that the Portable
+	C Compiler didn't require that change.
+
+	Let the user specify how to allocate and free memory.
+	Derived from a suggestion by Frank Heckenbach in
+	<http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
+	* data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
+	All uses of free, malloc, realloc changed to use these macros,
+	and unnecessary casts removed.
+	* data/yacc.c (YYFREE, YYMALLOC): Likewise.
+
+2003-07-06  Matthias Mann  <MatthiasMann@gmx.de>
+
+	* data/lalr1.cc (operator<<(std::ostream&, const Position&)):
+	use s.empty() rather than s == "" to test for empty string; see
+	<http://mail.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
+	(trivial change)
+
+2003-06-25  Akim Demaille  <akim@epita.fr>
+
+	* config/depcomp, config/install-sh: Update from masters.
+
+2003-06-20  Paul Eggert  <eggert@twinsun.com>
+
+	* data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
+	and return properly parenthesized result.
+	* data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
+	* data/yacc.c (YYLLOC_DEFAULT): Likewise.
+	Remove unnecessary parentheses from uses.
+	* doc/bison.texinfo (Location Default Action): Describe the
+	conventions for parentheses.
+
+2003-06-19  Paul Eggert  <eggert@twinsun.com>
+
+	* data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
+	yyreportTree): Do not assume that size_t is the same width as int,
+	when printing sizes.  Print sizes using an unsigned format.
+	Problem reported by Frank Heckenbach in
+	<http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
+
+	Port to Forte Developer 7 C compiler.
+	* data/glr.c (struct YYLTYPE): If locations are not being used,
+	declare a single dummy member, as empty structs do not conform
+	to the C standard.
+	(YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
+	the Forte Developer 7 C compiler complains that end-of-loop
+	code is not reached.
+
+2003-06-17  Paul Eggert  <eggert@twinsun.com>
+
+	* lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
+	avoid warnings from picky compilers about redefinition of PARAMS.
+
+2003-06-17  Paul Eggert  <eggert@twinsun.com>
+
+	Version 1.875b.
+
+	* NEWS: Document 1.875b.
+
+	* lib/bbitset.h: Do not include config.h; that's the includer's job.
+	Do not include <sys/types.h>; shouldn't be needed on a C89 host.
+	* lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
+	Don't use 'index' in comments, as it's a builtin fn on some hosts.
+	* lib/bitset_stats.c: Include gettext.h unconditionally, as
+	per recent gettext manual's suggestion.
+	* lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
+	Use prototypes, not old-style definitions.
+	* lib/lbitset.c (lbitset_unused_clear): Likewise.
+	* lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
+	vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
+	vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
+	vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
+	vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
+	vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
+	vbitset_or_and_cmp, vbitset_copy): Likewise.
+
+	* lib/libiberty.h: Do not include config.h; that's the includer's job.
+	Do not include <stdlib.h>.
+	(PARAMS): Define unconditionally for C89.
+	(ATTRIBUTE_NORETURN): Remove.
+	(ATTRIBUTE_UNUSED): Define unconditionally.
+
+	Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
+	<http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
+	* lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
+	* lib/vbitset.c, lib/vbitset.h: New files.
+	* lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
+	lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
+	from libbitset.
+
+	* doc/bison.texinfo (How Can I Reset the Parser): Renamed from
+	`How Can I Reset @code{yyparse}', since texinfo does not allow
+	arbitrary @ in node names.
+
+	* m4/Makefile.am (EXTRA_DIST): Add the following files, which
+	shouldn't be needed according to the gettext 0.12.1 documentation
+	but which seem to be needed anyway: codeset.m4 glibc21.m4
+	intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
+	lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
+	* po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
+
+	* lib/.cvsignore: Add stdbool.h.
+	* m4/.cvsignore: Add nls.m4, po.m4.
+
+	Upgrade to CVS gnulib.
+	* stdbool_.h: File renamed from stdbool.h.in.
+	* configure.ac (AM_STDBOOL_H): Invoke this instead of
+	AC_HEADER_STDBOOL.
+	(AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
+	(AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
+	* lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
+	(MOSTLYCLEANFILES): New var.
+	($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
+	(stdbool.h): New rule.
+	* lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
+	lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
+	lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
+	m4/quote.m4: Upgrade to today's gnulib.
+
+	* tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
+	(AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
+	the tests right now.
+	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
+	yyerror are declared before use; C99 requires this.
+
+2003-06-09  Paul Hilfinger  <Hilfinger@CS.Berkeley.EDU>
+
+	* data/glr.c (YYERROR): Update definition to reset yyerrState to 0
+	first.
+	(yyrecoverSyntaxError): Correct the logic for setting and testing
+	yyerrState.
+	Correct comment on handling EOF.
+	Allow states with only a default reduction, rather than failing
+	(I can't quite reconstruct why these were not allowed before).
+
+	Fixes to avoid problem that $-N rules in GLR parsers can cause
+	buffer overruns, corrupting state.
+
+	* src/output.c (prepare_rules): Output max_left_semantic_context
+	definition.
+	* src/reader.h (max_left_semantic_context): New variable declaration.
+	* src/scan-gram.l (max_left_semantic_context): Define.
+	(handle_action_dollar): Update max_left_semantic_context.
+	* data/glr.c (YYMAXLEFT): New definition.
+	(yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
+	(yyresolveAction): Ditto.
+
+	Fixes to problems with location handling in GLR parsers reported by
+	Frank Heckenbach (2003/06/05).
+
+	* data/glr.c (YYLTYPE): Make trivial if locations not used.
+	(YYRHSLOC): Add parentheses, and define only if locations used.
+	(YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
+	locations not used.
+	(yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
+	(yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
+
+	* tests/cxx-type.at: Exercise location information; update tests
+	to differentiate output with and without locations.
+	Remove forward declarations of yylex and yyerror---caused errors
+	because default YYLTYPE not yet defined.
+	Change semantic actions to compute strings, rather than printing
+	them directly (to test proper passing of semantics values).  Change
+	output to prefix notation and update test data and expected results.
+	(yylex): Track locations.
+	(stmtMerge): Return value rather than printing, and include arguments
+	in value.
+
+2003-06-03  Paul Eggert  <eggert@twinsun.com>
+
+	Avoid warnings generated by GCC 2.95.4 when Bison is
+	configured with --enable-gcc-warnings.
+	* data/lalr1.cc (yy::]b4_parser_class_name[::parse,
+	yy::]b4_parser_class_name[::translate_,
+	yy::Stack::operator[] (unsigned),
+	yy::Stack::operator[] (unsigned) const,
+	yy::Slice::operator[] (unsigned),
+	yy::Slice::operator[] (unsigned) const):
+	Rename local vars to avoid warnings.
+	* tests/glr-regression.at (Improper handling of embedded actions
+	and $-N in GLR parsers): Remove unused local variable from yylex.
+	* tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
+	(void) as arg when not pure, since we now assume C89 when building
+	Bison.  Pacify GCC by using parameter.
+
+2003-06-02  Paul Eggert  <eggert@twinsun.com>
+
+	* data/lalr1.cc (yy::Position::lines, yy::Position::columns,
+	yy::Location::lines, yy::Location::columns): Rename arguments
+	to avoid shadowing; this removes a warning generated by GCC 3.3.
+
+2003-06-01  Paul Eggert  <eggert@twinsun.com>
+
+	Don't pass C-only warning optins (e.g., -Wmissing-declarations)
+	to g++, as GCC 3.3 complains if you do it.
+	* configure.ac (WARNING_CXXFLAGS): New subst.  Set it to
+	everything that WARNING_CFLAGS has, except omit warnings
+	not suitable for C++.
+	(AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
+	* tests/atlocal.in (CXXFLAGS): New var.
+	* tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
+
+	Fix a GLR parser bug I reported in February; see
+	<http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
+	The problem was that GLR parsers did not conform to the C standard,
+	because actions like { $1 = $2 + $3; } expanded to expressions
+	that invoked YYFILL in separate subexpressions, and YYFILL assigned
+	to a local variable.  The C standard says that expressions
+	like (var = f ()) + (var = f ()) have undefined behavior.
+	Another problem was that GCC sometimes issues warnings that
+	yyfill and its parameters are unused.
+
+	* data/glr.c (yyfillin): Renamed from the old yyfill.  Mark
+	as possibly unused.
+	(yyfill): New function.
+	(YYFILL): Use it.
+	(yyuserAction): Change type of yynormal to bool, so that it matches
+	the new yyfill signature.  Mark it as possibly unused.
+
+
+	Follow up on a bug I reported in February, where a Bison-generated
+	parser can loop.  Provide a test case and a fix for yacc.c.  I
+	don't have a fix for lalr1.cc or for glr.c, unfortunately.
+	The original bug report is in:
+	<http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
+
+	* data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
+	macro's size was becoming unwieldy.
+	(yyerrlab): Do not discard an empty lookahead symbol, as this
+	might destroy garbage.
+	(yyerrorlab): New label, with the old contents of YYERROR,
+	plus the following change: pop the stack of rhs corresponding
+	to the production that invoked YYERROR.  That is how Yacc
+	behaves, and POSIX requires this behavior.
+	(yyerrlab1): Use YYPOPSTACK instead of its definiens.
+	* tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
+	Define 'alarm' to do nothing if unistd.h is not available.
+	Add a new rule "exp: '-' error;" to test the above change to
+	data/yacc.c.  Use 'alarm' to abort any test taking longer than
+	10 seconds, as it's probably looping.
+	(AT_CHECK_CALC): Test recovery from error in new grammar rule.
+	Also, the new yacc.c generates two fewer diagnostics for an
+	existing test.
+
+2003-05-24  Paul Eggert  <eggert@twinsun.com>
+
+	* data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
+	YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
+	This fixes a problem reported by John Bowman when the Compaq/HP
+	Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
+	-ansi -Wall -gall).
+	* data/yacc.c (union yyalloc): Likewise.
+	(YYCOPY): Do not evaluate __GNUC__ unless it is defined.
+
+	Switch from 'int' to 'bool' where that makes sense.
+
+	* lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
+	abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
+	abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
+	abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
+	Return or accept bool, not int.  All callers changed.
+	* lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
+	bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
+	* lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
+	bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
+	bitset_or_and_cmp_): Likewise.
+	* lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
+	* lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
+	bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
+	bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
+	bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
+	bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
+	bitset_stats_or_and_cmp): Likewise.
+	* lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
+	ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
+	ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
+	ebitset_xor_cmp): Likewise.
+	* lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
+	lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
+	lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
+	lbitset_xor_cmp): Likewise.
+	* lib/bbitset.h: Include <stdbool.h>.
+	(struct bitset_vtable): The following members now return bool, not
+	int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
+	and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
+	or_and_cmp).
+	* src/conflicts.c (count_rr_conflicts): Likewise.
+	* lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
+	All uses changed.
+	* lib/ebitset.c (ebitset_obstack_init): Likewise.
+	* lib/lbitset.c (lbitset_obstack_init): Likewise.
+	* src/getargs.c (debug_flag, defines_flag, locations_flag,
+	no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
+	graph_flag): Likewise.
+	* src/getargs.h (debug_flag, defines_flag, locations_flag,
+	no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
+	graph_flag): Likewise.
+	* src/output.c (error_verbose): Likewise.
+	* src/output.h (error_verbose): Likewise.
+	* src/reader.c (start_flag, typed): Likewise.
+	* src/reader.h (typed): Likewise.
+	* src/getargs.c (LOCATIONS_OPTION): New constant.
+	(long_options, getargs): Use it.
+	* src/lalr.c (build_relations): Use bool, not int.
+	* src/nullable.c (nullable_compute): Likewise.
+	* src/print.c (print_reductions): Likewise.
+	* src/tables.c (action_row, pack_vector): Likewise.
+	* src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
+	* src/output.c (prepare): Use it.
+	* src/output.c (token_definitions_output,
+	symbol_destructors_output, symbol_destructors_output): Use string,
+	not boolean integer, to keep track of whether to output separator.
+	* src/print_graph.c (print_core): Likewise.
+	* src/state.c (state_rule_lookaheads_print): Likewise.
+
+	* config/install-sh: Sync from automake 1.7.5.
+
+2003-05-14  Paul Eggert  <eggert@twinsun.com>
+
+	* src/parse-gram.y (rules_or_grammar_declaration): Require a
+	semicolon after a grammar declaration, in the interest of possible
+	future changes to the Bison input language.
+	Do not allow a stray semicolon at the start of the grammar.
+	(rhses.1): Allow one or more semicolons after any rule, including
+	just before "|" as required by POSIX.
+	* tests/input.at (Torturing the Scanner): Add tests for ";|" in a
+	grammar.
+
+2003-05-14  Alexandre Duret-Lutz  <adl@gnu.org>
+
+	%parse-param support for lalr1.cc.
+
+	* data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
+	b4_cc_constructor_calls, b4_cc_constructor_call,
+	b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
+	definitions.
+	(yy::b4_parser_class_name::b4_parser_class_name): Take extra
+	parse-param arguments.
+	(yy::b4_parser_class_name): Declare instance variables to
+	hold parse-param arguments.
+	* tests/calc.at: s/value/semantic_value/ because value clashes
+	with a member of yy::b4_parser_class_name.  Adjust C++ code
+	to handle %parse-param.  Enable %parse-param test in C++.
+
+2003-05-12  Paul Eggert  <eggert@twinsun.com>
+
+	* doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
+	English a bit.  Fix fclose typo.  Change "const char" to "char
+	const", and use ANSI C rather than K&R for "main".  Suggest
+	YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
+	and suggest yy_switch_to_buffer.
+
+2003-05-05  Paul Eggert  <eggert@twinsun.com>
+
+	* lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
+	C89.  This avoids a diagnostic on compilers that define __STDC__
+	to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
+
+2003-05-03  Paul Eggert  <eggert@twinsun.com>
+
+	* lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
+	Do not overrun array bounds.
+	This should fix a bug reported today by Olatunji Oluwabukunmi in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
+
+2003-04-29  Akim Demaille  <akim@epita.fr>
+
+	* src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
+	* src/getargs.c, src/getargs.h: here, as bool, not int.
+	(nondeterministic_parser): New.
+	* src/parse-gram.y, src/scan-gram.l: Support
+	%nondeterministic-parser.
+	* src/output.c (prepare): Use nondeterministic_parser instead
+	of glr_parser where appropriate.
+	* src/tables.c (conflict_row, action_row, save_row)
+	(token_actions, token_actions, pack_vector): Ditto.
+
+2003-04-29  Akim Demaille  <akim@epita.fr>
+
+	* doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
+
+2003-04-29  Akim Demaille  <akim@epita.fr>
+
+	* tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
+	with %pure-parser and %locations to exercise the patch from Yakov
+	Markovitch below.
+
+2003-04-28  Tim Van Holder <tim.van.holder@pandora.be>
+
+	* data/yacc.c: (b4_lex_param): Corrected for the case where
+	%lex-param is provided and %pure-parser isn't.
+
+2003-04-27  Paul Eggert  <eggert@twinsun.com>
+
+	Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
+	* data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
+	if it is not defined.
+	(YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
+
+2003-04-26  Paul Eggert  <eggert@twinsun.com>
+
+	* data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
+	Declare to be of type suitable for the ninf value itself, not of
+	type suitable for the corresponding table, since the latter might
+	be unsigned but the ninf value might be negative.  This fixes a
+	bug reported by Alexandre Duret-Lutz in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
+
+	* configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
+	invokes it.  We shouldn't invoke it twice because it will attempt
+	to put error.o in the archive twice.  This fixes a glitch reported
+	by Martin Mokrejs in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
+
+2003-04-21  Paul Eggert  <eggert@twinsun.com>
+
+	* m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
+	to gnulib.
+
+2003-04-21  Yakov Markovitch <Markovitch@iso.ru>
+
+	* data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
+	Fix obvious typo that results in uncompilable GLR parsers
+	when both %pure-parser and %locations are used.  (trivial change)
+
+2003-04-17  Paul Eggert  <eggert@twinsun.com>
+
+	* src/scan-gram.l: Add %option nounput, since we no longer use unput.
+	(unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
+	Do not insert the expected token via unput, as this runs afoul
+	of a POSIX-compatibility bug in flex 2.5.31.
+	All uses changed to BEGIN the parent state,
+	since we no longer insert the expected token via unput.
+	* tests/regression.at (Invalid inputs): Remove cascaded diagnostic
+	that is no longer emitted after the above change.
+
+	* src/conflicts.c (set_conflicts): Resolve all conflicts, not just
+	the first one.  This change is from Paul Hilfinger, and it fixes
+	regression reported by Werner Lemberg in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
+
+	(resolve_sr_conflict): Don't invoke state_errs_set
+	unless one or more tokens have been explicitly made errors.
+	Otherwise, the above change causes Bison to abort.
+
+	* tests/existing.at (GNU pic Grammar): New test case, taken from
+	Lemberg's email.
+
+2003-03-31  Akim Demaille  <akim@epita.fr>
+
+	* doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
+
+2003-03-31  Akim Demaille  <akim@epita.fr>
+
+	* src/output.c (prepare_symbols): Avoid trailing spaces in the
+	output.
+
+2003-03-31  Akim Demaille  <akim@epita.fr>
+
+	* doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
+	From Paul Hilfinger.
+
+2003-03-29  Akim Demaille  <akim@epita.fr>
+
+	* m4/error.m4: Do not put under dynamic conditions some code which
+	expansion is under static control.
+
+2003-03-29  Akim Demaille  <akim@epita.fr>
+
+	* doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
+
+2003-03-29  Akim Demaille  <akim@epita.fr>
+
+	* doc/bison.texinfo (Strings are Destroyed): New.
+
+2003-03-13  Paul Eggert  <eggert@twinsun.com>
+
+	* .cvsignore: Add configure.lineno.
+	* src/.cvsignore: Add yacc.
+	* tests/.cvsignore: Add testsuite.log.
+	* doc/fdl.texi: Sync with latest FSF version.
+
+2003-03-12  Paul Eggert  <eggert@twinsun.com>
+
+	* scan-gram.l (YY_USER_INIT): Initialize code_start, too.
+	(<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
+	cursor, instead of leaving it undefined.  This fixes a bug
+	reported by Tim Van Holder in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
+	* tests/input.at (Torturing the Scanner): Test the scanner on
+	an empty input file, which was Tim Van Holder's test case.
+
+	* m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
+	<sys/resource.h> can be included, include sys/time.h and
+	sys/times.h first, if available.  This works around the SunOS
+	4.1.4 porting bug reported by Bruce Becker in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
+
+	* m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
+	AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
+	AC_HEADER_SYS_WAIT.
+
+	Merge changes from gnulib.  This was prompted because the CVS
+	snapshot didn't build on Solaris 7 due to strnlen problems.
+
+	These changes need to be merged back into gnulib:
+	* lib/hash.c: Include <stdbool.h> unconditionally.
+	* m4/onceonly.m4 (m4_quote): New macro.
+	(AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
+	Quote AC_FOREACH variable-expansions properly.
+	The 2003-01-03 obstack.h change also needs merging.
+	{end of changes requiring merging}
+
+	* lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
+	m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
+	m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
+	m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
+	m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
+	New files, imported from gnulib.
+	* m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
+	above.
+
+	* lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
+	m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
+	gnulib sources.
+
+	* configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
+	Add.
+	(gl_ERROR): New, replacing jm_PREREQ_ERROR.
+	(gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
+	(gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
+	(gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
+	(gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
+	(gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
+	(gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
+	(jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
+	(jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
+	(jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
+	(jm_PREREQ_ARGMATCH): Remove.
+	(AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
+	* lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
+
+	* src/system.h: Include <stdbool.h> unconditionally.
+
+	* lib/bbitset.h: Include <limits.h> unconditionally.  We have been
+	assuming at least C89 in the bitset code for some time now.
+
+2003-03-03  Akim Demaille  <akim@epita.fr>
+
+	* ro.po: New.
+
+2003-03-02  Akim Demaille  <akim@epita.fr>
+
+	* doc/bison.texinfo (Table of Symbols): Reactivate the
+	documentation for %lex-param, and %parse-param.
+
+2003-03-02  Akim Demaille  <akim@epita.fr>
+
+	* data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
+	generate verbose error messages.
+	Use the number of tokens as an upper bound in yytname, as it
+	cannot be a non terminal.
+
+2003-03-02  Akim Demaille  <akim@epita.fr>
+
+	* tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
+	message.
+
+2003-03-02  Akim Demaille  <akim@epita.fr>
+
+	* tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
+	Use them to exercise yycheck overrun.
+	Based on Andrew Suffield's grammar.
+
+2003-03-02  Akim Demaille  <akim@epita.fr>
+
+	Create tests/local.at for Bison generic testing macros.
+
+	* tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
+	* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
+	This new file.
+	* tests/calc.at (AT_CHECK_CALC): Adjust.
+	* tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
+	(AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
+	* tests/local.at: here.
+	(AT_COMPILE_CXX): Tags the tests using it as c++.
+	Ignore the test if CXX is not functional.
+
+2003-03-01  Paul Eggert  <eggert@twinsun.com>
+
+	* src/scan-gram.l (code_start): Initialize it to scanner_cursor,
+	not loc->end, since loc->end might contain garbage and this leads
+	to undefined behavior on some platforms.
+	(id_loc, token_start): Use (IF_LINTed) initial values that do not
+	depend on *loc, so that the reader doesn't give the the false
+	impression that *loc is initialized.
+	(<INITIAL>"%%"): Do not bother setting code_start, since its value
+	does not survive the return.
+
+2003-03-01  Akim Demaille  <akim@epita.fr>
+
+	* src/scan-gram.l (code_start): Always initialize it when entering
+	into yylex, as SC_EPILOGUE is activated *before* the corresponding
+	yylex invocation.  An alternative would be making it static, but
+	then it starts with the second %%'s beginning, instead of its end.
+
+2003-02-28  Paul Eggert  <eggert@twinsun.com>
+
+	* lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
+	around a UnixWare 7.1.1 porting bug reported by John Hughes in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
+
+2003-02-26  Paul Eggert  <eggert@twinsun.com>
+
+	* README: Mention compiler bug in Sun Forte Developer 6 update 2.
+	Remove Sequent/Pyramid discussion (nobody uses them any more).
+	Merge VMS and MS-DOS discussion; these ports may well be dead
+	but let's keep mentioning them for now.  Put <> around email
+	addresses.  Add copyright notice.
+
+2003-02-24  Paul Eggert  <eggert@twinsun.com>
+
+	* data/glr.c (yy_reduce_print): yylineno -> yylno,
+	to avoid collision with flex use of yylineno.
+	Problem reported by Bruce Lilly in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
+	* data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
+	* data/yacc.c (yy_reduce_print): Likewise.
+
+	* config/depcomp: Sync with Automake 1.7.3.
+
+2003-02-21  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc: Use temporary variables instead of casts to
+	change integer types.
+	Suggested by Paul Eggert.
+
+2003-02-21  Akim Demaille  <akim@epita.fr>
+
+	* doc/bison.texinfo: Use "location" consistently to refer to @n,
+	to avoid confusions with lalr1.cc's notion of Position.
+	Suggested by Paul Eggert.
+
+2003-02-20  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc (position.hh): Make sure "columns" never pushes
+	before initial_columns.
+	(location.hh): Use consistent variable names when defining the
+	operator<<.
+	Use "last" so that we subtract from Positions, not from unsigned.
+
+2003-02-20  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc (position.hh): New subfile, including the extended
+	and Doxygen'ed documentation of class Position.
+	(location.hh): Use it.
+	Document a` la Doxygen.
+	With the help of Benoit Perrot.
+
+2003-02-20  Akim Demaille  <akim@epita.fr>
+
+	* tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
+	AT_YACC_IF.
+	Redefine AT_YYERROR_SEES_LOC_IF using it.
+	(_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
+	not defined.
+	Don't use the location in yy::Parser::error_ and
+	yy::Parser::print_ when not %locations.
+	Activate more lalr1.cc tests.
+
+2003-02-19  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc: When displaying a line number, be sure to make it
+	an int.
+
+2003-02-19  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
+	Remove, useless.
+	(YYABORT, YYACCEPT, YYERROR): New.
+	* tests/calc.at: Renable the lalr1.cc test.
+
+2003-02-19  Akim Demaille  <akim@epita.fr>
+
+	* tests/calc.at (AT_CHECK_CALC): Check different scenarios of
+	error recovery, mixing with/without pops and discarding of the
+	lookahead.
+	Exercise YYERROR.
+	Disable the lalr1.cc tests as currently it doesn't support YYERROR.
+
+2003-02-17  Paul Eggert  <eggert@twinsun.com>
+
+	* tests/atlocal.in (LDFLAGS, LIBS): New vars.
+	* tests/testsuite.at (AT_COMPILE): Use them.
+	This fixes the testsuite problem reported by Robert Lentz in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
+
+2003-02-12  Paul Eggert  <eggert@twinsun.com>
+
+	* data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
+	Avoid subscript error in yycheck.  Bug reported by Andrew Suffield in
+	<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
+	* data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
+	Check for malloc failure, for consistency with yacc.c.
+	(yytname_size): Remove, for consistency with yacc.c.
+
+	The bug still remains in data/lalr1.cc, as I didn't have time
+	to fix it there.
+
+2003-02-06  Akim Demaille  <akim@epita.fr>
+
+	* configure.ac (GXX): Rename as...
+	(CXX): this, to keep the original Autoconf semantics.
+	Require 2.57.
+	* data/lalr1.cc: Fix b4_copyright invocations.
+	If YYDEBUG is not defined, don't depend upon name_ being defined.
+	(location.hh): Include string and iostream.
+	(Position::filename): New member.
+	(Position::Position ()): New.
+	(operator<< (Position)): New.
+	(operator- (Position, int)): New.
+	(Location::first, Location::last): Rename as...
+	(Location::begin, Location::end): these, to mock the conventional
+	iterator names.
+	(operator<< (Location)): New.
+	* tests/atlocal.in (CXX): New.
+	* tests/testsuite.at (AT_COMPILE_CXX): New.
+	* tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
+	locations in a more synthetic way.
+	(AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
+	lalr1.cc is used.
+	Adjust the C locations to match those from Emacs: first column is
+	column 0.
+	Change all the expected results.
+	Conform to the GCS: simplify the locations when applicable.
+	(LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
+	(LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
+	these CPP macros with the m4 macros new defined by...
+	(AT_CHECK_PUSHDEFS): this, i.e.:
+	(AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
+	(AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
+	New macros.
+	(AT_CHECK_POPDEFS): Undefine them.
+	(AT_CHECK_CALC_LALR1_CC): New.
+	Use it for the first lalr1.cc test.
+
+2003-02-04  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
+	Location as is defined.
+
+2003-02-04  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
+	name_ being defined.
+
+2003-02-03  Paul Eggert  <eggert@twinsun.com>
+
+	* src/gram.h (start_symbol): Remove unused decl.
+
+	Use more-consistent naming conventions for local vars.
+
+	* src/derives.c (derives_compute): Change type of local var from
+	int to rule_number.
+	* src/gram.c (grammar_rules_partial_print): Likewise.
+	* src/print.c (print_core): Likewise.
+	* src/reduce.c (reduce_grammar_tables): Likewise.
+
+	* src/gram.c (grammar_dump): Change name of item_number *
+	local var from r to rp.
+	* src/nullable.c (nullable_compute): Likewise.
+
+	* src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
+
+	* src/gram.h (symbol_number_as_item_number): Use sym, not s,
+	for symbol or symbol_number var.
+	* src/reader.c (grammar_start_symbol_set): Likewise.
+	* src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
+	Likewise.
+	* src/state.c (transitions_to): Likewise.
+	* src/state.h: Likewise.
+	* src/tables.c (symbol_number_to_vector_number): Likewise.
+
+	* src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
+	char * var.
+
+	* src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
+	var.
+
+	* src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
+	var.
+
+	* src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
+	Use str, not s, for char * var.  Use ch, not c, for character var.
+	Use size for size var.
+
+	* src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
+	char * var.
+	(uniqstr_print, uniqst_print_processor): Use ustr, not s, for
+	uniqstr var.
+	* src/uniqstr.h: Likewise.
+
+	* src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
+	get_layoutalgorithm_str, get_decision_str, get_orientation_str,
+	get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
+	get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
+	param to have same name as that of enum, so that we don't use
+	"s" to stand for a non-state.
+
+2003-02-02  Akim Demaille  <akim@epita.fr>
+
+	* src/scan-skel.l: Scan more than one inert character per yylex
+	invocation.
+
 2003-02-01  Paul Eggert  <eggert@twinsun.com>
 
 	Version 1.875a.
 
+	* po/LINGUAS: Add ms.
+
 2003-01-30  Akim Demaille  <akim@epita.fr>
 
 	* doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
@@ -4006,7 +4884,7 @@
 
 2002-06-11  Akim Demaille  <akim@epita.fr>
 
-	* src/reader.c 	(parse_action): Don't store directly into the
+	* src/reader.c (parse_action): Don't store directly into the
 	rule's action member: return the action as a string.
 	Don't require `rule_length' as an argument: compute it.
 	(grammar_current_rule_symbol_append)
@@ -6563,7 +7441,7 @@
 
 	* tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
 	its argument.
-	Reported by Peter Hámorský.
+	Reported by Peter Hamorsky.
 
 2001-12-05  Akim Demaille  <akim@epita.fr>