+2005-12-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ Work around portability problem on Solaris 10: flex-generated
+ files include <stdio.h> before <config.h>, which messes up
+ because the latter defines __EXTENSIONS__. Address the problem
+ by creating two new little files that include <config.h> first,
+ then include the flex-generated files. Rewrite everyone else
+ to include <config.h> first, as well.
+ * lib/timevar.c: Always include "config.h".
+ * src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
+ scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
+ (EXTRA_bison_SOURCES): New macro.
+ * src/scan-gram-c.c, src/scan-skel-c.c: New files.
+ * src/system.h: Don't include config.h.
+ * src/LR0.c: Include <config.h> first.
+ * src/assoc.c: Likewise.
+ * src/closure.c: Likewise.
+ * src/complain.c: Likewise.
+ * src/conflicts.c: Likewise.
+ * src/derives.c: Likewise.
+ * src/files.c: Likewise.
+ * src/getargs.c: Likewise.
+ * src/gram.c: Likewise.
+ * src/lalr.c: Likewise.
+ * src/location.c: Likewise.
+ * src/main.c: Likewise.
+ * src/muscle_tab.c: Likewise.
+ * src/nullable.c: Likewise.
+ * src/output.c: Likewise.
+ * src/parse-gram.y: Likewise.
+ * src/print.c: Likewise.
+ * src/print_graph.c: Likewise.
+ * src/reader.c: Likewise.
+ * src/reduce.c: Likewise.
+ * src/relation.c: Likewise.
+ * src/state.c: Likewise.
+ * src/symlist.c: Likewise.
+ * src/symtab.c: Likewise.
+ * src/tables.c: Likewise.
+ * src/uniqstr.c: Likewise.
+ * src/vcg.c: Likewise.
+
+ * src/parse-gram.y: Fix minor problems uncovered by lint.
+ (current_lhs, current_lhs_location): Now static.
+ (current_assoc): Remove unused variable.
+
+ Cleanups so that Bison-generated parsers have less lint.
+ * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
+ Prepend /*ARGSUSED*/, for lint's sake.
+ * data/glr.c (YYUSE): Properly parenthesize, and use an alternate
+ definition if 'lint' is defined.
+ (YYID): New macro (or function, if lint).
+ All uses of /*CONSTCOND*/0 replaced by YYID(0).
+ * data/yacc.c: Likewise.
+ * data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
+ (yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
+ * data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
+ is C++ only.
+ * data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
+ * data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
+ Use YYID(0) rather than 0, for lint.
+ (yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
+ (yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
+
+2005-12-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/glr-regression.at
+ (Improper handling of embedded actions and dollar(-N) in GLR parsers):
+ Close memory leak reported by twlevo.
+
+2005-12-06 "Joel E. Denny" <jdenny@ces.clemson.edu>
+
+ * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
+ all stacks.
+ (yyparse): Iterate another stack in order to call user destructors.
+ * tests/glr-regression.at (No users destructors if stack 0 deleted):
+ New test case.
+ (Duplicated user destructor for lookahead): This test now is expected
+ to succeed.
+
+2005-12-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Document the following change.
+ * data/yacc.c: Say "parser skeleton" rather than "file", since
+ it's no longer just a file.
+ * data/glr.c: Grant a special exception for C GLR parsers, that
+ reads like the already-existing exception for C LALR(1) parsers.
+ * data/glr.cc: Likewise.
+ * data/lalr1.cc: Likewise.
+ * data/location.cc: Likewise.
+ * data/yacc.c: Reword the "written by" statement to clarify that
+ it was the parser skeleton, not the entire output file.
+ * data/glr.c: Written by Paul Hilfinger.
+ * data/glr.cc: Written by Akim Demaille.
+ * data/lalr1.cc: Likewise.
+
+2005-11-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
+ Fix typos in previous change that broke 'make check'.
+ YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
+ supported in C.
+ * tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
+ Don't check NUM-STDERR-LINES, since the output format is fluctuating.
+ We can revert this once things settle down.
+
+ * src/conflicts.c (conflicts_print): Don't print file name twice
+ when %expect fails because there were no conflicts.
+ * doc/bison.texinfo (Expect Decl): Tighten up wording in previous
+ change.
+ * tests/conflicts.at (%expect not enough, %expect too much):
+ (%expect with reduce conflicts): Adjust to new behavior.
+
+2005-11-18 Akim Demaille <akim@epita.fr>
+
+ * src/conflicts.c (conflicts_print): Unsatisfied %expectation are
+ errors.
+ * NEWS: Document this.
+ * doc/bison.texinfo (Expect Decl): Likewise.
+
+2005-11-16 Akim Demaille <akim@epita.fr>
+
+ Generalize the display of semantic values and locations in traces.
+ * data/glr.c (yy_reduce_print): Fix indices (again).
+ * data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
+ literal integers.
+ * data/lalr1.cc (yyreduce_print): Rename as...
+ (yy_reduce_print): this.
+ Display values and locations.
+ * data/yacc.c (yy_reduce_print): Likewise.
+ (YY_REDUCE_PRINT): Adjust to pass the required arguments.
+ (yysymprint): Move higher to be visible from yy_reduce_print).
+ (yyparse): Adjust.
+ * tests/calc.at: Adjust the expected length of the traces.
+
+2005-11-14 Akim Demaille <akim@epita.fr>
+
+ * data/glr.c (yy_reduce_print): The loop was quite wrong: type are
+ from 1 to N, while values and location start at 0.
+ (b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
+
+2005-11-14 Akim Demaille <akim@epita.fr>
+
+ * data/glr.c (yy_reduce_print): Fix the $ number.
+
+2005-11-14 Akim Demaille <akim@epita.fr>
+
+ "Use" parse parameters.
+ * data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
+ * data/glr.c, data/glr.cc: Use them.
+ * data/glr.c (YYUSE): Have a C++ definition that supports
+ non-pointer types.
+
+2005-11-14 Akim Demaille <akim@epita.fr>
+
+ * data/glr.c (yyexpandGLRStack): Declare only if defined.
+
+2005-11-14 Akim Demaille <akim@epita.fr>
+
+ * data/glr.cc: New.
+ * data/m4sugar/m4sugar.m4 (m4_prepend): New.
+
+2005-11-12 Akim Demaille <akim@epita.fr>
+
+ Let position and location be PODs.
+ * data/location.cc (position::initialize, location::initialize): New.
+ (position::position, location::location): Define only if
+ b4_location_constructors is defined.
+ * data/lalr1.cc (b4_location_constructors): Define it for backward
+ compatibility.
+ * doc/bison.texinfo (Initial Action Decl): Use initialize.
+
+2005-11-12 Akim Demaille <akim@epita.fr>
+
+ * data/lalr1.cc: Move the body of the ctor and dtor into the
+ parser file (instead of the header).
+ Wrap the implementations in a "namespace yy".
+
+2005-11-12 Akim Demaille <akim@epita.fr>
+
+ Have glr.c include its header file when created.
+ * data/glr.c (b4_shared_declarations): New.
+ Output them verbatim in the parser if !%defines, otherwise
+ output then in the header file, and include it instead.
+
+2005-11-11 Akim Demaille <akim@epita.fr>
+
+ * data/glr.c: Comment changes.
+
+2005-11-11 Akim Demaille <akim@epita.fr>
+
+ When yydebug, report semantic and location values for reductions.
+ * data/glr.c (yy_reduce_print): Report the semantic values and the
+ locations.
+ (YY_REDUCE_PRINT): Adjust.
+ (yyglrReduce): Use them.
+ (b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
+ * data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
+ * tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
+ traces.
+
+2005-11-10 Akim Demaille <akim@epita.fr>
+
+ * data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
+ (yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
+ (yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
+
+2005-11-09 Albert Chin-A-Young <china@thewrittenword.com>
+
+ * m4/cxx.m4, examples/Makefile.am: Don't build
+ examples/calc++ if no C++ compiler is available. (trivial change)
+
+2005-11-09 Akim Demaille <akim@epita.fr>
+
+ * src/scan-skel.l: Use a couple of asserts.
+
+2005-11-03 Akim Demaille <akim@epita.fr>
+
+ In some (weird) cases, the final state number is incorrect.
+ Reported by Alexandre Duret-Lutz.
+ * src/LR0.c (state_list_append): Remove the computation of
+ final_state.
+ (save_reductions): Do it here.
+ (get_state): Alpha conversion.
+ (generate_states): Use a for loop.
+ * src/gram.h (item_number_is_rule_number)
+ (item_number_is_symbol_number): New.
+ * src/state.c: Use assert.
+ * src/system.h: Include assert.h.
+ * tests/sets.at (Accept): New.
+
+2005-10-30 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
+
+ * data/glr.c (yyfill): Adjust comment.
+ (yyresolveAction): Initialize default location properly
+ for empty right-hand sides.
+ (yydoAction): Ditto.
+ Add comment explaining apparently dead code.
+ * tests/glr-regression.at
+ (Incorrectly initialized location for empty right-hand side in GLR):
+ New test.
+
+2005-10-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap (cleanup_gnulib): New function. Use it to clean up
+ gnulib when interrupted. This fixes some race conditions and
+ works around some portability problems (one noted by Paul
+ Hilfinger).
+
+2005-10-22 Akim <akim@epita.fr>
+
+ * Makefile.cfg: Adjust to config -> build-aux.
+ Reported by twledo.
+
+2005-10-21 Akim Demaille <akim@epita.fr>
+
+ * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
+ the %parse-params.
+ * data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
+ * data/yacc.c (b4_Pure_if): Rename as...
+ (b4_yacc_pure_if): this.
+ (YY_SYMBOL_PRINT, yyparse): Adjust.
+ * doc/bison.texinfo: Formatting changes.
+
+2005-10-21 Akim Demaille <akim@epita.fr>
+
+ Finish the transition config -> build-aux.
+ * configure.ac, Makefile.am: Use build-aux.
+ * config/prev-version, config/announce-gen, config/Makefile.am:
+ Move to...
+ * build-aux/prev-version, build-aux/announce-gen,
+ * build-aux/Makefile.am: here.
+
+2005-10-14 Akim Demaille <akim@epita.fr>
+
+ * examples/calc++/test: Use set -x only when VERBOSE.
+
+2005-10-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
+ * src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
+
+2005-10-13 Akim Demaille <akim@epita.fr>
+
+ * src/scan-skel.l: Output the base name parts of the parser and
+ header file names.
+ * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
+ additional checks.
+ Use this to exercise C++ outputs in subdirs.
+ Reported by Oleg Smolsky.
+
+2005-10-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
+ __STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
+ Problem reported by John P. Hartmann.
+ * data/yacc.c (YYMODERN_C): Likewise. Don't define if the user has
+ already defined it.
+
+2005-10-12 Akim Demaille <akim@epita.fr>
+
+ * src/parse-gram.y (version_check): Exit 63 to please missing
+ (stands for "version mismatch).
+ * tests/input.at, doc/bison.texinfo: Adjust.
+
+2005-10-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ Work around portability problems with Visual Age C compiler
+ (xlc and xlC_r) reported by John P. Hartmann.
+ * data/location.cc (initial_column, initial_line): Remove.
+ All uses replaced by 0 and 1.
+ * src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
+ that xlc complains about.
+ * src/scan-skel.l (skel_wrap): Likewise.
+ * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
+ as __STDC__.
+ * data/yacc.c (YYMODERN_C): New macro, which also looks at
+ __STDC_VERSION__. Use it everywhere instead of looking at
+ __STDC__ and __cplusplus.
+
+2005-10-10 Akim Demaille <akim@epita.fr>
+
+ * examples/calc++/test: Be quiet unless VERBOSE.
+
+2005-10-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/c.m4 (yydestruct, yysymprint):
+ Use YYUSE instead of casting to void.
+ * data/glr.c (YYUSE): New macro.
+ (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
+ Use it instead of rolling our own.
+ (YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
+ (YYCHK1):
+ Use /*CONSTCOND*/ to suppress lint warnings.
+ * data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
+ (YY_STACK_PRINT): Use 'false' not '0'.
+ (YYUSE): New macro.
+ (yysymprint_, yydestruct_): Use it instead of rolling our own.
+ * data/yacc.c (YYUSE): New macro.
+ (YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
+ (YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
+ (yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
+
+
+ * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
+ (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
+
+2005-10-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ Undo the parts of the unlocked-I/O change that substituted
+ putc or puts for printf. This might hurt performance a bit,
+ but some people prefer the printf style.
+ * data/c.m4 (yysymprint): Prefer printf to puts and putc.
+ * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
+ All uses replaced by YYFPRINTF and YYDPRINTF.
+ * data/yacc.c: Likewise.
+ * lib/bitset.c (bitset_print): Likewise.
+ * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
+ putc and puts.
+ * lib/lbitset.c (debug_lbitset): Likewise.
+ * src/closure.c (print_firsts, print_fderives): Likewise.
+ * src/gram.c (grammar_dump): Likewise.
+ * src/lalr.c (look_ahead_tokens_print): Likewise.
+ * src/output.c (escaped_output): Likewise.
+ (user_actions_output): Break apart two printfs.
+ * src/parse-gram.y (%printer): Prefer printf to putc and puts.
+ * src/reduce.c (reduce_print): Likewise.
+ * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
+ * src/system.h: Include unlocked-io.h rathe than stdio.h.
+
+ * data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
+ Use assignments rather than casts-to-void to suppress
+ unused-variable warnings. This pacifies 'lint'.
+ * data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
+ unused-variable warnings.
+
+2005-10-03 Juan Manuel Guerrero <juan.guerrero@gmx.de>
+
+ * Makefile.am: DJGPP specific files added to EXTRA_DIST.
+
+2005-10-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use unlocked I/O for a minor performance improvement on hosts like
+ GNU/Linux and Solaris that support unlocked I/O. The basic idea
+ is to use the gnlib unlocked-io module, and to prefer putc and
+ puts to printf when either will work (since the latter doesn't
+ come in an unlocked flavor).
+ * bootstrap (gnulib_modules): Add unlocked-io.
+ * data/c.m4 (yysymprint): Prefer puts and putc to printf.
+ * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
+ Prefer them to YYFPRINTF and YYDPRINTF if either will do,
+ and similarly for puts and putc and printf.
+ * data/yacc.c: Likewise.
+ * lib/bitset.c (bitset_print): Likewise.
+ * lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
+ * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
+ to printf.
+ * lib/lbitset.c (debug_lbitset): Likewise.
+ * src/closure.c (print_firsts, print_fderives): Likewise.
+ * src/gram.c (grammar_dump): Likewise.
+ * src/lalr.c (look_ahead_tokens_print): Likewise.
+ * src/output.c (escaped_output): Likewise.
+ (user_actions_output): Coalesce two printfs.
+ * src/parse-gram.y (%printer): Prefer putc and puts to printf.
+ * src/reduce.c (reduce_print): Likewise.
+ * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
+ * src/system.h: Include unlocked-io.h rather than stdio.h.
+
+ * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
+ this confuses xgettext.
+
+2005-10-02 Akim Demaille <akim@epita.fr>
+
+ * bootstrap (gnulib_modules): Add strverscmp.
+ * lib/.cvsignore: Add strverscmp.c, strverscmp.h.
+ * m4/.cvsignore: Add strverscmp.m4.
+ * src/parse-gram.y (%require): New token, new rule.
+ (version_check): New.
+ * src/scan-gram.l (%require): Adjust.
+ * tests/input.at (AT_REQUIRE): New.
+ Use it.
+ * doc/bison.texinfo (Require Decl): New.
+ (Calc++ Parser): Use %require.
+
+2005-10-02 Akim Demaille <akim@epita.fr>
+
+ * data/location.cc: New.
+
+2005-10-02 Paul Eggert <eggert@cs.ucla.edu>,
+ Akim Demaille <akim@epita.fr>
+
+ Make sure -odir/foo.cc creates dir/location.hh etc.
+ * src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
+ (spec_file_prefix, spec_verbose_file, spec_graph_file)
+ (spec_defines_file): Now const.
+ (dir_prefix): New.
+ (short_base_name): Remove.
+ * src/files.c: Adjust.
+ (dirname.h): Include.
+ (base_name): Don't prototype it.
+ (finput): Remove, duplicates gram_in.
+ (full_base_name, short_base_name): Replace by...
+ (all_but_ext, all_but_tab_ext): these.
+ (compute_base_names): Rename as...
+ (compute_file_name_parts): this.
+ Update to compute the new variables, including dir_prefix.
+ Adjust dependencies.
+ * src/output.c (prepare): Output them.
+ * src/reader.c: Adjust to use gram_in, not finput.
+ * src/scan-skel.l (@dir_prefix@): New.
+
+2005-10-02 Juan Manuel Guerrero <juan.guerrero@gmx.de>
+
+ * lib/subpipe.c: New function end_of_output_subpipe() added
+ to allow support for non-posix systems. This is a no-op function
+ for posix systems.
+
+ * lib/subpipe.h: New function end_of_output_subpipe() added
+ to allow support for non-posix systems. This is a no-op function
+ for posix systems.
+
+ * src/output.c (output_skeleton): Use end_of_output_subpipe() to
+ handle the lack of pipe/fork functionality on non-posix systems.
+
+ * djgpp/Makefile.maint: DJGPP specific file.
+
+ * djgpp/README.in: DJGPP specific file.
+
+ * djgpp/config.bat: DJGPP specific configuration file.
+
+ * djgpp/config.sed: DJGPP specific configuration file.
+
+ * djgpp/config.site: DJGPP specific configuration file.
+
+ * djgpp/config_h.sed: DJGPP specific configuration file.
+
+ * djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
+
+ * djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
+
+2005-10-02 Akim Demaille <akim@epita.fr>
+
+ * data/location.cc: New, extract from...
+ * data/lalr1.cc: here.
+ (location.hh): Include it after the user prologue, in case the
+ filename type is defined by the user.
+ Forward declation location and position before the pre-prologue.
+ (yyresult_): Rename as...
+ (yyresult): this, it's a local variable, not an attribute.
+ * data/Makefile.am (dist_pkgdata_DATA): Adjust.
+
+2005-10-01 Akim Demaille <akim@epita.fr>
+
+ * examples/extexi: Restore the #line generation.
+
+2005-09-30 Akim Demaille <akim@epita.fr>,
+ Alexandre Duret-Lutz <adl@gnu.org>
+
+ Move the token type and YYSTYPE in the parser class.
+ * data/lalr1.cc (stack.hh, location.hh): Include earlier.
+ (parser::token): New, from the moved free definition of tokens.
+ (parser::semantic_value): Now a full definition instead of an
+ indirection to YYSTYPE.
+ (b4_post_prologue): No longer included in the header file, but
+ in the implementation file.
+ * doc/bison.texi (C+ Language Interface): Update.
+ * src/parse-gram.y: Support unary %define.
+ * tests/actions.at: Define global_tokens_and_yystype for backward
+ compatibility until we update the tests.
+ * tests/calc.at: Idem.
+ (first_line, first_column, last_line, last_column): Define for lalr1.cc
+ to simplify the code.
+
+2005-09-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to SunOS 4.1.4, which lacks strtoul and strerror.
+ Ah, the good old days! Problem reported by Peter Klein.
+ * bootstrap (gnulib_modules): Add strerror, strtoul.
+ * lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
+ * m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
+
+2005-09-29 Akim Demaille <akim@epita.fr>
+
+ * data/c.m4 (b4_error_verbose_if): New.
+ * data/lalr1.cc: Use it.
+ (YYERROR_VERBOSE_IF): Remove.
+ (yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
+ parser members, replaced by...
+ (yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
+ local variables.
+ (yysyntax_error_): Takes the state number as argument.
+ (yyreduce_print_): Use the argument yyrule, not the former
+ attribute yyn_.
+
+2005-09-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap (gnulib_modules): Add verify.
+ * lib/.cvsignore: Add verify.h.
+ * src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
+ * src/system.h (verify): Remove.
+ Include verify.h instead.
+ * src/tables.c (tables_generate): Use new API for 'verify'.
+
+2005-09-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
+ local variables whose names begin with 'yy'.
+ * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
+ Trivial changes from Joel E. Denny.
+
+ * bootstrap (gnulib_modules): Remove alloca. Bison doesn't need
+ it itself.
+ * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
+ don't use alloca any more.
+
+ * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
+ __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
+ defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
+ * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
+ to match yacc.c, to test more hosts.
+
+2005-09-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c (YYSIZE_T): Reindent to make it clearer. This
+ doesn't affect behavior.
+ (YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
+ Solaris, AIX, MSC.
+ (_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H. All uses changed.
+ This works a bit better with glibc, if user code has already included
+ stdlib.h.
+ * doc/bison.texinfo (Bison Parser): Document that users can't
+ arbitrarily use malloc and free for other purposes. Document
+ that <alloca.h> and <malloc.h> might be included.
+ (Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
+ user must declare alloca.
+
+ * HACKING (release): Forwarn the Translation Project about
+ stable releses.
+
+2005-09-20 Akim Demaille <akim@epita.fr>
+
+ * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
+
+2005-09-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c (YYSIZE_MAXIMUM): New macro.
+ (YYSTACK_ALLOC_MAXIMUM): Use it.
+ (yysyntax_error): New function.
+ (yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
+ multiple syntax errors are reported, and alloca is being used.
+ Instead, reallocate buffers twice as big each time, so that
+ we waste at most half the allocated memory. Start with a small
+ (128-byte) buffer that will suffice in most cases anyway.
+ Use yysyntax_error to do most of the work.
+
+ * doc/bison.texinfo (Error Reporting, Table of Symbols):
+ yynerrs is the number of errors reported, not the number of
+ errors encountered.
+
+ * tests/glr-regression.at (Duplicated user destructor for lookahead):
+ Mark it as expected to fail.
+ Cast result of malloc; problem reported by twlevo@xs4all.nl.
+ * tests/actions.at, tests/calc.at, tests/glr-regression.at:
+ Don't start user-code symbols with "yy", to avoid name space problems.
+
+2005-09-19 Akim Demaille <akim@epita.fr>
+
+ Remove the traits, failed experiment.
+ It never proved useful, and anyway because of the current
+ definition, it was not possible to have several specialization of
+ this traits, making it useless.
+ * data/lalr1.cc (yy:traits): Remove.
+ Inline its definitions in the parser class.
+
+2005-09-19 Akim Demaille <akim@epita.fr>
+
+ * tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
+ least Mac OSX with a /usr/local install of gettext.
+
+2005-09-19 Akim Demaille <akim@epita.fr>
+
+ * data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
+ and yytoken for similarity with the other skeletons.
+
+2005-09-19 Akim Demaille <akim@epita.fr>
+
+ * NEWS, configure.ac: Bump to 2.1a.
+
+2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Version 2.1.
+
+ * NEWS: Remove notice of yytname change, since it was never in an
+ official release.
+ * data/glr.c (yydestroyGLRState): Rename local var to avoid shadowing
+ diagnostic.
+ * src/output.c (prepare): Likewise.
+ * data/lalr1.cc (YYERROR_VERBOSE_IF): New macro.
+ (yysyntax_error_): Use it to avoid GCC warning when YYERROR_VERBOSE
+ is not defined. This is an awful hack, but it's enough for now.
+ All callers changed.
+ * tests/glr-regression-at (make_value): Args are const pointers now,
+ to avoid GCC warning.
+ (Duplicated user destructor for lookahead): New test. Currently
+ skipped. It fails on my host but I'm not sure it'll always fail.
+
+2005-09-16 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.h (struct symbol): Declare the printer and destructor
+ as const, to avoid accidental calls to free.
+ (symbol_destructor_set, symbol_printer_set): Adjust.
+ * src/symtab.c: Adjust.
+
+2005-09-16 Akim Demaille <akim@epita.fr>
+
+ * data/c.m4 (b4_token_enums): New.
+ (b4_token_defines): Rename as...
+ (b4_token_enums_defines): this.
+ (b4_token_defines): New, output only the #defines.
+ * data/yacc.c, data/glr.c: Adjust.
+ * data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
+ * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
+ as default values.
+
+2005-09-16 Akim Demaille <akim@epita.fr>
+
+ * data/lalr1.cc (yylex_): Remove, inline its code.
+ (yyreport_syntax_error_): Remove, replaced by...
+ (yysyntax_error_): this which returns a string and leaves to the
+ caller the call to the users' error function.
+ (yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
+ Move from members of the parser object...
+ (yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
+ to local variables of the parse function.
+
+2005-09-16 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
+ since it's in Bison's name space.
+
+2005-09-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c (yyresolveValue): Add default case to pacify
+ gcc -Wswitch-default. Problem reported by twlevo@xs4all.nl.
+
+ * NEWS: Document when yyparse started to return 2.
+ * doc/bison.texinfo (Parser Function): Document when yyparse
+ returns 2.
+
+ * data/lalr1.cc: Revert part of previous change, as it's incompatible.
+ (b4_filename_type): Renamed back from b4_file_name_type. All uses
+ changed.
+ (class position): file_name -> filename (reverting). All uses changed.
+
+2005-09-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * examples/calc++/Makefile.am ($(calc_sources_generated)): Don't
+ do anything if $@ exists. This reverts part of the 2005-07-07
+ patch.
+
+2005-09-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (EXTRA_DIST): Do not distribute REFERENCES; it
+ contains obsolete information and isn't worth distributing as a
+ separate file anyway.
+ * data/glr.c [defined YYSETJMP]: Don't include <setjmp.h>.
+ (YYJMP_BUF, YYSETJMP, YYLONGJMP) [!defined YYSETJMP]: New macros.
+ All uses of jmp_buf, setjmp, longjmp changed to use these instead.
+ (yyparse): Abort if user code uses longjmp to throw an unexpected
+ value.
+
+2005-09-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/c.m4 (b4_identification): Define YYBISON_VERSION.
+ Suggested by twlevo@xs4all.nl.
+
+ * data/glr.c (YYCHK1): Do not assume YYE is in range.
+ This avoids a diagnostic from gcc -Wswitch-enum.
+ Problem reported by twlevo@xs4all.nl.
+
+ * doc/bison.texinfo: Don't use "filename", as per GNU coding
+ standards. Use "file name" or "file" or "name", depending on
+ the context.
+ (Invocation): The output of "bison hack/foo.y" goes to foo.tab.c,
+ not to hack/foo.tab.c.
+ (Calc++ Top Level): 2nd arg of main is not const.
+ * data/glr.c: b4_filename -> b4_file_name.
+ * data/lalr1.cc: Likewise. Also, b4_filename_type -> b4_file_name_type.
+ All uses changed.
+ (class position): filename -> file_name. All uses changed.
+ * data/yacc.c: b4_filename -> b4_file_name.
+ * lib/bitset.h: filename -> file_name in local vars.
+ * lib/bitset_stats.c: Likewise.
+ * src/files.c: Likewise.
+ * src/scan-skel.l ("@output ".*\n): Likewise.
+ * src/files.c (file_name_split): Renamed from filename_split.
+ * src/muscle_tab.c (muscle_init): Output b4_file_name, not b4_filename.
+
+2005-09-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/.cvsignore: Add pipe-safer.c, stdio--.h, unistd--.h,
+ to accommodate latest gnulib.
+
+ * tests/glr-regression.at (Duplicate representation of merged trees):
+ Add casts to pacify g++. Problem reported by twlevo@xs4all.nl.
+
+ * bootstrap: Add comment as to why the AM_LANGINFO_CODESET hack is
+ needed.
+
+2005-08-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c (yydestroyGLRState): Renamed from yydestroyStackItem.
+ All uses changed. Invoke user destructor after an error during a
+ split parse (trivial change from Joel E. Denny).
+
+ * tests/glr-regression.at
+ (User destructor after an error during a split parse): New test case.
+ Problem reported by Joel E. Denny in:
+ http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html
+
+2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * README-cvs: Give URLs for recommended tools.
+ Mention Gzip version problem, and bootstrapping issues.
+ Remove troubleshooting section, as it's somewhat obsolete.
+
+ * bootstrap (no_cache): New var, to accommodate different wget
+ variants. Use it instead of '-C off'. Problem reported by
+ twlevo@xs4all.nl.
+
+ * data/glr.c (yydestroyStackItem): New function.
+ (yyrecoverSyntaxError, yyreturn): Use it to improve quality of
+ debugging information. Problem reported by Joel E. Denny.
+
+2005-08-25 Akim Demaille <akim@epita.fr>
+
+ * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
+
+2005-08-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c (yyrecoverSyntaxError, yyreturn):
+ Don't invoke destructor on unresolved entries.
+ * tests/glr-regression.at
+ (User destructor for unresolved GLR semantic value): New test case.
+ Problem reported by Joel E. Denny in:
+ http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html
+
+2005-08-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/.cvsignore: Remove realloc.c, strncasecmp.c, xstrdup.c.
+ Add strnlen.c.
+ * m4/.cvsignore: Remove codeset.m4, gettext.m4, lib-ld.m4,
+ lib-prefix.m4, po.m4.
+
+ * data/glr.c (yyreturn): Use "Cleanup:" rather than "Error:"
+ in yydestruct diagnostic, since it might not be an error.
+ Problem reported by Joel Denny near end of
+ <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
+ * data/lalr1.cc (yyerturn): Likewise.
+ * data/yacc.c (yyreturn): Likewise.
+ * tests/calc.at (_AT_CHECK_CALC_ERROR): Adjust to the above change.
+
+ * src/files.c: Remove obsolete FIXME comment.
+
+ * data/glr.c (YY_SYMBOL_PRINT): Append a newline, for consistency
+ with the other templates, and to fix bogus run-on messages such
+ as the one reported at the end of
+ <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
+ All callers changed to avoid the newline.
+ (yyprocessOneStack): Output two lines rather than one, to accommodate
+ the above change. This changes the debug output format slightly.
+
+ * data/glr.c (yyresolveValue): Fix redundant parse tree problem
+ reported by Joel E. Denny in
+ <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00004.html>
+ (trivial change).
+ * tests/glr-regression.at (Duplicate representation of merged trees):
+ New test, from Joel E. Denny in:
+ <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.
+ * THANKS: Add Joel E. Denny.
+
+ * configure.ac (AC_INIT): Bump to 2.0c.
+
+2005-07-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Version 2.0b.
+
+ * Makefile.am (SUBDIRS): Put examples before tests, so that
+ "make check" doesn't finish with "All 1 tests passed".
+
+ * tests/regression.at (Token definitions): Don't rely on
+ AT_PARSER_CHECK for data that contains backslashes. It currently
+ uses 'echo', and 'echo' isn't portable if its argument contains
+ backslashes. Problem found on OpenBSD 3.4. Also, do not assume
+ that the byte '\0xff' is not printable in the C locale; it is,
+ under OpenBSD 3.4 (!). Luckily, '\0x80' through '\0x9e' are
+ not printable, so use '\0x81' to test.
+
+ * data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent
+ version of GCC, since the macro is used with non-GCC compilers.
+
+ Fix core dump reported by Pablo De Napoli in
+ <http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
+ * tests/regression.at (Invalid inputs with {}): New test.
+ * src/parse-gram.y (token_name): Translate type before using
+ it as an index.
+
+ * data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
+ the user's name space. All uses changed to __attribute__
+ ((__unused__)).
+ (yyFail, yyMemoryExhausted, yyreportAmbiguity):
+ Add __attribute__ ((__noreturn__)).
+
+ * etc/clcommit: Remove. We weren't using it, and it failed
+ "make maintainer-distcheck".
+ * Makefile.maint: Merge from coreutils.
+ (CVS_LIST, CVS_LIST_EXCEPT): New macros.
+ (syntax-check-rules): Change list of rules as described below.
+ (sc_cast_of_alloca_return_value, sc_dd_max_sym_length):
+ (sc_file_system, sc_obsolete_symbols, sc_prohibit_atoi_atof):
+ (sc_prohibit_jm_in_m4, sc_root_tests, sc_tight_scope):
+ (sc_trailing_space): New rules.
+ (sc_xalloc_h_in_src): Remove.
+ (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
+ (sc_space_tab, sc_error_exit_success, sc_changelog):
+ (sc_system_h_headers, sc_sun_os_names, sc_unmarked_diagnostics):
+ (makefile-check, po-check, author_mark_check):
+ (makefile_path_separator_check, copyright-check):
+ Use grep -n, to make it easier to find violations.
+ Use CVS_LIST and CVS_LIST_EXCEPT.
+ (header_regexp, h_re): Remove.
+ (dd_c): New macro.
+ (sc_dd_max_sym_length, .re-list, news-date-check): New rules.
+ (my-distcheck): Use more-modern GCC flags.
+ (signatures, %.asc): Remove.
+ (rel-files, announcement): Remove signatures.
+ Restore old updating code, even though we don't use it, so
+ that we're the same as coreutils.
+ (alpha, beta, major): Depend on news-date-check.
+ Make the upload commands.
+
+ * data/c.m4, data/lalr1.cc, data/yacc.c: Normalize white space.
+ * lib/abitset.h, lib/bbitset.h, lib/bitset.h: Likewise.
+ * lib/bitset_stats.c, lib/ebitset.h, lib/lbitset.c: Likewise.
+ * lib/libitset.h, lib/timevar.c, lib/vbitset.h: Likewise.
+ * src/Makefile.am, src/gram.c, src/muscle_tab.h: Likewise.
+ * src/parse-gram.y, src/system.h, src/tables.c, src/vcg.c: Likewise.
+ * src/vcg_defaults.h, tests/cxx-type.at, tests/existing.at: Likewise.
+ * tests/sets.at: Likewise.
+
+ * data/m4sugar/m4sugar.m4: Sync from Autoconf, except that
+ we comment out the Autoconf version number.
+ * doc/bison.texinfo (Calc++ Scanner): Don't use atoi, as
+ it's error-prone and "make maintainer-distcheck" rejects it.
+
+ * lib/subpipe.c: Include <fcntl.h> without checking for HAVE_FCNTL_H.
+ Indent calls to "error" to pacify "make maintainer-distcheck",
+ when the calls are not intended to be translated.
+ * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't check for fcntl.h.
+
+ * src/Makefile.am (DEFS): Use +=, to pacify
+ "make maintainer-distcheck".
+ (bison_SOURCES): Add scan-skel.h.
+ (sc_tight_scope): New rule, from coreutils.
+
+ * src/files.c (src_extension, header_extension):
+ Now static, not extern.
+ * src/getargs.c (short_options): Likewise.
+ * src/muscle_tab.c (muscle_table): Likewise.
+ * src/parse-gram.y (current_class, current_type, current_prec):
+ Likewise.
+ * src/reader.c (grammar_end, previous_rule_end): Likewise.
+ * src/getargs.h: Redo comments to pacify "make maintainer-distcheck".
+ * src/main.c (main): Cast bindtextdomain and textdomain calls to
+ void, to avoid warning when NLS is disabled.
+ * src/output.c: Include scan-skel.h.
+ (scan_skel): Remove decl, since scan-skel.h does this.
+ (output_skeleton):
+ Indent calls to "error" to pacify "make maintainer-distcheck".
+ * src/print_graph.c: Don't include <obstack.h>, as system.h does this.
+ * src/reader.h (gram_end, gram_lineno): New decls to pacify
+ "make maintainer-distcheck".
+ * src/scan-skel.l (skel_lex, skel_get_lineno, skel_get_in):
+ (skel_get_out, skel_get_leng, skel_get_text, skel_set_lineno):
+ (skel_set_in, skel_set_out, skel_get_debug, skel_set_debug):
+ (skel_lex_destroy, scan_skel): Move these decls to...
+ * src/scan-skel.h: New file.
+ * src/uniqstr.c (uniqstr_assert):
+ Indent calls to "error" to pacify "make maintainer-distcheck".
+
+ * tests/Makefile.am ($(srcdir)/package.m4): Use $(VAR),
+ not @VAR@.
+
+ * tests/torture.at: Revamp to avoid misuse of atoi that
+ "make maintainer-distcheck" complained about.
+
+ * examples/extexi (message): Don't print a message more than once,
+ and omit line-number decoration that makes Emacs compile think
+ that informative messages are worth worrying about.
+
+2005-07-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * configure.ac: Update version number.
+
+ * Makefile.am (SUBDIRS): Add examples; somehow this got removed
+ accidentally.
+ * examples/calc++/calc++-parser.yy: Remove from CVS, as it's
+ autogenerated by the maintainer.
+ * examples/calc++/.cvsignore: Add *.yy.
+
+ * lib/bitset.c (bitset_alloc): Don't cast xcalloc result.
+ * lib/bitset_stats.c (bitset_stats_init): Likewise.
+ * lib/bitsetv.c (bitsetv_alloc): Likewise.
+
+ * po/POTFILES.in: Add lib/xalloc-die.c; remove lib/xmalloc.c.
+
+ * src/relation.c (relation_transpose): Rewrite to avoid bogus complaint
+ from maintainer-distcheck about casting the argument of 'free'.
+
+ * NEWS: Mention recent yytname changes.
+ * THANKS: Add Anthony Heading, twlevo@xs4all.nl.
+
+ * bootstrap: For translations that have not yet been upgraded to
+ the new runtime-po domain, prime the pump by extracting the
+ relevant strings from the obsolete translations. This code can be
+ removed once the bison-runtime domain has been translated by each
+ team.
+
+ * src/scan-gram.l (<SC_PRE_CODE>.): Don't double-quote token names,
+ now that token names are already quoted.
+
+ Fix problem reported by Anthony Heading.
+ * data/glr.c (YYTOKEN_TABLE): New macro.
+ (yytname): Define if YYTOKEN_TABLE.
+ * data/yacc.c (YYTOKEN_TABLE, yytname): Likewise.
+ * data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise.
+ (YYERROR_VERBOSE): Define the same way the other skeletons do.
+ * src/output.c (prepare_symbols): Output token_table_flag.
+
+2005-07-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c (yyinitGLRStack, yyreturn): Don't call malloc
+ again if the first call fails.
+
+ * data/glr.c (yytnamerr): New function.
+ (yyreportSyntaxError): Use it to dequote most string literals.
+ * data/lalr1.c (yytname_): Renamed from yyname_, for compatibility
+ with other skeletons. All uses changed.
+ (yytnameerr_): New function.
+ (yyreport_syntax_error): Use it to dequote most string literals.
+ * data/yacc.c (yytnamerr): New function.
+ (yyerrlab): Use it to decode most string literals.
+ * doc/bison.texinfo (Decl Summary, Calling Convention):
+ Clarify quoting convention of yytname.
+ * src/output.c (prepare_symbols): Quote all names. This undoes
+ the 2005-04-17 change, which is now accomplished (mostly) via
+ changes in the parsers as described above.
+ * tests/regression.at (Token definitions, Web2c Actions):
+ Undo most 2005-04-17 change here, too.
+
+2005-07-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix more problems reported by twlevo@xs4all.nl.
+ * tests/cxx-type.at: Don't pipe output of ./types through sed to
+ remove trailing spaces. This loses the exit status of ./types,
+ and isn't needed since ./types shouldn't be emitting trailing
+ spaces.
+ * data/glr.c (yyreturn): Don't pop stack if yyinitStateSet failed,
+ as the stack isn't valid in that case.
+
+ * 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):
+ Add declarations to pacify "gcc -Wmissing-prototypes" when flex 2.5.31
+ is used.
+ * src/scan-skel.l (skel_get_lineno, skel_get_in, skel_get_out):
+ (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
+ (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
+ Likewise.
+
+ * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Work even with
+ overly-picky compilers that reject 'char *foo = "bar";'.
+
+ * src/symtab.c (SYMBOL_ATTR_PRINT, symbol_print): Direct output
+ to FILE * parameter, not to stderr. This fixes a typo introduced
+ in the 2005-07-12 change.
+
+ * lib/subpipe.c (create_subpipe): Rewrite slightly to avoid
+ warnings from GCC 4.
+
+ * data/glr.c (yyexpandGLRStack, yyaddDeferredAction, yyexpandGLRStack):
+ (yyglrShiftDefer, yysplitStack):
+ Remove unused parameters b4_pure_formals. All uses changed.
+ (yyglrShift): Remove unused parameters b4_user_formals.
+ All uses changed.
+ (yyglrReduce): Removed unused parameter yylocp. All uses changed.
+
+2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ Destructor cleanups and regularization among the three skeletons.
+ * NEWS: Document the behavior changes.
+ * data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
+ stack before failing, as the cleanup code will do it for us now.
+ * data/lalr1.cc (yyerrlab): Likewise.
+ * data/glr.c (yyparse): Pop everything off the stack before
+ freeing it, so that destructors get called properly.
+ * data/lalr1.cc (yyreturn): Likewise.
+ * data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
+ This is more consistent.
+ * doc/bison.texinfo (Destructor Decl): Mention more reasons
+ why destructors might be called. 1.875 -> 2.1.
+ (Destructor Decl, Decl Summary, Table of Symbols):
+ Some English-language cleanups for %destructor.
+ * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
+ Add output line for destructor of start symbol.
+ * tests/calc.at (AT_CHECK_CALC): Add one to line counts,
+ because of that same extra output line.
+
+ * NEWS: Document minor wording changes in diagnostics of
+ Bison-generated parsers.
+ * data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
+ Remove unused formals. All uses changed.
+ (yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
+ (yyparse): Rename yyoverflowlab to yyexhaustedlab.
+ * data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
+ Rename yyoverflowab to yyexhaustedlab.
+ When memory exhaustion occurs during syntax-error reporting,
+ report it separately rather than in a single diagnostic; this
+ eases translation.
+ * doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
+ (Memory Exhausted): Renamed from Parser Stack Overflow.
+ Revamp wording slightly to prefer "memory exhaustion".
+ * tests/actions.at: "parser stack overflow" -> "memory exhausted".
+
+ * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
+
+ Add i18n support to the GLR skeleton. Partially fix the C++
+ skeleton; a C++ expert needs to finish this. Remove debugging
+ msgids; there's little point to having them translated, since they
+ can be understood only by someone who can read the
+ (English-language) source code.
+
+ Generate runtime-po/bison-runtime.pot automatically, so that we
+ don't have to worry about garbage getting in that file. We'll
+ make sure after the next official release that old msgids don't
+ get lost. See
+ <http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
+
+ * runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
+ Now auto-generated.
+ * PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
+ Fix typos in explanations of the runtime file.
+ * bootstrap: Change gettext keyword from YYI18N to YY_.
+ Use standard Makefile.in.in in runtime-po, since we'll arrange
+ for backward-compatible bison-runtime.po files in a different way.
+ * data/glr.c (YY_): New macro, from yacc.c.
+ (yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
+ Translate messages intended for users.
+ (yyreportSyntaxError): Change "virtual memory" to "memory" to match
+ the wording in the other skeletons. We don't know that the memory
+ is virtual.
+ * data/lalr1.cc (YY_): Renamed from _. All uses changed.
+ Use same method that yacc.c uses.
+ Don't translate debugging messages.
+ (yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
+ it doesn't work (yet), and requires C++ expertise to fix.
+ * data/yacc.c (YY_): Renamed from YY18N. All uses changed.
+ Move defn to a more logical place, to be consistent with other
+ skeletons.
+ Don't translate debugging messages.
+ Don't assume line numbers fit in unsigned int; use unsigned long fmts.
+ * doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
+ to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
+ * runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
+
+ Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
+ * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
+ void, not int.
+ * tests/glr-regression.at (Badly Collapsed GLR States):
+ Likewise.
+ (Improper handling of embedded actions and dollar(-N) in GLR parsers):
+ yylex should return 0 at EOF rather than aborting.
+
+ Improve tests for stack overflow in GLR parser.
+ Problem reported by twlevo@xs4all.nl.
+ * data/glr.c (struct yyGLRStack): Remove yyerrflag member.
+ All uses removed.
+ (yyStackOverflow): Just longjmp, but with value 2 so that caller
+ can handle the problem.
+ (YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
+ (yyparse): New local variable yyresult to record the result.
+ Use result of setjmp to set it, rather than storing itinto
+ struct.
+ (yyDone): Remove label.
+ (yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
+ to mimic yacc.c. Do not discard lookahead if it's EOF (possible
+ if YYABORT is used).
+ * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
+ yyparse status; put status > 1 into diagnostic.
+ Check that status==2 works.
+ * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
+ Use exit status 3 for failure to open (which shouldn't happen).
+
+2005-07-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/conflicts.at (%nonassoc and eof): Don't exit with status
+ 1 on syntax error; just let yyparse do its thing.
+ * tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
+ * tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
+ (Exploding the Stack Size with Alloca):
+ (Exploding the Stack Size with Malloc):
+ Expect exit status 2, not 1, since the parser is supposed to blow
+ its stack. Problem reported by twlevo@xs4all.nl.
+
+ * data/glr.c (yyparse): Don't assume that the initial calls
+ to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
+ Print a stack-overflow message and fail instead.
+ Initialize the line-number information before creating the stack,
+ so that the stack-overflow message can report line zero safely.
+
+2005-07-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix problems reported by twlevo@xs4all.nl.
+ * data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
+ (yyuserMerge): Provide a default case if b4_mergers is empty.
+ * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
+ * tests/glr-regression.at
+ (Improper handling of embedded actions and dollar(-N) in GLR parsers):
+ Add casts to pacify C++ compilers.
+ * tests/glr-regression.at (Improper merging of GLR delayed action
+ sets): Declare yylex before using it.
+ * tests/Makefile.am (maintainer-check-g++): Fix a stray
+ $(GXX) that escaped the renaming of GXX to CXX. Remove bogus
+ test for valgrind; valgrind is independent of g++.
+ (maintainer-check-posix): Add _POSIX2_VERSION=200112, to check
+ for compatibility with POSIX 1003.1-2001 (if running coreutils).
+ * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Port to stricter C++.
+ Use a destructor, so that we can expand the stack. Change
+ YYSTYPE to char * so that we can free it. Cast result of malloc.
+
+2005-07-13 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
+
+ * data/glr.c (yyuserAction): Fix uninitialized variable that caused
+ a valgrind failure. Problem reported by twlevo@xs4all.nl.
+
+2005-07-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * PACKAGING: New file, suggested by Bruno Haible and taken from
+ similar wording in gettext's PACKAGING file.
+ * NEWS: Mention PACKAGING.
+ * Makefile.am (EXTRA_DIST): Add PACKAGING.
+
+2005-07-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Document recent i18n improvements.
+ * bootstrap: Get runtime translations into runtime-po.
+ Create runtime-po files automatically, if possible.
+ * configure.ac: Invoke BISON_I18N, so that we eat our own dog food.
+ * data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS
+ does not infringe on the user's name space.
+ (YYENABLE_NLS): Renamed from ENABLE_BISON_NLS.
+ * doc/bison.texinfo (Internationalization): Revamp the English
+ and Texinfo syntax a bit, to try to make it clearer.
+ (Bison Options, Option Cross Key): Mention --print-localedir.
+ * m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to
+ YYENABLE_NLS. Quote a bit more.
+ * runtime-po/.cvsignore: New file.
+ * runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot.
+ * runtime-po/Rules-quot: Remove; now created by bootstrap.
+ * runtime-po/quot.sed: Likewise.
+ * runtime-po/boldquot.sed: Likewise.
+ * runtime-po/en@quot.header: Likewise.
+ * runtime-po/en@boldquot.header: Likewise.
+ * runtime-po/insert-header.sin: Likewise.
+ * runtime-po/remove-potcdate.sin: Likewise.
+ * runtime-po/Makevars: Likewise.
+ * runtime-po/LINGUAS: Likewise.
+ * runtime-po/de.po: Likewise; we will rely on the translation project
+ to maintain this, so "bootstrap" should get it.
+ * src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
+ its value.
+ * src/main.c (main): Bind the bison-runtime domain, too.
+
+2005-07-12 Bruno Haible <bruno@clisp.org>
+
+ * data/yacc.c: Include <libintl.h> when NLS is enabled.
+ (YYI18N): Renamed from _. Use dgettext when NLS is enabled.
+ * po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
+ * runtime-po: New directory.
+ * runtime-po/Makefile.in.in: New file, copied from po/, with modified
+ $(DOMAIN).pot-update rule, so that old messages are never dropped.
+ * runtime-po/Rules-quot: New file, copied from po/.
+ * runtime-po/quot.sed: Likewise.
+ * runtime-po/boldquot.sed: Likewise.
+ * runtime-po/en@quot.header: Likewise.
+ * runtime-po/en@boldquot.header: Likewise.
+ * runtime-po/insert-header.sin: Likewise.
+ * runtime-po/remove-potcdate.sin: Likewise.
+ * runtime-po/Makevars: New file.
+ * runtime-po/POTFILES.in: New file.
+ * runtime-po/LINGUAS: New file.
+ * runtime-po/bison-runtime.pot: New file.
+ * runtime-po/de.po: New file.
+ * m4/bison.m4: New file.
+ * Makefile.am (SUBDIRS): Add runtime-po.
+ (aclocaldir, aclocal_DATA): New variables.
+ * configure.ac: Add AC_CONFIG_FILES of runtime-po/Makefile.in.
+ Define aclocaldir.
+ * src/getargs.c (usage): Document --print-localedir option.
+ (PRINT_LOCALEDIR_OPTION): New enum item.
+ (long_options): Add --print-localedir option.
+ (getargs): Handle --print-localedir option.
+ * doc/bison.texinfo (Bison Parser): Remove paragraph about _().
+ (Internationalization): New section.
+
+2005-07-12 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.h, src/symtab.c (symbol_print): Swap the arguments,
+ for consistency with the rest of the code.
+ * src/symlist.h, src/symlist.c (symbol_list_print): Ditto.
+ Add separators.
+
+2005-07-12 Akim Demaille <akim@epita.fr>
+
+ * src/parse-gram.y: Use %printer instead of YYPRINT.
+
+2005-07-12 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.h, src/symtab.c (symbol_print): New.
+ * src/symlist.h, src/symlist.c (symbol_list_print): New.
+ * src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
+
+2005-07-12 Akim Demaille <akim@epita.fr>
+
+ * data/glr.c (b4_syncline): Fix (swap) the definitions of
+ b4_at_dollar and b4_dollar_dollar.
+
+2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
+ and Pennello's paper.
+
+2005-07-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c (yyparse): Undo previous patch. Instead,
+ set yylsp[0] and yyvsp[0] only if the initial action
+ sets yylloc and yylval, respectively.
+
+ * data/yacc.c (yyparse): In the initial action, set
+ yylsp[0] and yyvsp[0] rather than yylloc and yylval.
+ This avoids the use of undefined variables if the initial
+ action does not set yylloc and/or yylval.
+
+2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
+ * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
+ Remove from CVS. These files are automatically generated.
+ * examples/extexi: Clarify that this file is now part of Bison,
+ not GNU M4, and that it works with any POSIX-compatible Awk.
+ * examples/calc++/Makefile.am (run_extexi): Remove; not used.
+ ($(calc_extracted)): Renamed from $(calc_sources_extracted),
+ so that we also get calc++-parser.yy. Geneate it.
+ Use $(AWK), not gawk, since any conforming Awk will do.
+ Put comment before action, since older 'make' can't handle comment
+ in action.
+ $(BUILT_SOURCES): List all built sources, not just some of them.
+ $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
+ $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
+ $($(calc_sources_generated)): Remove unnecessary test for existence
+ of target. (This had a shell syntax error anyway; a stray "x".)
+ (calc_extracted): List $(srcdir)/calc++-parser.yy, not
+ calc++-parser.yy.
+ * examples/.cvsignore, examples/calc++/.cvsignore: New files.
+
+ * bootstrap (gnulib_modules): Add gettext, now that it's no longer
+ implied by the other modules.
+
+2005-07-06 Akim Demaille <akim@epita.fr>
+
+ Bind examples/calc++ to the package.
+ * examples/calc++/Makefile: Remove, replaced by...
+ * examples/calc++/Makefile.am: ... this new file.
+ * examples/calc++/test: Remove input.
+ * examples/calc++/compile: Remove.
+ * examples/Makefile.am: New.
+ * configure.ac, Makefile.am: Adjust.
+ * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
+
+2005-07-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/glr.c (yyFail): Drastically simplify; since the format argument
+ never had any % directives, we can simply pass it to yyerror.
+ (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
+ be modified later, as that is the usual style in glr.c.
+ Problems reported by Paul Hilfinger.
+
+ Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
+ and size overflow errors.
+ * data/glr.c: Include <stdio.h> etc. after user prolog, not before,
+ in case the user prolog sets feature-test macros like _GNU_SOURCE.
+ (YYSIZEMAX): New macro.
+ (yystpcpy): New function, taken from yacc.c.
+ (struct yyGLRStack.yyspaceLeft): Now size_t, not int.
+ (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
+ so that we don't have to maintain their signatures.
+ (yyFail): Check for buffer overflow, by using vsnprintf rather
+ than vsprintf. Allocate a bigger buffer if possible.
+ Report an error if buffer allocation fails.
+ (yyStackOverflow): New function.
+ (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
+ the initialization was successful. It might fail if storage was
+ exhausted.
+ (yyexpandGLRStack): Add more checks for storage allocation failure.
+ Use yyStackOverflow to report failures.
+ (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
+ (yysplitStack, yyprocessOneStack, yyparse, yypstack):
+ Don't assume stack number fits in int.
+ (yysplitStack): Check for storage allocation failure.
+ (yysplitStack, yyprocessOneStack): Add pure_formals, so that we
+ can print diagnostics on storage allocation failure. All callers
+ changed.
+ (yyresolveValue): Use yybool for boolean.
+ (yyreportSyntaxError): Check for size-calculation overflow.
+ This code is taken from yacc.c.
+ (yyparse): Check for storage allocation errors when allocating
+ the initial stack.
+
+2005-07-05 Akim Demaille <akim@epita.fr>
+
+ Extract calc++ from the documentation.
+ * doc/bison.texinfo (Calc++): Add the extraction marks.
+ * examples/extexi: New, from the aborted GNU Programming 2E.
+ Separate the different paragraph of a file with empty lines.
+ * examples/Makefile: Use it to extract the whole calc++ example.
+
+2005-06-24 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
+ class typedefs.
+
+2005-06-22 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo (C++ Language Interface): First stab.
+ (C++ Parsers): Remove.
+
2005-06-22 Akim Demaille <akim@epita.fr>
* data/lalr1.cc (yylex_): Honor %lex-param.
line.
2004-10-22 Akim Demaille <akim@epita.fr>
- and Paul Eggert <eggert@cs.ucla.edu>
+ and Paul Eggert <eggert@cs.ucla.edu>
Remove some arbitrary limits on goto numbers and relations.
* src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
2004-09-06 Akim Demaille <akim@epita.fr>
* data/lalr1.cc: Adjust the indentation of the labels.
- (Parser::pop): New.
+ (Parser::pop): New.
Use it.
2004-09-06 Akim Demaille <akim@epita.fr>
Reported by Charles-Henry de Boysson.
* tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
- check the length of the traces when %glr.
+ check the length of the traces when %glr.
(_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
GLR's traces.
(AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
struct lbitset_struct, struct bitset_stats_struct): New types.
All uses of struct bitset_struct changed to union bitset_union,
etc.
- * lib/abitset.c (struct abitset_struct, abitset,
+ * lib/abitset.c (struct abitset_struct, abitset,
struct bitset_struct): Remove.
* lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
struct bitset_struct): Remove.
2002-06-28 Akim Demaille <akim@epita.fr>
- * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
+ * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
* src/conflicts.c (conflicts_total_count): `i' is unsigned, to
pacify GCC.
* src/output.c (save_row): Initialize all the variables to pacify GCC.
* src/getargs.c:
* src/symlist.h: Add dprec and merger fields to symbol_list_s.
- * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
+ * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2002-01-20 Marc Autret <marc@gnu.org>
- * src/system.h: Need to define __attribute__ away for non-GCC
- compilers as well (i.e. the vendor C compiler).
+ * src/system.h: Need to define __attribute__ away for non-GCC
+ compilers as well (i.e., the vendor C compiler).
Suggested by Albert Chin-A-Young.
2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
* src/warshall.c (bitmatrix_print): New.
(TC): Use it.
- When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
+ When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
j must be the outer loop.
* tests/regression.at (Broken Closure): New.
* src/output.c (output): Delete call to reader_output_yylsp.
* src/reader.c (reader): Likewise.
- * src/reader.h: Delete declaration of reader_output_yylsp.
+ * src/reader.h: Delete declaration of reader_output_yylsp.
2001-09-02 Marc Autret <autret_m@epita.fr>
* REFERENCES: entered into RCS
------
-
-Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-This file is part of Bison, the GNU Compiler Compiler.
-Bison is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+ -----
-Bison is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
+ Foundation, Inc.
-You should have received a copy of the GNU General Public License
-along with Bison; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.
+ Copying and distribution of this file, with or without
+ modification, are permitted provided the copyright notice and this
+ notice are preserved.