+2010-08-01 Joel E. Denny <joeldenny@joeldenny.org>
+
+ -Werror: fix for rules useless in parser after conflicts.
+ * NEWS (2.4.3): Document fix.
+ * src/complain.c (error_message): Extend to handle incomplete
+ error messages so warn and warn_at can be used in more cases.
+ * src/gram.c (grammar_rules_useless_report): Use warn_at so that
+ -Werror is always obeyed.
+ * src/reduce.c (reduce_print): Use warn so that the "warnings
+ being treated as errors" message is printed consistently before
+ the first warning message. This makes testing easier.
+ * tests/local.at (AT_BISON_WERROR_MSG): New macro.
+ (AT_BISON_CHECK_NO_XML): Extend to check -Werror and
+ --warnings=error when warnings appear in bison's stderr.
+
+2010-07-29 Joel E. Denny <joeldenny@joeldenny.org>
+
+ maint: enable gnits only at stable releases.
+ * configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a
+ version string should disable gnits. Explain in comments.
+
+2010-07-28 Joel E. Denny <joeldenny@joeldenny.org>
+
+ i18n: update.
+ * po/POTFILES.in: Add src/graphviz.c.
+
+2010-07-28 Joel E. Denny <joeldenny@joeldenny.org>
+
+ i18n: fix for gnulib.
+ * po/POTFILES.in: Add remaining gnulib files that have
+ translatable strings.
+
+2010-07-25 Joel E. Denny <joeldenny@joeldenny.org>
+
+ maint: use announce-gen's new --mail-headers.
+ * HACKING (Announce): Update instructions.
+ * cfg.mk (announcement_Cc_): Define.
+ * configure.ac (AM_GNU_GETTEXT_VERSION): Update to 0.18 as
+ required by latest gnulib.
+ * gnulib: Update to latest.
+
+2010-07-24 Joel E. Denny <joeldenny@joeldenny.org>
+
+ tests: handle Valgrind that complains about >&-.
+ * tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests.
+ (Output files: -dv >&-): Skip test group if running
+ maintainer-check-valgrind.
+
+2010-06-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ Update from GFDL GFDL 1.2 to 1.3.
+ * doc/bison.texinfo: Update GFDL version number.
+ * doc/fdl.texi: Update to version 1.3, taken from:
+ http://www.gnu.org/licenses/fdl.texi
+
+2010-06-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ Do not use date ranges in copyright notices.
+ See http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices
+
+ * HACKING, Makefile.am, NEWS, PACKAGING, README, README-alpha:
+ * TODO, bootstrap, bootstrap.conf:
+ * build-aux/update-b4-copyright, cfg.mk, configure.ac:
+ * data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4:
+ * data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc:
+ * data/java-skel.m4, data/java.m4, data/lalr1.cc:
+ * data/lalr1.java, data/location.cc:
+ * data/xslt/bison.xsl:
+ * data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl:
+ * data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint:
+ * djgpp/README.in, djgpp/config.bat, djgpp/config.sed:
+ * djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat:
+ * djgpp/subpipe.c, djgpp/subpipe.h:
+ * djgpp/testsuite.sed, doc/bison.texinfo:
+ * doc/refcard.tex, etc/README, etc/bench.pl.in:
+ * examples/calc++/Makefile.am, examples/extexi:
+ * lib/abitset.c, lib/abitset.h:
+ * lib/bbitset.h, lib/bitset.c, lib/bitset.h:
+ * lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
+ * lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
+ * lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
+ * lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
+ * lib/libiberty.h, lib/main.c, lib/timevar.c:
+ * lib/timevar.def, lib/timevar.h, lib/vbitset.c:
+ * lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4:
+ * m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4:
+ * src/AnnotationList.c, src/AnnotationList.h:
+ * src/InadequacyList.c, src/InadequacyList.h, src/LR0.c:
+ * src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c:
+ * src/assoc.h, src/closure.c, src/closure.h, src/complain.c:
+ * src/complain.h, src/conflicts.c, src/conflicts.h:
+ * src/derives.c, src/derives.h, src/files.c, src/files.h:
+ * src/flex-scanner.h, src/getargs.c, src/getargs.h:
+ * src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c:
+ * src/ielr.h, src/lalr.c, src/lalr.h:
+ * src/location.c, src/location.h, src/main.c:
+ * src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c:
+ * src/named-ref.h, src/nullable.c, src/nullable.h:
+ * src/output.c, src/output.h, src/parse-gram.y:
+ * src/print-xml.c, src/print-xml.h, src/print.c, src/print.h:
+ * src/print_graph.c, src/print_graph.h, src/reader.c:
+ * src/reader.h, src/reduce.c, src/reduce.h, src/relation.c:
+ * src/relation.h, src/scan-code.h, src/scan-code.l:
+ * src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
+ * src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
+ * src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
+ * src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
+ * tests/actions.at, tests/atlocal.in, tests/c++.at:
+ * tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
+ * tests/existing.at, tests/glr-regression.at:
+ * tests/headers.at, tests/input.at, tests/java.at:
+ * tests/local.at, tests/named-refs.at:
+ * tests/output.at, tests/push.at, tests/reduce.at:
+ * tests/regression.at, tests/sets.at, tests/skeletons.at:
+ * tests/synclines.at, tests/testsuite.at, tests/torture.at:
+ * data/Makefile.am, data/location.cc, doc/Makefile.am, src/Makefile.am:
+ * tests/Makefile.am, lib/Makefile.am, examples/Makefile.am:
+ * etc/Makefile.am:
+ Don't use date ranges in copyright notices.
+
+2010-05-11 Akim Demaille <demaille@gostai.com>
+
+ lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.
+ * data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the
+ header file to the implementation file, after the user %code
+ sections.
+ * NEWS (2.5): Document this.
+
+2010-05-07 Akim Demaille <demaille@gostai.com>
+
+ c++: use YYRHSLOC.
+ * data/lalr1.cc (YYRHSLOC): New.
+ (YYLLOC_DEFAULT): Use it.
+ * data/glr.cc: If location_type was user defined, do not include
+ location.hh, and do not produce location.hh and position.hh.
+ * tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC.
+ Check that glr.cc supports user defined location_type.
+ * NEWS: Document this.
+
+2010-05-10 Akim Demaille <demaille@gostai.com>
+
+ doc: fix lalr1.cc documentation.
+ * doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
+ (C++ Bison Interface): Fix lalr1.cc skeleton name.
+ (C++ Parser Interface): Fix semantic_type and location_type names.
+ Document yy::parser::token.
+ Reported by Jerry Quinn.
+
+2010-05-04 Akim Demaille <demaille@gostai.com>
+
+ lalr1.cc: don't generate location.hh when location_type is defined
+ * data/bison.m4 (b4_percent_define_use): New.
+ (b4_percent_define_get): Use it.
+ Accept a default value.
+ * data/c++.m4: Do not provide a default value for the %define
+ variable location_type, rather, use b4_percent_define_get with a
+ default argument where its value is needed.
+ * data/lalr1.cc: Do not load location.cc (which outputs both
+ location.hh and position.hh) if the user defined location_type.
+ Do not include location.hh either.
+ * data/glr.cc: Likewise.
+
+2010-05-04 Akim Demaille <demaille@gostai.com>
+
+ lalr1.cc: location_type: make sure we don't depend on loc.(begin|end).
+ * tests/calc.at (Span): Instead of begin/end, as in the built-in
+ location class, use first and last.
+ Define YYLLOC_DEFAULT to adjust to these changes.
+ * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
+ location_type changes.
+
+2010-05-04 Akim Demaille <demaille@gostai.com>
+
+ tests: enhance AT_SYNCLINES_COMPILE.
+ * tests/synclines.at (AT_TEST_SYNCLINE): Move GCC 4.5 protection
+ into...
+ (AT_SYNCLINES_COMPILE): here.
+ Add more distcc patterns.
+
+2010-05-01 Joel E. Denny <joeldenny@joeldenny.org>
+
+ tests: fix maintainer-xml-check.
+ * data/xslt/xml2dot.xsl (xsl:template match="bison-xml-report"):
+ Update output to include comments now produced by --graph.
+ (xsl:template match="automaton"): As for --graph, name the
+ digraph after the grammar file.
+ * src/print-xml.c (escape_bufs): Enlarge array.
+ (print_xml): Add bug-report and url attributes to
+ bison-xml-report element.
+
+2010-05-01 Joel E. Denny <joeldenny@joeldenny.org>
+
+ In DOT output, convert from "/*" comments to "//" comments.
+ This handles the possibility that a "*/" might appear in
+ variable portions of those comments at some point in the future.
+ * src/graphviz.c (start_graph): Implement.
+
+2010-04-30 Joel E. Denny <joeldenny@joeldenny.org>
+
+ Document that undefined %prec identifier warnings will remain.
+ * NEWS (2.4.3): Here.
+ (2.4.2): Here.
+
+2010-04-30 Joel E. Denny <joeldenny@joeldenny.org>
+
+ Revert 2009-12-30 change for undefined %prec token complaints.
+ That is, keep them as warnings because that should be sufficient
+ to satisfy POSIX without creating backward compatibility issues.
+ Suggested by Richard Stallman at
+ <http://lists.gnu.org/archive/html/bison-patches/2010-03/msg00033.html>.
+ * NEWS (2.5): Remove mention of complaint.
+ * src/reader.c (grammar_rule_check): Convert complaint back to
+ warning.
+ * tests/input.at (%prec's token must be defined): Update.
+
+2010-04-25 Joel E. Denny <joeldenny@joeldenny.org>
+
+ build: don't require src/bison during bootstrap.
+ Suggested by Eric Blake at
+ <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00003.html>.
+ * bootstrap.conf (bootstrap_epilogue): New function to make sure
+ src/parse-gram.[ch] are stamped later than src/parse-gram.y.
+
+2010-04-25 Joel E. Denny <joeldenny@joeldenny.org>
+
+ i18n: fix untranslatable string.
+ Reported by Goran Uddeborg at
+ <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00000.html>.
+ * src/muscle-tab.c (muscle_percent_define_insert): Here.
+
+2010-04-13 Akim Demaille <demaille@gostai.com>
+
+ tests: calc: minor refactoring.
+ * tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.
+
+2010-04-13 Akim Demaille <demaille@gostai.com>
+
+ tests: calc: simplify location management.
+ * tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New.
+ (_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to
+ define the appropriate AT_LOC accessors.
+ * tests/calc.at: Use AT_LOC accessors.
+
+2010-04-13 Akim Demaille <demaille@gostai.com>
+
+ test location_type.
+ * tests/local.at (_AT_BISON_OPTION_PUSHDEFS):
+ Define AT_LOCATION_TYPE_IF.
+ (_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF.
+ * tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is
+ used, provide a user location type and use it.
+ (Simple LALR1 C++ Calculator): Add a test case for location_type.
+
+2010-04-13 Akim Demaille <demaille@gostai.com>
+
+ tests: check fclose's return value.
+ * tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.
+
+2010-04-13 Akim Demaille <demaille@gostai.com>
+
+ tests: don't depend on the actual location type.
+ * tests/calc.at: Use yy::parser::location_type rather than
+ yy::location, since the former is always right, and might point to
+ another type than the latter.
+
+2010-04-13 Akim Demaille <demaille@gostai.com>
+
+ formatting changes.
+ * tests/calc.at: Formatting changes.
+
+2010-04-13 Akim Demaille <demaille@gostai.com>
+
+ lalr1.cc: remove useless forward declaration.
+ * data/lalr1.cc: Include location.hh before stack.hh.
+ Remove the useless forward declarations of position and location.
+ Reported by Chris Morley.
+ * data/glr.cc: Likewise.
+
+2010-04-11 Joel E. Denny <joeldenny@joeldenny.org>
+
+ * NEWS (2.4.3): Mention fix for Sun Studio C++.
+
+2010-04-10 Joel E. Denny <joeldenny@joeldenny.org>
+
+ tests: fix for newer Sun Studio C++.
+ Reported by Dagobert Michelsen at
+ <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00023.html>.
+ * THANKS (Dagobert Michelsen): Add.
+ * configure.ac (AC_PREREQ): Set to 2.64 so we get the latest
+ Autoconf macro for handling the restrict keyword.
+ * gnulib: Update to latest, which no longer overrides that macro
+ from Autoconf.
+
+2010-04-03 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ portability: fix pointer arithmetic to conform to C standard.
+ Reported by Tys Lefering at
+ <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00035.html>.
+ This fix is already implemented in glr.c and does not apply to
+ lalr1.java.
+ * data/lalr1.cc (yy::parser::parse): Increase size of
+ yyerror_range and adjust subscripting so you don't have to
+ subtract one from the beginning of the array.
+ * data/yacc.c (b4_declare_parser_state_variables,
+ yyparse, yypush_parse): Likewise.
+
+2010-04-05 Akim Demaille <demaille@gostai.com>
+
+ remove useless include.
+ * src/graphviz.h: Don't include stdbool.h.
+
+2010-04-05 Akim Demaille <demaille@gostai.com>
+
+ graph: sign the output file.
+ * src/graphviz.c (start_graph): Issue comments about Bison.
+ Suggested by Tys Lefering.
+
+2010-03-31 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ portability: fix test suite for GCC 4.5's new #error message.
+ Reported by Tys Lefering at
+ <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00030.html>.
+ * NEWS (2.4.3): Mention.
+ * tests/synclines.at (AT_TEST_SYNCLINE): Implement.
+
+2010-03-30 Akim Demaille <demaille@gostai.com>
+
+ fix comments.
+ * src/graphviz.h: Add missing license notice.
+ Document.
+
+2010-03-25 Akim Demaille <demaille@gostai.com>
+
+ tests: fix 250: parse.error=verbose overflow.
+ * tests/regression.at (parse.error=verbose overflow): Avoid the
+ double inclusion of stdlib.h as it triggers hard errors.
+
+2010-03-23 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ portability: fix for BSD make.
+ Reported by Johan van Selst at
+ <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00016.html>.
+ * tests/Makefile.am ($(TESTSUITE)): Qualify package.m4 in
+ this dependency list as in package.m4's target rule.
+
+2010-03-23 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ portability: fix spawning on at least FreeBSD 8 and FreeBSD 9.
+ Reported by Johan van Selst at
+ <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00014.html>.
+ * NEWS (2.4.3): New.
+ * THANKS (Johan van Selst): Add.
+ * gnulib: Update to latest.
+
+2010-03-20 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ maint: update for changes to gnulib's announce-gen.
+ * HACKING (Announce): RELEASE_TYPE=major must now be written
+ RELEASE_TYPE=stable.
+
+2010-03-20 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Version 2.4.2.
+ * NEWS (2.4.2): Set version and date. For the recent test suite
+ portability fixes, don't be so optimistic about their success
+ given the lack of feedback on the affected platforms.
+
+2010-02-22 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ tests: fix maintainer-xml-check for recent changes.
+ * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Use
+ AT_BISON_CHECK_NO_XML rather than AT_BISON_CHECK because an
+ output file whose name conflicts with a previous output file
+ is now never generated.
+
+2010-02-22 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ portability: fix several issues with M4 subprocess.
+
+ M4's output pipe was not being drained upon fatal errors during
+ scan_skel. As a result, broken-pipe messages from M4 were seen
+ on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a
+ failure in the test suite. The problem was that, on platforms
+ where the default disposition for SIGPIPE is ignore instead of
+ terminate, M4 sometimes saw fwrite fail with errno=EPIPE and
+ then reported it. However, there's some sort of race condition,
+ because the new test group occasionally succeeded.
+ Reported by Albert Chin at
+ <http://lists.gnu.org/archive/html/bug-bison/2010-02/msg00004.html>.
+
+ There were also problems with the test suite livelocking on
+ Tru64 5.1b. Reported by Didier Godefroy at
+ <http://lists.gnu.org/archive/html/bug-bison/2009-05/msg00005.html>.
+ Switching to create_pipe_bidi suggested by Akim Demaille.
+
+ To attempt to solve both of these problems, switch to gnulib's
+ create_pipe_bidi and register M4 process as a slave. Along the
+ way, clean up file name conflict handling, which was affected by
+ the broken-pipe problem before the switch.
+ * NEWS (2.4.2): Document.
+ * THANKS (Didier Godefroy): Add.
+ * bootstrap.conf (gnulib_modules): Add pipe.
+ * gnulib: Update to latest to make sure we have all the latest
+ fixes.
+ * lib/Makefile.am (libbison_a_SOURCES): Remove subpipe.h and
+ subpipe.c.
+ * po/POTFILES.in (lib/subpipe.c): Remove.
+ * src/files.c (compute_output_file_names): Update invocations
+ of output_file_name_check.
+ (output_file_name_check): In the case that the grammar file
+ would be overwritten, use complain instead of fatal, but replace
+ the output file name with /dev/null. Use the /dev/null solution
+ for the case of two conflicting output files as well because it
+ seems safer in case Bison one day tries to open both files at
+ the same time.
+ * src/files.h (output_file_name_check): Update prototype.
+ * src/output.c (output_skeleton): Use create_pipe_bidi and
+ wait_subprocess. Assert that scan_skel completely drains the
+ pipe.
+ * src/scan-skel.l (at_directive_perform): Update
+ output_file_name_check invocation.
+ * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Check that the
+ grammar file actually isn't overwritten.
+ (Conflicting output files: -o foo.y): Update expected output.
+ * tests/skeletons.at (Fatal errors but M4 continues producing
+ output): New test group.
+
+2010-02-04 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Update POTFILES.
+ * HACKING (Release Procedure): Add reminder about keeping
+ POTFILES files up-to-date.
+ * po/POTFILES.in (src/muscle-tab.c, src/scan-skel.l): Add.
+
+2010-02-01 Joel E. Denny <jdenny@clemson.edu>
+
+ Code cleanup.
+ * tests/atlocal.in (abs_top_srcdir): Remove shell variable,
+ which is already defined in atconfig.
+
+2010-01-21 Joel E. Denny <jdenny@clemson.edu>
+
+ * cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
+
+2010-01-21 Joel E. Denny <jdenny@clemson.edu>
+
+ maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.
+ * HACKING (Release Procedure): Update notes on copyright years.
+ * Makefile.am (update-package-copyright-year): New target rule.
+ * build-aux/update-package-copyright-year: New file.
+ * cfg.mk (update-copyright): Add update-package-copyright-year
+ as a dependency.
+
+2010-01-19 Joel E. Denny <jdenny@clemson.edu>
+
+ * bootstrap: Import improvements from latest gnulib.
+
+2010-01-19 Joel E. Denny <jdenny@clemson.edu>
+
+ build: require Automake 1.11.1 to avoid a security flaw.
+ * HACKING (Release Procedure): Don't document Automake security
+ flaw here.
+ * configure.ac (AM_INIT_AUTOMAKE): Require 1.11.1, and explain
+ why here.
+
+2010-01-19 Joel E. Denny <jdenny@clemson.edu>
+
+ gnulib: update to latest.
+
+2010-01-19 Joel E. Denny <jdenny@clemson.edu>
+
+ ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
+
+2010-01-15 Joel E. Denny <jdenny@clemson.edu>
+
+ Thank the developer of the initial push parser implementation.
+ This unfortunate oversight is several years old.
+ * THANKS (Odd Arild Olsen): Add.
+
+2010-01-04 Joel E. Denny <jdenny@clemson.edu>
+
+ Fix some comments concerning LR(0) versus LALR(1).
+
+ Stop equating LR(0) with nondeterminism and LALR(1) with
+ determinism. That is, if all states are consistent, then LR(0)
+ tables are deterministic. On the other hand, LALR(1) tables
+ might be nondeterministic before conflict resolution, and GLR
+ permits LALR(1) tables to remain nondeterministic.
+ * src/LR0.c, src/LR0.h: Here.
+ * src/lalr.c, src/lalr.h: Here.
+ * src/main.c (main): Here.
+ * src/state.c, src/state.h: Here.
+
+ * src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1)
+ parser tables.
+
+2010-01-04 Joel E. Denny <jdenny@clemson.edu>
+
+ maint: run "make update-copyright"
+
+2009-12-30 Joel E. Denny <jdenny@clemson.edu>
+
+ POSIX: complain if %prec's token was not defined.
+ * NEWS (2.5): Document.
+ * src/reader.c (grammar_rule_check): Convert warning to
+ complaint.
+ * tests/input.at (%prec's token must be defined): Update.
+
+2009-12-30 Joel E. Denny <jdenny@clemson.edu>
+
+ POSIX: warn if %prec's token was not defined.
+ Reported by Florian Krohm at
+ <http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>.
+ * NEWS (2.4.2): Document.
+ * src/reader.c (grammar_rule_check): Implement.
+ (grammar_current_rule_prec_set): Add comments explaining that we
+ here assume a %prec identifier is a token, but we still manage
+ to support POSIX.
+ * tests/input.at (%prec's token must be defined): New test
+ group.
+
+2009-12-31 Joel E. Denny <jdenny@clemson.edu>
+
+ * HACKING (Release Procedure): Recommend a secure automake.
+
+2008-12-11 Akim Demaille <demaille@gostai.com>
+
+ Propagate i18n changes into glr.c.
+ * data/glr.c (yyreportSyntaxError): Use "switch" instead of
+ building the error message format dynamically.
+ * data/lalr1.java: Formatting changes.
+
+2009-12-22 Joel E. Denny <jdenny@clemson.edu>
+
+ Port small part of master's 11707b2b so future ports are easier.
+ * data/lalr1.java (YYParser::yysyntax_error): Untabify.
+
+2008-12-11 Akim Demaille <demaille@gostai.com>
+
+ Simplify the i18n of the error messages.
+ * data/lalr1.cc: Comment changes.
+
+2008-11-11 Akim Demaille <demaille@gostai.com>
+
+ Prefer M4 to CPP.
+ * data/lalr1.cc: Use b4_error_verbose_if instead of #if
+ YYERROR_VERBOSE.
+
+2008-11-11 Akim Demaille <demaille@gostai.com>
+
+ Support i18n of the parse error messages.
+ * TODO (lalr1.cc/I18n): Remove.
+ * data/lalr1.cc (yysyntax_error_): Support the translation of the
+ error messages, as done in yacc.c.
+ Stay within the yy* pseudo namespace.
+
+2009-12-22 Joel E. Denny <jdenny@clemson.edu>
+
+ Port small part of master's 8901f32e so future ports are easier.
+ * data/lalr1.cc (yy::parser::yysyntax_error_): Always add second
+ argument, but name it in the function definition only when
+ verbose error messages are enabled and it'll thus be used.
+ (yy::parser::parse): Update use of yysyntax_error_.
+
+2009-12-29 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-12-20 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-12-21 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-12-21 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-12-17 Joel E. Denny <jdenny@clemson.edu>
+
+ Code cleanup.
+ * src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
+ function, which is no longer used.
+
+2009-12-16 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-12-16 Joel E. Denny <jdenny@clemson.edu>
+
+ * data/yacc.c: Reformat m4 a little.
+
+2009-12-16 Joel E. Denny <jdenny@clemson.edu>
+
+ Document gcc -Wundef fix.
+ * NEWS (2.4.2): Here.
+ * THANKS (Jonathan Nieder): Add.
+
+2009-12-15 Jonathan Nieder <jrnieder@gmail.com> (tiny change)
+
+ 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.
+
+2009-12-15 Jonathan Nieder <jrnieder@gmail.com> (tiny change)
+
+ 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.
+
+2009-12-15 Joel E. Denny <jdenny@clemson.edu>
+
+ autoconf: update to latest for fix of M4 detection.
+ Reported by Eric Blake.
+ * submodules/autoconf: Update.
+
+2009-12-15 Joel E. Denny <jdenny@clemson.edu>
+
+ 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/local.mk, add
+ lib/libbison.a so gnulib libraries can be linked.
+
+2009-12-14 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-12-14 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-10-03 Alex Rozenman <rozenman@gmail.com>
+
+ Document named references.
+ * doc/bison.texinfo (Actions): Add new example and xref to
+ Using Named References node.
+ (Using Named References): New node.
+
+2009-10-16 Joel E. Denny <jdenny@clemson.edu>
+
+ 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*.
+
+2009-10-16 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-10-11 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-10-08 Joel E. Denny <jdenny@clemson.edu>
+
+ * data/bison.m4: Update comments for rename to muscle-tab.h.
+
+2009-10-08 Joel E. Denny <jdenny@clemson.edu>
+
+ Rename muscle_tab.* to muscle-tab.* for consistency with master.
+ * 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.
+
+2009-10-07 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-10-04 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-10-04 Joel E. Denny <jdenny@clemson.edu>
+
+ 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 "\".
+
+2009-09-23 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-09-23 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2008-12-11 Akim Demaille <demaille@gostai.com>
+
+ Pass the token type to yysyntax_error.
+ * data/yacc.c (yysyntax_error): Take the transated token instead
+ of the raw number.
+ Adjust callers.
+
+2008-12-11 Akim Demaille <demaille@gostai.com>
+
+ Simplify the i18n of the error messages.
+ * data/yacc.c (yysyntax_error): Rewrite, using a switch instead
+ of building dynamically the format string.
+
+2009-10-03 Joel E. Denny <jdenny@clemson.edu>
+
+ Remove dead code.
+ * src/symtab.c (symbol_pack): Here because every symbol's number
+ is always defined by this time.
+
+2009-10-03 Alex Rozenman <rozenman@gmail.com>
+
+ Add additional space after periods in NEWS.
+ * NEWS (2.5): here.
+
+2009-09-29 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-09-27 Joel E. Denny <jdenny@clemson.edu>
+
+ tests: don't abuse AT_BISON_CHECK.
+ * tests/regression.at (parse-gram.y: LALR = IELR): Move
+ additional shell commands outside of AT_BISON_CHECK.
+
+2009-09-26 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-09-16 Akim Demaille <demaille@gostai.com>
+
+ doc: comment changes.
+ * doc/bison.texinfo: Comment changes.
+
+2009-09-16 Akim Demaille <demaille@gostai.com>
+
+ doc: spell checking.
+ * doc/bison.texinfo: here.
+
+2009-09-19 Alex Rozenman <rozenman@gmail.com>
+
+ 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 (complain_at_indent, warn_at_indent): Prototype
+ new functions.
+ * src/complain.cpp (indent_ptr): New static variable.
+ (error_message, complain_at_indent, warn_at_indent): Implement
+ the alignment mechanism.
+ * src/scan-code.l (parse_ref, show_sub_messages): Fix strings
+ for translations. Use new alignment mechanism.
+ * tests/named-ref.at: Adjust test-cases.
+ * NEWS (2.5): Add an announcement about named references.
+
+2009-09-13 Joel E. Denny <jdenny@clemson.edu>
+
+ 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".
+
+2009-09-12 Alex Rozenman <rozenman@gmail.com>
+
+ 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.
+
+2009-09-10 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-09-03 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-09-03 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-09-05 Alex Rozenman <rozenman@gmail.com>
+
+ 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.
+
+2009-09-03 Akim Demaille <demaille@gostai.com>
+
+ * NEWS (2.4.2): Add "Internationalization" item.
+
+2009-09-03 Akim Demaille <demaille@gostai.com>
+
+ bootstrap: fix/improve find_tool.
+ * bootstrap (find_tool): Improve error messages.
+ Fix typo about find_tool_names.
+
+2009-08-29 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-28 Joel E. Denny <jdenny@clemson.edu>
+
+ %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: Remove quotes in most tests.
+ * tests/existing.at: Likewise.
+ * tests/input.at: Likewise.
+ * tests/local.at: Likewise.
+ * tests/push.at: Likewise.
+ * tests/reduce.at: Likewise.
+ * tests/torture.at: Likewise.
+
+2009-08-28 Joel E. Denny <jdenny@clemson.edu>
+
+ %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.
+
+2009-08-27 Eric Blake <ebb9@byu.net>
+
+ scan-gram: avoid portability trap with ctype usage.
+ * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
+ Avoid compiler warning.
+
+2009-08-27 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-26 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-26 Akim Demaille <demaille@gostai.com>
+
+ tests: portability fix.
+ * tests/input.at (Bad escapes in literals): Don't expect "echo
+ '\0'" to output \ then 0.
+
+2009-08-26 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-25 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-25 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-25 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-21 Joel E. Denny <jdenny@clemson.edu>
+
+ Use locale when quoting.
+ * src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER): Use
+ quote rather than implementing quoting here.
+
+2009-08-20 Eric Blake <ebb9@byu.net>
+
+ Make previous patch more robust.
+ * src/output.c (ARRAY_CARDINALITY): New macro, copied from
+ argmatch.h.
+ (output_skeleton): Use it.
+ Suggested by Akim Demaille.
+
+ 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.
+
+2009-08-19 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-19 Akim Demaille <demaille@gostai.com>
+
+ doc: fixes.
+ * doc/bison.texinfo: Fix minor Texinfo errors.
+
+2009-08-19 Akim Demaille <demaille@gostai.com>
+
+ 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.
+
+2009-08-18 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-17 Akim Demaille <demaille@gostai.com>
+
+ 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.
+
+2009-08-17 Akim Demaille <demaille@gostai.com>
+
+ 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.
+
+2009-08-14 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-13 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-12 Akim Demaille <demaille@gostai.com>
+
+ distcheck: fix.
+
+ * examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
+
+2009-08-10 Joel E. Denny <jdenny@clemson.edu>
+
+ * tests/Makefile.am (TESTSUITE_AT): Add named-refs.at.
+
+2009-08-10 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-08 Alex Rozenman <rozenman@gmail.com>
+
+ Convert "misleading reference" messages to warnings.
+ * src/scan-code.l: New function 'show_sub_messages', more
+ factoring.
+ * tests/named-ref.at: Adjust tests.
+
+2009-08-06 Joel E. Denny <jdenny@clemson.edu>
+
+ maint: run "make update-copyright"
+
+2009-08-06 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-05 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-04 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-08-04 Joel E. Denny <jdenny@clemson.edu>
+
+ 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/gram.c: Add missing comma in copyright statement.
+ * src/gram.h: Likewise.
+
+2009-08-04 Joel E. Denny <jdenny@clemson.edu>
+
+ Fix "make distcheck".
+ * examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead
+ of just calc.stamp.
+
+2009-08-01 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+
+2009-07-31 Alex Rozenman <rozenman@gmail.com>
+
+ 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".
+
+2009-07-29 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Fix a --enable-gcc-warnings problem.
+ * src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
+ variable.
+
+2009-07-24 Alex Rozenman <rozenman@gmail.com>
+
+ 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).
+
+2009-07-24 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ 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.
+
+2009-07-24 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/lalr.c (state_lookahead_tokens_count): Correct comment.
+
+2009-07-22 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ 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.
+
+2009-07-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * m4/m4.m4: Make it a sym link to submodules/autoconf/m4/m4.m4.
+
+2009-07-15 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ 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.
+
+2009-07-04 Alex Rozenman <rozenman@gmail.com>
+
+ Alphabetical order in src/Makefile.am.
+ * src/Makefile.am: Adjust.
+
+2009-07-04 Alex Rozenman <rozenman@gmail.com>
+
+ 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.
+
+2009-06-29 Eric Blake <ebb9@byu.net>
+
+ scan-code: avoid compiler warnings
+ * src/scan-code.l (parse_named_ref): Use correct specifiers.
+
+2009-06-29 Akim Demaille <demaille@gostai.com>
+
+ 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.
+
+2009-06-27 Alex Rozenman <rozenman@gmail.com>
+
+ Implement support for named symbol references.
+ * 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.cp: New file, named_ref_new function.
+ * src/local.mk: Add two new files.
+ * tests/testsuite.at: Include new test group:
+ * tests/named-refs.at: this new file.
+
+2009-06-25 Akim Demaille <demaille@gostai.com>
+
+ hash: check insertion for memory exhaustion.
+ * src/uniqstr.c (uniqstr_new): New.
+
+2009-06-11 Akim Demaille <demaille@gostai.com>
+
+ style changes.
+ * data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
+ * src/print-xml.c: Style changes.
+ * tests/conflicts.at: Comment changes.
+
+2009-06-11 Akim Demaille <demaille@gostai.com>
+
+ 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.
+
+2009-06-11 Akim Demaille <demaille@gostai.com>
+
+ 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.
+
+2009-06-10 Akim Demaille <demaille@gostai.com>
+
+ 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.
+
+2009-06-10 Akim Demaille <demaille@gostai.com>
+
+ 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.
+
+2009-05-25 Akim Demaille <demaille@gostai.com>
+
+ gnulib: update.
+ * gnulib: Update to latest.
+ * lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
+ * m4/.gitignore: Regen.
+ * src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
+ Call xalloc_die on hash_insert failures.
+ Requested by the new __warn_unused_result__ attribute of
+ hash_insert.
+
+2009-05-22 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Convert multiple variable definition warnings to complaints.
+ * NEWS (2.5): Add a new entry for that change.
+ * doc/bison.texinfo (Decl Summary): Update %define entry.
+ (Bison Options): Update -D/--define/-F/--force-define entry.
+ * src/muscle_tab.c (muscle_percent_define_insert): Implement.
+ * src/muscle_tab.h (muscle_percent_define_insert): Update
+ comments.
+ * tests/input.at (`%define errors'): Update.
+ (`%define, --define, --force-define'): Update.
+
+2009-05-22 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ -F/--force-define and relative %define/-D/--define priorities.
+ * NEWS (2.5): Add documentation to -D/--define entry.
+ * build-aux/cross-options.pl: Hard-code association of
+ --force-define with %define.
+ * doc/bison.texinfo (Decl Summary): In %define entry,
+ cross-reference command-line options.
+ (Bison Options): Add documentation to -D/--define entry.
+ (Option Cross Key): Widen column for --force-define row.
+ * src/getargs.c (usage): Document -F/--force-define. Realign
+ options in output.
+ (short_options, long_options, getargs): Parse -F/--force-define,
+ and update muscle_percent_define_insert invocation.
+ * src/muscle_tab.h (muscle_percent_define_how): New enum type.
+ (muscle_percent_define_insert): Add argument with that type.
+ * src/muscle_tab.c (muscle_percent_define_insert): Implement
+ -F/--force-define behavior and priorities.
+ * src/parse-gram.y (prologue_declaration): Update
+ muscle_percent_define_insert invocations.
+ * tests/input.at (`%define, --define'): Rename to...
+ (`%define, --define, --force-define'): ... this and extend.
+
+2009-05-22 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Update some comments to make sense for -D.
+ * data/bison.m4 (b4_check_user_names): In header comments, say
+ "user occurrence" instead of "grammar occurrence".
+ * src/muscle_tab.h (muscle_percent_define_insert): Likewise.
+ (muscle_percent_code_grow): Likewise just for consistency.
+
+2009-05-22 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/c++.m4: Update copyright year.
+
+2009-05-20 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/c++.m4 (b4_namespace_close): Simplify slightly.
+
+2009-05-19 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Handle a trailing `:' in a user-supplied C++ namespace better.
+ * data/c++.m4 (b4_namespace_close): Don't let it be printed
+ among the closing braces here. This fix might make the
+ generated code easier to debug, but otherwise it should be
+ insignificant because a trailing `:' is a C++ error already.
+
+2009-05-19 Akim Demaille <demaille@gostai.com>
+
+ remove useless variable.
+ * src/getargs.c (skeleton_arg): Remove now useless variable.
+ Should help the compiler see that this printf-like call is sane.
+
+2009-05-11 Akim Demaille <demaille@gostai.com>
+
+ doc: use C++ headers.
+ * doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
+ headers.
+
+2009-05-05 Akim Demaille <demaille@gostai.com>
+
+ fix hexadecimal token number support.
+ * src/scan-gram.l: Catch incorrect ids after hexadecimal numbers.
+
+2009-05-05 Akim Demaille <demaille@gostai.com>
+
+ tests: check token numbers.
+ * tests/input.at (Numbered tokens): New.
+
+2009-05-04 Akim Demaille <demaille@gostai.com>
+
+ bison: catch bad symbol names.
+ * src/scan-gram.l({int}{id}): Report as an invalid identifier.
+ * tests/input.at: Adjust.
+
+2009-05-04 Akim Demaille <demaille@gostai.com>
+
+ space changes.
+ * src/scan-gram.l: Untabify to be robust to zealous editors.
+
+2009-05-04 Akim Demaille <demaille@gostai.com>
+
+ identifiers: dashes are letters.
+ Dashes can now start identifiers (symbols and directives).
+
+ * src/scan-gram.l ({letter}): Add dash.
+ ({id}): Remove it.
+ * tests/input.at (Symbols): Adjust.
+ Remove stray comment.
+ * tests/regression.at (Invalid inputs): Adjust error message.
+ * doc/bison.texinfo (Symbols): Update.
+
+2009-05-01 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Declare %code to be a permanent feature.
+ * NEWS (2.4.2): Here.
+ * doc/bison.texinfo (Prologue Alternatives): Don't say it's
+ experimental.
+ (Decl Summary): Likewise.
+
+2009-04-30 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Convert underscores to dashes in some %define variable names.
+ For now, just api.push-pull and lr.keep-unreachable-states.
+ Maintain old names for backward compatibility.
+ * NEWS (2.5): Document.
+ * data/c.m4 (b4_identification): Update comment.
+ * data/yacc.c: Update access.
+ * doc/bison.texinfo: Update.
+ * etc/bench.pl.in (bench_grammar): Update use.
+ * src/files.c (tr): Move to...
+ * src/getargs.c, src/getargs.h (tr): ... here because I can't
+ think of a better place to expose it. My logic is that, for all
+ uses of tr so far, command-line arguments can be involved, and
+ getargs.h is already included.
+ * src/main.c (main): Update access.
+ * src/muscle_tab.c (muscle_percent_define_insert): Convert old
+ variable names to new variable names before assigning value.
+ * src/reader.c (reader): Update setting default.
+ * tests/calc.at: Update uses.
+ * tests/conflicts.at (Unreachable States After Conflict
+ Resolution): Update use.
+ * tests/input.at (%define enum variables): Update use.
+ (%define backward compatibility): New test group.
+ * tests/push.at: Update uses.
+ * tests/reduce.at: Update uses.
+ * tests/torture.at: Update uses.
+
+2009-04-30 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Set all front-end %define defaults in one place.
+ * src/main.c (main): Move lr.keep_unreachable_states default...
+ * src/reader.c (reader): ... to here.
+
+2009-04-29 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Rename lr.default_reductions to lr.default-reductions.
+ * NEWS (2.5): Here.
+ * doc/bison.texinfo: Here.
+ * src/lalr.c (initialize_LA): Here.
+ * src/print.c (print_reductions): Here.
+ * src/reader.c (reader): Here.
+ * src/tables.c (action_row): Here.
+ * tests/input.at (%define enum variables): Here.
+ * tests/reduce.at (AT_TEST_LR_DEFAULT_REDUCTIONS): Here.
+
+2009-04-29 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Pacify ./configure --enable-gcc-warnings.
+ * tests/input.at (Symbols): Prototype yyerror and yylex.
+
+2009-04-21 Akim Demaille <demaille@gostai.com>
+
+ tests: check the use of dashes and periods in symbols.
+ * tests/input.at (Symbol): New test group.
+
+2009-04-29 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Document how `%define "var" "value"' is not M4-friendly.
+ * src/parse-gram.y (variable): In comments here.
+
+2009-04-29 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Add copyright updates missed during previous cherry pick.
+ * src/output.c: Here.
+ * src/parse-gram.y: Here.
+ * src/scan-gram.l: Here.
+
+2009-04-20 Akim Demaille <demaille@gostai.com>
+
+ variables: accept dashes.
+ * src/scan-gram.l ({id}): Also accept dashes after the initial
+ letter.
+ ({directive}): Use {id}.
+ * src/parse-gram.y: Comment and formatting changes.
+ * doc/bison.texinfo (Symbols): Adjust the lexical definitions of
+ symbols.
+ * src/complain.h, src/complain.c (yacc_at): New.
+ * src/symtab.c (symbol_new): Use yacc_at to report inappropriate
+ symbol names.
+ * src/output.c (token_definitions_output): Do not #define token
+ names with dashes.
+
+2009-04-24 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Clean up recent patches a little.
+ Reported by Akim Demaille.
+ * doc/bison.texinfo (Understanding): Fix typos.
+ * src/print.c (print_reductions): Don't use negated variable.
+
+2009-04-24 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ List accepted values for a %define enum variable with an invalid value.
+ Suggested by Akim Demaille at
+ <http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00082.html>.
+ * data/bison.m4 (_b4_percent_define_check_values): Implement.
+ * src/muscle_tab.c (muscle_percent_define_check_values): Implement.
+ * tests/input.at (%define lr.default_reductions invalid values): Merge
+ into...
+ (%define enum variables): ... here, and update output.
+
+2009-04-23 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Rename "default rule" to "default reduction".
+ This includes changing variable names in code, changing
+ comments, and renaming %define lr.default_rules to %define
+ lr.default_reductions.
+ * NEWS (2.5): Update IELR documentation.
+ * data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c:
+ Adjust YYDEFACT and yydefact_ documentation.
+ * doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
+ and lr.type documentation. Make some other wording
+ improvements.
+ (Glossary): Adjust cross-references and Default Reduction
+ definition.
+ * src/lalr.c (state_lookahead_tokens_count): Adjust code.
+ Remove a confusing comment pointed out by Akim Demaille.
+ (initialize_LA): Adjust code.
+ * src/print-xml.c (print_reductions): Adjust code.
+ * src/print.c (print_reductions): Adjust code.
+ * src/reader.c (reader): Adjust code.
+ * src/tables.c (action_row): Adjust code.
+ (token_actions): Adjust code.
+ * src/tables.h: Adjust YYDEFACT documentation.
+ * tests/input.at (%define lr.default_rules invalid values):
+ Rename test group to...
+ (%define lr.default_reductions invalid values): ... this, and
+ update grammar file and expected output.
+ * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to...
+ (AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
+
+2009-04-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Document %define lr.type and lr.default_rules.
+ * NEWS (2.5): Add an entry.
+ * src/getargs.c (usage): Mention IELR(1) and canonical LR(1)
+ besides just LALR(1) and GLR(1).
+ * doc/bison.texinfo (Introduction): Likewise.
+ (Language and Grammar): Bison is no longer limited to LALR(1)
+ restrictions.
+ (GLR parsing): Say deterministic or LR(1) rather than LALR(1)
+ when trying to distinguish from GLR. Talk about LR(1) grammars
+ rather than LALR(1) grammars.
+ (Decl Summary): In %define api.push_pull entry, say it applies
+ to deterministic parsers in C rather than LALR(1) parsers in C.
+ Add lr.default_rules entry.
+ Add lr.type entry.
+ (Mystery Conflicts): Bison is no longer limited to LALR(1)
+ restrictions.
+ (Generalized LR Parsing): Same changes as for the previous GLR
+ section.
+ (Memory Management): Say deterministic rather than LALR(1).
+ (Understanding): Correct some bison output.
+ Index discussion of "accepting state".
+ Say deterministic rather than LALR(1).
+ (Bison Options): In --yacc entry, say deterministic rather than
+ LALR(1).
+ In --report, --graph, and --xml entries, just don't mention
+ LALR(1).
+ (C++ Parsers): Say deterministic rather than LALR(1).
+ (Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry.
+ (Glossary): Add Accepting State, Consistent State, Default Rule,
+ and IELR(1) definitions.
+ In Generalized LR (GLR) definition, make same changes as in
+ previous GLR sections.
+ In LALR(1) definition, say Bison uses LALR(1) by default rather
+ than implying Bison is limited to LALR(1).
+ (LocalWords): Add IELR.
+
+2009-04-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Finish implementing %define lr.type.
+ Its value can be "LALR", "IELR", or "canonical LR".
+ * lib/timevar.def (TV_IELR_PHASE1): New var.
+ (TV_IELR_PHASE2): New var.
+ (TV_IELR_PHASE3): New var.
+ (TV_IELR_PHASE4): New var.
+ * src/Makefile.am (bison_SOURCES): Add AnnotationList.c,
+ AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c,
+ Sbitset.h, ielr.h, and ielr.c.
+ * src/getargs.h, src/getargs.c (enum trace, trace_args,
+ trace_types): Add trace_ielr.
+ * src/lalr.h, src/lalr.c (ngotos): Export it.
+ (F): Rename to...
+ (goto_follows): ... this, update all uses, and export it.
+ (set_goto_map): Export it.
+ (map_goto): Export it.
+ (compute_lookahead_tokens): Don't free goto_follows yet. Now
+ handled in ielr.
+ (initialize_LA): Export it. Move lookback allocation to...
+ (lalr): ... here because, for canonical LR, initialize_LA must
+ be invoked but lookback and much of the rest of LALR isn't
+ needed.
+ * main.c (main): Instead of lalr, invoke ielr, which invokes
+ lalr.
+ * src/reader.c (reader): Default lr.type to "LALR".
+ Default lr.default_rules to "accepting" if lr.type is "canonical
+ LR". Leave the default as "all" otherwise.
+ Check for a valid lr.type value.
+ * src/state.h, src/state.c (struct state_list): Add state_list
+ member.
+ (state_new): Initialize state_list member to NULL.
+ (state_new_isocore): New function, exported.
+ * tests/existing.at (AT_TEST_EXISTING_GRAMMAR): New macro that
+ exercises all values of lr.type.
+ (GNU AWK Grammar): Rename test group to...
+ (GNU AWK 3.1.0 Grammar): ... this, and extend to use
+ AT_TEST_EXISTING_GRAMMAR.
+ (GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR.
+ (GNU pic Grammar): Rename test group to...
+ (GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use
+ AT_TEST_EXISTING_GRAMMAR.
+ * tests/reduce.at (AT_TEST_LR_TYPE): New macro that exercises
+ all values of lr.type.
+ (Single State Split): New test groups using AT_TEST_LR_TYPE.
+ (Lane Split): Likewise.
+ (Complex Lane Split): Likewise.
+ (Split During Added Lookahead Propagation): Likewise.
+
+2009-04-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Add new files for IELR and canonical LR implementation.
+ * src/AnnotationList.c: New.
+ * src/AnnotationList.h: New.
+ * src/InadequacyList.c: New.
+ * src/InadequacyList.h: New.
+ * src/Sbitset.c: New.
+ * src/Sbitset.h: New.
+ * src/ielr.c: New.
+ * src/ielr.h: New.
+
+2009-04-20 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Implement %define lr.default_rules.
+ Its value describes the states that are permitted to contain
+ default rules: "all", "consistent", or "accepting".
+ * src/reader.c (reader): Default lr.default_rules to "all".
+ Check for a valid lr.default_rules value.
+ * src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
+ is "accepting", then only mark the accepting state as
+ consistent.
+ (initialize_LA): Tell state_lookahead_tokens_count whether
+ lr.default_rules is "accepting".
+ * src/tables.c (action_row): If lr.default_rules is not "all",
+ then disable default rules in inconsistent states.
+ * src/print.c (print_reductions): Use this opportunity to
+ perform some assertions about whether lr.default_rules was
+ obeyed correctly.
+ * tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that
+ helps with checking the parser tables for a grammar.
+ * tests/input.at (%define lr.default_rules invalid values): New
+ test group.
+ * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using
+ AT_TEST_TABLES_AND_PARSE.
+ (`no %define lr.default_rules'): New test group generated by
+ AT_TEST_LR_DEFAULT_RULES.
+ (`%define lr.default_rules "all"'): Likewise.
+ (`%define lr.default_rules "consistent"'): Likewise.
+ (`%define lr.default_rules "accepting"'): Likewise.
+
2009-04-20 Akim Demaille <demaille@gostai.com>
Consistently refer to Yacc, not YACC.
2006-09-15 Bob Rossi <bob@brasko.net>
+ Add support for push parsing. Based on the original work of
+ Odd Arild Olsen <oao@fibula.no>.
* data/Makefile.am (dist_pkgdata_DATA): Add push.c.
* data/c.m4 (YYPUSH): New.
(b4_push_if): New macro. Use it instead of #ifdef YYPUSH.
+ * data/push.c: New file.
* src/getargs.c (push_parser): New var.
* src/getargs.h (push_parser): New declaration.
* src/output.c (prepare): Add macro insertion of `push_flag'.
-----
Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
- 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009 Free Software Foundation, Inc.
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+ 2008, 2009, 2010 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice and this