X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/d467f443dfad0b9f243d0270feb85719c1ae6be6..86408959da5eddf26493eef64f049034a7849e2a:/ChangeLog diff --git a/ChangeLog b/ChangeLog index cef54a3d..bd642258 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,596 @@ +2011-03-27 Joel E. Denny + + * NEWS (2.5): Document fix for -Wno-CATEGORY. + +2011-03-20 Joel E. Denny + + doc: fix confusing citation of LAC publication. + Suggested by Akim Demaille. + * doc/bison.texinfo (LAC): Here. + +2011-03-20 Joel E. Denny + + lr.default-reductions: rename "full" value to "most". + Unlike "consistent" and "accepting", "full" doesn't answer the + question of "which states". + * doc/bison.texinfo (%define Summary): Update. + (Default Reductions): Update. + * src/print.c (print_reductions): Update. + * src/reader.c (prepare_percent_define_front_end_variables): + Update. + * src/tables.c (action_row): Update. + * tests/input.at (%define enum variables): Update. + * tests/reduce.at (%define lr.default-reductions): Update. + +2011-03-13 Joel E. Denny + + * src/parse-gram.c, src/parse-gram.h: Regenerate. + +2011-03-09 Akim Demaille + + named references: fix double free. + In `rhs[name]: "a" | "b"', do not free "name" twice. + Reported by Tys Lefering. + + * src/named-ref.h, src/named-ref.c (named_ref_copy): New. + * src/parse-gram.y (current_lhs): Rename as... + (current_lhs_symbol): this. + (current_lhs): New function. Use it to free the current lhs + named reference. + * src/reader.c: Bind lhs to a copy of the current named reference. + * src/symlist.c: Rely on free (0) being valid. + * tests/named-refs.at: Test this. + +2011-03-09 Akim Demaille + + tests: style changes. + * tests/named-refs.at (Redundant words in LHS brackets) + (Unresolved references): here. + +2011-03-06 Joel E. Denny + + java: fix parser tracing bug. + * NEWS (2.5): Document. + * data/lalr1.java (YYParser::YYStack::print): Don't skip top + element. + +2011-03-06 Joel E. Denny + + java: finish fixing parser stack popping bug. + * NEWS (2.5): Document. + * data/lalr1.java (YYParser::YYStack::pop): Fix off-by-one error + in clearing the location stack. Also fix pop function that + accepts no arguments. + +2011-03-06 Angelo Borsotti (tiny change) + + java: fix parser stack popping bug. + Reported at + . + * THANKS (Angelo Borsotti): Add. + * data/lalr1.java (YYParser::YYStack::pop): Fix off-by-one error + in clearing the value stack. Previously, the top element of the + stack wasn't cleared and so the value was not garbage collected. + +2011-03-06 Joel E. Denny + + doc: cite publication for LAC. + * doc/bison.texinfo (LAC): Here. + +2011-03-06 Joel E. Denny + + doc: clean up terminology for mysterious conflicts. + * doc/bison.texinfo (Mystery Conflicts): Rename node to... + (Mysterious Conflicts): ... this, which is already the section + title and the name used in the index. Update all cross-references + to this node. Also, don't imply that R/R conflicts are the only + kind of mysterious conflict. + +2011-03-06 Joel E. Denny + + lr.default-reductions: rename "all" value to "full". + States that shift the error token do not have default reductions, + and GLR disables some default reductions, so "all" was a misnomer. + * doc/bison.texinfo (%define Summary): Update. + (Default Reductions): Update. + * src/print.c (print_reductions): Update. + * src/reader.c (prepare_percent_define_front_end_variables): + Update. + * src/tables.c (action_row): Update. + * tests/input.at (%define enum variables): Update. + * tests/reduce.at (%define lr.default-reductions): Update. + +2011-03-06 Joel E. Denny + + doc: create a new Tuning LR section in the manual. + And clean up all other documentation of the features described + there. + * NEWS (2.5): Tweak wording of lr.type and parse.lac entries a + bit, update the cross-references to the manual, and point out that + LAC has caveats. Don't be so adamant that IELR+LAC=canonical LR. + That is, as the referenced section in the manual documents, LAC + does not fix infinite parsing loops on syntax errors. + * doc/bison.texinfo: Consistently drop the "(1)" suffix from LALR, + IELR, and LR in @cindex. + (%define Summary): Condense the entries for lr.default-reductions, + lr.keep-unreachable-states, lr.type, and parse.lac into brief + summaries, and cross-reference the appropriate subsections of + Tuning LR. For parse.lac, mention that it's only implemented for + deterministic parsers in C. In parse.error entry, mention LAC, + and add cross-reference to the LAC section. + (Error Reporting): When mentioning parse.error, mention LAC, and + add cross-reference to the LAC section. + (Tuning LR): New section with an extended version of the + documentation removed from %define Summary. Change all + cross-references in the manual to point here instead of there. + (Calc++ Parser): When mentioning parse.error, mention LAC, and add + cross-reference to the LAC section. + (Table of Symbols): In %error-verbose entry, add cross-reference + to Error Reporting. + (Glossary): Capitalize entry titles consistently. Add definitions + for "defaulted state" and "unreachable state". Expand IELR + acronym in IELR's entry. + +2011-02-20 Joel E. Denny + + doc: add bibliography to manual. + * doc/bison.texinfo (Mystery Conflicts): Cross-reference + bibliography instead of citing publications directly. + (Generalized LR Parsing): Likewise. + (Bibliography): New section. Not all entries are cross-referenced + yet, but that will come in future patches. + +2011-02-19 Joel E. Denny + + java: test and document previous bug fix. + * NEWS (2.5): Document it. + * tests/java.at (_AT_DATA_JAVA_CALC_Y): To one of the yyerror + invocations, pass a location that spans multiple tokens. Change + yyerror to report all of a location rather than just the begin + position. Extend yylex and Position to count tokens on a line. + Remove getHashCode as it's unused. Update all expected output. + +2011-02-19 Bernd Kiefer (tiny change) + + java: fix location handling bug. + Reported at + . + * data/lalr1.java (YYParser::yylloc): For non-empty RHS, fix + reversed access to location stack. + * THANKS (Bernd Kiefer): Add. + +2011-02-13 Joel E. Denny + + doc: fix some minor inconsistencies. + * doc/bison.texinfo (%define Summary): Fix mislabeled entry for + lex_symbol. + (%code Summary): For consistency with the variable list in the + %define Summary, enclose the list of %code qualifiers in a table + instead of an itemize. + +2011-02-06 Joel E. Denny + + doc: clean up new subsections in manual. + * doc/bison.texinfo (%define Summary): Reword so it reads well as + a separate section. For example, add an intro, and move most of + the text outside of the @deffn so it is not indented so far. + (%code Summary): Likewise. + (Table of Symbols): Reword %code entry to match the %code entry in + Decl Summary. + +2011-02-06 Joel E. Denny + + doc: finish splitting apart the manual's Decl Summary section. + Suggested by Akim Demaille at + . + * doc/bison.texinfo (Decl Summary): Extract most of the %define + entry into... + (%define Summary): ... this new subsection, and update all + cross-references. For readability of the patches, rewriting of + the text so it makes sense as a separate subsection will come in a + later patch. Moreover, the majority of the text describing the + various new LR features should likely move to another new section + somewhere. + +2011-02-06 Joel E. Denny + + doc: begin to split apart the manual's Decl Summary section. + Discussed in thread starting at + . + * doc/bison.texinfo (Decl Summary): Extract most of the %code + entry into... + (%code Summary): ... this new subsection, and update all + cross-references. For readability of the patches, rewriting of + the text so it makes sense as a separate subsection will come in a + later patch. + +2011-02-06 Joel E. Denny + + doc: clean up naming of various Bison files. + The Bison manual's names for various files associated with a Bison + parser has devolved into inconsistency. This patch makes the + naming consistent for the most important files. First, it chooses + "grammar file" over "input file". The former appears to be more + traditional in the Bison manual, and Bison has other input + files (skeletons). Second, it chooses "parser implementation + file" over names like "parser file", "parser source file", "parser + source code file", and "parser output file". The new name makes + it clearer where Bison generates the main parser implementation, + and it is easily distinguishable from "parser header file". + * doc/bison.texinfo: Implement throughout. + +2011-02-06 Joel E. Denny + + doc: give credit to more of Bison's developers. + * doc/bison.texinfo (Introduction): Don't imply that only Robert + Corbett, Richard Stallman, and Wilfred Hansen have contributed to + Bison. However, I don't have time to write a full history, so + just point readers to THANKS and ChangeLog. + +2011-02-06 Joel E. Denny + + doc: document experimental features better. + * doc/bison.texinfo (Introduction): Say that IELR(1) and canonical + LR(1) are experimental. Mention Java. Normally experimental + features probably shouldn't be mentioned in the introduction. + However, if Bison's limitations to LALR(1), C, and C++ are so + important that they should be mentioned here, then it's important + to point out that Bison is beginning to escape those limitations. + Moreover, these particular experimental features have very little + chance of being removed. + * src/getargs.c (usage): Say that IELR(1) and canonical LR(1) are + experimental. + +2011-01-29 Joel E. Denny + + 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 + , + . + * 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 + + * data/yacc.c: Fix last apostrophe warning from xgettext. + +2011-01-09 Paul Eggert + + 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 + + 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 + . + * 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 + + doc: don't use @acronym. + Lately, many GNU packages are dropping it. See + . + * doc/bison.texinfo: Remove all uses. + +2011-01-05 Alex Rozenman + + Do not allow identifiers that start with a negative number. + Reported by Paul Hilfinger as a side effect of named references + support at + . + 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 + + * ChangeLog (2011-01-02): improve description. + +2011-01-03 Joel E. Denny + + 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 + + maint: run "make update-copyright". + +2011-01-02 Joel E. Denny + + 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: + . + 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 + + Correct my email address. + * ChangeLog: In all recent entries. + * THANKS (Joel E. Denny): Here. + +2010-12-19 Joel E. Denny + + doc: cleanup. + * NEWS (2.5): Try to sort entries according to how interesting + users might find them. + +2010-12-19 Joel E. Denny + + 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 + + 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 + + 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 + + parse.lac: implement as %define variable. + LAC = lookahead correction. See discussion at + . + 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 + + 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 + + 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 + + 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 + + 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 + + Fix memory leak. + * src/output.c (prepare_rules): Free temporary array. + +2010-10-31 Joel E. Denny + + 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 + + * ChangeLog: Correct some errors in previous entries. + +2010-10-17 Joel E. Denny + + 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 + + Fix portability problem on OpenBSD 4.7. + + Jim Meyering reported this in + . + * 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 + + * data/glr.c (yySymbol): Define as int to avoid compiler warnings about + possible change of value. + 2010-09-08 Paul Hilfinger * data/glr.c (yy_reduce_print): Change yyrhsVals to yyvsp to remove @@ -96,57 +689,57 @@ 2010-07-23 Paul Hilfinger * 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 @@ -714,7 +1307,7 @@ 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. @@ -722,7 +1315,7 @@ 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. @@ -739,7 +1332,7 @@ 2009-12-18 Joel E. Denny 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. @@ -25774,9 +26367,8 @@ ----- - 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