-2010-11-07 Joel E. Denny <jdenny@clemson.edu>
+2011-01-29 Joel E. Denny <joeldenny@joeldenny.org>
+
+ Do not allow identifiers that start with a dash.
+ This cleans up our previous fixes for a bug whereby Bison
+ discarded `.field' in `$-1.field'. The previous fixes were less
+ restrictive about where a dash could appear in an identifier, but
+ the restrictions were hard to explain. That bug was reported and
+ this final fix was originally suggested by Paul Hilfinger. This
+ also fixes a remaining bug reported by Paul Eggert whereby Bison
+ parses `%token ID -123' as `%token ID - 123' and handles `-' as an
+ identifier. Now, `-' cannot be an identifier. Discussed in
+ threads beginning at
+ <http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>,
+ <http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00004.html>.
+ * NEWS (2.5): Update entry describing the dash extension to
+ grammar symbol names. Also, move that entry before the named
+ references entry because the latter mentions the former.
+ * doc/bison.texinfo (Symbol): Update documentation for symbol
+ names. As suggested by Paul Eggert, mention the effect of periods
+ and dashes on named references.
+ (Decl Summary): Update documentation for unquoted %define values,
+ which, as a side effect, can no longer start with dashes either.
+ * src/scan-code.l (id): Implement.
+ * src/scan-gram.l (id): Implement.
+ * tests/actions.at (Exotic Dollars): Extend test group to exercise
+ bug reported by Paul Hilfinger.
+ * tests/input.at (Symbols): Update test group, and extend to
+ exercise bug reported by Paul Eggert.
+ * tests/named-refs.at (Stray symbols in brackets): Update test
+ group.
+ ($ or @ followed by . or -): Likewise.
+ * tests/regression.at (Invalid inputs): Likewise.
+
+2011-01-24 Joel E. Denny <joeldenny@joeldenny.org>
+
+ * data/yacc.c: Fix last apostrophe warning from xgettext.
+
+2011-01-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix minor problems encountered by a fresh bootstrap.
+ * data/glr.c, data/yacc.c: Do not use apostrophes in '#' comments,
+ as they confuse xgettext, which tries to parse them as C character
+ constants in a preprocessor directive.
+ * data/yacc.c (yy_lac): Don't use printf %d format on *yyesp, as
+ that expression might not promote to int on some platforms.
+ * src/parse-gram.c, src/parse-gram.h: Regenerate.
+
+2011-01-09 Joel E. Denny <joeldenny@joeldenny.org>
+
+ Improve error messages for `$' or `@' followed by `.' or `-'.
+ Previously, for this special case of an invalid reference, the
+ usual "symbol not found in production:" was printed. However,
+ because the symbol name was parsed as the empty string, that
+ message was followed immediately by a newline instead of a symbol
+ name. In reality, this is a syntax error, so the reference is
+ invalid regardless of the symbols actually appearing in the
+ production. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00012.html>.
+ * src/scan-code.l (parse_ref): Report the above case as a syntax
+ error. Other than that, continue to handle this case like any
+ other invalid reference that Bison manages to parse because
+ "possibly meant" messages can still be helpful to the user.
+ * tests/named-refs.at ($ or @ followed by . or -): New test group.
+
+2011-01-08 Joel E. Denny <joeldenny@joeldenny.org>
+
+ doc: don't use @acronym.
+ Lately, many GNU packages are dropping it. See
+ <http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00003.html>.
+ * doc/bison.texinfo: Remove all uses.
+
+2011-01-05 Alex Rozenman <rozenman@gmail.com>
+
+ Do not allow identifiers that start with a negative number.
+ Reported by Paul Hilfinger as a side effect of named references
+ support at
+ <http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>.
+ Suggested by Paul Eggert.
+ * src/scan-code.l ({letter}, {id}): Adjust lexical definitions.
+ * src/scan-gram.l ({letter}, {id}): Likewise.
+
+2011-01-03 Joel E. Denny <joeldenny@joeldenny.org>
+
+ * ChangeLog (2011-01-02): improve description.
+
+2011-01-03 Joel E. Denny <joeldenny@joeldenny.org>
+
+ maint: don't update copyright years in bootstrap.
+ * .x-update-copyright: Add entry for bootstrap.
+ * bootstrap: Remove 2011 from copyright years. The bootstrap
+ version we're currently using comes from an older version of
+ gnulib.
+ * bootstrap.conf (bootstrap_sync): Add comments explaining this
+ issue.
+
+2011-01-02 Joel E. Denny <joeldenny@joeldenny.org>
+
+ maint: run "make update-copyright".
+
+2011-01-02 Joel E. Denny <joeldenny@joeldenny.org>
+
+ maint: prepare to use year ranges in copyright notices.
+ * README (Copyright statements): New section explaining the range
+ notation. The GNU maintainers document requires this explanation:
+ <http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices>.
+ I copied our explanation from coreutils.
+ * build-aux/update-b4-copyright: Revert 2010-06-17 changes that
+ disabled Bison's automated use of ranges.
+ * cfg.mk (update-copyright-env): Likewise.
+
+2011-01-02 Joel E. Denny <joeldenny@joeldenny.org>
+
+ Correct my email address.
+ * ChangeLog: In all recent entries.
+ * THANKS (Joel E. Denny): Here.
+
+2010-12-19 Joel E. Denny <joeldenny@joeldenny.org>
+
+ doc: cleanup.
+ * NEWS (2.5): Try to sort entries according to how interesting
+ users might find them.
+
+2010-12-19 Joel E. Denny <joeldenny@joeldenny.org>
+
+ doc: cleanup.
+ * NEWS (2.5): Make some minor improvements to wording, and format
+ entries more consistently.
+ * doc/bison.texinfo (Language and Grammar): Point out that IELR
+ and canonical LR are experimental features.
+ (Decl Summary): In list of %define variables, make wording more
+ consistent. Improve discussion of using LALR for GLR.
+
+2010-12-19 Joel E. Denny <joeldenny@joeldenny.org>
+
+ parse.lac: document.
+ * NEWS (2.5): Add entry for LAC, and mention LAC in entry for
+ other corrections to verbose syntax error messages.
+ * doc/bison.texinfo (Decl Summary): Rewrite entries for
+ lr.default-reductions and lr.type to be clearer, to mention
+ %nonassoc's effect on canonical LR, and to mention LAC. Add entry
+ for parse.lac.
+ (Glossary): Add entry for LAC.
+
+2010-12-11 Joel E. Denny <joeldenny@joeldenny.org>
+
+ parse.lac: implement exploratory stack reallocations.
+ * data/yacc.c: Rename %define variable parse.lac.es-capacity to
+ parse.lac.es-capacity-initial. Accept parse.lac.memory-trace
+ with values of "failures" (default) or "full".
+ (b4_declare_parser_state_variables): Add yyesa, yyes, and
+ yyes_capacity variables.
+ (YYSTACK_USE_ALLOCA): Ignore it if LAC requested.
+ (YYSTACK_ALLOC, YYSTACK_FREE, YYSTACK_ALLOC_MAXIMUM): Define if
+ LAC requested.
+ (YYCOPY_NEEDED): New cpp macro.
+ (YYCOPY): Define if LAC requested.
+ (yy_lac_stack_realloc): New function implementing stack
+ reallocations. Use YYMAXDEPTH for maximum stack size given that
+ the stack should never need to grow larger than the main state
+ stack needs to grow without LAC.
+ (YY_LAC_ESTABLISH): Update yy_lac invocation.
+ (yy_lac): Add arguments for exploratory stack memory data
+ recorded in the main parser. Invoke yy_lac_stack_realloc when
+ reallocation is necessary.
+ (yysyntax_error): Add the same new arguments and pass them to
+ yy_lac.
+ (yypstate_delete): Free yyes if necessary.
+ (yyesa, yyes, yyes_capacity): #define these to yypstate members
+ in the case of push parsing.
+ (yyparse, yypush_parse): Initialize yyes and yyes_capacity.
+ Update yysyntax_error invocations. At yyreturn, free yyes if
+ necessary.
+ * src/parse-gram.y: %define parse.lac full.
+ * tests/input.at (LAC: errors for %define): Extend for
+ parse.lac-memory-trace.
+ * tests/regression.at (LAC: Exploratory stack): Extend to check
+ that stack reallocs happen when expected.
+ (LAC: Memory exhaustion): Update to use YYMAXDEPTH and
+ parse.lac.es-capacity-initial.
+
+2010-12-11 Joel E. Denny <joeldenny@joeldenny.org>
+
+ parse.lac: implement as %define variable.
+ LAC = lookahead correction. See discussion at
+ <http://lists.gnu.org/archive/html/bison-patches/2009-09/msg00034.html>.
+ However, one point there must be corrected: because of %nonassoc,
+ LAC is *not* always redundant for lr.type=canonical-lr.
+ * data/yacc.c: Accept values of "none" (default) or "full" for
+ parse.lac. Accept %define parse.lac.es-capacity to specify
+ capacity of LAC's temporary exploratory stack. It defaults to 20
+ and, for now, will not grow dynamically.
+ (b4_lac_flag, b4_lac_if): New m4 macros. Evaluate as true for
+ parse.lac!=none.
+ (YYBACKUP): Invoke YY_LAC_DISCARD.
+ (YY_LAC_ESTABLISH, YY_LAC_DISCARD): New cpp macros that invoke
+ yy_lac and track when it needs to be invoked
+ (yy_lac): New function that, given the current stack, determines
+ whether a token can eventually be shifted. Return status mimics
+ yyparse return status.
+ (yysyntax_error): Change yystate argument to yyssp so stack top
+ can be passed to yy_lac. If LAC is requested, build expected
+ token list by invoking yy_lac for every token instead of just
+ checking the current state for lookaheads. Return 2 if yy_lac
+ exhausts memory.
+ (yyparse, yypush_parse): Use local variable yy_lac_established and
+ cpp macros YY_LAC_ESTABLISH and YY_LAC_DISCARD to implement LAC.
+ Update yysyntax_error invocation. Add yyexhaustedlab code if LAC
+ is requested.
+ * tests/conflicts.at (%nonassoc and eof): Extend to check the
+ effect of each of -Dlr.type=canonical-lr and -Dparse.lac=full.
+ (%error-verbose and consistent errors): Likewise.
+ (LAC: %nonassoc requires splitting canonical LR states): New test
+ group demonstrating how LAC can fix canonical LR.
+ * tests/input.at (LAC: Errors for %define): New test group.
+ * tests/regression.at (LAC: Exploratory stack): New test group.
+ (LAC: Memory exhaustion): New test group.
+
+2010-11-21 Joel E. Denny <joeldenny@joeldenny.org>
+
+ build: use gnulib's new bootstrap_sync option.
+ Now, whenever we update bison's copy of gnulib, bootstrap will
+ update itself the next time it's run.
+ * bootstrap: Copy from latest gnulib for bootstrap_sync support.
+ * bootstrap.conf (bootstrap_sync): Set to true.
+ * gnulib: Update to latest so bootstrap is in sync now.
+
+2010-11-07 Joel E. Denny <joeldenny@joeldenny.org>
yysyntax_error: adjust prior fixes for branch-2.5's lalr1.cc.
On master, there is no yychar in lalr1.cc, but there is on
* tests/conflicts.at (%error-verbose and consistent errors):
Extend to test yychar manipulation with lalr1.cc.
-2010-11-07 Joel E. Denny <jdenny@clemson.edu>
+2010-11-07 Joel E. Denny <joeldenny@joeldenny.org>
yysyntax_error: fix for consistent error with lookahead.
* NEWS (2.5): Document.
(AT_BISON_OPTION_POPDEFS): Pop it.
(AT_FULL_COMPILE): Extend to handle Java.
-2010-11-07 Joel E. Denny <jdenny@clemson.edu>
+2010-11-07 Joel E. Denny <joeldenny@joeldenny.org>
yysyntax_error: more preparation for readability of next patch.
There are no behavioral changes here.
* tests/conflicts.at (%error-verbose and consistent errors):
Reorganize.
-2010-11-07 Joel E. Denny <jdenny@clemson.edu>
+2010-11-07 Joel E. Denny <joeldenny@joeldenny.org>
yysyntax_error: prepare for readability of next patches.
These are purely whitespace changes that result in ugly code
-----
- Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
- 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1987-1988, 1991-2011 Free Software Foundation,
+ Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice and this