X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6a36ff9495a63eab19069ddc536f731553e195ec..e342c3beaf9d73616e8ff6fe005b97f3a72c0476:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 5f72dca9..1c82ae20 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,478 @@ +2004-10-25 Akim Demaille + + * data/glr.c (YYRHSLOC): Move its definition next to its uses. + Introduce another definition to address simple location arrays. + (yyGLRStack): New member: yyerror_range. + (yyrecoverSyntaxError, yyparse): Update it. + (yyrecoverSyntaxError): Use it when shifting the error token to + have an accurate range, equivalent to the one computed by both + yacc.c and lalr1.cc. + * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so + that column numbers start at column 0, as per GNU Coding + Standards, the others tests, and the doc. + (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC): + Adjust to the above change (first column is 0). + And adjust the location of the "", now covering the whole + line. + +2004-10-22 Akim Demaille + and Paul Eggert + + Remove some arbitrary limits on goto numbers and relations. + * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit + initial values, since they're never used. + (set_goto_map): ngotos is now unsigned, so test for overflow + by seeing whether it wraps around to zero. + * src/lalr.h (goto_number): Now size_t, not short int. + (GOTO_NUMBER_MAXIMUM): Remove. + * src/relation.c (relation_print, traverse, relation_transpose): + Check for END_NODE rather than looking at sign. + * src/relation.h (END_NODE): New macro. + (relation_node): Now size_t, not short int. + +2004-10-22 Paul Eggert + + * doc/bison.texinfo (Language and Grammar): In example, "int" is a + keyword, not an identifier. Problem reported by Baron Schwartz in + . + +2004-10-11 Akim Demaille + + * src/symtab.c (symbol_check_alias_consistency): Also check + type names, destructors, and printers. + Reported by Alexandre Duret-Lutz. + Recode the handling of associativity and precedence in terms + of symbol_precedence_set. + Accept no redeclaration at all, not even equal to the previous + value. + (redeclaration): New. + Use it to factor redeclaration complaints. + (symbol_make_alias): Don't set the type of the alias, let + symbol_check_alias_consistency do it as for other features. + * src/symtab.h (symbol): Add new member prec_location, and + type_location. + * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them. + * tests/input.at (Incompatible Aliases): New. + +2004-10-09 Paul Eggert + + .cvsignore fixes to accommodate gnulib changes, + and the practice of naming build directories "_build". + * .cvsignore: Add "_*". Sort. + * lib/.cvsignore: Add getopt_.h, xalloc-die.c. + * m4/.cvsignore: Add "*_gl.m4". + +2004-10-06 Akim Demaille + + * src/parse-gram.y (add_param): Fix the truncation of trailing + spaces. + +2004-10-05 Akim Demaille + + In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless + whether the reducion was empty or not. This leaves room to + improve the use of YYLLOC_DEFAULT in such a case. + lalr1.cc is still experimental, so changing this is acceptable. + And finally, there are probably not many users who changed the + handling of locations in GLR, so changing is admissible too. + + * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an + empty reduction, set @$ to an empty location ending the previously + stacked symbol. + Adjust uses to make sure the code is triggered on empty + reductions. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the + expected output: empty reductions have empty locations. + +2004-09-29 Akim Demaille + + * data/lalr1.cc: Move towards a more standard C++ coding style + for templates: Class < T > -> Class. + +2004-09-29 Akim Demaille + + * data/lalr1.cc: Reinstall the former ctor, for sake of + compatibility, but warn it will be removed. + Move towards a more standard C++ coding style (i.e., type *var -> + type* var). + +2004-09-27 Paul Eggert + + * src/parse-gram.y (add_param): Rewrite to avoid strchr, + since it's less likely to work if NULs are involved in the future. + +2004-09-27 Akim Demaille + + * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration. + +2004-09-27 Akim Demaille + + * data/lalr1.cc (b4_parse_param_decl_1): New. + (b4_parse_param_decl): Use it to have different names between attribute + and argument names. + (b4_cc_constructor_call): Likewise. + +2004-09-24 Akim Demaille + + * src/parse-gram.y (add_param): Strip the leading and trailing + blanks from a formal argument declaration. + (YY_LOCATION_PRINT): New. + +2004-09-24 Akim Demaille + + * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation + after the location. + +2004-09-24 Akim Demaille + + * doc/bison.texinfo (Table of Symbols): Sort. + +2004-09-21 Akim Demaille + + * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove + the useless parentheses. + Suggested by Paul Eggert. + +2004-09-20 Akim Demaille + + Let the initial-action act on the look-ahead, and use it for the + "initial push" (corresponding to an hypothetical beginning-of-file). + And let lalr1.cc honor %initial-action. + + * doc/bison.texinfo (Initial Action Decl): Clarify, and add an + example. + * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment. + (Parser::Parser): Remove the ctor that used to initialize it. + (Parser::parse): Like in the other skeletons, issue the "starting + parse" message before any action. + Honor %initial-action. + Initialize the stacks with the lookahead. + * data/yacc.c: Let $$ and @$ in %initial-action designate the + look-ahead. + Push them in the stacks. + * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations. + +2004-09-20 Akim Demaille + + * doc/bison.texinfo (Initial Action Decl): New. + +2004-09-20 Akim Demaille + + * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a + clearer criterion to define it. + (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL. + When reducing on an empty RHS, use the latest stacked location as + location. + yylloc is not always available. + * data/glr.c: Likewise. + Also, honor initial-actions. + +2004-09-20 Akim Demaille + + * data/yacc.c (YY_LOCATION_PRINT): New. + Define when we know YYLTYPE's structure, i.e., when the default + YYLLOC_DEFAULT is used. + * data/c.m4 (b4_yysymprint_generate): Use it. + * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial + value of the result. + (error_start_): Replace with... + (error_range_): this location array. + This allows to replace code relying on the implementation of + locations by portable code. + * data/yacc.c (yylerrsp): Replace with... + (yyerror_range): this. + Every time a token is popped, update yyerror_range[0], to have an + accurate location for the error token. + * data/glr.c (YY_LOCATION_PRINT): New. + (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT: + deference a pointer. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer + report the location in %printers. + + * src/scan-skel.l: Instead of abort, report error messages to ease + understanding skeleton scanning failures. + +2004-09-16 Akim Demaille + + * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as... + (iterator, const_iterator): these, to be more in the C++ spirit. + Also, return reverse iterators so that when displaying the stack + we display its bottom first. + (Parser::stack_print_, Parser::reduce_print_): Match the messages + from yacc.c. + We should probably use vector here though. + +2004-09-16 Akim Demaille + + Have more complete shift traces. + + * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT + to report Shifts instead of ad hoc YYDPRINTF invocations, + including for the error token. + * data/lalr1.cc (symprint_): Output the location. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't + output the location within the %printer. + Activate GLR tests, at least to make sure they compile properly. + They still don't pass though. + * tests/calc.at: Adjust expect verbose output, since now "Entering + state..." is on a different line than the "Shifting" message. + +2004-09-08 Akim Demaille + + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the + Bison directive from the Bison file to the invocation of this + macro, so that these directives are passed to + AT_BISON_OPTION_PUSHDEFS to get correct help macros. + Use these helping macros (e.g., AT_LOC, AT_VAL and so forth). + Move the AT_SETUP/AT_CLEANUP outside, to report as test title + the extra Bison directives instead of the whole series. + Change the grammar so that there are recoverable errors, and + unrecoverable errors. Now we can have the parser give up before + consuming the whole input. As a result we now can observe that + the lookahead is freed when needed. + Change the parser source to parse argv[1] instead of a hard coded + string. + Simplify yylex, and give a value and location to EOF. + Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that + passed directives already coded in the file. + Add some tests to check the location of "error". + For some tests, the C++ parser is correct, and not yacc.c. + For other tests, they provide different, but unsatisfying, values, + so keep the C++ value so that at least one parser is "correct" + according to the test suite. + (Actions after errors): Remove, this is subsumed by the + AT_CHECK_PRINTER_AND_DESTRUCTOR series. + +2004-09-06 Akim Demaille + + * data/lalr1.cc: Adjust the indentation of the labels. + (Parser::pop): New. + Use it. + +2004-09-06 Akim Demaille + + * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional + argument, an informative message. + Call YY_SYMBOL_PRINT. + Adjust all callers: integrate the associated YY_SYMBOL_PRINT. + * data/lalr1.cc (destruct_): Likewise. + In addition, no longer depend on b4_yysymprint_generate and + b4_yydestruct_generate to generate these functions, do it "by + hand". + +2004-09-03 Akim Demaille + + * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was + invoked, yydestruct the lookahead. + * tests/calc.at (Calculator $1): Update the expected lengths of + traces: there is an added line for the discarded lookahead. + * doc/bison.texinfo (Destructor Decl): Some rewording. + Define "discarded" symbols. + +2004-09-02 Akim Demaille + + * data/lalr1.cc (translate_, destruct_): No reason to be static. + +2004-09-02 Akim Demaille + + * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used. + (YYDSYMPRINTF): Rename as... + (YY_SYMBOL_PRINT): this. + * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous + two. + Use it instead of direct symprint_ calls. + (yybackup): Tweak the "Now at end of input" case to match yacc.c's + one. + +2004-09-02 Akim Demaille + + * data/lalr1.cc (b4_yysymprint_generate): New. + (symprint_): New member function, defined when YYDEBUG. + Use it consistently instead of token/nterm debugging output by + hand. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust + %printer calls to use cdebug_ when using lalr1.cc. + +2004-08-30 Florian Krohm + + * data/glr.c: Guard the declarations of yypstack and yypdumpstack + with #ifdef YYDEBUG. + +2004-08-26 Akim Demaille + + * doc/bison.texinfo (Implementing Loops): Rename as... + (Implementing Gotos/Loops): this. + +2004-08-13 Paul Eggert + + Adjust to latest gnulib. + * bootstrap (gnulib_modules): Add xalloc-die. + Set LC_ALL=C so that file names sort consistently. + Prefer the gnulib copies of gettext.m4, glibc21.m4, + inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4, + uintmax_t.m4, ulonglong.m4. + (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4, + po.m4 since we are now using _gl.m4 instead. + +2004-08-10 Florian Krohm + + * src/scan-action.l: Remove. Scanning of semantic actions is + handled in scan-gram.l. + +2004-08-07 Florian Krohm + + * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup. + + * src/location.h (struct): The file member is a uniqstr. + (equal_boundaries): Use UNIQSTR_EQ for comparison. + +2004-07-22 Paul Eggert + + Fix bug with non-%union parsers that have printers or destructors, + which led to a Bison core dump. Reported by Peter Fales in + . + + * data/c.m4 (b4_symbol_actions): Don't assume %union was used. + * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE, + not to our own type. + * src/output.c (symbol_destructors_output, symbol_printers_output): + Don't assume %union. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR, + AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument + UNION-FLAG. All callers changed. + (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union. + Use type char, not unsigned int, when declaring an array of char; + this lets us remove a cast. + (Printers and Destructors): Add non-%union test cases. + +2004-06-21 Paul Eggert + + * doc/bison.texinfo: Minor editorial changes, mostly to the new + GLR writeups. E.g., avoid frenchspacing and the future tense, + change "lookahead" to "look-ahead", and change "wrt" to "with + respect to". + +2004-06-21 Paul Hilfinger + + * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements): + New sections, split off from the GLR Parsers section. Put the new + Simple GLR Parser near the start of the GLR section, for clarity. + Rewrite connective text. + +2004-06-21 Frank Heckenbach + + * doc/bison.texinfo (Simple GLR Parsers): New section. + +2004-06-21 Paul Eggert + + * NEWS, TODO, doc/bison.texinfo: + Use "look-ahead" instead of "lookahead", to be consistent. + * REFERENCES: Fix incorrect reference to DeRemer and Pennello, + while we're fixing "look-ahead". + * src/conflicts.c (shift_set): Renamed from shiftset. + (look_ahead_set): Renamed from lookaheadset. + * src/print.c: Likewise. + * src/getargs.c (report_args): Add "look-ahead" as the new canonical + name for "lookahead". + (report_types, usage): Likewise. + * src/getargs.h (report_look_ahead_tokens): Renamed from + report_lookaheads. + * src/lalr.c (compute_look_ahead_tokens): Renamed from + compute_lookaheads. + (state_look_ahead_tokens_count): Renamed from state_lookaheads_count. + (look_ahead_tokens_print): Renamed from lookaheads_print. + * src/state.c (state_rule_look_ahead_tokens_print): Renamed from + state_rule_lookaheads_print. + * src/state.h: Likewise. + (reductions.look_ahead_tokens): Renamed from lookaheads. + * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from + AT_DATA_LOOKAHEADS_GRAMMAR. + +2004-06-03 Paul Eggert + + * README: Update location of patched M4 distribution. + +2004-05-30 Albert Chin-A-Young + + Don't assume the C++ compiler takes the same arguments as the C compiler + (trivial change). + * configure.ac (O0CXXFLAGS): New var. + * tests/atlocal.in (CXXFLAGS): Use it. + +2004-05-29 Paul Eggert + + Fix some "make check" problems with C++ reported by + Albert Chin-A-Young for Tru64 C++ in this thread: + http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html + + * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr. + * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): + Output to a .cc file for C++, not to a .c file. + * tests/calc.at (AT_CHECK_CALC): Likewise. + * tests/regression.at (AT_CHECK_DANCER): Likewise. + * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c. + +2004-05-28 Albert Chin-A-Young + + * tests/calc.at, tests/actions.at: Workaround for SGI + C++ compiler. (trivial change) + +2004-05-27 Paul Eggert + + Spent a few hours checking out which prerequisite versions the + current sources actually require. I went all the way back to + Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated + a seemingly endless set of combinations of versions more recent + than that. The bottom line is that the current sources require + fairly recent versions of the build tools, and it'll be some work + to change this. + * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59. + (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8. + (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12. + Add comments explaining why those particular versions are + currently needed. + + * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug + in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in + . + + * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work + (it fails with a Autoconf-without-aclocal-m4 diagnostic). + +2004-05-26 Paul Eggert + + * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to + 0.11.5. Suggested by Bruno Haible. + * bootstrap: Remove gettext version checking. + + * doc/bison.texinfo (Decl Summary): Also mention that %union + can depend on prerequisite types. Problem reported by Tim + Van Holder. + +2004-05-25 Paul Eggert + + * README: Mention GNU m4 1.4 bugs and Akim's patched version. + * README-alpha: Don't tell people not to package this. + + * bootstrap: Don't assume $(...) works; use `...` instead. + Problem reported by Paul Hilfinger. Also, diagnose non-GNU + gettext better. + + * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's + put into the -d output file, and mention what to do if YYSTYPE is + defined as a macro. + 2004-05-24 Paul Eggert + Undo change made earlier today: it caused autopoint to not bring + in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for + autopoint's. + + * bootstrap: Check that gettext version matches what's in + configure.ac. Warn users to ignore robots.txt ERROR 404. + * bootstrap: Undo today's earlier change (logged below). + * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise. + The gettext version checking is causing more trouble than it's curing; remove it. Problem reported by Paul Hilfinger.