+2009-08-20 Eric Blake <ebb9@byu.net>
+
+ 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>
+
+ tests: distcc compliance.
+ * tests/synclines.at (AT_SYNCLINES_COMPILE): Discard distcc's
+ error messages from the output.
+
+2009-08-19 Akim Demaille <demaille@gostai.com>
+
+ variables: simplify the upgrade of namespace into api.namespace.
+
+ This patch simplifies "variables: rename namespace as
+ api.namespace", commit 67501061076ba46355cfd9f9361c7eed861b389c.
+ Suggested by Joel E. Denny in
+ http://lists.gnu.org/archive/html/bison-patches/2009-07/msg00006.html
+
+ * src/muscle-tab.c (muscle_percent_variable_update): New.
+ (muscle_percent_define_insert): Use it in replacement of the
+ previous tr invocation.
+ Remove variable_tr, no longer needed.
+ * data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
+ Remove.
+ * data/c++.m4: No longer handle namespace -> api.namespace.
+ * tests/input.at (%define backward compatibility): Check that
+ namespace is treated as api.namespace.
+
+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-19 Akim Demaille <demaille@gostai.com>
+
+ lalr1.cc: use state_type.
+ * data/lalr1.cc (yysyntax_error_): Use state_type.
+ Move argument names into yy*.
+
+2009-08-19 Akim Demaille <demaille@gostai.com>
+
+ lalr1.cc: get rid of yyparse's yystate.
+ yystate and yystack_[0].state are equal, keep only the latter.
+ The former was also used as a temporary variable to compute the
+ post-reduction state. Move this computation into an auxiliary
+ function.
+
+ * data/glr.c (yyLRgotoState): Fuse variable definition and first
+ assignment.
+ * data/lalr1.cc (yy_lr_goto_state_): New.
+ (yyparse): Use it.
+ Replace remaining uses of yystate by yystate_[0].state.
+ Remove the former.
+
+2009-08-19 Akim Demaille <demaille@gostai.com>
+
+ lalr1.cc: destroy $$ when YYERROR is called.
+ * data/lalr1.cc (yyreduce): Compute the resulting state before
+ running the user action so that yylhs is a valid symbol.
+ (yyerrorlab): Since yylhs is complete (it knows its type), we can
+ simply call yy_destroy_ to destroy $$ on YYERROR invocations.
+ * tests/c++.at (AT_CHECK_VARIANTS): Test YYERROR with variants.
+
+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>
+
+ tests: GCC 4.5 compliance.
+ * tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust to GCC 4.5's
+ messages about #error.
+
+2009-08-12 Akim Demaille <demaille@gostai.com>
+
+ build: fix the generation of the documentation.
+ Some of our targets use "bison --help", but they can't depend on
+ "bison" itself (to avoid additional requirements on the user), so
+ they used to call "make src/bison" in the commands. Then
+ concurrent builds may fail: one make might be aiming one of its
+ jobs at compiling src/bison, and another job at generating the man
+ page. If the latter is faster than the former, then we have two
+ makes that concurrently try to compile src/bison.
+
+ This might also be a more convincing explanation for the failure
+ described in the patch "build: fix paths".
+
+ * Makefile.am (SUFFIXES): Initialize.
+ * build-aux/move-if-change: New, symlink to gnulib's.
+ * build-aux/local.mk: Ship it.
+ * doc/common.x: Remove, merged into...
+ * doc/bison.x: here.
+ * doc/local.mk (doc/bison.help): New.
+ ($(CROSS_OPTIONS_TEXI)): Depend on it.
+ Use src/bison.
+ (.x.1): Replace with...
+ (doc/bison.1): this explicit, simpler, target.
+ (common_dep): Remove, inlined where appropriate.
+ (SUFFIXES, PREPATH): Remove, unused.
+
+2009-08-12 Akim Demaille <demaille@gostai.com>
+
+ gnulib: improve prefixing.
+ * configure.ac (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
+ change the value of...
+ (gl_LIBOBJS): this.
+ Adjust more variables.
+ * etc/prefix-gnulib-mk (prefix_assignment): Don't rename
+ gl_LIBOBJS.
+ (prefix): Also transform rules whose targets have slashes.
+ Use $prefix liberally.
+ Map @MKDIR_P@ to $(MKDIR_P).
+ Prefix directories that are mkdir'd.
+
+2009-08-12 Akim Demaille <demaille@gostai.com>
+
+ build: fix paths.
+ When using $(top_builddir) inconsistently, Make (including GNU
+ Make) is sometimes confused. As a result it may want to build
+ lib/libbison.la and $(top_builddir)/lib/libbison.la (the same
+ file, different names) concurrently, which, amusingly enough,
+ might end with:
+
+ ranlib lib/libbison.a
+ ranlib lib/libbison.a
+ make[2]: *** [lib/libbison.a] Segmentation fault
+
+ on OS X.
+
+ * doc/local.mk, src/local.mk: Do not use $(top_builddir) when not
+ needed.
+
+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/local.mk (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/local.mk (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 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 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>
+
+ * 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-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/local.mk.
+ * src/local.mk: 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-29 Akim Demaille <demaille@gostai.com>
+
+ parse.error: fix.
+ * data/bison.m4: Move code related to specific variables after the
+ definition of the variable-maintaining macros so that we don't
+ "invoke" b4_percent_define_check_values before it is defined.
+
+2009-06-29 Akim Demaille <demaille@gostai.com>
+
+ variables: parse.error
+
+ Implement, document, and test the replacement of %error-verbose
+ by %define parse.error "verbose".
+ * data/bison.m4 (b4_error_verbose_if): Reimplement to track the
+ values of the parse.error variable.
+ Make "simple" its default value.
+ Check the valid values.
+ * src/parse-gram.y: Use %define parse.error.
+ (PERCENT_ERROR_VERBOSE): New token.
+ Support it.
+ * src/scan-gram.l: Support %error-verbose.
+
+ * doc/bison.texinfo (Decl Summary): Replace the documentation of
+ %define error-verbose by that of %define parse.error.
+ * NEWS: Document it.
+
+ * tests/actions.at, tests/calc.at: Use parse.error instead of
+ %error-verbose.
+
+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-24 Akim Demaille <demaille@gostai.com>
+
+ variables: rename namespace as api.namespace.
+ Discussed in
+ http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00033.html
+
+ * data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
+ New.
+ (b4_percent_define_use): New.
+ Use it where applicable.
+ * data/c++.m4: Replace uses of the variable "namespace" by
+ "api.namespace".
+ Default the latter to the former.
+ * doc/bison.texinfo (Decl Summary): Document "namespace" as
+ obsolete.
+ Document api.namespace.
+ Use @samp to document %define uses, keep @code for identifiers.
+ * NEWS: Likewise.
+ * tests/c++.at, tests/input.at: Test api.namespace instead of
+ namespace. (The tests passed with namespace.)
+
+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-11 Akim Demaille <demaille@gostai.com>
+
+ tests: honor TESTSUITEFLAGS in every check target.
+ * tests/local.mk (RUN_TESTSUITE): New.
+ (check-local, installcheck-local, maintainer-check-g++)
+ (maintainer-check-posix, maintainer-check-valgrind): Use it.
+
+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>
+
+ 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-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>
+
+ build: avoid ignored errors.
+ * doc/local.mk ($(CROSS_OPTIONS_TEXI)): Don't generate ignored
+ errors, they pollute the output.
+
+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 invocations.
+ * 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.
+ (muscle_percent_define_ensure): Update
+ muscle_percent_define_insert invocation.
+ * 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-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-15 Akim Demaille <demaille@gostai.com>
+
+ Rename token.prefix as api.tokens.prefix.
+ Discussed here.
+ http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00024.html.
+
+ * NEWS, data/bison.m4, data/c.m4, data/java.m4, doc/bison.texinfo,
+ * tests/c++.at, tests/calc.at, tests/java.at, tests/local.at
+ (token.prefix): Rename as...
+ (api.tokens.prefix): this.
+
+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-11 Akim Demaille <demaille@gostai.com>
+
+ doc: token.prefix
+ * doc/bison.simple (Decl Summary): Document token.prefix.
+ (Calc++ Parser): Various fixes.
+ Formatting changes.
+ Use token.prefix.
+ Introduce a macro TOKEN to shorten the code and make it more
+ readable.
+ (Calc++ Scanner): Adjust.
+ * NEWS (Variable token.prefix): 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>
+
+ 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_push_parser): 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-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-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/bison.m4 (b4_integral_parser_tables_map): Adjust YYDEFACT
+ documentation.
+ * data/glr.c, data/lalr1.java: Sync copyright dates.
+ * 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 Akim Demaille <demaille@gostai.com>
+
+ tests: check the use of dashes and periods in symbols.
+ * tests/input.at (Symbol): New test group.
+
+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.