+2006-12-13 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * configure.ac (AC_PREREQ): Require Autoconf 2.61 because of our
+ strange test case titles. Reported by Bob Rossi.
+
+2006-12-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * TODO: Add pointer to Sylvain Schmitz's work on static detection
+ of potential ambiguities in GLR grammers.
+
+2006-12-12 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * tests/testsuite.at (AT_CHECK): When checking if $1 starts with
+ `bison ', use m4_index instead of m4_substr since chopping up a string
+ containing M4-special characters causes problems here.
+
+ Fix a couple of bugs related to special characters in user-specified
+ file names, and make it easier for skeletons to compute output file
+ names with the same file name prefix as Bison-computed output file
+ names.
+ * data/glr.cc, data/push.c, data/yacc.c: In @output, use
+ b4_parser_file_name and b4_spec_defines_file instead of
+ @output_parser_name@ and @output_header_name@, which are now redundant.
+ * data/glr.c, data/lalr1.cc: Likewise. Also, in header #include's, use
+ b4_parser_file_name, b4_spec_defines_file, and the new
+ @basename(FILENAME@) instead of @output_parser_name@ and
+ @output_header_name@, which inappropriately escaped the file names as
+ C string literals.
+ * src/files.c (all_but_ext): Remove static qualifier.
+ (compute_output_file_names): Move `free (all_but_ext)' to...
+ (output_file_names_free): ... here since all_but_ext is needed later.
+ * src/files.h (all_but_ext): Extern.
+ * src/muscle_tab.h (MUSCLE_INSERT_STRING_RAW): New macro that does
+ exactly what MUSCLE_INSERT_STRING used to do.
+ (MUSCLE_INSERT_STRING): Use MUSCLE_OBSTACK_SGROW so that M4-special
+ characters are escaped properly.
+ * src/output.c (prepare): Define muscle file_name_all_but_ext as
+ all_but_ext.
+ For pkgdatadir muscle, maintain previous functionality by using
+ MUSCLE_INSERT_STRING_RAW instead of MUSCLE_INSERT_STRING. The problem
+ is that b4_pkgdatadir is used inside m4_include in the skeletons, so
+ digraphs would never be expanded. Hopefully no one has M4-special
+ characters in his Bison installation path.
+ * src/scan-skel.l: Don't parse @output_header_name@ and
+ @output_parser_name@ anymore since they're now redundant.
+ In @output, use decode_at_digraphs.
+ Parse a new @basename command that invokes last_component.
+ (decode_at_digraphs): New.
+ (BASE_QPUTS): Remove unused.
+ * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): New macro.
+ (Output file name): New tests.
+
+2006-12-09 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Warn about output files that are generated by the skeletons and that
+ conflict with other output files.
+ * data/glr.c: Don't generate the header file here when glr.cc does.
+ * src/files.c (file_names, file_names_count): New static globals.
+ (compute_output_file_names): Invoke output_file_name_check for files
+ not generated by the skeletons and remove existing checks.
+ (output_file_name_check): New function that warns about conflicting
+ output file names.
+ (output_file_names_free): Free file_names.
+ * src/files.h (output_file_name_check): Declare.
+ * src/scan-skel.l: Invoke output_file_name_check for files generated by
+ the skeletons.
+ * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): New.
+ (Conflicting output files): New tests.
+
+2006-12-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/bison.texinfo: Fix a couple of typos.
+
+2006-12-08 Bob Rossi <bob@brasko.net>
+
+ * data/push.c: (yypvarsinit, yypvars, struct yypvars, yypushparse):
+ Rename to...
+ (yypstate_init, yypstate, struct yypstate, yypush_parse): ... these and
+ update all uses.
+ (b4_yyssa, b4_yyerror_range, yypstate_init): Rename pv to yyps.
+ (yypush_parse): Rename yypvars argument to yyps and remove redundant
+ local pv.
+ (yypstate_init, yypush_parse): Declare in Bison-generated header file.
+ * tests/calc.at (_AT_DATA_CALC_Y): Use newly named functions.
+
+2006-12-07 Bob Rossi <bob@brasko.net>
+ and Joel Denny <jdenny@ces.clemson.edu>
+
+ * data/push.c (yypvarsinit): Change return type from void* to struct
+ yypvars*. No longer cast to void* on return.
+ (struct yypvars): Remove yylen since it need not be remembered between
+ yypushparse invocations.
+ (yypushparse): Don't copy between yylen and pv->yylen.
+
+2006-12-05 Bob Rossi <bob@brasko.net>
+
+ * data/push.c (yychar_set, yylval_set, yylloc_set): Delete.
+ (yypushparse): Add yynchar, yynlval, yynlloc parameters.
+ (b4_declare_parser_variables): Do not declare yynerrs for push mode.
+ (struct yypvars): Remove b4_declare_parser_variables.
+ (yypvarsinit): Remove init code for removed variables.
+ (global scope): Do not declare b4_declare_parser_variables if
+ push or pure mode.
+ (yypushparse): Add b4_declare_parser_variables.
+ Init new local variables, and remove init code for removed
+ yypvars variables.
+ (yyparse): Delete.
+ * tests/calc.at (_AT_DATA_CALC_Y): Call yypushparse for push mode
+ and yyparse for other modes.
+ (AT_CHECK_CALC_LALR): Added '%skeleton "push.c"' for push tests.
+ * tests/local.at (AT_PUSH_IF, AT_PURE_OR_PUSH_IF): Added.
+ (AT_YYERROR_SEES_LOC_IF): push-parser makes this false.
+ (AT_PURE_LEX_IF): True if pure or push parser.
+
+2006-12-05 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Document Yacc prologue alternatives and default %destructor's and
+ %printer's as experimental. Don't mention Java yet. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00002.html>.
+ * NEWS (2.3a+): Say they're experimental. Remove any mention of Java.
+ (2.3a): Annotate this entry to say the old forms of these features were
+ also experimental.
+ * doc/bison.texinfo (Prologue Alternatives, Freeing Discarded Symbols,
+ Bison Symbols): Say they're experimental. Comment out any mention
+ of Java (we'll want this back eventually).
+
+2006-12-01 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Support a file name argument to %defines. Deprecate `=' in
+ %file-prefix, %name-prefix, and %output. Discussed at
+ <http://lists.gnu.org/archive/html/help-bison/2006-09/msg00001.html>.
+ * NEWS (2.3a+): Mention.
+ * doc/bison.texinfo (Decl Summary, Bison Symbols): Add entry for new
+ form of %defines, and remove `=' from entries for %file-prefix,
+ %name-prefix, and %output.
+ * src/parse-gram.y (prologue_declaration): Implement.
+ * tests/calc.at (Simple LALR Calculator, Simple GLR Calculator, Simple
+ LALR1 C++ Calculator, Simple GLR C++ Calculator): Remove the `=' from
+ all but one occurrence of %name-prefix.
+ * tests/headers.at (export YYLTYPE): Remove the `=' from %name-prefix.
+ * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Likewise.
+ * tests/output.at (AT_CHECK_OUTPUT): Remove the `=' from all but one
+ occurrence of each of %file-prefix and %output. Add check for %defines
+ with argument.
+ * tests/reduce.at (Useless Terminals, Useless Nonterminals,
+ Useless Rules, Reduced Automaton, Underivable Rules, Empty Language):
+ Remove the `=' from %output.
+
+2006-11-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Don't escape $ in test case titles since Autoconf 2.61 now does that
+ correctly.
+ * tests/actions.at (Default %printer and %destructor are not for error
+ or $undefined): Here.
+ (Default %printer and %destructor are not for $accept): Here.
+ * tests/input.at (Invalid $n and @n): Here.
+
+2006-11-20 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Rename <!> to <>. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00039.html>.
+ * NEWS (2.3a+): Update.
+ * doc/bison.texinfo (Freeing Discarded Symbols, Bison Symbols):
+ Update.
+ * src/parse-gram.y (TYPE_TAG_NONE, generic_symlist_item): Implement.
+ * src/scan-gram.l (INITIAL): Implement.
+ * src/symlist.c (symbol_list_default_tagless_new): Update comment.
+ * src/symlist.h (symbol_list, symbol_list_default_tagless_new): Update
+ comment.
+ * tests/actions.at (Default tagless %printer and %destructor,
+ Default tagged and per-type %printer and %destructor,
+ Default %printer and %destructor are not for error or $undefined,
+ Default %printer and %destructor are not for $accept,
+ Default %printer and %destructor for mid-rule values): Update.
+ * tests/input.at (Default %printer and %destructor redeclared,
+ Unused values with default %destructor): Update.
+
+2006-11-17 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Don't let %prec take a nonterminal.
+ * src/reader.c (grammar_current_rule_prec_set): Make the %prec symbol a
+ token.
+ * tests/input.at (%prec takes a token): New test checking that %prec
+ won't take a nonterminal.
+
+2006-11-10 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * tests/testsuite.at (AT_CHECK): Don't miss an exit value of 0 because
+ it was double-quoted.
+ * src/Makefile.am (YACC): Use --warnings=all,error so that Bison's own
+ grammar is maintained with Bison's highest standards.
+ * src/getargs.c: Fix some typos in Doxygen comments.
+
+2006-11-10 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Fix memory leaks in scanners generated by at least Flex 2.5.9 and
+ later. Reported by Paul Eggert in
+ <http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00014.html>.
+ * src/flex-scanner.h (yylex_destroy): Define for Flex before 2.5.9.
+ * src/scan-code.l (translate_action): Don't bother invoking
+ yy_delete_buffer (YY_CURRENT_BUFFER) before creating the first buffer.
+ (code_scanner_free): Instead of invoking
+ yy_delete_buffer (YY_CURRENT_BUFFER) directly, invoke yylex_destroy,
+ which frees more.
+ * src/scan-gram.l (gram_scanner_free): Likewise.
+ * src/scan-skel.l (scan_skel): Likewise.
+
+2006-11-09 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/files.c (tr): Change return type to void.
+ * src/muscle_tab.c (muscle_insert): Free storage in case muscle_grow
+ has been called previously for the same key.
+ (muscle_find): Return storage instead of value so that
+ --enable-gcc-warnings doesn't produce warnings that the return discards
+ const. aver that the value and storage are the same since storage
+ could potentially be NULL when value is not.
+ * tests/testsuite.at (AT_CHECK): Treat an unspecified exit value the
+ same as 0.
+
+2006-11-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap.conf (excluded_files): Exclude m4/codeset.m4 (undoing
+ the earlier change today), m4/intl.m4, m4/intldir.m4. This gives
+ us a slightly cleaner distribution, and also works.
+ * m4/.cvsignore: Add inline.m4, wint_t.m4 to accommodate recent
+ gnulib changes.
+
+2006-11-08 Joel E. Denny <jdenny@ces.clemson.edu>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ Don't let Bison leak memory except when it complains.
+ * src/files.h (parser_file_name, spec_verbose_file, spec_graph_file):
+ (spec_defines_file, dir_prefix): Now char *, not const char *,
+ since they are freed.
+ * src/files.c: Likewise.
+ (all_but_ext, all_but_tab_ext, src_extension, header_extension):
+ Likewise.
+ (tr): Now operates in-place. All uses changed.
+ (compute_exts_from_gf, compute_exts_from_src): Don't leak temporary
+ values.
+ (compute_file_name_parts, compute_output_file_names): Don't store
+ read-only data in variables that will be freed.
+ (compute_output_file_names): Free all_but_ext, all_but_tab_ext,
+ src_extension, and header_extension.
+ (output_file_names_free): New public function to free
+ spec_verbose_file, spec_graph_file, spec_defines_file,
+ parser_file_name, and dir_prefix.
+ * src/getargs.c (getargs): Don't store read-only data in variables that
+ will be freed.
+ * src/main.c (main): Invoke output_file_names_free, code_scanner_free
+ (which previously existed but was unused), and quotearg_free.
+ * src/muscle_tab.h (muscle_insert): value arg is now a `char const *'.
+ * src/muscle_tab.c: Likewise.
+ (muscle_entry): Make the value char const *,
+ and add a new storage member that is char * and can be freed.
+ (muscle_entry_free): New private function.
+ (muscle_init): Use it instead of free.
+ (muscle_insert, muscle_grow): Update and use new storage member.
+ (muscle_code_grow): Free the string passed to muscle_grow
+ since it's not needed anymore.
+ * src/parse-gram.y (%union): Make `chars' member a `char const *', and
+ add a new `char *code' member.
+ ("{...}"): Declare semantic type as code.
+ * src/scan-code.h (translate_rule_action):
+ (translate_symbol_action, translate_code, translate_action): Return
+ `char const *' rather than `char *' since external code should not free
+ these strings.
+ * src/scan-code.l: Likewise.
+ * src/scan-gram.l (<SC_BRACED_CODE>): Use val->code for BRACED_CODE,
+ which is "{...}" in the parser.
+ * tests/Makefile.am (maintainer-check-valgrind): Set
+ VALGRIND_OPTS='--leak-check=full --show-reacheable=yes' before invoking
+ Valgrind.
+ * tests/calc.at (_AT_DATA_CALC_Y): fclose the FILE* so Valgrind doesn't
+ complain.
+ * tests/testsuite.at (AT_CHECK): Redefine so that running Bison and
+ expecting a non-zero exit status sets --leak-check=summary and
+ --show-reachable=no for Valgrind. Bison unabashedly leaks memory in
+ this case, and we don't want to hear about it.
+
+2006-11-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap (runtime-po/Makevars): Derive from po/Makevars
+ instead of from the template, to simplify configuration a bit.
+ * bootstrap.conf (excluded_files): Don't exclude m4/codeset.m4
+ and m4/wint_t.m4, as they are needed with the latest gnulib.
+
+2006-10-31 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Disable unset/unused mid-rule value warnings by default, and recognize
+ --warnings=midrule-values to enable them. Discussed starting at
+ <http://lists.gnu.org/archive/html/help-bison/2006-10/msg00030.html>.
+ * NEWS (2.3a+): Mention.
+ * src/getargs.c, src/getargs.h (warnings_args, warnings_types, enum
+ warnings): Add entry for midrule-values subargument.
+ * src/reader.c (symbol_should_be_used): Don't return true just because
+ the value is a set/used mid-rule value unless
+ --warnings=midrule-values was specified.
+ * tests/input.at (Unused values, Unused values before symbol
+ declarations): Run tests with and without --warnings=midrule-values.
+
+ * src/reader.c (check_and_convert_grammar): Use symbol_list_free rather
+ than LIST_FREE directly.
+
+2006-10-31 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Finish implementing --warnings=error, which should not be implied by
+ --warnings=all (or by its synonyms -W and --warnings without
+ subarguments).
+ * src/complain.c (set_warning_issued): New function to report that
+ warnings are being treated as errors and to record an error if so.
+ Invoke...
+ (warn_at, warn): ... here.
+ * src/getargs.c (warnings_args, warnings_types): Reorder so that
+ "error - warnings are errors" does not appear above "all - all of the
+ above".
+ (getargs): For -W and --warnings without subarguments, don't let
+ FLAGS_ARGMATCH set warnings_error in warnings_flag.
+ * src/getargs.h (enum warnings): Unset warnings_error in warnings_all.
+
+2006-10-31 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/getargs.c (flags_argmatch): Don't cause segmentation fault for
+ empty subargument list. For example: `bison --warnings= parser.y'.
+
+2006-10-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/push.c, data/yacc.c: Make sure there's a newline at the end of
+ the parser header file so that gcc doesn't warn.
+
+2006-10-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Split the default %destructor/%printer into two kinds: <*> and <!>.
+ Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00060.html>.
+ * NEWS (2.3a+): Mention.
+ * doc/bison.texinfo (Freeing Discarded Symbols): Document this and the
+ previous change today related to mid-rules.
+ (Bison Symbols): Remove %symbol-default and add <*> and <!>.
+ * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): Remove.
+ (TYPE_TAG_ANY): Add as <*>.
+ (TYPE_TAG_NONE): Add as <!>.
+ (generic_symlist_item): Remove RHS for %symbol-default and add RHS's
+ for <*> and <!>.
+ * src/scan-gram.l (PERCENT_SYMBOL_DEFAULT): Remove.
+ (TYPE_TAG_ANY, TYPE_TAG_NONE): Add.
+ * src/symlist.c (symbol_list_default_new): Split into tagged and
+ tagless versions.
+ (symbol_list_destructor_set, symbol_list_printer_set): Split
+ SYMLIST_DEFAULT case into SYMLIST_DEFAULT_TAGGED and
+ SYMLIST_DEFAULT_TAGLESS.
+ * src/symlist.h: Update symbol_list_default*_new prototypes.
+ (symbol_list.content_type): Split enum value SYMLIST_DEFAULT into
+ SYMLIST_DEFAULT_TAGGED and SYMLIST_DEFAULT_TAGLESS.
+ * src/symtab.c (default_destructor, default_destructor_location,
+ default_printer, default_printer_location): Split each into tagged and
+ tagless versions.
+ (symbol_destructor_get, symbol_destructor_location_get,
+ symbol_printer_get, symbol_printer_location_get): Implement tagged
+ default and tagless default cases.
+ (default_destructor_set, default_printer_set): Split each into tagged
+ and tagless versions.
+ * src/symtab.h: Update prototypes.
+ * tests/actions.at (Default %printer and %destructor): Rename to...
+ (Default tagless %printer and %destructor): ... this, and extend.
+ (Per-type %printer and %destructor): Rename to...
+ (Default tagged and per-type %printer and %destructor): ... this, and
+ extend.
+ (Default %printer and %destructor for user-defined end token): Extend.
+ (Default %printer and %destructor are not for error or $undefined):
+ Update.
+ (Default %printer and %destructor are not for $accept): Update.
+ (Default %printer and %destructor for mid-rule values): Extend.
+ * tests/input.at (Default %printer and %destructor redeclared): Extend.
+ (Unused values with default %destructor): Extend.
+
+2006-10-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Don't apply the default %destructor/%printer to an unreferenced midrule
+ value. Mentioned at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00104.html>.
+ * src/symtab.c (dummy_symbol_get): Name all dummy symbols initially
+ like $@n instead of just @n so that the default %destructor/%printer
+ logic doesn't see them as user-defined symbols.
+ (symbol_is_dummy): Check for both forms of the name.
+ * src/reader.c (packgram): Remove the `$' from each midrule symbol
+ name for which the midrule value is referenced in any action.
+ * tests/actions.at (Default %printer and %destructor for mid-rule
+ values): New test.
+ * tests/regression.at (Rule Line Numbers, Web2c Report): Update output
+ for change to dummy symbol names.
+
+2006-10-20 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Warn about unset midrule $$ if the corresponding $n is used.
+ * src/reader.c (symbol_should_be_used): Check midrule parent rule for
+ $n usage.
+ (packgram): Before invoking grammar_rule_check on any rule, make sure
+ all actions have already been scanned in order to set `used' flags.
+ Otherwise, checking that a midrule's $$ is set will not always work
+ properly because the midrule check must forward-reference the midrule's
+ parent rule.
+ * tests/input.at (AT_CHECK_UNUSED_VALUES): Extend to check the new
+ warning.
+
+2006-10-20 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ More improvements to the documentation of the prologue alternatives:
+ * NEWS (2.3a+): Mention the new `Prologue Alternatives' section in the
+ Bison manual.
+ * doc/bison.texinfo (Prologue Alternatives): Correct some errors. Add
+ some text to clarify the relative importance of the new directives and
+ to show how these directives may be viewed as code labels.
+
+2006-10-16 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Similar to the recently removed %before-header, add %code-top as the
+ alternative to the pre-prologue. Mentioned at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-10/msg00063.html>.
+ Also, let the prologue alternatives appear in the grammar section.
+ * src/parse-gram.y (PERCENT_CODE_TOP): New token.
+ (prologue_declaration): Move the existing prologue alternatives to...
+ (grammar_declaration): ... here and add %code-top.
+ * src/scan-gram.l (PERCENT_CODE_TOP): New token.
+
+ Clean up and extend documentation for the prologue alternatives.
+ * NEWS (2.3a+): Describe prologue alternatives.
+ * doc/bison.texinfo (Prologue): Move discussion of prologue
+ alternatives to...
+ (Prologue Alternatives): ... this new section, and extend it to discuss
+ all 4 directives in detail.
+ (Bison Symbols): Clean up discussion of prologue alternatives and add
+ %code-top.
+
+2006-10-16 Juan Manuel Guerrero <juan.guerrero@gmx.de>
+
+ DJGPP specific issues.
+
+ * djgpp/config.bat: config.hin has been moved to lib. Adjust
+ config.bat accordingly.
+ * djgpp/config.sed: Adjust config.sed for the use of autoconf 2.60.
+ * djgpp/config.site: Likewise.
+
+2006-10-16 Paolo Bonzini <bonzini@gnu.org>
+
+ Replace %*-header with %provides, %requires, %code. See discussion at
+ http://lists.gnu.org/archive/html/bison-patches/2006-10/msg00002.html
+
+ * data/bison.m4 (b4_user_requires, b4_user_provides): New.
+ (b4_user_start_header): Remove.
+ * data/glr.c: Use new macros instead of b4_*start_header
+ and b4_*end_header.
+ * data/glr.cc: Likewise.
+ * data/lalr1.cc: Likewise.
+ * data/push.c: Likewise.
+ * data/yacc.c: Likewise.
+
+ * doc/bison.texinfo: Remove %before-header, rename
+ %{start,end,after}-header to %requires, %provides, %code.
+
+ * src/parse-gram.y: Likewise (also rename token names accordingly).
+ * src/scan-gram.l: Likewise.
+ * tests/actions.at: Likewise.
+
+2006-10-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/Makefile.am (AM_CFLAGS): Remove $(WERROR_CFLAGS).
+ Problem reported by Joel E. Denny.
+
+2006-10-14 Jim Meyering <jim@meyering.net>
+
+ (Sync from coreutils.)
+ Work also when the working directory (with e.g. coreutils sources)
+ is version controlled with git, rather than CVS.
+ * bootstrap (CVS_only_file): Test for the existence of README-cvs,
+ rather than CVS.
+ In messages and comments, say e.g., "checked-out sources",
+ rather than "CVS sources".
+ (version_controlled_file): New function. Work for git as well as
+ for CVS. Don't use grep's -q option.
+ (slurp): Call it here, in place of CVS-specific code.
+
+2006-10-14 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Fix testsuite for ./configure --enable-gcc-warnings:
+ * configure.ac (gcc-warnings): Move -Wall before -Wno-sign-compare.
+ Otherwise, gcc 4.1.0 (at least) warns about sign comparisons in
+ __AT_CHECK_PRINTER_AND_DESTRUCTOR in tests/actions.at.
+ * test/input.at (Torturing the Scanner): #include <stdlib.h> for abort.
+ * test/regression.at (Diagnostic that expects two alternatives):
+ Likewise.
+
+2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap.conf (gnulib_modules): Add config-h.
+ * djgpp/subpipe.c: Include <config.h> unconditionally; don't
+ worry about HAVE_CONFIG_H.
+ * lib/abitset.c: Likewise.
+ * lib/bitset.c: Likewise.
+ * lib/bitset_stats.c: Likewise.
+ * lib/bitsetv-print.c: Likewise.
+ * lib/bitsetv.c: Likewise.
+ * lib/ebitset.c: Likewise.
+ * lib/get-errno.c: Likewise.
+ * lib/lbitset.c: Likewise.
+ * lib/subpipe.c: Likewise.
+ * lib/timevar.c: Likewise.
+ * lib/vbitset.c: Likewise.
+ * lib/bitset.c: Include "bitset.h" first, to test interface.
+ * lib/bitset_stats.c: Include "bitset_stats.h" first.
+ * lib/bitsetv-print.c: Include "bitsetv-print.h" first.
+ * lib/bitsetv.c: Include "bitsetv.h" first.
+ * lib/get-errno.c: Include "get-errno.h" first.
+ * m4/.cvsignore: Add config-h.m4.
+ * tests/actions.at (Default %printer and %destructor for ...):
+ Adjust expected line numbers in output to reflect removal of #if
+ HAVE_CONFIG_H lines.
+ * tests/glr-regression.at (Missed %merge type warnings when ...):
+ Likewise.
+ * tests/regression.at (Braced code in declaration in rules section):
+ Likewise.
+ * tests/atlocal.in (CPPFLAGS): Don't define HAVE_CONFIG_H.
+ * tests/local.at (AT_DATA_GRAMMAR_PROLOGUE):
+ Include <config.h> unconditionally.
+
+ * bootstrap: Sync from coreutils, as follows:
+
+ 2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell
+ variable was sometimes used without being initialized. This
+ messed up the installation of the INSTALL file in some cases.
+
+ 2006-10-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap (usage, main program, symlink_to_gnulib): Add option
+ --copy. Inspired by a suggestion from Bruno Haible.
+
+ 2006-10-03 Jim Meyering <jim@meyering.net>
+
+ * bootstrap: Undo last change to this file, since now gnulib-tool
+ sticks with the automake default in generating dependencies.
+
+2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * configure.ac: Use AC_PROG_CC_STDC; this is more modern than
+ the old AC_PROG_CC / AM_PROG_CC_STDC combination.
+
+ * doc/bison.1: Add copyright notice.
+
+ * data/glr.c: Don't include <stdarg.h>; not used.
+
+ * NEWS: The -g and --graph options now output graphs in Graphviz
+ DOT format, not VCG format.
+ * doc/bison.1: Likewise.
+ * doc/bison.texinfo (Understanding, Bison Options): Likewise.
+ * THANKS: Add Satya Kiran Popuri, who proposed the initial version
+ of this change in
+ <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00158.html>.
+ * TODO: Remove Graphviz entry.
+ * src/Makefile.am (bison_SOURCES): Add graphviz.c and graphviz.h;
+ remove vcg.c, vcg.h, vcg_defaults.h.
+ * src/vcg.c, src/vcg.h, src/vcg_defaults.h: Remove.
+ * src/graphviz.c, src/graphviz.h: New files.
+ * src/files.c (compute_output_file_names): Output .dot, not .vcg.
+ * src/files.h: Make comment more generic.
+ * src/main.c (main): Likewise.
+ * src/print_graph.h: Likewise.
+ * src/getargs.c (usage): Make usage description more generic.
+ * src/print_graph.c: Include graphviz.h rather than vcg.h.
+ (static_graph, fgraph): Remove. All uses changed to pass
+ arguments instead of sharing a static var.
+ (print_core, print_actions, print_state, print_graph):
+ Output graphviz format rather than VCG format.
+ * tests/.cvsignore: Remove *.vcg; add *.dot.
+ * tests/output.at: Expect *.dot files, not *.vcg files.
+
+ * data/Makefile.am (dist_pkgdata_DATA): Add bison.m4; this
+ accommodates the 2006-10-08 change.
+
+2006-10-11 Bob Rossi <bob@brasko.net>
+
+ * data/push.c (yypushparse, yypvarsinit, yypvars): Wrap in b4_push_if.
+ (b4_yyssa, b4_yyerror_range): New macros.
+ (struct yypvars): Remove yyssa_ptr and yyerror_range_ptr fields.
+ (yypvarsinit): Remove init of removed fields.
+ (yypushparse): Remove use of removed fields; use new macros instead.
+
+2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/push.c (yypushparse): Fix memory leak if yymsg is malloced
+ in a push parser. Reindent slightly to match yacc.c better.
+
+2006-10-11 Bob Rossi <bob@brasko.net>
+
+ * data/push.c (struct yypvars): Remove yymsgbuf, yymsgbuf_ptr, yymsg,
+ yymsg_alloc fields.
+ (yypvarsinit, yypushparse): Remove init of removed fields.
+ (yypushparse): Use yymsgbuf instead of yymsgbuf_ptr.
+
+2006-10-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * THANKS: Add Paolo Bonzini and Bob Rossi.
+
+2006-10-08 Paolo Bonzini <bonzini@gnu.org>
+
+ * data/c.m4 (b4_copyright, b4_epilogue, b4_location_initial_column,
+ b4_location_initial_line, p4_parse_param, b4_ints_in, b4_flag_if,
+ b4_define_flag_if and uses, b4_basename, b4_syncline, b4_user_code,
+ b4_define_user_cde and uses): Remove.
+ (b4_comment, b4_prefix, b4_sync_start): New.
+ * data/bison.m4: New file, with most of the content removed from c.m4.
+ * src/muscle_tab.h: Use "do {...} while(0)" throughout.
+ * src/output.c (output_skeleton): Pass bison.m4.
+ (prepare): Pass glr_flag and nondeterministic_flag. Pass prefix
+ only if specified.
+
+2006-10-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix test failure reported by Tom Lane in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-10/msg00000.html>
+ and try to make such failures easier to catch in the future.
+ * data/glr.c (YYTRANSLATE): Don't check for nonpositive arg;
+ that's now the caller's responsibility.
+ (yyprocessOneStack, yyrecoverSyntaxError, yyparse):
+ Set yychar = YYEOF if it's negative.
+ * tests/actions.at (yylex): Abort if asked to read past EOF.
+ * tests/conflicts.at (yylex): Likewise.
+ * tests/cxx-type.at (yylex): Likewise.
+ * tests/glr-regression.at (yylex): Likewise.
+ * tests/input.at (yylex): Likewise.
+ * tests/regression.at (yylex): Likewise.
+ * tests/torture.at (yylex): Likewise.
+
+2006-10-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix problems with translating English-language diagnostics.
+ * bootstrap: Fix bug introduced in recent bootstrap changes, with
+ respect to bison-runtime pot generation. The YY_ stuff
+ wasn't being captured.
+ * bootstrap.conf (XGETTEXT_OPTIONS_RUNTIME): New var.
+ * po/POTFILES.in: Add src/location.c, src/scan-code.l.
+ * runtime-po/POTFILES.in: Add data/push.c.
+
+2006-09-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge bootstrap changes from coreutils.
+
+ 2006-09-28 Jim Meyering <jim@meyering.net>
+
+ Automatically generated dependencies are important even
+ when all of the sources in a directory come from gnulib.
+ * bootstrap (gnulib_tool): Remove the "no-dependencies" automake
+ option that gnulib-tool adds to what becomes our lib/gnulib.mk.
+
+ 2006-09-23 Jim Meyering <jim@meyering.net>
+
+ * bootstrap (gnulib_tool_options): Add "--local-dir gl".
+
+ 2006-09-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap: Add support for --force.
+ (usage): New function. Describe usage less tersely.
+ (CVS_only_file): New var.
+
+2006-09-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/push.c (YYPUSH_MORE): Make it an enum instead.
+ (yypushparse): Use YYPUSH_MORE instead of the mystery constant.
+ Adjust white space and comments to match GNU style better.
+
+2006-09-20 Bob Rossi <bob@brasko.net>
+
+ * data/push.c (yyresult_get): Remove function.
+ (YYPUSH_MORE): Add #define.
+ (yypushparse): Modify return value.
+
+2006-09-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * stamp-h.in: Remove; no longer needed.
+ * .cvsignore: Replace autom4te.cache and config.cache with *.cache.
+ Remove config.h, config.hin, intl (no longer created).
+ * lib/.cvsignore: Add config.h, config.hin, configmake.h, inttypes.h,
+ stamp-h1.
+
+ Sync bootstrap from coreutils, as follows:
+
+ 2006-09-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap (symlink_to_gnulib): New function.
+ (cp_mark_as_generated): Use it, to prefer symlinks-to-gnulib
+ to copies-of-gnulib.
+ (cp_mark_as_generated, slurp, gnulib_files):
+ Avoid making a copy if it's the same as the old version.
+ (gnulib_files): Add support for this variable (used by Bison).
+
+2006-09-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * src/getargs.c (usage): Rework to use conventions similar to
+ coreutils, to make translation a bit easier and the code a bit
+ smaller. Problem reported by Tim Van Holder.
+
+2006-09-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use some of gnulib's new modules, taken from coreutils.
+
+ * bootstrap: Sync from coreutils, except add support for gnulib_files.
+ * bootstrap.conf: New file.
+ (gnulib_modules): Add configmake, inttypes, unistd.
+ (XGETTEXT_OPTIONS): Add complain, complain_at,
+ fatal, fatal_at, warn, warn_at, unexpected_end.
+ * configure.ac (AC_CONFIG_HEADERS): config.h is now in lib, not here.
+ (gl_USE_SYSTEM_EXTENSIONS): Remove; gl_EARLY now does this.
+ (gl_EARLY): Add.
+ (AM_STDBOOL_H): Remove; gl_INIT now dows this.
+ (gl_INIT): Add
+ (GNULIB_AUTOCONF_SNIPPET): Remove.
+ (AM_GNU_GETTEXT): Add; require formatstring macros since that's
+ the pickiest.
+ * lib/.cvsignore: Add inttypes_.h.
+ * lib/Makefile.am: Include gnulib.mk first so we can append to it.
+ (AM_CFLAGS): Add WERROR_CFLAGS, to be more like coreutils.
+ (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES): Remove
+ no-longer-necessary initializations.
+ (lib_SOURCES): Remove, replacing by libbison_a_SOURCES.
+ * lib/subpipe.c: Include <unistd.h> unconditionally, now that we
+ use the unistd module.
+ * src/system.h: Likewise.
+ * m4/.cvsignore: Remove *_gl.m4, gnulib.m4, inttypes_h.m4, uintmax_t.m4,
+ ulonglong.m4. Add gettext.m4, gnulib-cache.m4, gnulib-comp.m4,
+ gnulib-tool.m4, inttypes-h.m4, inttypes-pri.m4, inttypes.m4.
+ * src/Makefile.am (DEFS): Remove, since configmake does this for us.
+ (AM_CPPFLAGS): Remove -I../lib, since Automake does that for us.
+ * src/system.h: Include inttypes.h unconditionally, now that we
+ use the inttypes module. Don't bother to include stdint.h, since
+ inttypes.h now does that for us.
+ (LOCALEDIR): Remove, now that we use the configmake module.
+ * src/getargs.c: Include configmake.h.
+ * src/main.c: Likewise.
+ * src/output.c: Likewise.
+ * tests/atlocal.in (CPPFLAGS): Include from $abs_top_builddir/lib,
+ not from $abs_top_builddir, since config.h moved.
+
+
+ Port to GCC 2.95. First two problems reported by Michael Deutschmann in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00018.html>.
+
+ * src/parse-gram.y (symbol_declaration): Don't put statements
+ before declarations; it's not portable to C89.
+ * src/scan-code.l (handle_action_at): Likewise.
+
+ * src/scan-code.l: Always initialize braces_level; the old code
+ left it uninitialized and therefore had undefined behavior.
+
+ Don't attempt to redefine 'assert', since it runs afoul of
+ systems where standard headers (mistakenly) include <assert.h>.
+ Instead, define and use our own alternative, called 'aver'.
+ * src/reader.c: Don't include assert.h, since we no longer
+ use assert.
+ * src/scan-code.l: Likewise.
+ * src/system.h (assert): Remove, replacing with....
+ (aver): New function, taking a bool arg. All uses changed.
+ * src/tables.c (pack_vector): Ensure that aver arg is bool,
+ not merely an integer.
+
+2006-09-15 Bob Rossi <bob@brasko.net>
+
+ * data/Makefile.am (dist_pkgdata_DATA): Add push.c.
+ * data/c.m4 (YYPUSH): New.
+ (b4_push_if): New macro. Use it instead of #ifdef YYPUSH.
+ * src/getargs.c (push_parser): New var.
+ * src/getargs.h (push_parser): New declaration.
+ * src/output.c (prepare): Add macro insertion of `push_flag'.
+ * src/parse-gram.y (PERCENT_PUSH_PARSER): New token.
+ (prologue_declaration): Parse %push-parser.
+ * src/scan-gram.l: Scan new PERCENT_PUSH_PARSER token.
+ * tests/calc.at (_AT_CHECK_CALC_ERROR): Add "Return" and "Now" to
+ list of removed lines from the traces observed.
+ (AT_CHECK_CALC_LALR): Added push parser tests.
+
+2006-09-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Version 2.3a.
+ * configure.ac (AC_INIT): Likewise.
+
+ * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Remove
+ "#define YYSTYPE int" that caused "make maintainer-check" to fail
+ due to header ordering dependencies. I don't know why the #define
+ was there.
+
+ Fix glr.cc and lalr1.cc's use of YYDEBUG so that there's zero
+ runtime cost when YYDEBUG is not defined, and so that some tests
+ that used to fail now work. Problem and initial suggestion by
+ Paolo Bonzini.
+ * data/c++.m4 (b4_parse_param_cons): Omit leading ','.
+ * data/glr.cc (b4_parser_class_name):
+ Initialize yycdebug_ only if YYDEBUG. Also, initialize yydebug_.
+ (debug_level, set_debug_level): Affect yydebug_, not ::yydebug.
+ (yydebug_) [YYDEBUG]: New member.
+ (yycdebug_): Now defined only if YYDEBUG.
+ * data/lalr1.cc (yydebug_, yycdebug_): Now defined only if YYDEBUG.
+ (YYCDEBUG) [!YYDEBUG]: Don't use yydebug_ and yycdebug_.
+ (b4_parser_class_name): Initialize yydebug_ and yycdebug_ only
+ if YYYDEBUG.
+ (debug_stream, set_debug_stream, debug_level, set_debug_level):
+ Define only if YYDEBUG.
+ * tests/calc.at (_AT_DATA_CALC_Y) [!YYDEBUG]: Omit call to
+ set_debug_level.
+ * tests/regression.at (_AT_DATA_DANCER_Y) [!YYDEBUG]: Likewise.
+ * tests/calc.at (AT_CHECK_CALC_GLR_CC): Uncomment calls to
+ AT_CHECK_CALC_GLR_CC that are working now.
+
+2006-09-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.cc (YYERROR_VERBOSE, YYTOKEN_TABLE): Remove.
+ We don't need them in glr.cc, and glr.c defines them.
+ Defining YYERROR_VERBOSE to 0 here breaks glr.c, since glr.c
+ assumes that defining it to anything is the same as defining
+ it to 1. Problem reported by Paolo Bonzini.
+
+2006-09-12 Paolo Bonzini <bonzini@gnu.org> (tiny change)
+
+ * data/c.m4 (b4_null, b4_case): Define.
+ * src/output.c (prepare_symbols): Use b4_null.
+ (user_actions_output): Use b4_case.
+
+2006-09-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c (b4_shared_declarations): Put start-header first,
+ before any #includes that we generate, so that feature-test
+ macros work. Problem reported by Michael Deutschmann in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00004.html>.
+ * data/lalr1.cc: Likewise.
+ * doc/bison.texinfo (Prologue): Document that feature-test macros
+ should be defined before any Bison declarations.
+ * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Put defns
+ that depend on location.hh after, not before, Bison decls, since
+ we now include location.hh after the first user prologue.
+
+ * doc/bison.texinfo (Calc++ Parser): Fix memory leak reported by
+ Sander Brandenburg in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00002.html>.
+ Also, fix minor white space and comment issues.
+ (Prologue): Mention that it's better to define feature-test macros
+ before Bison declarations. Problem reported by Michael Deutschmann.
+
+ * README-cvs: Fix typo: "&" should be "&&". Problem reported
+ by Jim Meyering.
+ * m4/.cvsignore: Add argmatch.m4. Remove obstack.m4, strerror_r.m4.
+ This adjusts to recent gnulib changes.
+
+2006-09-04 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Finish implementation of per-type %destructor/%printer. Discussed
+ starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>
+ and
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>.
+ * NEWS (2.3+): Add a description of this feature to the default
+ %destructor/%printer description.
+ * doc/bison.texinfo (Freeing Discarded Symbols): Likewise.
+ * src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
+ Invoke semantic_type_destructor_set or semantic_type_printer_set when a
+ list node contains a semantic type.
+ * src/symtab.c, src/symtab.h: Extend with a table that associates
+ semantic types with their %destructor's and %printer's.
+ (semantic_type_from_uniqstr, semantic_type_get,
+ semantic_type_destructor_set, semantic_type_printer_set): New functions
+ composing the public interface of that table.
+ (symbol_destructor_get, symbol_destructor_location_get,
+ symbol_printer_get, symbol_printer_location_get): If there's no
+ per-symbol %destructor/%printer, look up the per-type before trying
+ the default.
+ * tests/actions.at (Per-type %printer and %destructor): New test case.
+ * tests/input.at (Default %printer and %destructor redeclared):
+ Extend to check that multiple occurrences of %symbol-default in a
+ single %destructor/%printer declaration is an error.
+ (Per-type %printer and %destructor redeclared, Unused values with
+ per-type %destructor): New test cases.
+
+2006-09-04 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Require default %destructor/%printer to be declared using
+ %symbol-default instead of an empty symbol list, and start working on
+ new per-type %destructor/%printer. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>.
+ * NEWS (2.3+): Add %symbol-default to example.
+ * bison.texinfo (Freeing Discarded Symbols): Likewise.
+ (Bison Symbols): Add entry for %symbol-default.
+ * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token.
+ (generic_symlist, generic_symlist_item): New nonterminals for creating
+ a list in which each item is a symbol, semantic type, or
+ %symbol-default.
+ (grammar_declaration): Use generic_symlist in %destructor and %printer
+ declarations instead of symbols.1 or an empty list.
+ (symbol_declaration, precedence_declaration, symbols.1): Update actions
+ for changes to symbol_list.
+ * src/reader.c: Update for changes to symbol_list.
+ * src/scan-code.l: Likewise.
+ * src/scan-gram.l: Scan new PERCENT_SYMBOL_DEFAULT token.
+ * src/symlist.c, src/symlist.h: Extend such that a list node may
+ represent a semantic type or a %symbol-default in addition to just an
+ ordinary symbol. Add switched functions for setting %destructor's and
+ %printer's.
+ * tests/actions.at, tests/input.at: Add %symbol-default to all default
+ %destructor/%printer declarations.
+
+2006-08-23 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Whether the default %destructor/%printer applies to a particular symbol
+ isn't a question of whether the user *declares* that symbol (in %token,
+ for example). It's a question of whether the user by any means
+ *defines* the symbol at all (by simply using a char token, for
+ example). $end is defined by Bison whereas any other token with token
+ number 0 is defined by the user. The error token is always defined by
+ Bison regardless of whether the user declares it with %token, but we
+ may one day let the user define error as a nonterminal instead.
+ * NEWS (2.3+): Say "user-defined" instead of "user-declared".
+ * doc/bison.texinfo (Freeing Discarded Symbols): Likewise, and document
+ the meaning of "user-defined".
+ * tests/actions.at (Default %printer and %destructor for user-declared
+ end token): Rename to...
+ (Default %printer and %destructor for user-defined end token): ...
+ this.
+
+ * src/symtab.c (symbol_destructor_get, symbol_printer_get): In the
+ computation of whether to apply the default, don't maintain a list of
+ every Bison-defined symbol. Instead, just check for a first character
+ of '$', which a user symbol cannot have, and check for the error token.
+
+2006-08-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Don't apply the default %destructor or %printer to the error token,
+ $undefined, or $accept. This change fits the general rule that the
+ default %destructor and %printer are only for user-declared symbols,
+ and it solves several difficulties that are described in the new test
+ cases listed below.
+ * src/symtab.c (symbol_destructor_get, symbol_printer_get): Implement.
+ * tests/actions.at (Default %printer and %destructor are not for error
+ or $undefined, Default %printer and %destructor are not for $accept):
+ New test cases.
+
+2006-08-19 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Allow %start after the first rule.
+ * src/reader.c (grammar_current_rule_begin): Don't set the start symbol
+ when parsing the first rule.
+ (check_and_convert_grammar): Search for it here after all grammar
+ declarations have been parsed. Skip midrules, which have dummy LHS
+ nonterminals.
+ * src/symtab.c (symbol_is_dummy): New function.
+ * src/symtab.h (symbol_is_dummy): Declare it.
+ * tests/input.at (%start after first rule): New test.
+
+2006-08-18 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Redo some of the previous commit: add back the ability to use
+ non-aliased/undeclared string literals since it might be useful to
+ those declaring %token-table.
+ * src/reader.c (check_and_convert_grammar): Undo changes in previous
+ commit: don't worry about complaints from symbols_pack.
+ * src/symtab.c (symbol_new, symbol_class_set,
+ symbol_check_alias_consistency): Undo changes in previous commit: count
+ each string literal as a new symbol and token, assign it a symbol
+ number, and don't complain about non-aliased string literals.
+ (symbols_pack): Since symbol_make_alias still does not decrement symbol
+ and token counts but does still set aliased tokens to the same number,
+ symbol_pack_processor now leaves empty slots in the symbols array.
+ Remove those slots.
+ * tests/regression.at (Undeclared string literal): Remove test case
+ added in previous commit since non-aliased string literals are allowed
+ again.
+ (Characters Escapes, Web2c Actions): Undo changes in previous commit:
+ remove unnecessary string literal declarations.
+ * tests/sets.at (Firsts): Likewise.
+
+2006-08-18 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Don't allow an undeclared string literal, but allow a string literal to
+ be used before its declaration.
+ * src/reader.c (check_and_convert_grammar): Don't invoke packgram if
+ symbols_pack complained.
+ * src/symtab.c (symbol_new): Don't count a string literal as a new
+ symbol.
+ (symbol_class_set): Don't count a string literal as a new token, and
+ don't assign it a symbol number since symbol_make_alias does that.
+ (symbol_make_alias): It's not necessary to decrement the symbol and
+ token counts anymore. Don't assume that an alias declaration occurs
+ before any uses of the identifier or string, and thus don't assert that
+ one of them has the highest symbol number so far.
+ (symbol_check_alias_consistency): Complain if there's a string literal
+ that wasn't declared as an alias.
+ (symbols_pack): Bail if symbol_check_alias_consistency failed since
+ symbol_pack asserts that every token has been assigned a symbol number
+ although undeclared string literals have not.
+ * tests/regression.at (String alias declared after use, Undeclared
+ string literal): New test cases.
+ (Characters Escapes, Web2c Actions): Declare string literals as
+ aliases.
+ * tests/sets.at (Firsts): Likewise.
+
+2006-08-14 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ In the grammar scanner, STRING_FINISH unclosed constructs and return
+ them to the parser in order to improve error messages.
+ * src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER,
+ SC_BRACED_CODE, SC_PROLOGUE): Implement.
+ * tests/input.at (Unclosed constructs): New test case.
+ * tests/regression.at (Invalid inputs): Update now that unclosed %{ is
+ seen.
+
+ * src/scan-gram.h, src/scan-gram.l (gram_last_braced_code_loc): Remove
+ unused global.
+
+2006-08-13 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Handle string aliases for character tokens correctly.
+ * src/symtab.c (symbol_user_token_number_set): If the token has an
+ alias, check and set its alias's user token number instead of its own,
+ which is set to indicate the alias. Previously, every occurrence of
+ the character token in the grammar overwrote that alias indicator with
+ the character code.
+ * tests/input.at (String aliases for character tokens): New test.
+
+2006-08-12 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/parse-gram.y: Add `%expect 0' so we don't overlook conflicts.
+
+2006-08-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap: Put in need-ngettext argument to AM_GNU_GETTEXT,
+ to prevent failures when building on older platforms.
+ Check for autopoint failure.
+ Set XGETTEXT_OPTIONS to values that check for C format strings,
+ so that translators are warned about them (this also helps
+ prevent core dumps).
+
+ * lib/subpipe.c (create_subpipe): Use new gnulib pipe_safer
+ function, since it simplifies our code a bit.
+
+ * configure.ac (AC_ARG_ENABLE): Use -Wextra -Wno-sign-compare
+ rather than -W, so we don't get bogus warnings about sign comparisons.
+ Add -Wpointer-arith, since that warning is useful (it reports code
+ that does not conform to C89 and that some compilers reject).
+ * data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c: Undo latest change,
+ since it's no longer needed.
+
+2006-08-10 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Clean up scanners a bit.
+ * src/flex-scanner.h (FLEX_NO_OBSTACK): New macro that blocks obstack
+ definitions so gcc won't warn when obstack_for_string is unused.
+ * src/scan-code.l: config.h and system.h are already #include'd by
+ scan-code-c.c, so get rid of them here.
+ * src/scan-gram.l: Likewise.
+ * src/scan-skel.l: Likewise, and use flex-scanner.h without obstack
+ definitions rather than duplicating the rest of it.
+ * src/scan-gram-c.c, scan-skel-c.c: #include "system.h".
+
+2006-08-09 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Suppress signed/unsigned comparison warnings for yycheck.
+ * data/c.m4 (b4_safest_int_type): New macro.
+ * data/glr.c, data/lalr1.cc: Wherever you compare yycheck[i] against
+ a signed int type, cast it to b4_safest_int_type first.
+ * data/yacc.c: Likewise.
+ (b4_safest_int_type): Overwrite the one from c.m4 since b4_int_type is
+ also overwritten.
+
+2006-08-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
+
+ * doc/bison.texinfo: Fix some typos.
+
+2006-08-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * m4/.cvsignore: Add inttypes_h.m4,lib-ld.m4, lib-prefix.m4,
+ po.m4, stdint_h.m4, uintmax_t.m4, ulonglong.m4, warning.m4.
+
+ * bootstrap (gnulib_tool): Stop using --assume-autoconf;
+ the latest gnulib does this a different way.
+ (get_translations): Sharuzzaman Ahmat Raslan reported that the ms
+ translation was patched, so stop omitting it.
+
+2006-07-29 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Enable declaration of default %printer/%destructor. Make the parser
+ use these for all user-declared grammar symbols for which the user does
+ not declare a specific %printer/%destructor. Thus, the parser uses it
+ for token 0 if the user declares it but not if Bison generates it as
+ $end. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>,
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>,
+ and
+ <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>.
+ * NEWS (2.3+): Mention.
+ * doc/bison.texinfo (Actions in Mid-Rule): It's no longer impossible to
+ declare a %destructor for a mid-rule's semantic value. It's just
+ impossible to declare one specific to it.
+ (Freeing Discarded Symbols): Mention that @$ can be used in %destructor
+ code. Describe default %destructor form.
+ * src/parse-gram.y (grammar_declaration): Parse default
+ %printer/%destructor declarations.
+ * src/output.c (symbol_destructors_output): Use symbol_destructor_get
+ and symbol_destructor_location_get rather than accessing the destructor
+ and destructor_location members of struct symbol.
+ (symbol_printers_output): Likewise but for %printer's.
+ * src/reader.c (symbol_should_be_used): Likewise but for %destructor's
+ again.
+ * src/symtab.c (default_destructor, default_destructor_location,
+ default_printer, default_printer_location): New static global
+ variables to record the default %destructor and %printer.
+ (symbol_destructor_get, symbol_destructor_location_get,
+ symbol_printer_get, symbol_printer_location_get): New functions to
+ compute the appropriate %destructor and %printer for a symbol.
+ (default_destructor_set, default_printer_set): New functions to set the
+ default %destructor and %printer.
+ * src/symtab.h: Prototype all those new functions.
+ * tests/actions.at (Default %printer and %destructor): New test to
+ check that the right %printer and %destructor are called, that they're
+ not called for $end, and that $$ and @$ work correctly.
+ (Default %printer and %destructor for user-declared end token): New
+ test to check that the default %printer and %destructor are called for
+ a user-declared end token.
+ * tests/input.at (Default %printer and %destructor redeclared, Unused
+ values with default %destructor): New tests to check related grammar
+ warnings and errors.
+
+2006-07-29 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Clean up handling of %destructor for the end token (token 0).
+ Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>
+ and
+ <http://lists.gnu.org/archive/html/help-bison/2006-07/msg00013.html>.
+
+ Make the skeletons consistent in how they pop the end token and invoke
+ its %destructor.
+ * data/glr.c (yyrecoverSyntaxError, yyparse): Don't pop the start
+ state, which has token number 0, since this would invoke the
+ %destructor for the end token.
+ * data/lalr1.cc (yy::parser::parse): Don't check for the final state
+ until after shifting the end token, or else it won't be popped.
+ * data/yacc.c (yyparse): Likewise.
+
+ * data/glr.c (yyparse): Clear the lookahead after shifting it even when
+ it's the end token. Upon termination, destroy an unshifted lookahead
+ even when it's the end token.
+ * data/lalr1.cc (yy::parser::parse): Likewise.
+ * data/yacc.c (yyparse): Likewise.
+
+ * src/reader.c (packgram): Don't check rule 0. This suppresses unused
+ value warnings for the end token when the user gives the end token a
+ %destructor.
+
+ * tests/actions.at (Printers and Destructors): Test all the above.
+
+2006-07-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ Update to latest gnulib and gettext versions.
+ * bootstrap (gnulib-modules): Remove hard-locale, stdio-safer.
+ Add fopen-safer.
+ (gnulib_files): Add m4/warning.m4. Don't worry about files
+ overwritten by autopoint.
+ Replace gt_INTL_SUBDIR_CORE with an empty body in m4/gettext_gl.m4.
+ Suppress "id", "ms", "tr" translations for now, since gettext 0.15
+ rejects them.
+ Don't use autoreconf; instead, invoke autopoint etc. by hand,
+ so that we can remove the intl files at a better time.
+ (intl_files_to_remove): Remove aclocal.m4, since it gets
+ rebuilt anyway. Remove m4/inttypes_h.m4, m4/inttypes.m4,
+ m4/isc-posix.m4, m4/lib-ld.m4, m4/lib-prefix.m4, m4/po.m4,
+ m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4.
+ Add m4/inttypes-h.m4, m4/lock.m4, m4/visibility.m4.
+ Remove datarootdir hack; no longer needed.
+ * configure.ac: Use gl_WARNING_CFLAGS rather than BISON_WARNING.
+ (AM_GNU_GETTEXT_VERSION): Bump from 0.12 to 0.15.
+ * lib/.cvsignore: Remove hard-locale.c, hard-locale.h, strdup.c,
+ strdup.h.
+ * m4/.cvsignore: Remove hard-locale.m4, strdup.m4.
+ * m4/warning.m4: Remove from CVS, since we now use gnulib's version.
+
+2006-07-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap: Adjust to today's change to gnulib-tool by invoking
+ it with --assume-autoconf='latest-stable'.
+
+2006-07-13 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/parse-gram.y (grammar_declaration): Don't confuse Doxygen (at
+ least 1.4.7 and 1.4.4) by putting a #line between `typedef union
+ YYSTYPE' and `{'.
+ * src/muscle_tab.h (muscle_grow): Replace the header comments with
+ those from muscle_tab.c since the old ones are misleading.
+
+2006-07-13 Akim Demaille <akim@epita.fr>
+
+ Support %define "KEY" {VALUE}.
+ * src/scan-code.h, src/scan-code.l (translate_action)
+ (translate_rule_action, translate_symbol_action, translate_code):
+ Return char *, not const char *.
+ * src/parse-gram.y (declaration): Rename as...
+ (prologue_declaration): this.
+ (string_content): Remove this nonterminal, use STRING.
+ (braceless, content, content.opt): New nonterminal.
+ Use them.
+ (%define): Now accept content.opt, i.e., accept also BRACED_CODE
+ as value.
+ * src/scan-gram.l (getargs.h): Don't include it.
+
+2006-07-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/lalr1.cc (YYCDEBUG): Use 'if (yydebug_) (*yycdebug_)'
+ rather than a for-loop that declares a local bool variable. This
+ should work around a compatibility problem with a Cray x1e C++
+ compiler reported by Hung Nguyen in
+ <http://lists.gnu.org/archive/html/help-bison/2006-07/msg00022.html>.
+ The for-loop was introduced in the 2004-11-17 change but I don't
+ know why it was needed.
+
+2006-07-12 Akim Demaille <akim@epita.fr>
+
+ * data/c.m4: Comment changes.
+
+2006-07-10 Akim Demaille <akim@lrde.epita.fr>
+
+ * src/complain.c (error_message, ERROR_MESSAGE): New.
+ To factor...
+ (fatal_at, fatal, warn_at, warn, complain_at, complain): these.
+ * src/complain.h, src/complain.c (warning_issued): Remove, unused.
+
+2006-07-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Instead of %union, you can define and use your own union type
+ YYSTYPE if your grammar contains at least one <type> tag.
+ Your YYSTYPE need not be a macro; it can be a typedef.
+ * doc/bison.texinfo (Value Type, Multiple Types, Location Type):
+ (Union Decl, Decl Summary): Document this.
+ * data/glr.c (YYSTYPE): Implement this.
+ * data/glr.cc (YYSTYPE): Likewise.
+ * data/lalr1.cc (YYSTYPE): Likewise.
+ * data/yacc.c (YYSTYPE): Likewise.
+ * src/output.c (prepare): Output tag_seen_flag.
+ * src/parse-gram.y (declaration, grammar_declaration):
+ Use 'union_seen' rather than 'typed' to determine whether
+ %union has been seen, since grammars can now be typed without
+ %union.
+ (symbol_declaration, type.opt, symbol_def):
+ Keep track of whether a tag has been seen.
+ * src/reader.c (union_seen, tag_seen): New vars.
+ (typed): remove.
+ * src/reader.h (union_seen, tag_seen, typed): Likewise.
+ * src/scan-code.l (untyped_var_seen): New variable.
+ (handle_action_dollar): Adjust to above changes.
+ (handle_action_dollar, handle_action_at):
+ Improve overflow checking for outlandish numbers.
+ * tests/input.at (AT_CHECK_UNUSED_VALUES): Redo test to
+ avoid new diagnostics generated by above changes.
+ * tests/regression.at (YYSTYPE typedef): Add test to check
+ for type tags without %union.
+
+ * src/symlist.c (symbol_list_length): Return int, not unsigned
+ int, since callers expect int. This may need to get revisited
+ once we have proper integer overflow checking.
+
+ * src/scan-gram.h (gram_scanner_cursor): Remove decl, since this
+ object is now static.
+
+ * src/getargs.c (flags_argmatch): Return void, not int,
+ to pacify ./configure --enable-gcc-warnings.
+
+ * src/flex-scanner.h (STRING_FREE): Don't use FLEX_PREFIX (last_string)
+ since last_string is already defined to FLEX_PREFIX (last_string).
+
+2006-07-09 Akim Demaille <akim@lrde.epita.fr>
+
+ Implement --warnings/-W.
+ * src/getargs.c (report_argmatch, trace_argmatch): Remove,
+ replaced by...
+ (flags_argmatch, FLAGS_ARGMATCH): this new function and macro.
+ Adjust callers.
+ * src/getargs.h, src/getargs.c (warnings, warnings_flags)
+ (warnings_args, warnings_types): New.
+ (getargs, short_options, long_options): Accept -W/--warnings.
+ Sort the options by alphabetical order, upper case letter right
+ before its lower case.
+
+2006-07-09 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Change %merge result type clash warnings to errors. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00026.html>.
+ * src/reader.c (record_merge_function_type): Use complain_at.
+ * tests/glr-regression.at (Missed %merge type warnings when LHS type is
+ declared later): Update test case results.
+
+2006-07-09 Akim Demaille <akim@lrde.epita.fr>
+
+ * src/getargs.h, src/getargs.c: Swap --report and --trace handling
+ to be in alphabetical order.
+ (trace_args): Spelling fixes.
+
+2006-07-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c (YYID, yy_stack_print): Prefix local vars with "yy"
+ so they don't collide with user-defined macros.
+ (yy_stack_print): Don't assume that yytype_int16 promotes to int;
+ this was never guaranteed, and now that we're using gnulib stdint,
+ which defines int_fast16_t to long int, the problem is exposed.
+
+2006-07-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/c.m4 (b4_basename): Simplify a bit, since we don't
+ need the full POSIX semantics (and weren't implementing them
+ anyway).
+
+ Adjust to Autoconf 2.60 and today's gnulib.
+ * bootstrap (gnulib_modules): Add stdint.
+ Remove special case for m4/onceonly_2_57.m4, since gnulib-tool
+ no longer copies it.
+ (intl_files_to_remove): Remove m4/longlong.m4 and m4/wchar_t.m4,
+ since stdint needs the former and wcwidth (which is now required
+ by mbswidth) needs the latter.
+ Append 'datarootdir = @datarootdir@' to po/Makefile.in.in, to
+ work around a compatibility glitch between gettext 0.14.6 and
+ Autoconf 2.60.
+ * configure.ac (AC_PREREQ): Require Autoconf 2.60.
+ Do not check for uintptr_t, since new stdint module does the right
+ thing.
+ * lib/.cvsignore: Remove alloca.c, alloca.h, alloca_.h.
+ Add stdint.h, stdint_.h, wcwidth.h.
+ * m4/.cvsignore: Remove alloca.m4, onceonly.m4.
+ Add absolute-header.m4, double-slash-root.m4, longlong.m4,
+ stdint.m4, wchar_t.m4, wcwidth.m4.
+ * src/files.c: Include <dirname.h> and <stdio-safer.h> in the
+ usual order for ../lib/*.h files.
+ (file_name_split): Use last_component, not base_name, to adjust
+ to gnulib changes.
+ * src/parse-gram.h: Include <strverscmp.h> in the usual order
+ for ../lib/*.h files.
+ (YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8):
+ Define unconditionally, since we now assume the stdint module.
+ * src/scan-skel.l: Include <dirname.h>.
+ (BASE_QPUTS): Use last_component, not base_name.
+ * src/system.h: Include <unlocked-io.h> in the usual order
+ for ../lib/*.h files. Include <stdint.h> unconditionally,
+ since we now use the stdint module.
+ (uintptr_t): Declare if UINTPTR_MAX is not defined, not
+ HAVE_UINTPTR_T, since we now use the stdint module.
+ (base_name): Remove decl, since files now include <dirname.h>
+ to get the decl.
+
+2006-07-08 Akim Demaille <akim@lrde.epita.fr>
+
+ * data/c.m4 (b4_location_initial_column, b4_location_initial_line):
+ New, default to 1.
+ * data/yacc.c, data/glr.c, data/location.cc: Use them.
+ * NEWS, doc/bison.texinfo: The initial column and line are 1 by
+ default.
+ * tests/calc.at: Adjust.
+
+2006-07-08 Akim Demaille <akim@lrde.epita.fr>
+
+ * data/c.m4 (b4_basename): New.
+ (b4_syncline): Also output the location of its invocation (from
+ the skeleton).
+ (b4_user_action, b4_define_user_action, b4_user_actions)
+ (b4_user_initial_action, b4_user_post_prologue, b4_user_start_header)
+ (b4_user_stype): New.
+ * data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: Use them.
+
+2006-07-07 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ In the grammar file, the first column is 1 not 0 on the first line as
+ on every other line.
+ * src/parse-gram.y (%initial-action): Initialize @$ correctly.
+ * tests/input.at (Torturing the Scanner): Update output.
+
+ * src/scan-gram.l (scanner_cursor): Declare it static.
+
+2006-07-07 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ In warnings, say "previous declaration" rather than "first
+ declaration".
+ * src/symtab.c (redeclaration): Do that here.
+ * src/reader.c (record_merge_function_type): In the case of a result
+ type clash, report the previous declaration rather than the very first
+ one in the grammar file.
+ * tests/glr-regression.at (Missed %merge type warnings when LHS type is
+ declared later): Add a third declaration to check this behavior.
+ * tests/input.at (Incompatible Aliases): Update output.
+
+2006-06-27 Akim Demaille <akim@epita.fr>
+
+ * doc/Doxyfile.in: New.
+ * doc/Makefile.am: Use it.
+ * src/lalr.h, src/symtab.h: Initial doxygenation.
+
+2006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Don't miss %merge result type warnings just because the LHS types are
+ declared after the %merge. This continues the effort of the previous
+ patch.
+ * src/reader.c (get_merge_function): Don't set the merger type yet.
+ (record_merge_function_type): New function for setting the merger type
+ and checking for clashes.
+ (grammar_current_rule_merge_set): Set the location of the %merge for
+ the current rule.
+ (packgram): Invoke record_merge_function_type for each rule now that
+ all symbol type declarations have been parsed.
+ * src/reader.h (merger_list.type_declaration_location): New member
+ storing the location of the first %merge from which the type for this
+ merging function was derived.
+ * src/symlist.h (symbol_list.merger_declaration_location): New member
+ storing the location of a rule's %merge, if any.
+ * tests/glr-regression.at (Missed %merge type warnings when LHS type is
+ declared later): New test to catch the error fixed by the above patch.
+
+2006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Get action warnings (grammar_rule_check) right even when symbol
+ declarations appear after the rules. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00108.html>
+ and
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00151.html>.
+ Don't mistake the type of $$ in a midrule to be that of its parent
+ rule's $$.
+ * src/reader.c (grammar_current_rule_end): Don't invoke
+ grammar_rule_check yet since not all symbol declarations may have been
+ parsed yet.
+ (grammar_midrule_action): Likewise.
+ Don't record whether the midrule's $$ has been used yet since actions
+ haven't been translated yet.
+ Record the midrule's parent rule and its RHS index within the parent
+ rule.
+ (grammar_current_rule_action_append): Don't translate the action yet
+ since not all symbol declarations may have been parsed yet and, thus,
+ warnings about types for $$, $n, @$, and @n can't be reported yet.
+ (packgram): Translate the action and invoke grammar_rule_check now that
+ all symbol declarations have been parsed.
+ * src/scan-code.l (handle_action_dollar): Now that this is invoked
+ after parsing the entire grammar file, the symbol list here in the case
+ of a midrule is actually the midrule's empty RHS, so reference its
+ parent rule's RHS where necessary.
+ On the other hand, now that you can already know it's a midrule, you
+ aren't forced to think $$ has the same type as its parent rule's $$.
+ (handle_action_at): In the case of a midrule, reference the parent rule
+ where necessary.
+ * src/symlist.c (symbol_list_new): Initialize new midrule-related
+ members.
+ (symbol_list_length): Now that this is invoked after all rules have
+ been parsed, a NULL symbol (rather than a NULL symbol list node)
+ terminates a rule. symbol_list_print already does this correctly.
+ * src/symlist.h (symbol_list.midrule_parent_rule,
+ symbol_list.midrule_parent_rhs_index): New members so that midrules can
+ remember their relationships with their parents.
+ * tests/input.at (Type Clashes): Extend to catch the midrule $$ error
+ fixed by the above patch.
+ (_AT_UNUSED_VALUES_DECLARATIONS, AT_CHECK_UNUSED_VALUES): New m4 macros
+ implementing...
+ (Unused values): ... this old test case and...
+ (Unused values before symbol declarations): ... this new test case.
+ This one is the same as `Unused values' except that all symbol
+ declarations appear after the rules in order to catch the rest of the
+ errors fixed by the above patch.
+
+2006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ More cleanup.
+ * src/reader.c (current_rule): Declare it static since it's no longer
+ used outside this file.
+ (grammar_current_rule_action_append): Remove redundant arguments from
+ translate_rule_action invocation.
+ * src/reader.h (current_rule): Remove this unused extern.
+ * src/scan-code.h (translate_rule_action): Remove redundant arguments.
+ * src/scan-code.l (translate_rule_action): Likewise.
+
+2006-06-25 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Clean up yesterday's patch.
+ * parse-gram.y (rhs): Move grammar_midrule_action invocation from here
+ to...
+ * src/reader.c (grammar_current_rule_action_append): ... here for
+ consistency with grammar_current_rule_symbol_append.
+ * tests/regression.at (Braced code in declaration in rules section):
+ Make yyerror and yylex static as usual.
+
+2006-06-24 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Fix bug that mistakes braced code in a declaration in the rules section
+ to be a rule action. Mentioned at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00105.html>.
+ * src/scan-gram.l: Move midrule action detection from the start of the
+ scanning of any braced code to...
+ * src/parse-gram.y (rhs): ... the parsing of braced code as a rule
+ action. For readability, use $2 and @2 rather than the equivalent
+ global variables.
+ * tests/regression.at (Braced code in declaration in rules section):
+ New test to catch the error fixed by the above patch.
+
+ Work on code readability some.
+ * src/scan-code.l (current_rule): Get rid of this misleading and
+ redundant declaration: it's actually extern'ed in reader.h.
+ (YY_DECL, code_lex, handle_action_dollar, handle_action_at,
+ translate_action): Add a rule argument and use it instead of the global
+ current_rule.
+ (translate_rule_action): This already receives current_rule through an
+ argument, so pass it on to translate_action instead of assigning
+ current_rule to current_rule.
+ (translate_symbol_action, translate_code): Pass rule = NULL to
+ translate_action.
+
+2006-06-23 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Rename %before-definitions to %start-header and %after-definitions to
+ %end-header. Don't use these declarations to separate pre-prologue
+ blocks from post-prologue blocks. Add new order-independent
+ declarations %before-header and %after-header as alternatives to the
+ traditional Yacc pre-prologue and post-prologue blocks. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00110.html>.
+ * NEWS (2.3+): Update for these changes.
+ * data/glr.c (b4_before_definitions): Update to...
+ (b4_start_header): ... this.
+ (b4_after_definitions): Update to...
+ (b4_end_header): ... this.
+ * data/glr.cc: Likewise.
+ * data/lalr1.cc: Likewise.
+ * data/yacc.c: Likewise.
+ * doc/bison.texinfo (The prologue): Update names, and replace remaining
+ prologue blocks with %*-header declarations.
+ (Calc++ Parser): Likewise.
+ (Bison Declaration Summary): Update names.
+ (Bison Symbols): Update description.
+ * src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to...
+ (PERCENT_END_HEADER): ... this.
+ (PERCENT_BEFORE_DEFINITIONS): Update to...
+ (PERCENT_START_HEADER): ... this.
+ (PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
+ (declaration): Update token names and m4 macro names.
+ When parsing %end-header and %start-header, invoke translate_code
+ before muscle_code_grow, and no longer set global booleans to remember
+ whether these declarations have been seen.
+ Parse new %after-header and %before-header.
+ * src/reader.c (before_definitions, after_definitions): Remove.
+ (prologue_augment): Accept a new bool argument to specify whether to
+ augment the pre-prologue or post-prologue.
+ * src/reader.h (before_definitions, after_definitions): Remove these
+ extern's.
+ (prologue_augment): Add new bool argument.
+ * src/scan-gram.l (PERCENT_AFTER_DEFINITIONS): Update to...
+ (PERCENT_END_HEADER): ... this.
+ (PERCENT_BEFORE_DEFINITIONS): Update to...
+ (PERCENT_START_HEADER): ... this.
+ (PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
+ * tests/actions.at (Printers and Destructors): Update names.
+
+2006-06-22 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Add comparison operators for C++ location classes. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00092.html>.
+ * data/c++.m4 (b4_define_location_comparison): New boolean %define
+ declaration indicating whether filename_type has an operator==. If
+ filename_type is `std::string', it defaults to `1', `0' otherwise.
+ * data/location.cc: Iff b4_define_location_comparison is `1', add
+ operator== and operator!= for class position and for class location.
+
+ Some minor fixes.
+ * src/scan-action.l: Remove unused file.
+ * src/symtab.c (symbol_printer_set): Use printer_location not
+ destructor_location.
+ * src/symtab.h (struct symbol): Replace incorrect source comment for
+ printer members.
+ * tests/input.at (Incompatible Aliases): Update output with correct
+ printer location.
+
+2006-06-20 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Don't put the pre-prologue in the header file. For the yacc.c code
+ file and the glr.c header and code files, move the pre-prologue before
+ the token definitions. Add new %before-definitions and
+ %after-definitions to declare code that will go in both the header file
+ and code file. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00000.html>,
+ <http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00016.html>,
+ and
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00055.html>.
+ * NEWS (2.3+): Describe these changes.
+ * data/glr.c (b4_pre_prologue): Move from within to before...
+ (b4_shared_declarations): ... this.
+ Add new b4_before_definitions before b4_token_enums.
+ Add new b4_after_definitions at the end.
+ * data/glr.cc (b4_pre_prologue): Replace with...
+ (b4_before_definitions): ... this in the header file.
+ (b4_after_definitions): New near the end of the header file.
+ * data/lalr1.cc (b4_pre_prologue): Move from the header file to the
+ code file right before including the header file.
+ (b4_before_definitions): New in the previous position of
+ b4_pre_prologue in the header file.
+ (b4_after_definitions): New near the end of the header file.
+ * data/yacc.c: Clean up some m4 quoting especially in the header file.
+ (b4_token_enums_defines): In the code file, move to right before
+ YYSTYPE for consistency with the header file.
+ (b4_before_definitions): New right before b4_token_enums_defines in
+ both the header and code file.
+ (b4_after_definitions): New right after YYLTYPE and yylloc in both the
+ header and code file.
+ * doc/bison.texinfo (Prologue): Show use of %before-definitions instead
+ of prologues for %union dependencies.
+ (Bison Declaration Summary): In %defines description, mention the
+ effect of %before-definitions and %after-definitions on the header
+ file.
+ (Calc++ Parser): Forward declare driver in a %before-definitions rather
+ than in the pre-prologue so that make check succeeds.
+ (Bison Symbols): Add entries for %before-definitions and
+ %after-definitions.
+ * src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for
+ %before-definitions.
+ (PERCENT_AFTER_DEFINITIONS): New token for %after-definitions.
+ (declaration): Parse those declarations and append to
+ b4_before_definitions and b4_after_definitions, respectively.
+ * src/reader.c (before_definitions, after_definitions): New bools to
+ track whether those declarations have been seen.
+ (prologue_augment): Add to the post-prologue if %union,
+ %before-definitions, or %after-definitions has been seen.
+ * src/reader.h (before_definitions, after_definitions): New extern's.
+ * src/scan-gram.l: Scan the new declarations.
+ * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Place the second
+ prologue block in a %before-definitions or a %after-definitions based
+ on whether the %union is declared.
+ * tests/regression.at (Early token definitions with --yacc, Early token
+ definitions without --yacc): Move tests for token definitions into the
+ post-prologue since token names are no longer defined in the
+ pre-prologue.
+
+2006-06-20 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.h, src/symtab.c (symbol_from_uniqstr): New.
+ (symbol_get): Use it.
+ * src/parse-gram.y: Use it.
+
+2006-06-19 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/scan-gram.l: Remove unused declaration of last_string_1 so the
+ build succeeds when configured with --enable-gcc-warnings.
+
+2006-06-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * src/parse-gram.y (char_name): New function.
+ (CHAR, STRING, string_content): For %printer, properly escape.
+ (ID): Prefer fputs to fprintf.
+ (id): Reindent to be consistent with other rules.
+ Properly quote char.
+
+ The Translation Project changed its way of publishing translations
+ to maintainers. I haven't received any responses to my request
+ for supporting the old way, or for documenting the new way. I
+ have modified 'bootstrap' to use screen scraping
+ (in this case, HTML scraping). This is unreliable and inelegant,
+ but I don't see any better way. Yuck.
+ * bootstrap (TP_URL, WGET_COMMAND): New vars.
+ (get_translations): New function, which uses HTML scraping to
+ deduce locations of latest translations.
+ Use this function to grab both bison and bison-runtime .po files.
+ Don't bother priming the pump for the runtime-po domain any more,
+ as it's now translated better than bison is.
+
+2006-06-19 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l: No longer "parse" things after `%union' until
+ `{'. Rather, return a single "%union" token.
+ No longer make symbols: return strings, and leave the conversion
+ to symbols to the parser.
+ (SC_PRE_CODE, token_type): Remove.
+ * src/parse-gram.y (%union): New field `character'.
+ Sort tokens.
+ (CHAR): New token.
+ (ID, ID_COLON): Now that the scanner no longer makes them
+ identifiers, adjust all uses to invoke symbol_get.
+ (id_colon): New, wraps the conversion from string to symbol.
+ (%union): Accept a possible union_name.
+ (symbol): Now can be a char.
+ * data/c.m4 (b4_union_name): Leave a default value.
+ * data/glr.c, data/yacc.c: Use it.
+
+2006-06-11 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ For associating token numbers with token names for "yacc.c", don't use
+ #define statements unless `--yacc' is specified; always use enum
+ yytokentype. Most important discussions start at:
+ <http://lists.gnu.org/archive/html/bison-patches/2005-09/msg00053.html>,
+ <http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00052.html>,
+ and
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00043.html>.
+ * NEWS (2.3+): Mention.
+ * data/c.m4 (b4_yacc_if): New.
+ (b4_token_enums_defines): Use b4_yacc_if to decide whether to add the
+ token #define's.
+ * doc/bison.texinfo (Bison Options): Describe the effect of `--yacc'
+ on token name definitions.
+ * src/getargs.c (usage): Capitalize `Yacc' in English.
+ * src/output.c (prepare): Define b4_yacc_flag.
+ * tests/regression.at (Early token definitions): Test that tokens names
+ are defined before the pre-prologue not just before the post-prologue.
+ Remove this test case and copy to...
+ (Early token definitions with --yacc): ... this to test #define's.
+ (Early token definitions without --yacc): ... and this to test enums.
+
+2006-06-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Reword the post-2.3 change to not be so optimistic about
+ removing the old "look-ahead" spelling.
+ Update previous look-ahead/lookahead change reports.
+ * REFERENCES: look-ahead -> lookahead (since that's
+ what he actually wrote).
+ * doc/refcard.tex: look ahead -> lookahead,
+ look-ahead -> lookahead
+
+2006-06-09 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ For consistency, use `lookahead' instead of `look-ahead' or
+ `look_ahead'. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00049.html>
+ and then at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00017.html>.
+ * NEWS: For the next release, note the change to `--report'.
+ * TODO, doc/bison.1: Update English.
+ * doc/bison.texinfo: Update English.
+ (Understanding Your Parser, Bison Options): Document as
+ `--report=lookahead' rather than `--report=look-ahead'.
+ * src/conflicts.c: Update English in comments.
+ (lookahead_set): Rename from look_ahead_set.
+ (flush_reduce): Rename argument look_ahead_tokens to lookahead_tokens.
+ (resolve_sr_conflict): Rename local look_ahead_tokens to
+ lookahead_tokens, and update other uses.
+ (flush_shift, set_conflicts, conflicts_solve, count_sr_conflicts,
+ count_rr_conflicts, conflicts_free): Update uses.
+ * src/getargs.c (report_args): Move "lookahead" before alternate
+ spellings.
+ (report_types): Update uses.
+ (usage): For `--report' usage description, state `lookahead' spelling
+ rather than `look-ahead'.
+ * src/getargs.h (report.report_lookahead_tokens): Rename from
+ report_look_ahead_tokens.
+ * src/lalr.c: Update English in comments.
+ (compute_lookahead_tokens): Rename from compute_look_ahead_tokens.
+ (state_lookahead_tokens_count): Rename from
+ state_look_ahead_tokens_count.
+ Rename local n_look_ahead_tokens to n_lookahead_tokens.
+ (lookahead_tokens_print): Rename from look_ahead_tokens_print.
+ Rename local n_look_ahead_tokens to n_lookahead_tokens.
+ Update other uses.
+ Update English in output.
+ (add_lookback_edge, initialize_LA, lalr, lalr_free): Update uses.
+ * src/print.c: Update English in comments.
+ (lookahead_set): Rename from look_ahead_set.
+ (print_reduction): Rename argument lookahead_token from
+ look_ahead_token.
+ (print_core, state_default_rule, print_reductions, print_results):
+ Update uses.
+ * src/print_graph.c: Update English in comments.
+ (print_core): Update uses.
+ * src/state.c: Update English in comments.
+ (reductions_new): Update uses.
+ (state_rule_lookahead_tokens_print): Rename from
+ state_rule_look_ahead_tokens_print, and update other uses.
+ * src/state.h: Update English in comments.
+ (reductions.lookahead_tokens): Rename from look_ahead_tokens.
+ (state_rule_lookahead_tokens_print): Rename from
+ state_rule_look_ahead_tokens_print.
+ * src/tables.c: Update English in comments.
+ (conflict_row, action_row): Update uses.
+ * tests/glr-regression.at
+ (Incorrect lookahead during deterministic GLR,
+ Incorrect lookahead during nondeterministic GLR): Rename
+ print_look_ahead to print_lookahead.
+ * tests/torture.at: Update English in comments.
+ (AT_DATA_LOOKAHEAD_TOKENS_GRAMMAR): Rename from
+ AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR.
+ (Many lookahead tokens): Update uses.
+ * data/glr.c: Update English in comments.
+ * lalr1.cc: Likewise.
+ * yacc.c: Likewise.
+ * src/conflicts.h: Likewise.
+ * src/lalr.h: Likewise.
+ * src/main.c: Likewise.
+ * src/output.c: Likewise.
+ * src/parse-gram.c: Likewise.
+ * src/tables.h: Likewise.
+ * tests/calc.at: Likewise.
+
+2006-06-08 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/flex-scanner.h (yytext): Remove stray `*/' in #define.
+
+2006-06-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * TODO: Add request from Nelson H. F. Beebe to be able to install
+ Bison without installing the yacc script.
+
+2006-06-07 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/flex-scanner.h: For the sake of Flex 2.5.4, don't #define yyleng
+ and yytext if they're already #define'd.
+ * src/flex-scanner.h, src/location.h: Move #include "system.h" to...
+ * src/scan-code-c.c: ... here.
+ * src/scan-code.l, src/scan-gram.l: ... and here. Also #include
+ <config.h>.
+
+2006-06-07 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Get Bison to build again when configured with --enable-gcc-warnings.
+ * src/location.c, src/location.h, src/main.c, src/scan-code.l: Add some
+ missing #include's.
+ * src/scan-code.l (handle_action_dollar, handle_action_at): Rename
+ loc argument as it shadows a global.
+ * src/scan-gram.l: Remove stray comma that prevents boundary_set
+ invocation.
+
+ * src/.cvsignore: Add scan-code.c.
+
+2006-06-07 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l: Move the "add a trailing ; to actions" code
+ to...
+ * src/scan-code.l: here.
+ * tests/input.at (Torturing the Scanner): Fix another location
+ error.
+
+2006-06-07 Akim Demaille <akim@epita.fr>
+
+ * src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash.
+
+2006-06-06 Akim Demaille <akim@epita.fr>
+
+ Extract the parsing of user actions from the grammar scanner.
+ As a consequence, the relation between the grammar scanner and
+ parser is much simpler. We can also split "composite tokens" back
+ into simple tokens.
+ * src/gram.h (ITEM_NUMBER_MAX, RULE_NUMBER_MAX): New.
+ * src/scan-gram.l (add_column_width, adjust_location): Move to and
+ rename as...
+ * src/location.h, src/location.c (add_column_width)
+ (location_compute): these.
+ Fix the column count: the initial column is 0.
+ (location_print): Be robust to ending column being 0.
+ * src/location.h (boundary_set): New.
+ * src/main.c: Adjust to scanner_free being renamed as
+ gram_scanner_free.
+ * src/output.c: Include scan-code.h.
+ * src/parse-gram.y: Include scan-gram.h and scan-code.h.
+ Use boundary_set.
+ (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_INITIAL_ACTION)
+ (PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Remove the {...} part,
+ which is now, again, a separate token.
+ Adjust all dependencies.
+ Whereever actions with $ and @ are used, use translate_code.
+ (action): Remove this nonterminal which is now useless.
+ * src/reader.c: Include assert.h, scan-gram.h and scan-code.h.
+ (grammar_current_rule_action_append): Use translate_code.
+ (packgram): Bound check ruleno, itemno, and rule_length.
+ * src/reader.h (gram_in, gram__flex_debug, scanner_cursor)
+ (last_string, last_braced_code_loc, max_left_semantic_context)
+ (scanner_initialize, scanner_free, scanner_last_string_free)
+ (gram_out, gram_lineno, YY_DECL_): Move to...
+ * src/scan-gram.h: this new file.
+ (YY_DECL): Rename as...
+ (GRAM_DECL): this.
+ * src/scan-code.h, src/scan-code.l, src/scan-code-c.c: New.
+ * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
+ (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
+ (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
+ Move these declarations, and...
+ (obstack_for_string, STRING_GROW, STRING_FINISH, STRING_FREE):
+ these to...
+ * src/flex-scanner.h: this new file.
+ * src/scan-gram.l (rule_length, rule_length_overflow)
+ (increment_rule_length): Remove.
+ (last_braced_code_loc): Rename as...
+ (gram_last_braced_code_loc): this.
+ Adjust to the changes of the parser.
+ Move all the handling of $ and @ into...
+ * src/scan-code.l: here.
+ * src/scan-gram.l (handle_dollar, handle_at): Remove.
+ (handle_action_dollar, handle_action_at): Move to...
+ * src/scan-code.l: here.
+ * src/Makefile.am (bison_SOURCES): Add flex-scanner.h,
+ scan-code.h, scan-code-c.c, scan-gram.h.
+ (EXTRA_bison_SOURCES): Add scan-code.l.
+ (BUILT_SOURCES): Add scan-code.c.
+ (yacc): Be robust to white spaces.
+
+ * tests/conflicts.at, tests/input.at, tests/reduce.at,
+ * tests/regression.at: Adjust the column numbers.
+ * tests/regression.at: Adjust the error message.
+
+2006-06-06 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
+ Use Akim's wording from
+ <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00056.html>.
+
+2006-06-06 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Between Bison releases, manually append `+' to the previous Bison
+ release number, and use that as a signal to automatically print the
+ ChangeLog's CVS Id keyword from --version. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00028.html>.
+ * ChangeLog: Add Id header.
+ * configure.ac (AC_INIT): Append `+' to `2.3'.
+ * src/.cvsignore: Add revision.c.
+ * src/Makefile.am (bison_SOURCES): Add revision.c and revision.h.
+ (BUILT_SOURCES): Add revision.c.
+ (revision.c): New target rule. This file defines a new global variable
+ named revision. It initializes it with either the Id from ChangeLog
+ or, if VERSION doesn't contain `+', with the empty string.
+ * src/getargs.c (version): Print the value of revision.
+ * src/revision.h: Extern revision.
+
+2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Version 2.3.
+ * configure.ac (AC_INIT): Likewise.
+
+2006-05-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c (YYRECOVERING): Define to be a function-like macro
+ with no arguments, not as an object-like macro. This is for
+ compatibility with data/yacc.c. Problem reported by John P. Hartmann in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00059.html>.
+ * doc/bison.texinfo (Action Features, Error Recovery, Table of Symbols):
+ Document this.
+
+2006-05-30 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/getargs.c (usage): Back out yesterday's modification of the
+ --help output so that we don't have to wait for translation before
+ releasing 2.3.
+
+2006-05-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/bison.texinfo (Introduction): Don't say "GLR grammar".
+ Problem reported by Akim Demaille.
+
+2006-05-29 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
+
+2006-05-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c (yy_reduce_print): Omit trailing white space in
+ generated source code. Problem reported by Frans Englich in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00049.html>.
+
+2006-05-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.maint (gzip_rsyncable, GZIP_ENV): Compute within the
+ shell, not within 'make', so that 'make' by an ordinary builder
+ (using GNU make) does not worry about configuring gzip. This also
+ works around a bug reported independently by Keith Thompson and by
+ Georg Schwarz, whereby gzip 1.2.4 --help would output usage on
+ stderr rather than stdout, messing up the build logs.
+
+2006-05-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/yacc.c (yyparse): Wrap the final return from yyparse inside YYID
+ to make sure that YYID will never be unused. This fixes a 'make
+ maintainer-check' failure caused by the recent changes to the 'Trivial
+ grammars' test case, which caused g++ 4.1.0 to complain that YYID was
+ not used.
+ * data/glr.c (yyparse): Wrap yyparse's return inside YYID just in case.
+
+2006-05-21 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/glr.c (yyresolveLocations): Remove bogus YYASSERT that the
+ state before an empty RHS is always resolved here. Only the location
+ of that state is guaranteed to be resolved, and that's enough. This
+ fixes the remaining bug reported by Derek M. Jones in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
+ * tests/glr-regression.at (Uninitialized location when reporting
+ ambiguity): Test the above case.
+ Also, the embedded comments in this test case claim it checks the case
+ of an empty RHS that has inherited the initial location. However, the
+ corresponding LHS was already resolved, so yyresolveLocations didn't
+ actually have reason to modify it. Fix this by forcing
+ nondeterministic operation at the beginning of the parse.
+
+2006-05-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/c.m4 (b4_yy_symbol_print_generate):
+ (b4_yy_symbol_print_generate): Use 'YYSTYPE const' rather than
+ 'const YYSTYPE', and similarly for YYLTYPE. This fixes one
+ of the bugs reported today by Derek M Jones in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
+ * doc/bison.texinfo (Value Type): Document that YYSTYPE must be
+ defined to be a type name without parens or brackets.
+ (Location Type): Similarly for YYLTYPE.
+ * tests/regression.at (Trivial grammars): Put in a test for this
+ bug that will be caught by 'make maintainer-check' (though not,
+ alas, by 'make check' unless your compiler is picky).
+
+2006-05-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Version 2.2.
+ * configure.ac (AC_INIT): Likewise.
+
+2006-05-17 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/glr.c (yyreportTree): Make room in yystates for the state
+ preceding the RHS. This fixes the segmentation fault reported by Derek
+ M. Jones in
+ <http://lists.gnu.org/archive/html/help-bison/2006-05/msg00035.html>.
+ (yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing
+ to the user. Reported for yyreportTree by Derek M. Jones later in the
+ same thread.
+ * THANKS: Add Derek M. Jones.
+ Update my email address.
+ Fix typo in Steve Murphy's name.
+
+2006-05-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c (yyreportSyntaxError): Fix off-by-one error in
+ checking against YYLAST that caused the parser to miss a potential
+ alternative in its diagnostic.
+ Problem reported by Maria Jose Moron Fernandez in
+ <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00024.html>.
+ * data/lalr1.cc (yysyntax_error_): Likewise.
+ * data/yacc.c (yysyntax_error): Likewise.
+ * tests/regression.at (_AT_DATA_DANCER_Y): Use static array for
+ tokens, in case we run into an older C compiler.
+ (_AT_DATA_EXPECT2_Y, AT_CHECK_EXPECT2): New macros.
+ Use them to check for the off-by-one error fixed above.
+
+ * data/yacc.c (yytnamerr): Fix typo: local var should be of type
+ YYSIZE_T, not size_t.
+ * tests/regression.at (Trivial grammars): New test, to catch
+ the error fixed by the above patch.
+
+2006-05-14 Akim Demaille <akim@lrde.epita.fr>
+
+ * doc/bison.texinfo (C++ Bison Interface): Clarify the naming
+ scheme.
+ Reported by Steve Murphy.
+
+2006-05-14 Akim Demaille <akim@lrde.epita.fr>
+
+ * data/glr.cc, data/lalr1.cc: Using %defines is mandatory.
+ * data/glr.cc: b4_location_flag is now b4_locations_flag.
+
+2006-05-14 Akim Demaille <akim@lrde.epita.fr>
+
+ Implement --trace=m4.
+ * src/getargs.c (trace_types, trace_args): Accept trace_m4.
+ * src/output.c (output_skeleton): When set, pass -dV to m4.
+
+ Factor the handling of flags in m4.
+ * src/output.c (prepare): Rename the muscle names debug, defines,
+ error_verbose to debug_flag, defines_flag, error_verbose_flag.
+ * data/c.m4: Adjust.
+ (_b4_define_flag_if, b4_define_flag_if, b4_defines_if): New.
+ Use b4_define_flag_if to define other b4_FLAG_if macros.
+ (b4_location_if): As a consequence, rename as...
+ (b4_locations_if): this, for consistency.
+ Adjust all the skeletons.
+
+2006-05-14 Akim Demaille <akim@lrde.epita.fr>
+
+ * etc/bench.pm: Shorten bench names.
+
+2006-05-14 Akim Demaille <akim@lrde.epita.fr>
+
+ * src/output.h, src/output.c (error_verbose): Move to...
+ * src/getargs.h, src/getargs.c: here.
+ Sort the flags.
+ Adjust dependencies.
+
2006-05-13 Paul Eggert <eggert@cs.ucla.edu>
* data/c.m4 (b4_copyright): Put the special exception for Bison
* examples/extexi: Enforce the precedence of concatenation over
>>.
- Reported by tommy.nordgren@chello.se
+ Reported by Tommy Nordgren.
2006-05-11 Akim Demaille <akim@lrde.epita.fr>
* data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
-2004-10-28 Akim Demaille <akim@epita.fr>,
+2004-11-17 Akim Demaille <akim@epita.fr>,
Alexandre Duret-Lutz <adl@gnu.org>
* data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice and this
notice are preserved.
+
+$Id$