+2010-12-11 Joel E. Denny <jdenny@clemson.edu>
+
+ 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.
+ (parse.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 <jdenny@clemson.edu>
+
+ 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 <jdenny@clemson.edu>
+
+ yysyntax_error: fix for consistent error with lookahead.
+ * NEWS (2.5): Document.
+ * data/yacc.c (yysyntax_error): In a verbose syntax error
+ message while in a consistent state with a default action (which
+ must be an error action given that yysyntax_error is being
+ invoked), continue to drop the expected token list, but don't
+ drop the unexpected token unless there actually is no lookahead.
+ Moreover, handle that internally instead of returning 1 to tell
+ the caller to do it. With that meaning of 1 gone, renumber
+ return codes more usefully.
+ (yyparse, yypush_parse): Update yysyntax_error usage. Most
+ importantly, set yytoken to YYEMPTY when there's no lookahead.
+ * data/glr.c (yyreportSyntaxError): As in yacc.c, don't drop the
+ unexpected token unless there actually is no lookahead.
+ * data/lalr1.cc (yy::parser::parse): If there's no lookahead,
+ pass yyempty_ not yyla.type to yysyntax_error_.
+ (yy::parser::yysyntax_error_): Again, don't drop the unexpected
+ token unless there actually is no lookahead.
+ * data/lalr1.java (YYParser::parse): If there's no lookahead,
+ set yytoken to yyempty_ before invoking yysyntax_error.
+ (YYParser::yysyntax_error): Again, don't drop the unexpected
+ token unless there actually is no lookahead.
+ * tests/conflicts.at (parse.error=verbose and consistent
+ errors): Extend test group to further reveal how the previous
+ use of the simple "syntax error" message was too general. Test
+ yacc.c, glr.c, lalr1.cc, and lalr1.java. No longer an expected
+ failure.
+ * tests/java.at (AT_JAVA_COMPILE, AT_JAVA_PARSER_CHECK): Move
+ to...
+ * tests/local.at: ... here.
+ (_AT_BISON_OPTION_PUSHDEFS): Push AT_SKEL_JAVA_IF definition.
+ (AT_BISON_OPTION_POPDEFS): Pop it.
+ (AT_FULL_COMPILE): Extend to handle Java.
+
+2010-11-07 Joel E. Denny <jdenny@clemson.edu>
+
+ yysyntax_error: more preparation for readability of next patch.
+ There are no behavioral changes here.
+ * data/glr.c (yyreportSyntaxError): Reorganize.
+ * data/lalr1.cc (yy::parser::yysyntax_error_): Reorganize.
+ * tests/conflicts.at (parse.error=verbose and consistent errors):
+ Reorganize.
+
+2010-11-07 Joel E. Denny <jdenny@clemson.edu>
+
+ yysyntax_error: prepare for readability of next patches.
+ These are purely whitespace changes that result in ugly code
+ but that make the next couple of patches much easier to read.
+ * data/glr.c (yyreportSyntaxError): Reindent.
+ * data/lalr1.cc (yy::parser::yysyntax_error_): Reindent.
+ * data/lalr1.java (YYParser::yysyntax_error): Reindent.
+ * data/yacc.c (yysyntax_error): Reindent.
+
+2010-10-31 Joel E. Denny <joeldenny@joeldenny.org>
+
+ Fix memory leak.
+ * src/output.c (prepare_rules): Free temporary array.
+
+2010-10-31 Joel E. Denny <joeldenny@joeldenny.org>
+
+ yysyntax_error: improve invocation readability.
+ * data/yacc.c (yyparse, yypush_parse): For yysyntax_error
+ invocation, get rid of the while loop, which is misleading
+ because there are really at most two iterations.
+
+2010-10-31 Joel E. Denny <joeldenny@joeldenny.org>
+
+ * ChangeLog: Correct some errors in previous entries.
+
+2010-10-17 Joel E. Denny <joeldenny@joeldenny.org>
+
+ maint: re-anchor all .gitignore entries.
+ * bootstrap: Copy from gnulib's latest for the fix to
+ automatically anchor entries it constructs.
+ * gnulib: Update to latest just so it has the same bootstrap.
+ * .gitignore, build-aux/.gitignore, doc/.gitignore:
+ * lib/.gitignore, m4/.gitignore, po/.gitignore:
+ * runtime-po/.gitignore: Re-anchor all entries.
+
+2010-10-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix portability problem on OpenBSD 4.7.
+
+ Jim Meyering reported this in
+ <http://lists.gnu.org/archive/html/bug-bison/2010-10/msg00007.html>.
+ * data/yacc.c: Use EXIT_SUCCESS as a witness for stdlib.h,
+ not _STDLIB_H. EXIT_SUCCESS has been defined by the standard
+ for quite some time.
+ * src/parse-gram.c, src/parse-gram.h: Regenerate.
+ * tests/regression.at: Tamper with the renamed witness.
+
+ Adjust to recent changes to gnulib bootstrap.
+
+ * .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore:
+ * examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore:
+ * po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore:
+ * tests/.cvsignore: Remove; I don't use CVS to maintain Bison
+ anymore and don't know of anybody else who does. If someone needs
+ these files, they can resurrect them.
+ * .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore:
+ * m4/.gitignore, po/.gitignore, runtime-po/.gitignore:
+ Omit leading '/', since bootstrap omits it.
+ Adjust file names to match current contents better.
+ * bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook
+ installed just for us.
+ * bootstrap.conf (excluded_files): Don't exclude codeset.m4,
+ glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now
+ needed somehow. Don't have time to look into why.
+ (gnulib_modules): Change malloc to malloc-gnu. Do we really assume
+ the GNU malloc behavior, where malloc (0) != NULL unless we're
+ out of storage? If not, we can omit malloc-gnu; but for now I left
+ it in to be safe.
+ (vc_ignore): Remove.
+ (gnulib_mk_hook): New function.
+ * README-hacking: Renamed from HACKING, since gnulib bootstrap now
+ uses that convention.
+
+2010-09-09 Paul Hilfinger <hilfinger@cs.berkeley.edu>
+
+ * data/glr.c (yySymbol): Define as int to avoid compiler warnings about
+ possible change of value.
+
+2010-09-08 Paul Hilfinger <hilfinger@cs.berkeley.edu>
+
+ * data/glr.c (yy_reduce_print): Change yyrhsVals to yyvsp to remove
+ compiler errors when using %debug.
+ Add declaration of yylow when locations in use to avoid compilation
+ error.
+ (yyglrReduce): Conditionalize message "Parse ... rejected by rule..."
+ on whether we are in split mode, for consistency with behavior of
+ non-GLR parsing.
+
+2010-09-01 Akim Demaille <demaille@gostai.com>
+
+ Address GCC warnings about shadowed local variables (yyflag).
+ * data/glr.c (YYCHK): Rename yyflag as yychk_flag.
+ (yyprocessOneStack): Reduce the scope of yyaction, yyconflicts,
+ yyrule, and yyflag.
+
+2010-08-05 Joel E. Denny <joeldenny@joeldenny.org>
+
+ Version 2.4.3.
+ * NEWS (2.4.3): Set date.
+
+2010-08-04 Joel E. Denny <joeldenny@joeldenny.org>
+
+ maint: add gettext version to release announcements.
+ Suggested by Paul Hilfinger at
+ <http://lists.gnu.org/archive/html/bison-patches/2010-07/msg00019.html>
+ <http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00002.html>.
+ * cfg.mk (bootstrap-tools): Add gettext.
+
+2010-08-04 Joel E. Denny <joeldenny@joeldenny.org>
+
+ doc: fix -W and %expect documentation some.
+ * NEWS (2.4.3): Mention that there are documentation fixes.
+ * doc/bison.texinfo (Expect Decl): Make it clear that %expect
+ turns conflicts into errors not warnings.
+ (Shift/Reduce): Likewise.
+ (Bison Options): Don't mention -Wsyntax. It doesn't exist.
+
+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>
+
+ build: fix our adjustments for gnulib files in lib.
+ * configure.ac: For prepending lib/ to the values of config
+ variables, fix detection of empty values. Also, due to recent
+ gnulib changes, add LIBUNISTRING_UNITYPES_H and
+ LIBUNISTRING_UNIWIDTH_H to the list of those variables.
+
+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-07-23 Paul Hilfinger <hilfingr@EECS.Berkeley.EDU>
* NEWS: Describe new semantic-predicate feature.
- * data/c.m4 (b4_predicate_case): New definition.
- * data/java.m4 (b4_predicate_case): New definition.
- * data/glr.c (yyimmediate): Add definition.
- (yydoAction): Remove comment, now obsolete.
- Do YY_REDUCE_PRINT here.
- (yyglrReduce): Alter comment to indicate that semantic values
- need not be deferred.
- Remove YY_REDUCE_PRINT from here; done in yydoAction.
- (yyprocessOneStack): Pass immediate flag.
- Delete stacks rejected by predicates in newly split-off parsers.
- Change handling of yyerr so that only current stack gets deleted
- when semantic predicate fails.
- (yyfillin): Don't crash if a semantic value is unresolved (as may
- happen in predicate rules).
- Copy lr state as well in debugging mode.
- Update comment on setting of yysval to include yyloc as well.
- (yy_reduce_print): Add yynormal argument. Perform fillin properly.
- Report unresolved RHS values.
- (yyimmediate): New table.
- * src/gram.h (struct rule): Add is_predicate field.
- * src/output.c (user_actions_output): Use b4_predicate_case for
- predicates.
- (prepare_symbols): Output yyimmediate.
- * src/scan-gram.l: Add %? token, SC_PREDICATE state.
- * src/scan-code.l (code_props_rule_action_init): Add is_predicate
- argument.
- * src/scan-code.h (struct code_props): Add is_predicate field.
- (code_props_rule_action_init): New interface.
- * src/parse-gram.y (%?{...}): New token.
- (rhs): Add %?{...} rule.
- * src/parse-gram.c: Regenerate.
- * src/parse-gram.h: Regenerate.
- * src/reader.c (grammar_current_rule_action_append): Add
- immediate argument.
- (grammar_midrule_action): Use new interface for
- code_props_rule_action_init.
- (grammar_current_rule_action_append): Ditto.
- (packgram): Transfer is_predicate value.
- * src/reader.h (grammar_current_rule_action_append): New interface.
- * doc/bison.texinfo: Document semantic predicates (%?).
-
- * data/glr.c (yylhsNonterm, yyisDefaultedState,yyDefaultAction)
- (yygetLRActions,yynewGLRStackItem,yyaddDeferredAction,yyinitStateSet)
- (yyinitGLRStack,yyexpandGLRStack,yyupdateSplit,yymarkStackDeleted)
- (yyundeleteLastStack,yyglrShift,yyglrShiftDefer,yydoAction,yyglrReduce)
- (yyidenticalOptions,yymergeOptionSets,yyresolveStates,yyresolveAction)
- (yyresolveLocations,yyresolveValue,yyreducePrint): Update parameter
- names in comments and mention all parameters.
- (struct yyGLRState): Fix description of yyposn field.
- (yyresolveLocations): Correct comment so as not to imply action when
- yyn1==0.
-
+ * data/c.m4 (b4_predicate_case): New definition.
+ * data/java.m4 (b4_predicate_case): New definition.
+ * data/glr.c (yyimmediate): Add definition.
+ (yydoAction): Remove comment, now obsolete.
+ Do YY_REDUCE_PRINT here.
+ (yyglrReduce): Alter comment to indicate that semantic values
+ need not be deferred.
+ Remove YY_REDUCE_PRINT from here; done in yydoAction.
+ (yyprocessOneStack): Pass immediate flag.
+ Delete stacks rejected by predicates in newly split-off parsers.
+ Change handling of yyerr so that only current stack gets deleted
+ when semantic predicate fails.
+ (yyfillin): Don't crash if a semantic value is unresolved (as may
+ happen in predicate rules).
+ Copy lr state as well in debugging mode.
+ Update comment on setting of yysval to include yyloc as well.
+ (yy_reduce_print): Add yynormal argument. Perform fillin properly.
+ Report unresolved RHS values.
+ (yyimmediate): New table.
+ * src/gram.h (struct rule): Add is_predicate field.
+ * src/output.c (user_actions_output): Use b4_predicate_case for
+ predicates.
+ (prepare_symbols): Output yyimmediate.
+ * src/scan-gram.l: Add %? token, SC_PREDICATE state.
+ * src/scan-code.l (code_props_rule_action_init): Add is_predicate
+ argument.
+ * src/scan-code.h (struct code_props): Add is_predicate field.
+ (code_props_rule_action_init): New interface.
+ * src/parse-gram.y (%?{...}): New token.
+ (rhs): Add %?{...} rule.
+ * src/parse-gram.c: Regenerate.
+ * src/parse-gram.h: Regenerate.
+ * src/reader.c (grammar_current_rule_action_append): Add
+ immediate argument.
+ (grammar_midrule_action): Use new interface for
+ code_props_rule_action_init.
+ (grammar_current_rule_action_append): Ditto.
+ (packgram): Transfer is_predicate value.
+ * src/reader.h (grammar_current_rule_action_append): New interface.
+ * doc/bison.texinfo: Document semantic predicates (%?).
+
+ * data/glr.c (yylhsNonterm, yyisDefaultedState,yyDefaultAction)
+ (yygetLRActions,yynewGLRStackItem,yyaddDeferredAction,yyinitStateSet)
+ (yyinitGLRStack,yyexpandGLRStack,yyupdateSplit,yymarkStackDeleted)
+ (yyundeleteLastStack,yyglrShift,yyglrShiftDefer,yydoAction,yyglrReduce)
+ (yyidenticalOptions,yymergeOptionSets,yyresolveStates,yyresolveAction)
+ (yyresolveLocations,yyresolveValue,yyreducePrint): Update parameter
+ names in comments and mention all parameters.
+ (struct yyGLRState): Fix description of yyposn field.
+ (yyresolveLocations): Correct comment so as not to imply action when
+ yyn1==0.
+
2010-06-17 Paul Eggert <eggert@cs.ucla.edu>
Update from GFDL GFDL 1.2 to 1.3.
YYFAIL: warn about uses and remove from lalr1.java.
* NEWS (2.5): Document.
- * data/lalr1.java (parser::YYStack::YYFAIL): Rename to YYERRLAB,
+ * data/lalr1.java (YYParser::YYFAIL): Rename to YYERRLAB,
and make it private. Update all uses.
* src/scan-code.l (SC_RULE_ACTION): Implement warning.
YYFAIL: deprecate.
* NEWS (2.4.2): Document deprecation and the phase-out plan.
- * data/lalr1.java (parser::YYStack::YYFAIL): Add comment about
+ * data/lalr1.java (YYParser::YYFAIL): Add comment about
deprecation.
* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
YYFAIL from GCC cpp's -Wunused-macros.
2009-12-18 Joel E. Denny <jdenny@clemson.edu>
lalr1.cc: don't discard non-existent lookahead on syntax error.
- * data/lalr1.cc (parser::parse): Check yyempty first.
+ * data/lalr1.cc (yy::parser::parse): Check yyempty first.
* tests/c++.at (Syntax error discarding no lookahead): New test
group.