+2002-09-06 Paul Eggert <eggert@twinsun.com>
+
+ * doc/bison.texinfo (Conditions): Make explicit that the GPL
+ exception applies only to yacc.c. This is a modification of a
+ patch originally suggested by Akim Demaille.
+
+2002-09-06 Akim Demaille <akim@epita.fr>
+
+ * data/c.m4 (b4_copyright): Move the GPL exception comment from
+ here to...
+ * data/yacc.c: here.
+
+ * data/lalr1.cc (struct yyltype): Don't define it, since we use
+ LocationType.
+ (b4_ltype): Default to yy::Location from location.hh.
+
+2002-09-04 Jim Meyering <jim@meyering.net>
+
+ * data/yacc.c: Guard the declaration of yytoknum also with
+ `#ifdef YYPRINT', so it is declared only when used.
+
+2002-09-04 Akim Demaille <akim@epita.fr>
+
+ * configure.in: Rename as...
+ * configure.ac: this.
+ Bump to 1.49c.
+
+2002-09-04 Akim Demaille <akim@epita.fr>
+
+ * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
+ * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
+ translate maintainer only messages.
+
+2002-08-12 Paul Eggert <eggert@twinsun.com>
+
+ Version 1.49b.
+
+ * Makefile.am (SUBDIRS): Remove intl.
+ (DISTCLEANFILES): Remove.
+ * NEWS: Mention that GNU M4 is now required. Clarify what is
+ meant by "larger grammars". Mention the pt_BR translation.
+ * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
+ (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
+ Bump version from 0.11.2 to 0.11.5.
+ (BISON_PREREQ_STAGE): Remove.
+ (AM_GNU_GETTEXT): Use external gettext.
+ (AC_OUTPUT): Remove intl/Makefile.
+
+ * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
+
+ * data/glr.c: Include string.h, for strlen.
+ (yyreportParseError): Use size_t for yysize.
+ (yy_yypstack): No longer nested inside yypstates, as nested
+ functions are not portable. Do not assume size_t is the
+ same width as int.
+ (yypstates): Do not assume that ptrdiff_t is the same width
+ as int, and similarly for yyposn and YYINDEX.
+
+ * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
+
+ * lib/Makefile.am (INCLUDES): Do not include from the intl
+ directory, which has been removed.
+ * src/Makefile.am (INCLUDES): Likewise.
+
+ * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
+ (bitsets_sources, additional_bitsets_sources, timevars_sources):
+ New vars.
+
+ * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
+ * tests/Makefile.am (EXTRA_DIST): Likewise.
+
+ * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
+ Do not assume that bitset_windex is the same width as unsigned.
+
+ * lib/abitset.c (abitset_unused_clear): Do not assume that
+ bitset_word is the same width as int.
+ * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
+ * lib/bitset.h (bitset_set, bitset_reset): Likewise.
+ * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
+ * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
+ * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
+
+ * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
+ portability to one's complement hosts!).
+ * lib/ebitset.c (ebitset_op1): Likewise.
+ * lib/lbitset.c (lbitset_op1): Likewise.
+
+ * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
+ * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
+ lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
+ Sync with fileutils.
+ * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
+ lib/gettext.h: Sync with diffutils.
+
+ * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
+ lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
+
+ * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
+ PROTOTYPES to check for prototypes, and "defined __STDC__" to
+ check for void *.
+
+ * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
+ size_t; the old version tried to do this but casted improperly.
+ (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
+ (bitset_test): Now returns int, not unsigned long.
+
+ * lib/bitset_stats.c: Include "gettext.h".
+ (_): New macro.
+ (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
+ name locals "index", as it generates unnecessary warnings on some
+ hosts that have an "index" function.
+
+ * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
+ bitset_stats_read, bitset_stats_write): Wrap strings in _() if
+ they need translation.
+ * src/LR0.c (state_list_append, new_itemsets, get_state,
+ append_states, generate_states): Likewise.
+ * src/assoc.c (assoc_to_string): Likewise.
+ * src/closure.c (print_closure, set_firsts, closure): Likewise.
+ * src/gram.c (grammar_dump): Likewise.
+ * src/injections.c (injections_compute): Likewise.
+ * src/lalr.c (lookaheads_print): Likewise.
+ * src/relation.c (relation_transpose): Likewise.
+ * src/scan-gram.l: Likewise.
+ * src/tables.c (table_grow, pack_vector): Likewise.
+
+ * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
+ glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
+ * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
+ * m4/mbstate_t.m4: Sync with fileutils.
+ * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
+
+ * po/LINGUAS: Add pt_BR.
+ * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
+ src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
+ lib/timevar.c.
+ Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
+ manual recommends.
+ Similarly, use src/scan-gram.l instead of src/scan-gram.c.
+
+ * src/complain.c (strerror_r): Remove decl; not needed.
+ (strerror): Use same pattern as ../lib/error.c.
+
+ * src/files.c, src/files.h (compute_header_macro): Remove; unused.
+
+ * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
+
+ * src/main.c (main): Cast result of bindtextdomain and textdomain
+ to void, to avoid a GCC warning when --disable-nls is in effect.
+
+ * src/scan-gram.l: Use strings rather than escapes when possible,
+ to minimize the number of warnings from xgettext.
+ (handle_action_dollar, handle_action_at): Don't use isdigit,
+ as it mishandles negative chars and it may not work as expected
+ outside the C locale.
+
+ * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
+ this is a GCC extension and is not portable to other compilers.
+
+ * src/system.h (alloca): Use same pattern as ../lib/error.c.
+ Do not include <ctype.h>; no longer needed.
+ Do not include <malloc.h>; no longer needed (and generates
+ warnings on OpenBSD 3.0).
+
+ * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
+ it's not portable.
+
+ * tests/regression.at: Do not use 'cc -c input.c -o input';
+ Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
+
+ * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
+ exit status as failure, not just exit status 1. Sun C exits
+ with status 2 sometimes.
+
+ * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
+ Use it for the two large tests.
+
+2002-08-02 Akim Demaille <akim@epita.fr>
+
+ * src/conflicts.c (conflicts_output): Don't output rules never
+ reduced here, since anyway that computation doesn't work.
+ * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
+ (rule_useless_p, rule_never_reduced_p): New.
+ (grammar_rules_partial_print): Use a filter instead of a range.
+ Display the title only if needed.
+ (grammar_rules_print): Adjust.
+ (grammar_rules_never_reduced_report): New.
+ * src/tables.c (action_row): Move the computation of rules never
+ reduced to...
+ (token_actions): here.
+ * src/main.c (main): Make the parser before making the report, so
+ that rules never reduced are computed.
+ Call grammar_rules_never_reduced_report.
+ * src/print.c (print_results): Report rules never reduced.
+ * tests/conflicts.at, tests/reduce.at: Adjust.
+
+2002-08-01 Akim Demaille <akim@epita.fr>
+
+ Instead of attaching lookaheads and duplicating the rules being
+ reduced by a state, attach the lookaheads to the reductions.
+
+ * src/state.h (state_t): Remove the `lookaheads',
+ `lookaheads_rule' member.
+ (reductions_t): Add a `lookaheads' member.
+ Use a regular array for the `rules'.
+ * src/state.c (reductions_new): Initialize the lookaheads member
+ to 0.
+ (state_rule_lookaheads_print): Adjust.
+ * src/state.h, src/state.c (state_reductions_find): New.
+ * src/conflicts.c (resolve_sr_conflict, set_conflicts)
+ (count_rr_conflicts): Adjust.
+ * src/lalr.c (LArule): Remove.
+ (add_lookback_edge): Adjust.
+ (state_lookaheads_count): New.
+ (states_lookaheads_initialize): Merge into...
+ (initialize_LA): this.
+ (lalr_free): Adjust.
+ * src/main.c (main): Don't free nullable and derives too early: it
+ is used by --verbose.
+ * src/print.c, src/print_graph.c, src/tables.c: Adjust.
+
+2002-08-01 Akim Demaille <akim@epita.fr>
+
+ * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
+ `rule_number_t**'.
+ (set_derives, free_derives): Rename as...
+ (derives_compute, derives_free): this.
+ Adjust all dependencies.
+ * src/nullable.c (set_nullable, free_nullable): Rename as...
+ (nullable_compute, nullable_free): these.
+ (rule_list_t): Store rule_t *, not rule_number_t.
+ * src/state.c (state_rule_lookaheads_print): Directly compare rule
+ pointers, instead of their numbers.
+ * src/main.c (main): Call nullable_free, and derives_free earlier,
+ as they were lo longer used.
+
+2002-08-01 Akim Demaille <akim@epita.fr>
+
+ * lib/timevar.c (get_time): Include children time.
+ * src/lalr.h (LA, LArule): Don't export them: used with the
+ state_t.
+ * src/lalr.c (LA, LArule): Static.
+ * src/lalr.h, src/lalr.c (lalr_free): New.
+ * src/main.c (main): Call it.
+ * src/tables.c (pack_vector): Check whether loc is >= to the
+ table_size, not >.
+ (pack_tables): Don't free froms, tos, conflict_tos, and pos...
+ (tables_generate): do it, since that's also it which allocates
+ them.
+ Don't free LA and LArule, main does.
+
+2002-07-31 Akim Demaille <akim@epita.fr>
+
+ Separate parser tables computation and output.
+
+ * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
+ (conflict_list, conflict_list_cnt, table, check, table_ninf)
+ (yydefgoto, yydefact, high): Move to...
+ * src/tables.h, src/tables.c: here.
+ * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
+ (VECTOR_NUMBER_MIN, state_number_to_vector_number)
+ (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
+ (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
+ (ACTION_MIN, actrow, order, nentries, pos, conflrow)
+ (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
+ (action_row, save_row, token_actions, save_column, default_goto)
+ (goto_actions, sort_actions, matching_state, pack_vector)
+ (table_ninf_remap, pack_table, prepare_actions): Move to...
+ * src/tables.c: here.
+ * src/tables.h, src/tables.c(tables_generate, tables_free): New.
+ * src/output.c (token_actions, output_base, output_conflicts)
+ (output_check): Merge into...
+ (prepare_actions): this.
+ (actions_output): Rename as...
+ (user_actions_output): this.
+ * src/main.c (main): Call tables_generate and tables_free.
+
+2002-07-31 Akim Demaille <akim@epita.fr>
+
+ Steal GCC's --time-report support.
+
+ * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
+ stolen/adjusted from GCC.
+ * m4/stage.m4: Remove time related checks.
+ * m4/timevar.m4: New.
+ * configure.in: Adjust.
+ * src/system.h: Adjust to using timevar.h.
+ * src/getargs.h, src/getargs.c: Support trace_time for
+ --trace=time.
+ * src/main.c (stage): Remove.
+ (main): Replace `stage' invocations with timevar calls.
+ * src/output.c: Insert pertinent timevar calls.
+
+2002-07-31 Akim Demaille <akim@epita.fr>
+
+ Let --trace have arguments.
+
+ * src/getargs.h (enum trace_e): New.
+ * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
+ (long_options, short_options): --trace/-T takes an optional
+ argument.
+ Change all the uses of trace_flag to reflect the new flags.
+ * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
+
+ Strengthen `stage' portability.
+
+ * m4/stage.m4 (BISON_PREREQ_STAGE): New.
+ * configure.in: Use it.
+ Don't check for malloc.h and sys/times.h.
+ * src/system.h: Include them when appropriate.
+ * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
+ times and struct tms are available.
+
+2002-07-30 Akim Demaille <akim@epita.fr>
+
+ In verbose parse error message, don't report `error' as an
+ expected token.
+ * tests/actions.at (Printers and Destructors): Adjust.
+ * tests/calc.at (Calculator $1): Adjust.
+ * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
+ error message, do not report the parser accepts the error token in
+ that state.
+
+2002-07-30 Akim Demaille <akim@epita.fr>
+
+ Normalize conflict related messages.
+
+ * src/complain.h, src/complain.c (warn, complain): New.
+ * src/conflicts.c (conflicts_print): Use them.
+ (conflict_report_yacc): New, extracted from...
+ (conflicts_print): here.
+ * tests/conflicts.at, tests/existing.at: Adjust.
+
+2002-07-30 Akim Demaille <akim@epita.fr>
+
+ Report rules which are never reduced by the parser: those hidden
+ by conflicts.
+
+ * src/LR0.c (save_reductions): Don't make the final state too
+ different: save its reduction (accept) instead of having a state
+ without any action (no shift or goto, no reduce).
+ Note: the final state is now a ``regular'' state, i.e., the
+ parsers now contain `reduce 0' as default reduction.
+ Nevertheless, since they decide to `accept' when yystate =
+ final_state, they still will not reduce rule 0.
+ * src/print.c (print_actions, print_reduction): Adjust.
+ * src/output.c (action_row): Track reduced rules.
+ (token_actions): Report rules never reduced.
+ * tests/conflicts.at, tests/regression.at: Adjust.
+
+2002-07-30 Akim Demaille <akim@epita.fr>
+
+ `stage' was accidently included in a previous patch.
+ Initiate its autoconfiscation.
+
+ * configure.in: Look for malloc.h and sys/times.h.
+ * src/main.c (stage): Adjust.
+ Report only when trace_flag.
+
+2002-07-29 Akim Demaille <akim@epita.fr>
+
+ * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
+ state_number_t.
+ (errs_t): symbol_t*, not symbol_number_t.
+ (reductions_t): rule_t*, not rule_number_t.
+ (FOR_EACH_SHIFT): New.
+ * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
+ * src/print.c, src/print_graph.c: Adjust.
+
+2002-07-29 Akim Demaille <akim@epita.fr>
+
+ Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
+
+ * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
+ (endtoken, accept): these.
+ * src/reader.c (reader): Set endtoken's default tag to "$end".
+ Set undeftoken's tag to "$undefined" instead of "$undefined.".
+ * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
+ Adjust.
+
+2002-07-29 Akim Demaille <akim@epita.fr>
+
+ * src/reduce.c (reduce_grammar): When the language is empty,
+ complain about the start symbol, not the axiom.
+ Use its location.
+ * tests/reduce.at (Empty Language): New.
+
+2002-07-26 Akim Demaille <akim@epita.fr>
+
+ * src/reader.h, src/reader.c (gram_error): ... can't get
+ yycontrol without making too strong assumptions on the parser
+ itself.
+ * src/output.c (prepare_tokens): Use the real 0th value of
+ token_translations instead of `0'.
+ * src/parse-gram.y (yyerror): Don't rely on yycontrol being
+ visible here.
+ * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
+ for the time being: %locations ought to provide it to yyerror.
+
+2002-07-25 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
+ * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
+ * tests/regression.at (Web2c Actions): Adjust.
+
+2002-07-25 Akim Demaille <akim@epita.fr>
+
+ Stop storing rules from 1 to nrules + 1.
+
+ * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
+ * src/nullable.c, src/output.c, src/print.c, src/reader.c
+ * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
+ Iterate from 0 to nrules.
+ Use rule_number_as_item_number and item_number_as_rule_number.
+ Adjust to `derive' now containing possibly 0.
+ * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
+ Handle the `- 1' part in rule numbers from/to item numbers.
+ * src/conflicts.c (log_resolution): Fix the message which reversed
+ shift and reduce.
+ * src/output.c (action_row): Initialize default_rule to -1.
+ (token_actions): Adjust.
+ * tests/sets.at (Nullable, Firsts): Fix the previously bogus
+ expected output.
+ * tests/conflicts.at (Resolved SR Conflicts): Likewise.
+
+2002-07-25 Akim Demaille <akim@epita.fr>
+
+ * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
+ (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
+ (b4_c_knr_arg_decl): New.
+ * data/yacc.c: Use it to define yysymprint, yydestruct, and
+ yyreport_parse_error.
+
+2002-07-25 Akim Demaille <akim@epita.fr>
+
+ * data/yacc.c (yyreport_parse_error): New, extracted from...
+ (yyparse): here.
+ (yydestruct, yysymprint): Move above yyparse.
+ Be K&R compliant.
+
+2002-07-25 Akim Demaille <akim@epita.fr>
+
+ * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
+ replace...
+ (b4_sint_type, b4_uint_type): these.
+ * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
+ * tests/regression.at (Web2c Actions): Adjust.
+
+2002-07-25 Akim Demaille <akim@epita.fr>
+
+ * src/gram.h (TIEM_NUMBER_MAX): New.
+ (item_number_of_rule_number, rule_number_of_item_number): Rename
+ as...
+ (rule_number_as_item_number, item_number_as_rule_number): these.
+ Adjust dependencies.
+ * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
+ (VECTOR_NUMBER_MIN, state_number_to_vector_number)
+ (symbol_number_to_vector_number): New.
+ (order): Of vector_number_t* type.
+ (base_t, BASE_MAX, BASE_MIN): New.
+ (froms, tos, width, pos, check): Of base_t type.
+ (action_number_t, ACTION_MIN, ACTION_MAX): New.
+ (actrow): Of action_number_t type.
+ (conflrow): Of unsigned int type.
+ (table_ninf, base_ninf): New.
+ (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
+ (muscle_insert_int_table, muscle_insert_base_table)
+ (muscle_insert_rule_number_table): New.
+ (prepare_tokens): Output `toknum' as int_table.
+ (action_row): Returns a rule_number_t.
+ Use ACTION_MIN, not SHRT_MIN.
+ (token_actions): yydefact is rule_number_t*.
+ (table_ninf_remap): New.
+ (pack_table): Use it for `base' and `table'.
+ * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
+ replaced with...
+ (YYPACT_NINF, YYTABLE_NINF): these.
+ (yypact, yytable): Compute their types instead of hard-coded
+ `short'.
+ * tests/regression.at (Web2c Actions): Adjust.
+
+2002-07-19 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l (id): Can start with an underscore.
+
+2002-07-16 Akim Demaille <akim@epita.fr>
+
+ * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
+ Adjust all former `associativity' dependencies.
+ * src/symtab.c (symbol_new): Default associativity is `undef', not
+ `right'.
+ (symbol_check_alias_consistence): Adjust.
+
+2002-07-09 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo: Properly set the ``header'' part.
+ Use @dircategory ``GNU programming tools'' as per Texinfo's
+ documentation.
+ Use @copying.
+
+2002-07-09 Akim Demaille <akim@epita.fr>
+
+ * lib/quotearg.h: Protect against multiple inclusions.
+ * src/location.h (location_t): Add a `file' member.
+ (LOCATION_RESET, LOCATION_PRINT): Adjust.
+ * src/complain.c (warn_at, complain_at, fatal_at): Drop
+ `error_one_per_line' support.
+
+2002-07-09 Akim Demaille <akim@epita.fr>
+
+ * src/complain.h, src/complain.c (warn, complain): Remove, unused.
+ * src/reader.c (lineno): Remove.
+ Adjust all dependencies.
+ (get_merge_function): Take a location and use complain_at.
+ * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
+ * tests/regression.at (Invalid inputs, Mixing %token styles):
+ Adjust.
+
+2002-07-09 Akim Demaille <akim@epita.fr>
+
+ * src/parse-gram.y (rules_or_grammar_declaration): Add an error
+ recovery rule, and forbid extensions when --yacc.
+ (gram_error): Use complain_at.
+ * src/reader.c (reader): Exit if there were parse errors.
+
+2002-07-09 Akim Demaille <akim@epita.fr>
+
+ * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
+ (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
+ Reported by R Blake <blakers@mac.com>.
+
+2002-07-09 Akim Demaille <akim@epita.fr>
+
+ * data/yacc.c: Output the copyright notive in the header.
+
+2002-07-03 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (froms, tos): Are state_number_t.
+ (save_column): sp, sp1, and sp2 are state_number_t.
+ (prepare): Rename `final' as `final_state_number', `nnts' as
+ `nterms_number', `nrules' as `rules_number', `nstates' as
+ `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
+ unused.
+ * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
+ * data/lalr1.cc (nsym_): Remove, unused.
+
+2002-07-03 Akim Demaille <akim@epita.fr>
+
+ * src/lalr.h, src/lalr.c (goto_number_t): New.
+ * src/lalr.c (goto_list_t): New.
+ Propagate them.
+ * src/nullable.c (rule_list_t): New.
+ Propagate.
+ * src/types.h: Remove.
+
+2002-07-03 Akim Demaille <akim@epita.fr>
+
+ * src/closure.c (print_fderives): Use rule_rhs_print.
+ * src/derives.c (print_derives): Use rule_rhs_print.
+ (rule_list_t): New, replaces `shorts'.
+ (set_derives): Add comments.
+ * tests/sets.at (Nullable, Firsts): Adjust.
+
+2002-07-03 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (prepare_actions): Free `tally' and `width'.
+ (prepare_actions): Allocate and free `order'.
+ * src/symtab.c (symbols_free): Free `symbols'.
+ * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
+ * src/output.c (m4_invoke): Move to...
+ * src/scan-skel.l: here.
+ (<<EOF>>): Close yyout, and free its name.
+
+2002-07-03 Akim Demaille <akim@epita.fr>
+
+ Fix some memory leaks, and fix a bug: state 0 was examined twice.
+
+ * src/LR0.c (new_state): Merge into...
+ (state_list_append): this.
+ (new_states): Merge into...
+ (generate_states): here.
+ (set_states): Don't ensure a proper `errs' state member here, do it...
+ * src/conflicts.c (conflicts_solve): here.
+ * src/state.h, src/state.c: Comment changes.
+ (state_t): Rename member `shifts' as `transitions'.
+ Adjust all dependencies.
+ (errs_new): For consistency, also take the values as argument.
+ (errs_dup): Remove.
+ (state_errs_set): New.
+ (state_reductions_set, state_transitions_set): Assert that no
+ previous value was assigned.
+ (state_free): New.
+ (states_free): Use it.
+ * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
+ temporary storage: use `errs' and `nerrs' as elsewhere.
+ (set_conflicts): Allocate and free this `errs'.
+
+2002-07-02 Akim Demaille <akim@epita.fr>
+
+ * lib/libiberty.h: New.
+ * lib: Update the bitset implementation from upstream.
+ * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
+ * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
+ * src/main.c: Adjust bitset stats calls.
+
+2002-07-01 Paul Eggert <eggert@twinsun.com>
+
+ * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
+ char, so that negative chars don't collide with $.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ Have the GLR tests be `warning' checked, and fix the warnings.
+
+ * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
+ (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
+ (yyremoveDeletes): `yyi' and `yyj' are size_t.
+ Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
+ (yyaddDeferredAction): static.
+ (yyglrReduce): yyi, yyk, amd yyposn are size_t.
+ (yyreportParseError): yyprefix is const.
+ yytokenp is used only when verbose.
+ (yy__GNUC__): Replace with __GNUC__.
+ (yypdumpstack): yyi is size_t.
+ (yypreference): Un-yy local variables and arguments, to avoid
+ clashes with `yyr1'. Anyway, we are not in the user name space.
+ (yytname_size): be an int, as is compared with ints.
+ * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
+ Use them.
+ * tests/cxx-gram.at: Use quotation to protect $1.
+ Use AT_COMPILE to enable warnings hunts.
+ Prototype yylex and yyerror.
+ `Use' argc.
+ Include `string.h', not `strings.h'.
+ Produce and prototype stmtMerge only when used.
+ yylex takes a location.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ We spend a lot of time in quotearg, in particular when --verbose.
+
+ * src/symtab.c (symbol_get): Store a quoted version of the key.
+ (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
+ Adjust all callers.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/state.h (reductions_t): Rename member `nreds' as num.
+ (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
+ * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
+ (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
+ (shifts_to): Rename as...
+ (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
+ (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
+ (TRANSITION_IS_DISABLED, transitions_to): these.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/print.c (print_shifts, print_gotos): Merge into...
+ (print_transitions): this.
+ (print_transitions, print_errs, print_reductions): Align the
+ lookaheads columns.
+ (print_core, print_transitions, print_errs, print_state,
+ print_grammar): Output empty lines separator before, not after.
+ (state_default_rule_compute): Rename as...
+ (state_default_rule): this.
+ * tests/conflicts.at (Defaulted Conflicted Reduction),
+ (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
+ * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ Display items as we display rules.
+
+ * src/gram.h, src/gram.c (rule_lhs_print): New.
+ * src/gram.c (grammar_rules_partial_print): Use it.
+ * src/print.c (print_core): Likewise.
+ * tests/conflicts.at (Defaulted Conflicted Reduction),
+ (Unresolved SR Conflicts): Adjust.
+ (Unresolved SR Conflicts): Adjust and rename as...
+ (Resolved SR Conflicts): this, as was meant.
+ * tests/regression.at (Web2c Report): Adjust.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/print.c (state_default_rule_compute): New, extracted from...
+ (print_reductions): here.
+ Pessimize, but clarify the code.
+ * tests/conflicts.at (Defaulted Conflicted Reduction): New.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (action_row): Let default_rule be always a rule
+ number.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/closure.c (print_firsts, print_fderives, closure):
+ Use BITSET_EXECUTE.
+ * src/lalr.c (lookaheads_print): Likewise.
+ * src/state.c (state_rule_lookaheads_print): Likewise.
+ * src/print_graph.c (print_core): Likewise.
+ * src/print.c (print_reductions): Likewise.
+ * src/output.c (action_row): Likewise.
+ Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/print_graph.c: Use report_flag.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
+ to...
+ * src/relation.h, src/relation.c (traverse, relation_digraph)
+ (relation_print, relation_transpose): New.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/state.h, src/state.c (shifts_to): New.
+ * src/lalr.c (build_relations): Use it.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
+ (item_number_of_rule_number, rule_number_of_item_number): New.
+ * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
+ * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
+ * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
+ Propagate their use.
+ Much remains to be done, in particular wrt `shorts' from types.h.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.c (symbol_new): Initialize the `printer' member.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/LR0.c (save_reductions): Remove, replaced by...
+ * src/state.h, src/state.c (state_reductions_set): New.
+ (reductions, errs): Rename as...
+ (reductions_t, errs_t): these.
+ Adjust all dependencies.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/LR0.c (state_list_t, state_list_append): New.
+ (first_state, last_state): Now symbol_list_t.
+ (this_state): Remove.
+ (new_itemsets, append_states, save_reductions): Take a state_t as
+ argument.
+ (set_states, generate_states): Adjust.
+ (save_shifts): Remove, replaced by...
+ * src/state.h, src/state.c (state_shifts_set): New.
+ (shifts): Rename as...
+ (shifts_t): this.
+ Adjust all dependencies.
+ * src/state.h (state_t): Remove the `next' member.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
+ escaped in slot 0.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ Use hash.h for the state hash table.
+
+ * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
+ (allocate_storage): Use state_hash_new.
+ (free_storage): Use state_hash_free.
+ (new_state, get_state): Adjust.
+ * src/lalr.h, src/lalr.c (states): Move to...
+ * src/states.h (state_t): Remove the `link' member, no longer
+ used.
+ * src/states.h, src/states.c: here.
+ (state_hash_new, state_hash_free, state_hash_lookup)
+ (state_hash_insert, states_free): New.
+ * src/states.c (state_table, state_compare, state_hash): New.
+ * src/output.c (output_actions): Do not free states now, since we
+ still need to know the final_state number in `prepare', called
+ afterwards. Do it...
+ * src/main.c (main): here: call states_free after `output'.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/state.h, src/state.c (state_new): New, extracted from...
+ * src/LR0.c (new_state): here.
+ * src/state.h (STATE_ALLOC): Move to...
+ * src/state.c: here.
+ * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
+ * src/state.h, src/state.c: here.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/reader.c (gensym): Rename as...
+ * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
+ (getsym): Rename as...
+ (symbol_get): this.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
+ * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
+ * src/output.c, src/print.c, src/print_graph.c: Propagate.
+ * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
+
+2002-06-30 Akim Demaille <akim@epita.fr>
+
+ Make the test suite pass with warnings checked.
+
+ * tests/actions.at (Printers and Destructors): Improve.
+ Avoid unsigned vs. signed issues.
+ * tests/calc.at: Don't exercise the scanner here, do it...
+ * tests/input.at (Torturing the Scanner): here.
+
+2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ * data/glr.c: Correct typo in Emacs-mode directive. Slightly
+ reorganize first lines parallel to yacc.c.
+
+2002-06-28 Akim Demaille <akim@epita.fr>
+
+ * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
+ (b4_token_enum, b4_token_defines): New, factored from...
+ * data/lalr1.cc, data/yacc.c, glr.c: here.
+
+2002-06-28 Akim Demaille <akim@epita.fr>
+
+ * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
+ unused variables.
+ * src/output.c (merger_output): static.
+
+2002-06-28 Akim Demaille <akim@epita.fr>
+
+ * 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.
+
+2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ Accumulated changelog for new GLR parsing features.
+
+ * src/conflicts.c (count_total_conflicts): Change name to
+ conflicts_total_count.
+ * src/conflicts.h: Ditto.
+ * src/output.c (token_actions): Use the new name.
+ (output_conflicts): Change conflp => conflict_list_heads, and
+ confl => conflict_list for better readability.
+ * data/glr.c: Use the new names.
+ * NEWS: Add self to GLR announcement.
+
+ * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
+
+ * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
+ Akim Demaille.
+
+ * data/bison.glr: Change name to glr.c
+ * data/glr.c: Renamed from bison.glr.
+ * data/Makefile.am: Add glr.c
+
+ * 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.
+
+ Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ * data/bison.glr: Be sure to restore the
+ current #line when returning to the skeleton contents after having
+ exposed the input file's #line.
+
+ Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ * data/bison.glr: Bring up to date with changes to bison.simple.
+
+ Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ * data/bison.glr: Correct definitions that use b4_prefix.
+ Various reformatting.
+ (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
+ (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
+ yytokenp argument; now part of stack.
+ (yychar): Define to behave as documented.
+ (yyclearin): Ditto.
+
+ Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ * src/reader.h: Add declaration for free_merger_functions.
+
+ * src/reader.c (merge_functions): New variable.
+ (get_merge_function): New function.
+ (free_merger_functions): New function.
+ (readgram): Check for %prec that is not followed by a symbol.
+ Handle %dprec and %merge declarations.
+ (packgram): Initialize dprec and merger fields in rules array.
+
+ * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
+ conflict_list_cnt, conflict_list_free): New variables.
+ (table_grow): Also grow conflict_table.
+ (prepare_rules): Output dprec and merger tables.
+ (conflict_row): New function.
+ (action_row): Output conflict lists for GLR parser. Don't use
+ default reduction in conflicted states for GLR parser so that there
+ are spaces for the conflict lists.
+ (save_row): Also save conflict information.
+ (token_actions): Allocate conflict list.
+ (merger_output): New function.
+ (pack_vector): Pack conflict table, too.
+ (output_conflicts): New function to output yyconflp and yyconfl.
+ (output_check): Allocate conflict_tos.
+ (output_actions): Output conflict tables, also.
+ (output_skeleton): Output b4_mergers definition.
+ (prepare): Output b4_max_rhs_length definition.
+ Use 'bison.glr' as default skeleton for GLR parsers.
+
+ * src/gram.c (glr_parser): New flag.
+ (grammar_free): Call free_merger_functions.
+
+ * src/conflicts.c (count_rr_conflicts): Augment to optionally count
+ all pairs of conflicting reductions, rather than just all tokens
+ causing conflicts. Needed to size conflict tables.
+ (conflicts_output): Modify call to count_rr_conflicts for new
+ interface.
+ (conflicts_print): Ditto.
+ (count_total_conflicts): New function.
+
+ * src/reader.h (merger_list): New type.
+ (merge_functions): New variable.
+
+ * src/lex.h (tok_dprec, tok_merge): New token types.
+
+ * src/gram.h (rule_s): Add dprec and merger fields.
+ (glr_parser): New flag.
+
+ * src/conflicts.h (count_total_conflicts): New function.
+
+ * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
+
+ * doc/bison.texinfo (Generalized LR Parsing): New section.
+ (GLR Parsers): New section.
+ (Language and Grammar): Mention GLR parsing.
+ (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
+ Correct typo ("tge" -> "the").
+
+ * data/bison.glr: New skeleton for GLR parsing.
+
+ * tests/cxx-gram.at: New tests for GLR parsing.
+
+ * tests/testsuite.at: Include cxx-gram.at.
+
+ * tests/Makefile.am: Add cxx-gram.at.
+
+ * src/parse-gram.y:
+
+ * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
+
+ * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
+
+2002-06-27 Akim Demaille <akim@epita.fr>
+
+ * src/options.h, src/options.c: Remove.
+ * src/getargs.c (short_options, long_options): New.
+
+2002-06-27 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple, data/bison.c++: Rename as...
+ * data/yacc.c, data/lalr1.cc: these.
+ * doc/bison.texinfo (Environment Variables): Remove.
+
+2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
+
+ * src/getargs.c (report_argmatch): Initialize strtok().
+
+2002-06-20 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple (b4_symbol_actions): New, replaces...
+ (b4_symbol_destructor, b4_symbol_printer): these.
+ (yysymprint): Be sure to call YYPRINT only for tokens, and using
+ user token numbers.
+
+2002-06-20 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple (yydestructor): Rename as...
+ (yydestruct): this.
+
+2002-06-20 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.h, src/symtab.c (symbol_type_set)
+ (symbol_destructor_set, symbol_precedence_set): The location is
+ the last argument.
+ Adjust all callers.
+
+2002-06-20 Akim Demaille <akim@epita.fr>
+
+ * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
+ internals.
+ * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
+ Takes a location.
+ * src/symtab.h, src/symtab.c (symbol_class_set)
+ (symbol_user_token_number_set): Likewise.
+ Adjust all callers.
+ Promote complain_at.
+ * tests/input.at (Type Clashes): Adjust.
+
+2002-06-20 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple (YYLEX): Fix the declaration when
+ %pure-parser.
+
+2002-06-20 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple (yysymprint): Don't print the token number,
+ just its name.
+ * tests/actions.at (Destructors): Rename as...
+ (Printers and Destructors): this.
+ Also exercise %printer.
+
+2002-06-20 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple (YYDSYMPRINT): New.
+ Use it to remove many of the #if YYDEBUG/if (yydebug).
+
+2002-06-20 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.h, src/symtab.c (symbol_t): printer and
+ printer_location are new members.
+ (symbol_printer_set): New.
+ * src/parse-gram.y (PERCENT_PRINTER): New token.
+ Handle its associated rule.
+ * src/scan-gram.l: Adjust.
+ (handle_destructor_at, handle_destructor_dollar): Rename as...
+ (handle_symbol_code_at, handle_symbol_code_dollar): these.
+ * src/output.c (symbol_printers_output): New.
+ (output_skeleton): Call it.
+ * data/bison.simple (yysymprint): New. Cannot be named yyprint
+ since there are already many grammar files with a user `yyprint'.
+ Replace the calls to YYPRINT to calls to yysymprint.
+ * tests/calc.at: Adjust.
+ * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
+ taking advantage of parser very internal details (stack size!).
+
+2002-06-20 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l: Complete the scanner with the missing patterns
+ to pacify Flex.
+ Use `quote' and `symbol_tag_get' where appropriate.
+
+2002-06-19 Akim Demaille <akim@epita.fr>
+
+ * tests/actions.at (Destructors): Augment to test locations.
+ * data/bison.simple (yydestructor): Pass it the current location
+ if locations are enabled.
+ Prototype only when __STDC__ or C++.
+ Change the argument names to move into the yy name space: there is
+ user code here.
+
+2002-06-19 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple (b4_pure_if): New.
+ Use it instead of #ifdef YYPURE.
+
+2002-06-19 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple (b4_location_if): New.
+ Use it instead of #ifdef YYLSP_NEEDED.
+
+2002-06-19 Akim Demaille <akim@epita.fr>
+
+ Prepare @$ in %destructor, but currently don't bind it in the
+ skeleton, as %location use is not cleaned up yet.
+
+ * src/scan-gram.l (handle_dollar, handle_destructor_at)
+ (handle_action_at): New.
+ (handle_at, handle_action_dollar, handle_destructor_dollar): Take
+ a braced_code_t and a location as additional arguments.
+ (handle_destructor_dollar): Instead of requiring `b4_eval', just
+ unquote one when outputting `b4_dollar_dollar'.
+ Adjust callers.
+ * data/bison.simple (b4_eval): Remove.
+ (b4_symbol_destructor): Adjust.
+ * tests/input.at (Invalid @n): Adjust.
+
+2002-06-19 Zack Weinberg <zack@codesourcery.com>
+
+ * doc/bison.texinfo: Document ability to have multiple
+ prologue sections.
+
+2002-06-18 Akim Demaille <akim@epita.fr>
+
+ * src/files.c (compute_base_names): When computing the output file
+ names from the input file name, strip the directory part.
+
+2002-06-18 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple.new: Comment changes.
+ Reported by Andreas Schwab.
+
+2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
+
+ * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
+ there are no `label `yyoverflowlab' defined but not used' warnings
+ when yyoverflow is defined.
+
+2002-06-18 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
+ new member.
+ (symbol_destructor_set): Adjust.
+ * src/output.c (symbol_destructors_output): Output the destructor
+ locations.
+ Output the symbol name.
+ * data/bison.simple (b4_symbol_destructor): Adjust.
+
+2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
+ and Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
+ what's left on the stack when the error recovery hits EOF.
+ * tests/actions.at (Destructors): Complete to exercise this case.
+
+2002-06-17 Akim Demaille <akim@epita.fr>
+
+ * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
+ arguments is really empty, not only equal to `[]'.
+ * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
+ member.
+ (symbol_destructor_set): New.
+ * src/output.c (symbol_destructors_output): New.
+ * src/reader.h (brace_code_t, current_braced_code): New.
+ * src/scan-gram.l (BRACED_CODE): Use it to branch on...
+ (handle_dollar): Rename as...
+ (handle_action_dollar): this.
+ (handle_destructor_dollar): New.
+ * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
+ (grammar_declaration): Use it.
+ * data/bison.simple (yystos): Is always defined.
+ (yydestructor): New.
+ * tests/actions.at (Destructors): New.
+ * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
+
+2002-06-17 Akim Demaille <akim@epita.fr>
+
+ * src/symlist.h, src/symlist.c (symbol_list_length): New.
+ * src/scan-gram.l (handle_dollar, handle_at): Compute the
+ rule_length only when needed.
+ * src/output.c (actions_output, token_definitions_output): Output
+ the full M4 block.
+ * src/symtab.c: Don't access directly to the symbol tag, use
+ symbol_tag_get.
+ * src/parse-gram.y: Use symbol_list_free.
+
+2002-06-17 Akim Demaille <akim@epita.fr>
+
+ * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
+ (symbol_list_prepend, get_type_name): Move to...
+ * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
+ (symbol_list_prepend, symbol_list_n_type_name_get): here.
+ Adjust all callers.
+ (symbol_list_free): New.
+ * src/scan-gram.l (handle_dollar): Takes a location.
+ * tests/input.at (Invalid $n): Adjust.
+
+2002-06-17 Akim Demaille <akim@epita.fr>
+
+ * src/reader.h, src/reader.c (symbol_list_new): Export it.
+ (symbol_list_prepend): New.
+ * src/parse-gram.y (%union): `list' is a new member.
+ (symbols.1): New, replaces...
+ (terms_to_prec.1, nterms_to_type.1): these.
+ * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
+ Take a location as additional argument.
+ Adjust all callers.
+
+2002-06-15 Akim Demaille <akim@epita.fr>
+
+ * src/parse-gram.y: Move %token in the declaration section so that
+ we don't depend upon CVS Bison.
+
+2002-06-15 Akim Demaille <akim@epita.fr>
+
+ * src/state.h, src/state.c (state_rule_lookaheads_print): New.
+ * src/print.c (print_core): Use it.
+
+2002-06-15 Akim Demaille <akim@epita.fr>
+
+ * src/conflicts.c (log_resolution): Accept the rule involved in
+ the sr conflicts instead of the lookahead number that points to
+ that rule.
+ (flush_reduce): Accept the current lookahead vector as argument,
+ instead of the index in LA.
+ (resolve_sr_conflict): Accept the current number of lookahead
+ bitset to consider for the STATE, instead of the index in LA.
+ (set_conflicts): Adjust.
+ * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
+
+2002-06-15 Akim Demaille <akim@epita.fr>
+
+ * src/state.h (state_t): Replace the `lookaheadsp' member, a
+ short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
+ Adjust all dependencies.
+ * src/lalr.c (initialize_lookaheads): Split into...
+ (states_lookaheads_count, states_lookaheads_initialize): these.
+ (lalr): Adjust.
+
+2002-06-15 Akim Demaille <akim@epita.fr>
+
+ * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
+ out of...
+ (grammar_rules_print): here.
+ * src/reduce.c (reduce_output): Use it.
+ * tests/reduce.at (Useless Rules, Reduced Automaton)
+ (Underivable Rules): Adjust.
+
+2002-06-15 Akim Demaille <akim@epita.fr>
+
+ Copy BYacc's nice way to report the grammar.
+
+ * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
+ New.
+ Don't print the rules' location, it is confusing and useless.
+ (rule_print): Use grammar_rhs_print.
+ * src/print.c (print_grammar): Use grammar_rules_print.
+
+2002-06-15 Akim Demaille <akim@epita.fr>
+
+ Complete and rationalize `useless thing' warnings.
+
+ * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
+ (symbol_tag_print): New.
+ Use them everywhere in place of accessing directly the tag member.
+ * src/gram.h, src/gram.c (rule_print): New.
+ Use it where a rule used to be printed `by hand'.
+ * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
+ (reduce_grammar_tables): Report the useless rules.
+ (reduce_print): Useless things are a warning, not an error.
+ Report it as such.
+ * tests/reduce.at (Useless Nonterminals, Useless Rules):
+ (Reduced Automaton, Underivable Rules): Adjust.
+ * tests/regression.at (Web2c Report, Web2c Report): Adjust.
+ * tests/conflicts.at (Unresolved SR Conflicts)
+ (Solved SR Conflicts): Adjust.
+
+2002-06-15 Akim Demaille <akim@epita.fr>
+
+ Let symbols have a location.
+
+ * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
+ (getsym): Adjust.
+ Adjust all callers.
+ * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
+ Use location_t, not int.
+ * src/symtab.c (symbol_check_defined): Take advantage of the
+ location.
+ * tests/regression.at (Invalid inputs): Adjust.
+
+2002-06-15 Akim Demaille <akim@epita.fr>
+
+ * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
+ (input): Don't try to initialize yylloc here, do it in the
+ scanner.
+ * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
+ * src/gram.h (rule_t): Change line and action_line into location
+ and action_location, of location_t type.
+ Adjust all dependencies.
+ * src/location.h, src/location.c (empty_location): New.
+ * src/reader.h, src/reader.c (grammar_start_symbol_set)
+ (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
+ (grammar_current_rule_symbol_append)
+ (grammar_current_rule_action_append): Expect a location as argument.
+ * src/reader.c (grammar_midrule_action): Adjust to attach an
+ action's location as dummy symbol location.
+ * src/symtab.h, src/symtab.c (startsymbol_location): New.
+ * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
+ the line numbers.
+
+2002-06-14 Akim Demaille <akim@epita.fr>
+
+ Grammar declarations may be found in the grammar section.
+
+ * src/parse-gram.y (rules_or_grammar_declaration): New.
+ (declarations): Each declaration may end with a semicolon, not
+ just...
+ (grammar_declaration): `"%union"'.
+ (grammar): Branch to rules_or_grammar_declaration.
+
+2002-06-14 Akim Demaille <akim@epita.fr>
+
+ * src/main.c (main): Invoke scanner_free.
+
+2002-06-14 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (m4_invoke): Extracted from...
+ (output_skeleton): here.
+ Free tempfile.
+
+2002-06-14 Akim Demaille <akim@epita.fr>
+
+ * src/parse-gram.y (directives, directive, gram)
+ (grammar_directives, precedence_directives, precedence_directive):
+ Rename as...
+ (declarations, declaration, grammar, grammar_declaration)
+ (precedence_declaration, precedence_declarator): these.
+ (symbol_declaration): New.
+
+2002-06-14 Akim Demaille <akim@epita.fr>
+
+ * src/files.c (action_obstack): Remove, unused.
+ (output_obstack): Remove it, and all its dependencies, as it is no
+ longer needed.
+ * src/reader.c (epilogue_set): Build the epilogue in the
+ muscle_obstack.
+ * src/output.h, src/output.c (muscle_obstack): Move to...
+ * src/muscle_tab.h, src/muscle_tab.h: here.
+ (muscle_init): Initialize muscle_obstack.
+ (muscle_free): New.
+ * src/main.c (main): Call it.
+
+2002-06-14 Akim Demaille <akim@epita.fr>
+
+ * src/location.h: New, extracted from...
+ * src/reader.h: here.
+ * src/Makefile.am (noinst_HEADERS): Merge into
+ (bison_SOURCES): this.
+ Add location.h.
+ * src/parse-gram.y: Use location_t instead of Bison's.
+ * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
+ Use location_t instead of ints.
+
+2002-06-14 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple, data/bison.c++: Be sure to restore the
+ current #line when returning to the skeleton contents after having
+ exposed the input file's #line.
+
+2002-06-12 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
+ eager.
+ * tests/actions.at (Exotic Dollars): New.
+
+2002-06-12 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
+ ['"/] too eagerly.
+ * tests/input.at (Torturing the Scanner): New.
+
+2002-06-11 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
+ [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
+ [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
+ * src/reader.h, src/scan-gram.l (scanner_initialize): this.
+ * src/reader.c (reader): Use it.
+
+2002-06-11 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
+ Adjust all callers.
+ (scanner_last_string_free): New.
+
+2002-06-11 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
+ (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
+ (last_string, YY_OBS_FREE): New.
+ Use them when returning an ID.
+
+2002-06-11 Akim Demaille <akim@epita.fr>
+
+ Have Bison grammars parsed by a Bison grammar.
+
+ * src/reader.c, src/reader.h (prologue_augment): New.
+ * src/reader.c (copy_definition): Remove.
+
+ * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
+ (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
+ (grammar_current_rule_prec_set, grammar_current_rule_check)
+ (grammar_current_rule_symbol_append)
+ (grammar_current_rule_action_append): Export.
+ * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
+ (symbol_list_action_append): Remove.
+ Hook the routines from reader.
+ * src/scan-gram.l: In INITIAL, characters and strings are tokens.
+ * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
+
+ * src/reader.c (read_declarations): Remove, unused.
+
+ * src/parse-gram.y: Handle the epilogue.
+ * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
+ (grammar_start_symbol_set): this.
+ * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
+ * src/reader.c (readgram): Remove, unused.
+ (reader): Adjust to insert eoftoken and axiom where appropriate.
+
+ * src/reader.c (copy_dollar): Replace with...
+ * src/scan-gram.h (handle_dollar): this.
+ * src/parse-gram.y: Remove `%thong'.
+
+ * src/reader.c (copy_at): Replace with...
+ * src/scan-gram.h (handle_at): this.
+
+ * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
+ New.
+
+ * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
+ time being.
+
+ * src/reader.h, src/reader.c (grammar_rule_end): New.
+
+ * src/parse.y (current_type, current_class): New.
+ Implement `%nterm', `%token' support.
+ Merge `%term' into `%token'.
+ (string_as_id): New.
+ * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
+ type name.
+
+ * src/parse-gram.y: Be sure to handle properly the beginning of
+ rules.
+
+ * src/parse-gram.y: Handle %type.
+ * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
+
+ * src/parse-gram.y: More directives support.
+ * src/options.c: No longer handle source directives.
+
+ * src/parse-gram.y: Fix %output.
+
+ * src/parse-gram.y: Handle %union.
+ Use the prologue locations.
+ * src/reader.c (parse_union_decl): Remove.
+
+ * src/reader.h, src/reader.c (epilogue_set): New.
+ * src/parse-gram.y: Use it.
+
+ * data/bison.simple, data/bison.c++: b4_stype is now either not
+ defined, then default to int, or to the contents of %union,
+ without `union' itself.
+ Adjust.
+ * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
+
+ * src/output.c (actions_output): Don't output braces, as they are
+ already handled by the scanner.
+
+ * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
+ characters to themselves.
+
+ * tests/reduce.at (Reduced Automaton): End the grammars with %% so
+ that the epilogue has a proper #line.
+
+ * src/parse-gram.y: Handle precedence/associativity.
+
+ * src/symtab.c (symbol_precedence_set): Requires the symbol to be
+ a terminal.
+ * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
+ * tests/calc.at: Do not use `%token "foo"' as it makes not sense
+ at all to define terminals that cannot be emitted.
+
+ * src/scan-gram.l: Escape M4 characters.
+
+ * src/scan-gram.l: Working properly with escapes in user
+ strings/characters.
+
+ * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
+ (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
+ grammar.
+ Use more modest sizes, as for the time being the parser does not
+ release memory, and therefore the process swallows a huge amount
+ of memory.
+
+ * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
+ stricter %token grammar.
+
+ * src/symtab.h (associativity): Add `undef_assoc'.
+ (symbol_precedence_set): Do nothing when passed an undef_assoc.
+ * src/symtab.c (symbol_check_alias_consistence): Adjust.
+
+ * tests/regression.at (Invalid %directive): Remove, as it is now
+ meaningless.
+ (Invalid inputs): Adjust to the new error messages.
+ (Token definitions): The new grammar doesn't allow too many
+ eccentricities.
+
+ * src/lex.h, src/lex.c: Remove.
+ * src/reader.c (lastprec, skip_to_char, read_signed_integer)
+ (copy_character, copy_string2, copy_string, copy_identifier)
+ (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
+ (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
+ (parse_action): Remove.
+ * po/POTFILES.in: Adjust.
+
+2002-06-11 Akim Demaille <akim@epita.fr>
+
+ * src/reader.c (parse_action): Don't store directly into the
+ rule's action member: return the action as a string.
+ Don't require `rule_length' as an argument: compute it.
+ (grammar_current_rule_symbol_append)
+ (grammar_current_rule_action_append): New, eved out from
+ (readgram): here.
+ Remove `action_flag', `rulelength', unused now.
+
+2002-06-11 Akim Demaille <akim@epita.fr>
+
+ * src/reader.c (grammar_current_rule_prec_set).
+ (grammar_current_rule_check): New, eved out from...
+ (readgram): here.
+ Remove `xaction', `first_rhs': useless.
+ * tests/input.at (Type clashes): New.
+ * tests/existing.at (GNU Cim Grammar): Adjust.
+
+2002-06-11 Akim Demaille <akim@epita.fr>
+
+ * src/reader.c (grammar_midrule_action): New, Eved out from
+ (readgram): here.
+
+2002-06-11 Akim Demaille <akim@epita.fr>
+
+ * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
+ New.
+ (readgram): Use them as replacement of inlined code, crule and
+ crule1.
+
+2002-06-11 Akim Demaille <akim@epita.fr>
+
+ * src/reader.c (grammar_end, grammar_symbol_append): New.
+ (readgram): Use them.
+ Make the use of `p' as local as possible.
+
+2002-06-10 Akim Demaille <akim@epita.fr>
+
+ GCJ's parser requires the tokens to be defined before the prologue.
+
+ * data/bison.simple: Output the token definition before the user's
+ prologue.
+ * tests/regression.at (Braces parsing, Duplicate string)
+ (Mixing %token styles): Check the output from bison.
+ (Early token definitions): New.
+
+2002-06-10 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.c (symbol_user_token_number_set): Don't complain when
+ assigning twice the same user number to a token, so that we can
+ use it in...
+ * src/lex.c (lex): here.
+ Also use `symbol_class_set' instead of hand written code.
+ * src/reader.c (parse_assoc_decl): Likewise.
+
+2002-06-10 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.c, src/symtab.c (symbol_class_set)
+ (symbol_user_token_number_set): New.
+ * src/reader.c (parse_token_decl): Use them.
+ Use a switch instead of ifs.
+ Use a single argument.
+
+2002-06-10 Akim Demaille <akim@epita.fr>
+
+ Remove `%thong' support as it is undocumented, unused, duplicates
+ `%token's job, and creates useless e-mail traffic with people who
+ want to know what it is, why it is undocumented, unused, and
+ duplicates `%token's job.
+
+ * src/reader.c (parse_thong_decl): Remove.
+ * src/options.c (option_table): Remove "thong".
+ * src/lex.h (tok_thong): Remove.
+
+2002-06-10 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.c, src/symtab.c (symbol_type_set)
+ (symbol_precedence_set): New.
+ * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
+ (value_components_used): Remove, unused.
+
+2002-06-09 Akim Demaille <akim@epita.fr>
+
+ Move symbols handling code out of the reader.
+
+ * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
+ (axiom): Move to...
+ * src/symtab.h, src/symtab.c: here.
+
+ * src/gram.c (start_symbol): Remove: use startsymbol->number.
+ * src/reader.c (startval): Rename as...
+ * src/symtab.h, src/symtab.c (startsymbol): this.
+ * src/reader.c: Adjust.
+
+ * src/reader.c (symbol_check_defined, symbol_make_alias)
+ (symbol_check_alias_consistence, symbol_pack, symbol_translation)
+ (token_translations_init)
+ Move to...
+ * src/symtab.c: here.
+ * src/reader.c (packsymbols): Move to...
+ * src/symtab.h, src/symtab.c (symbols_pack): here.
+ * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
+ argument.
+
+2002-06-03 Akim Demaille <akim@epita.fr>
+
+ * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
+ then statements.
+
+2002-06-03 Akim Demaille <akim@epita.fr>
+
+ * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
+ structs with non literals.
+ * src/scan-skel.l: never-interactive.
+ * src/conflicts.c (enum conflict_resolution_e): No trailing
+ comma.
+ * src/getargs.c (usage): Split long literal strings.
+ Reported by Hans Aberg.
+
+2002-05-28 Akim Demaille <akim@epita.fr>
+
+ * data/bison.c++: Use C++ ostreams.
+ (cdebug_): New member.
+
+2002-05-28 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (output_skeleton): Be sure to allocate enough room
+ for `/' _and_ for `\0' in full_skeleton.
+
+2002-05-28 Akim Demaille <akim@epita.fr>
+
+ * data/bison.c++: Catch up with bison.simple:
+ 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+ and Paul Eggert <eggert@twinsun.com>: `error' handing.
+ 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
+ and popping traces.
+
+2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ * src/output.c (output_skeleton): Put an explicit path in front of
+ the skeleton file name, rather than relying on the -I directory,
+ to partially alleviate effects of having a skeleton file lying around
+ in the current directory.
+
+2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ * src/conflicts.c (log_resolution): Correct typo:
+ obstack_printf should be obstack_fgrow1.
+
+2002-05-26 Akim Demaille <akim@epita.fr>
+
+ * src/state.h (state_t): `solved_conflicts' is a new member.
+ * src/LR0.c (new_state): Set it to 0.
+ * src/conflicts.h, src/conflicts.c (print_conflicts)
+ (free_conflicts, solve_conflicts): Rename as...
+ (conflicts_print, conflicts_free, conflicts_solve): these.
+ Adjust callers.
+ * src/conflicts.c (enum conflict_resolution_e)
+ (solved_conflicts_obstack): New, used by...
+ (log_resolution): this.
+ Adjust to attach the conflict resolution to each state.
+ Complete the description with the precedence/associativity
+ information.
+ (resolve_sr_conflict): Adjust.
+ * src/print.c (print_state): Output its solved_conflicts.
+ * tests/conflicts.at (Unresolved SR Conflicts)
+ (Solved SR Conflicts): Exercise --report=all.
+
+2002-05-26 Akim Demaille <akim@epita.fr>
+
+ * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
+ * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
+ * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
+ (token_number_t, item_number_as_token_number)
+ (token_number_as_item_number, muscle_insert_token_number_table):
+ Rename as...
+ (symbol_number_t, item_number_as_symbol_number)
+ (symbol_number_as_item_number, muscle_insert_symbol_number_table):
+ these, since it is more appropriate.
+
+2002-05-26 Akim Demaille <akim@epita.fr>
+
+ * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
+ `Error:' lines.
+ * data/bison.simple (yystos) [YYDEBUG]: New.
+ (yyparse) [YYDEBUG]: Display the symbols which are popped during
+ error recovery.
+ * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
+
+2002-05-25 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo (Debugging): Split into...
+ (Tracing): this new section, its former contents, and...
+ (Understanding): this new section.
+ * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
+ by...
+ (report_flag): this.
+ Adjust all dependencies.
+ (report_args, report_types, report_argmatch): New.
+ (usage, getargs): Report/support -r, --report.
+ * src/options.h
+ (struct option_table_struct): Rename as..,
+ (struct option_table_s): this.
+ Rename the `set_flag' member to `flag' to match with getopt_long's
+ struct.
+ * src/options.c (option_table): Split verbose into an entry for
+ %verbose, and another for --verbose.
+ Support --report/-r, so remove -r from the obsolete --raw.
+ * src/print.c: Attach full item sets and lookaheads reports to
+ report_flag instead of trace_flag.
+ * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
+
+2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+ and Paul Eggert <eggert@twinsun.com>
+
+ * data/bison.simple (yyparse): Correct error handling to conform to
+ POSIX and yacc. Specifically, after syntax error is discovered,
+ do not reduce further before shifting the error token.
+ Clean up the code a bit by removing the labels yyerrdefault,
+ yyerrhandle, yyerrpop.
+ * NEWS: Document the above.
+
+2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ * data/bison.simple (yyr1): Don't use yy_token_number_type as element
+ type; it isn't always big enough, since it doesn't necessarily
+ include non-terminals.
+ (yytranslate): Expand definition of yy_token_number_type, so that
+ the latter can be removed.
+ (yy_token_number_type): Remove, only one use.
+ * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
+ don't use TokenNumberType as element type.
+
+ * tests/regression.at: Modify expected output to agree with change
+ to yyr1 and yytranslate.
+
+2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
+
+ * src/reader.c (parse_action): Use copy_character instead of
+ obstack_1grow.
+
+2002-05-13 Akim Demaille <akim@epita.fr>
+
+ * tests/regression.at (Token definitions): Prototype yylex and
+ yyerror.
+
+2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+
+ * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
+ * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
+ 32-bit arithmetic.
+ * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
+
+2002-05-07 Akim Demaille <akim@epita.fr>
+
+ * tests/synclines.at: Be sure to prototype yylex and yyerror to
+ avoid GCC warnings.
+
+2002-05-07 Akim Demaille <akim@epita.fr>
+
+ Kill GCC warnings.
+
+ * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
+ over the RHS of each rule.
+ * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
+ * src/state.h (state_t): Member `nitems' is unsigned short.
+ * src/LR0.c (get_state): Adjust.
+ * src/reader.c (packgram): Likewise.
+ * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
+ `Type'.
+ (muscle_insert_int_table): Remove, unused.
+ (prepare_rules): Remove `max'.
+
+2002-05-06 Akim Demaille <akim@epita.fr>
+
+ * src/closure.c (print_firsts): Display of the symbol tags.
+ (bitmatrix_print): Move to...
+ * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
+ here.
+ * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
+
+2002-05-06 Akim Demaille <akim@epita.fr>
+
+ * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
+ hash_do_for_each.
+
+2002-05-06 Akim Demaille <akim@epita.fr>
+
+ * src/LR0.c (new_state, get_state): Instead of using the global
+ `kernel_size' and `kernel_base', have two new arguments:
+ `core_size' and `core'.
+ Adjust callers.
+
+2002-05-06 Akim Demaille <akim@epita.fr>
+
+ * src/reader.c (packgram): No longer end `ritem' with a 0
+ sentinel: it is not used.
+
+2002-05-05 Akim Demaille <akim@epita.fr>
+
+ New experimental feature: display the lookaheads in the report and
+ graph.
+
+ * src/print (print_core): When --trace-flag, display the rules
+ lookaheads.
+ * src/print_graph.c (print_core): Likewise.
+ Swap the arguments.
+ Adjust caller.
+
+2002-05-05 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (Many lookaheads): New test.
+
+2002-05-05 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
+ (GENERATE_MUSCLE_INSERT_TABLE): this.
+ (output_int_table, output_unsigned_int_table, output_short_table)
+ (output_token_number_table, output_item_number_table): Replace with...
+ (muscle_insert_int_table, muscle_insert_unsigned_int_table)
+ (muscle_insert_short_table, muscle_insert_token_number_table)
+ (muscle_insert_item_number_table): these.
+ Adjust all callers.
+ (prepare_tokens): Don't free `translations', since...
+ * src/reader.h, src/reader.c (grammar_free): do it.
+ Move to...
+ * src/gram.h, src/gram.c (grammar_free): here.
+ * data/bison.simple, data/bison.c++: b4_token_number_max is now
+ b4_translate_max.
+
+2002-05-05 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (output_unsigned_int_table): New.
+ (prepare_rules): `i' is unsigned.
+ `prhs', `rline', `r2' are unsigned int.
+ Rename muscle `rhs_number_max' as `rhs_max'.
+ Output muscles `prhs_max', `rline_max', and `r2_max'.
+ Free rline and r1.
+ * data/bison.simple, data/bison.c++: Adjust to use these muscles
+ to compute types instead of constant types.
+ * tests/regression.at (Web2c Actions): Adjust.
+
+2002-05-04 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.h (SALIAS, SUNDEF): Rename as...
+ (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
+ Adjust dependencies.
+ * src/output.c (token_definitions_output): Be sure not to output a
+ `#define 'a'' when fed with `%token 'a' "a"'.
+ * tests/regression.at (Token definitions): New.
+
+2002-05-03 Paul Eggert <eggert@twinsun.com>
+
+ * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
+ for K&R C.
+
+2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.am (SUBDIRS): Remove intl.
+ (EXTRA_DIST): Add config/config.rpath.
+
+2002-05-03 Akim Demaille <akim@epita.fr>
+
+ * data/bison.simple (m4_if): Don't output empty enums.
+ And actually, output valid enum definitions :(.
+
2002-05-03 Akim Demaille <akim@epita.fr>
* configure.bat: Remove, completely obsolete.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-This file is part of GNU Autoconf.
+This file is part of GNU Bison.
-GNU Autoconf is free software; you can redistribute it and/or modify
+GNU 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.
-GNU Autoconf is distributed in the hope that it will be useful,
+GNU 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.
You should have received a copy of the GNU General Public License
-along with autoconf; see the file COPYING. If not, write to
+along with GNU Bison; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.