X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/b47b6ff7fd5b6d3928d44bfbb7b8836ee3348704..ce268795cc020e408845fd4d1fefeddab121fe3d:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 4a0c7ebe..036120ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1030 @@ +2009-08-08 Alex Rozenman + + 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 + + maint: run "make update-copyright" + +2009-08-06 Joel E. Denny + + 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 + + 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 + + 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 + + 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 + + Fix "make distcheck". + * examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead + of just calc.stamp. + +2009-08-01 Joel E. Denny + + 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 + + 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 + + Fix a --enable-gcc-warnings problem. + * src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length + variable. + +2009-07-24 Joel E. Denny + + 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 + + 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 + + * src/lalr.c (state_lookahead_tokens_count): Correct comment. + +2009-07-22 Joel E. Denny + + Some M4 cleanup in the testsuite. + Suggested by Eric Blake at + . + * 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 + + Revert unnecessary column realignment in --help output. + Reported by Akim Demaille at + . + * src/getargs.c (usage): Here. + +2009-07-04 Alex Rozenman + + Alphabetical order in src/local.mk. + * src/local.mk: Adjust. + +2009-07-04 Alex Rozenman + + 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 + + scan-code: avoid compiler warnings + * src/scan-code.l (parse_named_ref): Use correct specifiers. + +2009-06-29 Akim Demaille + + 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 + + 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 + + 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 + + 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 + + hash: check insertion for memory exhaustion. + * src/uniqstr.c (uniqstr_new): New. + +2009-06-24 Akim Demaille + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + -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 + + 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 + + * data/c++.m4 (b4_namespace_close): Simplify slightly. + +2009-05-19 Joel E. Denny + + 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 + + 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 + + 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 + + doc: use C++ headers. + * doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C + headers. + +2009-05-11 Akim Demaille + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + Pacify ./configure --enable-gcc-warnings. + * tests/input.at (Symbols): Prototype yyerror and yylex. + +2009-04-29 Joel E. Denny + + Document how `%define "var" "value"' is not M4-friendly. + * src/parse-gram.y (variable): In comments here. + +2009-04-24 Joel E. Denny + + 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 + + List accepted values for a %define enum variable with an invalid value. + Suggested by Akim Demaille at + . + * 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 + + 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 + + tests: check the use of dashes and periods in symbols. + * tests/input.at (Symbol): New test group. + +2009-04-21 Joel E. Denny + + 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 + + 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 + + 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 + + Implement %define lr.default_rules. + Its value describes the states that are permitted to contain + default rules: "all", "consistent", or "accepting". + * src/reader.c (reader): Default lr.default_rules to "all". + Check for a valid lr.default_rules value. + * src/lalr.c (state_lookahead_tokens_count): If lr.default_rules + is "accepting", then only mark the accepting state as + consistent. + (initialize_LA): Tell state_lookahead_tokens_count whether + lr.default_rules is "accepting". + * src/tables.c (action_row): If lr.default_rules is not "all", + then disable default rules in inconsistent states. + * src/print.c (print_reductions): Use this opportunity to + perform some assertions about whether lr.default_rules was + obeyed correctly. + * tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that + helps with checking the parser tables for a grammar. + * tests/input.at (%define lr.default_rules invalid values): New + test group. + * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using + AT_TEST_TABLES_AND_PARSE. + (`no %define lr.default_rules'): New test group generated by + AT_TEST_LR_DEFAULT_RULES. + (`%define lr.default_rules "all"'): Likewise. + (`%define lr.default_rules "consistent"'): Likewise. + (`%define lr.default_rules "accepting"'): Likewise. + +2009-04-20 Akim Demaille + + Formatting change. + +2009-04-20 Akim Demaille + + bison: factoring. + * src/output.c (token_definitions_output): Use symbol_id_get + instead of duplicating its logic. + * TODO (YYERRCODE): Extend. + +2009-04-20 Akim Demaille + + variables: prefer error-verbose to error_verbose. + * data/bison.m4 (b4_error_verbose_if): Based on error-verbose + instead of error_verbose. + * src/scan-gram.l (%error-verbose): Map to the error-verbose + variable. + * doc/bison.texinfo: Promote %define error-verbose instead of + %error-verbose. + * tests/actions.at: Prefer %define error-verbose to %error-verbose. + +2009-04-15 Akim Demaille + + variables: accept dashes. + * data/bison.m4 (b4_percent_define_if_define_): Also map dashes to + underscores. + * src/scan-gram.l ({id}): Also accept dashes after the initial + letter. + ({directive}): Use {id}. + * src/parse-gram.y: Comment and formatting changes. + * doc/bison.texinfo (Symbols): Adjust the lexical definitions of + symbols. + * src/complain.h, src/complain.c (yacc_at): New. + * src/symtab.c (symbol_new): Use yacc_at to report inappropriate + symbol names. + * src/output.c (token_definitions_output): Do not #define token + names with dashes. + +2009-04-20 Akim Demaille + + Consistently refer to Yacc, not YACC. + * src/getargs.c (usage, warnings_args): s/YACC/Yacc/. + +2009-04-17 Joel E. Denny + + Pacify make maintainer-check-posix. + * tests/input.at (%define, --define): Move bison command-line + options before grammar file name. + +2009-04-04 Joel E. Denny + + Document semicolon warnings. + * NEWS (2.5): Here. + +2009-04-14 Akim Demaille + + variables: use `parse.assert' instead of `assert'. + * TODO (assert): Remove. + * data/bison.m4 (b4_assert_if): Replace with... + (b4_parse_assert_if): this. + * data/lalr1.cc, data/variant.hh, tests/c++.at: Adjust. + * doc/bison.texinfo (Decl Summary): Document parse.assert. + +2009-04-14 Akim Demaille + + variables: use `parse.trace' instead of `debug'. + * src/getargs.c (getargs): Map -t to %define trace.parse. + * src/scan-gram.l (%debug): Map to %define trace.parse. + * data/bison.m4 (b4_percent_define_if_define): Map `.' in variable + names to `_' in macro names. + (b4_debug_if): Replace with... + (b4_parse_trace_if): this. + * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, + * data/yacc.c: Adjust. + * doc/bison.texinfo (Decl Summary): Document %debug as obsoleted. + Use @code to label the variable list. + Document the variable parse.trace. + (Tracing): Promote the parse.trace variable. + * TODO: %printer is not documented. + +2009-04-14 Akim Demaille + + doc: minor fixes. + * doc/bison.texinfo (Decl Summary): Fix entry about %debug. + (Table of Symbols): Remove duplicate entry for %debug. + +2009-04-10 Eric Blake + + submodules: update to latest + * submodules/autoconf: Use latest upstream Autoconf. + +2009-04-06 Eric Blake + + Work around autoconf 2.63b bug in testsuite. + * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping + autoconf bug related to # in test. + +2009-04-06 Joel E. Denny + + * NEWS (2.5): New section. Describe new -D/--define feature. + +2009-04-06 Akim Demaille + + Regen. + * src/parse-gram.h, src/parse-gram.c: Regen. + +2009-04-06 Akim Demaille + + rename muscle_tab.* as muscle-tab.* for consistency. + * src/muscle_tab.h, src/muscle_tab.c: Rename as... + * src/muscle-tab.h, src/muscle-tab.c: these. + * src/getargs.c, src/local.mk, src/main.c, src/output.c, + * src/parse-gram.y, src/reader.c, src/scan-code.l: Adjust. + +2009-04-06 Akim Demaille + + Makefile: introduce $(BISON). + * src/local.mk (BISON): New. + (YACC): Use it. + +2009-04-06 Akim Demaille + + parser: handle %locations as %define locations. + * src/getargs.h, src/getargs.c (locations_flag): Remove. + * src/getargs.c, src/scan-code.l: Use muscle_percent_define_ensure + to set "locations" to true. + * src/output.c (prepare): Don't output "locations". + * src/scan-gram.l (%locations): Handle it as a %. + * src/parse-gram.y: It's no longer a token. + Don't handle it. + * data/bison.m4 (b4_locations_if): Define it with + b4_percent_define_if_define. + * data/c.m4, data/glr.cc: Adjust. + +2009-04-06 Akim Demaille + + Regen. + * src/parse-gram.c: Regen. + +2009-04-06 Akim Demaille + + muscle: factor the handling of obsolete of obsolete directives. + Suggested by Joel E. Denny. + + * src/muscle_tab.h, src/muscle_tab.c (muscle_percent_define_ensure): + New, extracted from... + * src/parse-gram.y (prologue_declaration: pure-parser): here. + Remove it. + (prologue_declaration: "%"): Use + muscle_percent_define_ensure. + (%error-verbose, %pure-parser): No longer tokens. + * src/scan-gram.l (pure-parser): Return as a %. + +2009-04-06 Joel E. Denny + + Fix options documentation. + * build-aux/cross-options.pl: As in --help output, write optional + arguments as [=ARG] not =[ARG]. + * doc/bison.texinfo (Bison Options): Add -W/--warnings argument. + +2009-04-04 Joel E. Denny + + Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4. + If the first m4 in $PATH is wrong, it keeps looking. Moreover, its + requirements for a correct m4 are stricter. + * m4/m4.m4: Make it a symbolic link to submodules/autoconf/m4/m4.m4. + * configure.ac: Update to use AC_PROG_GNU_M4. + Reported by Eric Blake. + +2009-04-03 Joel E. Denny + + Help with updating web manual. + * HACKING: Incorporate instructions from gnulib/doc/README. + * bootstrap.conf (gnulib_modules): Add gendocs. + +2009-04-03 Akim Demaille + + Regen. + * src/parse-gram.h, src/parse-gram.c: Regen. + +2009-04-03 Akim Demaille + + Factor %FLAG at scan level. + * src/parse-gram.y (PERCENT_DEBUG, PERCENT_ERROR_VERBOSE): Token + definitions and associated rules, replaced by.... + (PERCENT_FLAG): this new token type, and rule. + * src/scan-gram.l (RETURN_PERCENT_FLAG): New. + Use it for %debug and %error-verbose. + +2009-04-03 Akim Demaille + + Regen. + * src/parse-gram.h, src/parse-gram.c: Regen. + +2009-04-03 Akim Demaille + + Treat %debug as %define debug. + * data/bison.m4 (b4_debug_if): New. + * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c, + * data/lalr1.java: Use it instead of b4_debug_flag. + * src/getargs.h, src/getargs.c (debug_flag): Remove. + * src/output.c (prepare): Don't output it. + * src/parse-gram.y: Treat %debug as %define debug. + +2009-04-03 Akim Demaille + + Treat %error-verbose as %define error_verbose. + This allows to pass -Derror_verbose on the command line. Better + yet, it allows to pass -Derror_verbose=$(ERROR_VERBOSE), with + ERROR_VERBOSE being defined as false or true. + * data/bison.m4 (b4_percent_define_if_define): Instead of relying + on b4_percent_define_ifdef, for does not check the defined value, + but only whether the symbol is defined, rely on + b4_percent_define_flag_if, so that a value of "false" is processed + as a false. + If not defined, define the flag to "false". + (b4_error_verbose_if): New. + * data/glr.c, data/lalr1.cc, data/yacc.c: Use it instead of + b4_error_verbose_flag. + * src/getargs.h, src/getargs.c (error_verbose_flag): Remove. + * src/output.c (prepare): Don't output it. + * src/parse-gram.y (%error-verbose): Treat as %define error_verbose. + +2009-04-03 Joel E. Denny + + Fix strange %define locations for default values. + Reported by Akim Demaille at + + and discussed again starting at + . + * data/bison.m4 (b4_percent_define_default): Leave syncline blank + because location information is bogus. + Use angle brackets to delimit fake file name because square brackets + look like underexpanded m4. Choose a better fake file name. + Use negative line numbers. + * src/muscle_tab.c (muscle_percent_define_default): Likewise. + * src/location.c (location_print): If line for a boundary is negative, + only print that boundary's file name. + * src/location.h: Document that. + * tests/skeletons.at (%define Boolean variables: invalid skeleton + defaults): Update output. + +2009-04-03 Joel E. Denny + + Pacify ./configure --enable-gcc-warnings. + * Makefile.am (AM_CFLAGS): Remove $(WERROR_CFLAGS) because many files + in lib won't compile with it. + * src/local.mk (src_bison_CFLAGS): Use $(WERROR_CFLAGS) here only. + +2009-03-31 Akim Demaille + + bootstrap: --help to stdout. + * bootstrap (usage): Don't send --help to stderr. + Use a here doc instead of a long string. + +2009-03-31 Akim Demaille + + bootstrap: README-hacking no longer exists + * bootstrap (checkout_only_file): Set to HACKING. + +2009-03-26 Akim Demaille + + doc: merge HACKING and README-hacking. + Two files is confusing. + Reported by Alexandre Duret-Lutz. + + * README-hacking: Merge into... + * HACKING (Working from the repository): here. + +2009-03-26 Akim Demaille + + doc: update README-hacking. + * README-hacking: We now use git and git submodules. + Reported by Ralf Wildenhues and Alexandre Duret-Lutz. + +2009-03-26 Akim Demaille + + lalr1.cc: avoid GCC 4.3 warnings. + GCC 4.3 now warns about "a || b && c" and asks for explicit + parentheses. + Reported by Alexandre Duret-Lutz. + * data/location.cc: Update copyright years. + (Position::operator==): Use parens to make precedence explicit. + Compare lines and columns first, as they are more likely to be + different, and they are faster to compare. + +2009-03-26 Akim Demaille + + gnulib: update. + * gnulib: Update to latest. + * src/local.mk (AM_CFLAGS): Move to... + * Makefile.am: here. + * etc/prefix-gnulib-mk (prefix_assignment): Also transform + AM_CFLAGS. + +2009-03-02 Akim Demaille + + Comment changes. + +2009-03-02 Akim Demaille + + Share b4_yytranslate_define. + * data/lalr1.cc (b4_yytranslate_define): Move to... + * data/c++.m4: here. + +2009-03-02 Akim Demaille + + Use locations in the variant example. + Yes, this obfuscates the point of this example, variants only. + But glr.cc cannot work (yet?) without locations. This change + makes it easier to use this example with glr.cc. + + * examples/variant.yy (assert): %define it. + (locations): Request them. + (yylex): Bind the location to the stage. + +2009-03-02 Akim Demaille + + Dub make_TOKEN as a public type interface. + * data/c++.m4 (b4_symbol_constructor_declare) + (b4_symbol_constructor_define): New empty stubs. + (b4_public_types_declare, b4_public_types_define): Use them. + * data/lalr1.cc (b4_symbol_constructor_declare) + (b4_symbol_constructor_declare_) + (b4_symbol_constructor_define_, b4_symbol_constructor_define): + Move to... + * data/variant.hh: here. + Remove the "b4_variant_if" parts, as variant.hh is loaded only if + needed. + * data/lalr1.cc: No longer invoke b4_symbol_constructor_define and + b4_symbol_constructor_declare, as it is now done by + b4_public_types_define and b4_public_types_declare. + +2009-03-02 Akim Demaille + + Coding style changes. + * data/lalr1.cc (b4_symbol_constructor_declaration_) + (b4_symbol_constructor_declarations) + (b4_symbol_constructor_definition_) + (b4_symbol_constructor_definitions) + (b4_yytranslate_definition): Rename as... + (b4_symbol_constructor_declare_) + (b4_symbol_constructor_declare) + (b4_symbol_constructor_define_) + (b4_symbol_constructor_define) + (b4_yytranslate_define): these. + * data/variant.hh (b4_variant_definition): Rename as... + (b4_variant_define): this. + 2009-03-02 Akim Demaille Factor b4_assert_if, b4_lex_symbol_if, and b4_variant_if. @@ -23119,8 +24146,8 @@ ----- Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 - Free Software Foundation, Inc. + 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, + 2008, 2009 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this