]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* src/LR0.c (new_state, get_state): Instead of using the global
[bison.git] / ChangeLog
index 3bb1a3759665cffac45d5d394ef6b953f69614ff..125627c91b58b6ada468fc9bef80bdb494c9eb1c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+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.
+       * Makefile.am (EXTRA_DIST): Adjust.
+       Don't distribute config.rpath...
+       * config/Makefile.am (EXTRA_DIST): Do it.
+
+2002-05-03  Akim Demaille  <akim@epita.fr>
+
+       * configure.in (GETTEXT_VERSION): New.
+       Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
+
+2002-05-03  Akim Demaille  <akim@epita.fr>
+
+       * data/bison.simple (b4_token_enum): New.
+       (b4_token_defines): Use it to output tokens both as #define and
+       enums.
+       Suggested by Paul Eggert.
+       * src/output.c (token_definitions_output): Don't output spurious
+       white spaces.
+
+2002-05-03  Akim Demaille  <akim@epita.fr>
+
+       * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
+
+2002-05-02  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
+       Update the stack class, give a try to deque as the default container.
+
+2002-05-02  Akim Demaille  <akim@epita.fr>
+
+       * data/bison.simple (yyparse): Do not implement @$ = @1.
+       (YYLLOC_DEFAULT): Adjust to do it.
+       * doc/bison.texinfo (Location Default Action): Fix.
+
+2002-05-02  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (parse_braces): Merge into...
+       (parse_action): this.
+
+2002-05-02  Akim Demaille  <akim@epita.fr>
+
+       * configure.in (ALL_LINGUAS): Remove.
+       * po/LINGUAS, hr.po: New.
+
+2002-05-02  Akim Demaille  <akim@epita.fr>
+
+       Remove the so called hairy (semantic) parsers.
+
+       * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
+       * src/gram.h, src/gram.c (semantic_parser): Remove.
+       (rule_t): Remove the guard and guard_line members.
+       * src/lex.h (token_t): remove tok_guard.
+       * src/options.c (option_table): Remove %guard and %semantic_parser
+       support.
+       * src/output.c, src/output.h (guards_output): Remove.
+       (prepare): Adjust.
+       (token_definitions_output): Don't output the `T'
+       tokens (???).
+       (output_skeleton): Don't output the guards.
+       * src/files.c, src/files.c (attrsfile): Remove.
+       * src/reader.c (symbol_list): Remove the guard and guard_line
+       members.
+       Adjust dependencies.
+       (parse_guard): Remove.
+       * data/bison.hairy: Remove.
+       * doc/bison.texinfo (Environment Variables): Remove occurrences of
+       BISON_HAIRY.
+
+2002-05-02  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
+       (parse_guard): Rename the formal argument `stack_offset' as
+       `rule_length', which is more readable.
+       Adjust callers.
+       (copy_at, copy_dollar): Instead of outputting the hard coded
+       values of $$, $n and so forth, output invocation to b4_lhs_value,
+       b4_lhs_location, b4_rhs_value, and b4_rhs_location.
+       Note: this patch partially drops `semantic-parser' support: it
+       always does `rule_length - n', where semantic parsers ought to
+       always use `-n'.
+       * data/bison.simple, data/bison.c++ (b4_lhs_value)
+       (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
+
+2002-05-02  Akim Demaille  <akim@epita.fr>
+
+       * configure.in (AC_INIT): Bump to 1.49b.
+       (AM_INIT_AUTOMAKE): Short invocation.
+
+2002-05-02  Akim Demaille  <akim@epita.fr>
+
+       Version 1.49a.
+
+2002-05-01  Akim Demaille  <akim@epita.fr>
+
+       * src/skeleton.h: Remove.
+
+2002-05-01  Akim Demaille  <akim@epita.fr>
+
+       * src/skeleton.h: Fix the #endif.
+       Reported by Magnus Fromreide.
+
+2002-04-26  Paul Eggert  <eggert@twinsun.com>
+
+       * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
+       Define if we define YYSTYPE and YYLTYPE, respectively.
+       (YYCOPY): Fix [] quoting problem in the non-GCC case.
+
+2002-04-25  Robert Anisko  <robert@lrde.epita.fr>
+
+       * src/scan-skel.l: Postprocess quadrigraphs.
+
+       * src/reader.c (copy_character): New function, used to output
+       single characters while replacing `[' and `]' with quadrigraphs, to
+       avoid troubles with M4 quotes.
+       (copy_comment): Output characters with copy_character.
+       (read_additionnal_code): Likewise.
+       (copy_string2): Likewise.
+       (copy_definition): Likewise.
+
+       * tests/calc.at: Exercise M4 quoting.
+
+2002-04-25  Akim Demaille  <akim@epita.fr>
+
+       * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
+       between `!' and the command.
+       Reported by Paul Eggert.
+
+2002-04-24  Robert Anisko  <robert@lrde.epita.fr>
+
+       * tests/calc.at: Exercise prologue splitting.
+
+       * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
+       `b4_post_prologue' instead of `b4_prologue'.
+
+       * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
+       muscles.
+       (output): Free pre_prologue_obstack and post_prologue_obstack.
+       * src/files.h, src/files.c (attrs_obstack): Remove.
+       (pre_prologue_obstack, post_prologue_obstack): New.
+       * src/reader.c (copy_definition): Add a parameter to specify the
+       obstack to fill, instead of using attrs_obstack unconditionally.
+       (read_declarations): Pass pre_prologue_obstack to copy_definition if
+       `%union' has not yet been seen, pass post_prologue_obstack otherwise.
+
+2002-04-23  Paul Eggert  <eggert@twinsun.com>
+
+       * data/bison.simple: Remove unnecessary commentary and white
+       space differences from 1_29-branch.
+       Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
+
+       (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
+       YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
+       if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
+       constructors or destructors.
+
+       (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
+
+2002-04-23  Akim Demaille  <akim@epita.fr>
+
+       * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
+       * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
+       location with columns.
+       * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
+       All reported by Paul Eggert.
+
+2002-04-22  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (dump_grammar): Move to...
+       * src/gram.h, src/gram.c (grammar_dump): here.
+       Be sure to separate long item numbers.
+       Don't read the members of a rule's prec if its nil.
+
+2002-04-22  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (table_size, table_grow): New.
+       (MAXTABLE): Remove, replace uses with table_size.
+       (pack_vector): Instead of dying when the table is too big, grow it.
+
+2002-04-22  Akim Demaille  <akim@epita.fr>
+
+       * data/bison.simple (yyr1): Its type is that of a token number.
+       * data/bison.c++ (r1_): Likewise.
+       * tests/regression.at (Web2c Actions): Adjust.
+
+2002-04-22  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (token_translations_init): 256 is now the default
+       value for the error token, i.e., it will be assigned another
+       number if the user assigned 256 to one of her tokens.
+       (reader): Don't force 256 to error.
+       * doc/bison.texinfo (Symbols): Adjust.
+       * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
+       (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
+       etc. instead of 10, 20, 30 (which was used to `jump' over error
+       (256) and undefined (2)).
+
+2002-04-22  Akim Demaille  <akim@epita.fr>
+
+       Propagate more token_number_t.
+
+       * src/gram.h (token_number_as_item_number)
+       (item_number_as_token_number): New.
+       * src/output.c (GENERATE_OUTPUT_TABLE): New.
+       Use it to create output_item_number_table and
+       output_token_number_table.
+       * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
+       * src/lex.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.c, src/symtab.h: Use token_number_t instead of shorts.
+
+2002-04-22  Akim Demaille  <akim@epita.fr>
+
+       * src/output.h, src/output.c (get_lines_number): Remove.
+
+2002-04-19  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Actions): Make clear that `|' is not the same
+       as Lex/Flex'.
+       (Debugging): More details about enabling the debugging features.
+       (Table of Symbols): Describe $$, $n, @$, and @n.
+       Suggested by Tim Josling.
+
+2002-04-19  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo: Remove the uses of the obsolete @refill.
+
+2002-04-10  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h: Rely on HAVE_LIMITS_H.
+       Suggested by Paul Eggert.
+
+2002-04-09  Akim Demaille  <akim@epita.fr>
+
+       * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
+       full stderr, and strip it according to the bison options, instead
+       of composing the error message from different bits.
+       This makes it easier to check for several error messages.
+       Adjust all the invocations.
+       Add an invocation exercising the error token.
+       Add an invocation demonstrating a stupid error message.
+       (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
+       Adjust the tests.
+       Error message are for stderr, not stdout.
+
+2002-04-09  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h, src/gram.c (error_token_number): Remove, use
+       errtoken->number.
+       * src/reader.c (reader): Don't specify the user token number (2)
+       for $undefined, as it uselessly prevents using it.
+       * src/gram.h (token_number_t): Move to...
+       * src/symtab.h: here.
+       (state_t.number): Is a token_number_t.
+       * src/print.c, src/reader.c: Use undeftoken->number instead of
+       hard coded 2.
+       (Even though this 2 is not the same as above: the number of the
+       undeftoken remains being 2, it is its user token number which
+       might not be 2).
+       * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
+       `user_token_number_max'.
+       Output `undef_token_number'.
+       * data/bison.simple, data/bison.c++: Use them.
+       Be sure to map invalid yylex return values to
+       `undef_token_number'.  This saves us from gratuitous SEGV.
+
+       * tests/conflicts.at (Solved SR Conflicts)
+       (Unresolved SR Conflicts): Adjust.
+       * tests/regression.at (Web2c Actions): Adjust.
+
+2002-04-08  Akim Demaille  <akim@epita.fr>
+
+       * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
+       Adding #line.
+       Remove the duplicate `typedefs'.
+       (RhsNumberType): Fix the declaration and various other typos.
+       Use __ofile__.
+       * data/bison.simple: Use __ofile__.
+       * src/scan-skel.l: Handle __ofile__.
+
+2002-04-08  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (item_number_t): New, the type of item numbers in
+       RITEM.  Note that it must be able to code symbol numbers as
+       positive number, and the negation of rule numbers as negative
+       numbers.
+       Adjust all dependencies (pretty many).
+       * src/reduce.c (rule): Remove this `short *' pointer: use
+       item_number_t.
+       * src/system.h (MINSHORT, MAXSHORT): Remove.
+       Include `limits.h'.
+       Adjust dependencies to using SHRT_MAX and SHRT_MIN.
+       (shortcpy): Remove.
+       (MAXTABLE): Move to...
+       * src/output.c (MAXTABLE): here.
+       (prepare_rules): Use output_int_table to output rhs.
+       * data/bison.simple, data/bison.c++: Adjust.
+       * tests/torture.at (Big triangle): Move the limit from 254 to
+       500.
+       * tests/regression.at (Web2c Actions): Ajust.
+
+       Trying with bigger grammars shows various phenomena: at 3000 (28Mb
+       of grammar file) bison is killed by my system, at 2000 (12Mb) bison
+       passes, but produces negative #line number, once fixed, GCC is
+       killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
+       C), it passes.
+       * src/state.h (state_h): Code input lines on ints, not shorts.
+
+2002-04-08  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (reduce_grammar): First reduce the nonterminals,
+       and then the grammar.
+
+2002-04-08  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h: No longer using strndup.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
+       * src/output.c (output_table_data): Return the longest number.
+       (prepare_tokens): Output `token_number_max').
+       * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
+       New.
+       Use them to define yy_token_number_type/TokenNumberType.
+       Use this type for yytranslate.
+       * tests/torture.at (Big triangle): Push the limit from 124 to
+       253.
+       * tests/regression.at (Web2c Actions): Adjust.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * tests/torture.at (Big triangle): New.
+       (GNU AWK Grammar, GNU Cim Grammar): Move to...
+       * tests/existing.at: here.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
+       nritems.
+       Adjust dependencies.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c: Normalize increments to prefix form.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c, symtab.c: Remove debugging code.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       Rename all the `bucket's as `symbol_t'.
+
+       * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
+       * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
+       * src/symtab.c, src/symtab.h (bucket): Rename as...
+       (symbol_t): this.
+       (symbol_list_new, bucket_check_defined, bucket_make_alias)
+       (bucket_check_alias_consistence, bucket_pack, bucket_translation)
+       (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
+       (buckets_new, buckets_free, buckets_do): Rename as...
+       (symbol_list_new, symbol_check_defined, symbol_make_alias)
+       (symbol_check_alias_consistence, symbol_pack, symbol_translation)
+       (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
+       (symbols_new, symbols_free, symbols_do): these.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       Use lib/hash for the symbol table.
+
+       * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
+       EOF.
+       * src/lex.c (lex): Set the `number' member of new terminals.
+       * src/reader.c (bucket_check_defined, bucket_make_alias)
+       (bucket_check_alias_consistence, bucket_translation): New.
+       (reader, grammar_free, readgram, token_translations_init)
+       (packsymbols): Adjust.
+       (reader): Number the predefined tokens.
+       * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
+       for predefined tokens.
+       * src/symtab.h (bucket): Remove all the hash table related
+       members.
+       * src/symtab.c (symtab): Replace by...
+       (bucket_table): this.
+       (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
+       (buckets_new, buckets_do): New.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
+       (start_symbol, max_user_token_number, semantic_parser)
+       (error_token_number): Initialize.
+       * src/reader.c (grammar, start_flag, startval, typed, lastprec):
+       Initialize.
+       (reader): Don't.
+       (errtoken, eoftoken, undeftoken, axiom): Extern.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (rule_s): prec and precsym are now pointers
+       to the bucket giving the priority/associativity.
+       Member `associativity' removed: useless.
+       * src/reduce.c, src/conflicts.c: Adjust.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
+       Properly escape the symbols' TAG when outputting them.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.h (LA): Is a bitsetv, not bitset*.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.h, src/lalr.c (LAruleno): Replace with...
+       (LArule): this, which is an array to rule_t*.
+       * src/print.c, src/conflicts.c: Adjust.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (rule_t): Rename `number' as `user_number'.
+       `number' is a new member.
+       Adjust dependencies.
+       * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       As a result of the previous patch, it is no longer needed
+       to reorder ritem itself.
+
+       * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       Be sure never to walk through RITEMS, but use only data related to
+       the rules themselves. RITEMS should be banished.
+
+       * src/output.c (output_token_translations): Rename as...
+       (prepare_tokens): this.
+       In addition to `translate', prepare the muscles `tname' and
+       `toknum', which were handled by...
+       (output_rule_data): this.
+       Remove, and move the remainder of its outputs into...
+       (prepare_rules): this new routines, which also merges content from
+       (output_gram): this.
+       (prepare_rules): Be sure never to walk through RITEMS.
+       (output_stos): Rename as...
+       (prepare_stos): this.
+       (output): Always invoke prepare_states, after all, just don't use it
+       in the output if you don't need it.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (new_state): Display `nstates' as the name of the
+       newly created state.
+       Adjust to initialize first_state and last_state if needed.
+       Be sure to distinguish the initial from the final state.
+       (new_states): Create the itemset of the initial state, and use
+       new_state.
+       * src/closure.c (closure): Now that the initial state has its
+       items properly set, there is no need for a special case when
+       creating `ruleset'.
+
+       As a result, now the rule 0, reducing to $axiom, is visible in the
+       outputs.  Adjust the test suite.
+
+       * tests/conflicts.at (Solved SR Conflicts)
+       (Unresolved SR Conflicts): Adjust.
+       * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
+       * tests/conflicts.at (S/R in initial): New.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
+       the RHS of the rules.
+       * src/output.c (output_gram): Likewise.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
+       bucket.
+       Adjust all dependencies.
+       * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
+       `number' of the buckets too.
+       * src/gram.h: Include `symtab.h'.
+       (associativity): Move to...
+       * src/symtab.h: here.
+       No longer include `gram.h'.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h, src/gram.c (rules_rhs_length): New.
+       (ritem_longest_rhs): Use it.
+       * src/gram.h (rule_t): `number' is a new member.
+       * src/reader.c (packgram): Set it.
+       * src/reduce.c (reduce_grammar_tables): Move the useless rules at
+       the end of `rules', and count them out of `nrules'.
+       (reduce_output, dump_grammar): Adjust.
+       * src/print.c (print_grammar): It is no longer needed to check for
+       the usefulness of a rule, as useless rules are beyond `nrules + 1'.
+       * tests/reduce.at (Reduced Automaton): New test.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
+       lacking `+ 1' to nrules, Bison reported as useless a token if it
+       was used solely to set the precedence of the last rule...
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * data/bison.c++, data/bison.simple: Don't output the current file
+       name in #line, to avoid useless diffs between two identical
+       outputs under different names.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
+       Normalize loops to using `< nrules + 1', not `<= nrules'.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * TODO: Update.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
+       bucket.value as bucket.number.
+
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c, src/derives.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: Let rule_t.rhs point directly to the
+       RHS, instead of being an index in RITEMS.
+
+2002-04-04  Paul Eggert  <eggert@twinsun.com>
+
+       * doc/bison.texinfo: Update copyright date.
+       (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
+       (Symbols): Warn about running Bison in one character set,
+       but compiling and/or running in an incompatible one.
+       Warn about character code 256, too.
+
+2002-04-03  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.data (YYSTACK_ALLOC): Depend on whether
+       YYERROR_VERBOSE is nonzero, not whether it is defined.
+
+       Merge changes from bison-1_29-branch.
+
+2002-03-20  Paul Eggert  <eggert@twinsun.com>
+
+       Merge fixes from Debian bison_1.34-1.diff.
+
+       * configure.in (AC_PREREQ): 2.53.
+
+2002-03-20  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (log_resolution): Argument `resolution' is const.
+
+2002-03-19  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.simple (YYCOPY): New macro.
+       (YYSTACK_RELOCATE): Use it.
+       Remove Type arg; no longer needed.  All callers changed.
+       (yymemcpy): Remove; no longer needed.
+
+       * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
+       * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
+
+2002-03-19  Akim Demaille  <akim@epita.fr>
+
+       Test and fix the #line outputs.
+
+       * tests/atlocal.at (GCC): New.
+       * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
+       (Prologue synch line, ,%union synch line, Postprologue synch line)
+       (Action synch line, Epilogue synch line): New tests.
+       * src/reader.c (parse_union_decl): Define the muscle stype_line.
+       * data/bison.simple, data/bison.c++: Use it.
+
+2002-03-19  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
+       (Solved SR Conflicts, %expect not enough, %expect right)
+       (%expect too much): Move to...
+       * tests/conflicts.at: this new file.
+
+2002-03-19  Akim Demaille  <akim@epita.fr>
+
+       * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
+       * data/bison.simple, data/bison.c++: Handle the `#define' part, so
+       that we can move to enums for instance.
+       * src/output.c (token_definitions_output): Output a list of
+       `token-name, token-number' instead of the #define.
+       (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
+
+2002-03-14  Akim Demaille  <akim@epita.fr>
+
+       Use Gettext 0.11.1.
+
+2002-03-09  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++: Make the user able to add members to the generated
+       parser by subclassing.
+
+2002-03-05  Robert Anisko  <robert@lrde.epita.fr>
+
+       * src/reader.c (read_additionnal_code): `c' should be an integer, not
+       a character.
+       Reported by Nicolas Tisserand and Nicolas Burrus.
+
+2002-03-04  Robert Anisko  <robert@lrde.epita.fr>
+
+       * src/reader.c: Warn about lacking semi-colons, do not complain.
+
+2002-03-04  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++: Remove a debug line.
+
+2002-03-04  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++: Unmerge value as yylval and value as yyval.  Unmerge
+       location as yylloc and location as yyloc.  Use YYLLOC_DEFAULT, and
+       provide a default implementation.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
+       * tests/output.at (AT_CHECK_OUTPUT): Likewise.
+       * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
+       * tests/semantic.at (Parsing Guards): Similarly.
+       * src/reader.at (readgram): Complain if the last rule is not ended
+       with a semi-colon.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
+       * src/closure.c: here.
+       (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
+       RTC.
+       * src/warshall.h, src/warshall.c: Remove.
+       * tests/sets.at (Broken Closure): Adjust.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output_skeleton): tempdir is const.
+       bytes_read is unused.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
+       * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
+       Update.
+       From Michael Hayes.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (closure): `r' is unused.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * tests/sets.at (Broken Closure): Add the ending `;'.
+       * src/reader.at (readgram): Complain if a rule is not ended with a
+       semi-colon.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
+       (count_sr_conflicts): Use bitset_count.
+       * src/reduce.c (inaccessable_symbols): Ditto.
+       (bits_size): Remove.
+       * src/warshall.h, src/warshall.c: Convert to bitsetv.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
+       * src/reduce.c: Remove the `bitset_zero's following the
+       `bitset_create's, as now it is performed by the latter.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
+       * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
+       * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
+       latest sources from Michael.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output): Don't free the grammar.
+       * src/reader.c (grammar_free): New.
+       * src/main.c (main): Call it and don't free symtab here.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
+       before returning.
+       Reported by Benoit Perrot.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       Use bitset operations when possible, not loops over bits.
+
+       * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
+       bitset_or.
+       * src/print.c (print_reductions): Use bitset_and, bitset_andn.
+       * src/reduce.c (useless_nonterminals): Formatting changes.
+       * src/warshall.c (TC): Use bitset_or.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
+       * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
+       Ditto.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (F): Now a bitset*.
+       Adjust all dependencies.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (shiftset, lookaheadset): Now bitset.
+       Adjust all dependencies.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/L0.c, src/LR0.h (nstates): Be size_t.
+       Adjust comparisons (signed vs unsigned).
+       * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
+       bitset*.
+       Adjust all dependencies.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (firsts): Now, also a bitset.
+       Adjust all dependencies.
+       (varsetsize): Remove, now unused.
+       * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/print.c: Convert to use bitset.h, not hand coded iterations
+       over ints.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (ruleset): Be a bitset.
+       (rulesetsize): Remove.
+
+2002-03-04  Akim Demaille  <akim@epita.fr>
+
+       * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
+       * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
+       * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
+       * src/closure.c (fderives): Be an array of bitsets.
+
+2002-02-28  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++: Merge the two generated headers.  Insert a copyright
+       notice in each output file.
+
+2002-02-28  Akim Demaille  <akim@epita.fr>
+
+       * data/bison.c++: Copy the prologue of bison.simple to fetch
+       useful M4 definitions, such as b4_header_guard.
+
+2002-02-25  Akim Demaille  <akim@epita.fr>
+
+       * src/getargs.c (version): Give the name of the authors, and use a
+       translator friendly scheme for the bgr
+       copyright notice.
+
+2002-02-25  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (header_output): Remove, now handled completely via
+       M4.
+
+2002-02-25  Akim Demaille  <akim@epita.fr>
+
+       * m4/m4.m4: New, from CVS Autoconf.
+       * configure.in: Invoke it.
+       * src/output.c (output_skeleton): Use its result instead of the
+       hard coded name.
+
+2002-02-25  Akim Demaille  <akim@epita.fr>
+
+       * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
+       Fileutils 4.1.5.
+       * configure.in: Invoke UTILS_FUNC_MKSTEMP.
+       * src/output.c (output_skeleton): Use mkstemp to create a real
+       temporary file.
+       Move the filling of `skeleton' and its muscle to...
+       (prepare): here.
+       (output): Move the definition of the prologue muscle to...
+       (prepare): here.
+       * src/system.h (DEFAULT_TMPDIR): New.
+
+2002-02-14  Paul Eggert  <eggert@twinsun.com>
+
+       Remove the support for C++ namespace cleanliness; it was
+       causing more problems than it was curing, since it didn't work
+       properly on some nonstandard C++ compilers.  This can wait
+       for a proper C++ parser.
+
+       * NEWS: Document this.
+       * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
+       of C++, as it's treated like C now.
+       * src/bison.simple (YYSTD): Remove.
+       (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
+       Treat C++ just like Standard C instead of trying to support
+       namespace cleanliness.
+
+2002-02-14  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (else): Adjust to Andreas' change.
+
+2002-02-14  Akim Demaille  <akim@epita.fr>
+
+       * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
+
+2002-02-13  Andreas Schwab  <schwab@suse.de>
+
+       * src/output.c (output_rule_data): Don't output NULL, it might
+       not be defined yet.
+
+2002-02-11  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
+       (Copyright notice): Update.
+
+2002-02-11  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (%nonassoc and eof): Don't include
+       nonportable headers.
+
+2002-02-08  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++: Correct error recovery.  Make the user able to
+       initialize the starting location.
+
+2002-02-07  Akim Demaille  <akim@epita.fr>
+
+       * tests/input.at: New.
+
+2002-02-07  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++: Replace some direct m4 expansions by constants.  Be
+       more consistent when naming methods and variables.  Put preprocessor
+       directives around tables only needed for debugging.
+
+2002-02-07  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
+       C++ parsers.
+       (yy::b4_name::parse): Use print_.
+
+2002-02-07  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
+
+2002-02-07  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
+       C++ parsers.
+       (yy::b4_name::parse): Build verbose error messages, and use error_.
+
+2002-02-06  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++: Fix m4 quoting in comments.
+
+2002-02-06  Robert Anisko  <robert@lrde.epita.fr>
+
+       * data/bison.c++: Adjust the parser code.  Fix some muscles that were
+       not expanded by m4.
+
+2002-02-05  Akim Demaille  <akim@epita.fr>
+
+       * data/bison.c++: Adjust to the M4 back end.
+       More is certainly needed.
+
+2002-02-05  Akim Demaille  <akim@epita.fr>
+
+       Give a try to M4 as a back end.
+
+       * lib/readpipe.c: New, from wdiff.
+       * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
+       BISON_HAIRY.
+       * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
+       specific values.  Now it is m4 that performs the lookup.
+       * src/parse-skel.y: Remove.
+       * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
+       * src/output.c (actions_output, guards_output)
+       (token_definitions_output): No longer keeps track of the output
+       line number, hence remove the second argument.
+       (guards_output): Check against the guard member of a rule, not the
+       action member.
+       Adjust callers.
+       (output_skeleton): Don't look for the skeleton location, let m4 do
+       that.
+       Create `/tmp/muscles.m4'.  This is temporary, a proper temporary
+       file will be used.
+       Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
+       (prepare): Given that for the time being changesyntax is not
+       usable in M4, rename the muscles using `-' to `_'.
+       Define `defines_flag', `output_parser_name' and `output_header_name'.
+       * src/output.h (actions_output, guards_output)
+       (token_definitions_output): Adjust prototypes.
+       * src/scan-skel.l: Instead of scanning the skeletons, it now
+       processes the output of m4: `__oline__' and `#output'.
+       * data/bison.simple: Adjust to be used by M4(sugar).
+       * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
+       to date.
+       * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
+       instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
+       * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
+       shamelessly stolen from CVS Autoconf.
+
+2002-02-05  Akim Demaille  <akim@epita.fr>
+
+       * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
+       * configure.in: Check for the declarations of free and malloc.
+       * src/muscle_tab.c: Adjust.
+
+2002-02-05  Akim Demaille  <akim@epita.fr>
+
+       * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
+       which have no values.
+
+2002-02-05  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
+       * data/: here.
+
+2002-01-29  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.simple (YYSIZE_T): Do not define merely because
+       YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
+       On some platforms, <alloca.h> does not declare YYSTD (size_t).
+
+2002-01-27  Akim Demaille  <akim@epita.fr>
+
+       Fix `%nonassoc and eof'.
+
+       * src/state.c (errs_dup): Aaaah!  The failure was due to bytes
+       which were not properly copied!  Replace
+       memcpy (res->errs, src->errs, src->nerrs);
+       with
+       memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
+       !!!
+       * tests/regression.at (%nonassoc and eof): Adjust to newest
+       Autotest: `.' is not in the PATH.
+
+2002-01-27  Akim Demaille  <akim@epita.fr>
+
+       * tests/sets.at (AT_EXTRACT_SETS): New.
+       (Nullable): Use it.
+       (Firsts): New.
+
+2002-01-26  Akim Demaille  <akim@epita.fr>
+
+       * tests/actions.at, tests/calc.at, tests/headers.at,
+       * tests/torture.at: Adjust to the newest Autotest which no longer
+       forces `.' in the PATH.
+
+2002-01-25  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (%nonassoc and eof): New.
+       Suggested by Robert Anisko.
+
+2002-01-24  Akim Demaille  <akim@epita.fr>
+
+       Bison dumps core when trying to complain about broken input files.
+       Reported by Cris van Pelt.
+
+       * src/lex.c (parse_percent_token): Be sure to set token_buffer.
+       * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
+       into...
+       (Invalid inputs): Strengthen: exercise parse_percent_token.
+
+2002-01-24  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/Makefile.am: Add bison.c++.
+       * src/bison.c++: New skeleton.
+
+2002-01-21  Paolo Bonzini <bonzini@gnu.org>
+
+       * po/it.po: New.
+
+2002-01-21  Kees Zeelenberg  <kzlg@users.sourceforge.net>
+
+       * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
+
+2002-01-20  Marc Autret  <marc@gnu.org>
+
+       * src/files.c (compute_output_file_names): Fix
+
+2002-01-20  Marc Autret  <marc@gnu.org>
+
+       * tests/output.at: New test.
+       * src/files.c (compute_base_names): Don't map extensions when
+       the YACC flag is set, use defaults.
+       Reported by Evgeny Stambulchik.
+
+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).
+       Suggested by Albert Chin-A-Young.
+
+2002-01-11  Tim Van Holder  <tim.van.holder@pandora.be>
+
+       * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
+       canonical definition.
+       * src/system.h: Use the canonical definition for PARAMS (avoids
+       a conflict with the macro from lib/hash.h).
+
+2002-01-11  Akim Demaille  <akim@epita.fr>
+
+       * configure.in: Use AC_FUNC_STRNLEN.
+       Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
+
+2002-01-09  Akim Demaille  <akim@epita.fr>
+
+       * src/files.c, src/files.h (output_infix): New.
+       (tab_extension): Remove.
+       (compute_base_names): Compute the former, drop the latter.
+       * src/output.c (prepare): Insert the muscles `output-infix', and
+       `output-suffix'.
+       * src/parse-skel.y (string, string.1): New.
+       (section.header): Use it.
+       (section.yacc): Remove.
+       (prefix): Remove too.
+       * src/scan-skel.l: Adjust.
+       * src/bison.simple, src/bison.hairy: Adjust.
+
+2002-01-09  Akim Demaille  <akim@epita.fr>
+
+       * configure.in (WERROR_CFLAGS): Compute it.
+       * src/Makefile.am (CFLAGS): Pass it.
+       * tests/atlocal.in (CFLAGS): Idem.
+       * src/files.c: Fix a few warnings.
+       (get_extension_index): Remove, unused.
+
+2002-01-08  Akim Demaille  <akim@epita.fr>
+
+       * src/getargs.c (AS_FILE_NAME): New.
+       (getargs): Use it to convert DOSish file names.
+       * src/files.c (base_name): Rename as full_base_name to avoid
+       clashes with `base_name ()'.
+       (filename_split): New.
+       (compute_base_names): N-th rewrite, using filename_split.
+
+2002-01-08  Akim Demaille  <akim@epita.fr>
+
+       * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
+       New, stolen from the Fileutils 4.1.
+       * lib/Makefile.am (libbison_a_SOURCES): Adjust.
+       * configure.in: Check for the presence of memrchr, and of its
+       prototype.
+
+2002-01-07  Tim Van Holder  <tim.van.holder@pandora.be>
+
+       * lib/hash.h (__P): Added definition for this macro.
+       * src/Makefile.am: Add parse-skel.c and scan-skel.c to
+       BUILT_SOURCES, to ensure they are generated first.
+       * src/parse-skel.y: Use YYERROR_VERBOSE instead of
+       %error-verbose to allow bootstrapping with bison 1.30x.
+
+2002-01-06  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (parse_braces): Don't fetch the next char, the
+       convention is to fetch on entry.
+       * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
+       'switch' without a following semicolon.
+       * tests/regression.at (braces parsing): New.
+
+2002-01-06  Akim Demaille  <akim@epita.fr>
+
+       Bison is dead wrong in its RR conflict reports.
+
+       * tests/torture.at (GNU Cim Grammar): New.
+       * src/conflicts.c (count_rr_conflicts): Fix.
+
+2002-01-06  Akim Demaille  <akim@epita.fr>
+
+       Creating package.m4 from configure.ac causes too many problems.
+
+       * tests/Makefile.am (package.m4): Create it by hand,
+       AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
+
+2002-01-06  Akim Demaille  <akim@epita.fr>
+
+       * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
+       skeleton.h.
+
+2002-01-04  Paul Eggert  <eggert@twinsun.com>
+
+       * doc/bison.texinfo (Debugging):
+       Remove YYSTDERR; it's no longer defined or used.
+       Also, s/cstdio.h/cstdio/.
+
+2002-01-03  Akim Demaille  <akim@epita.fr>
+
+       * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
+
+2002-01-03  Akim Demaille  <akim@epita.fr>
+
+       * src/parse-skel.y (process_skeleton): Don't bind the parser's
+       tracing code to --trace, wait for a better --trace option, with
+       args.
+
+2002-01-03  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
+       The ISO C++ standard is extremely clear about it: stderr is
+       considered a macro, not a regular symbol (see table 94 `Header
+       <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
+       Therefore std:: does not apply to it.  It still does with fprintf.
+       Also, s/cstdio.h/cstdio/.
+
+2002-01-03  Akim Demaille  <akim@epita.fr>
+
+       * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
+       for non system headers.
+
+2002-01-02  Akim Demaille  <akim@epita.fr>
+
+       Equip the skeleton chain with location tracking, runtime trace,
+       pure parser and scanner.
+
+       * src/parse-skel.y: Request a pure parser, locations, and prefix
+       renaming.
+       (%union): Having several members with the same type does not help
+       type mismatches, simplify.
+       (YYPRINT, yyprint): New.
+       (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
+       (skel_error): this.
+       Handle locations.
+       * src/scan-skel.l: Adjust to these changes.
+       * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
+       (LOCATION_PRINT, skel_control_t): New.
+
+2001-12-30  Akim Demaille  <akim@epita.fr>
+
+       * src/parse-skel.y: Get rid of the shift/reduce conflict:
+       replace `gb' with BLANKS.
+       * src/scan-skel.l: Adjust.
+
+2001-12-30  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h: We don't need nor want bcopy.
+       Throw away MS-DOS crap: we don't need getpid.
+       * configure.in: We don't need strndup.  It was even causing
+       problems: because Flex includes the headers *before* us,
+       _GNU_SOURCE is not defined by config.h, and therefore strndup was
+       not visible.
+       * lib/xstrndup.c: New.
+       * src/scan-skel.l: Use it.
+       Be sure to initialize yylval.muscle member when scanning a MUSCLE.
+       * src/parse-skel.y: Use %directives instead of #defines.
+
+2001-12-30  Akim Demaille  <akim@epita.fr>
+
+       * src/skeleton.h: New.
+       * src/output.c (output_parser, output_master_parser): Remove, dead
+       code.
+       * src/output.h (get_lines_number, actions_output, guards_output)
+       (token_definitions_output): Prototype them.
+       * src/parse-skel.y: Add the license notice.
+       Include output.h and skeleton.h.
+       (process_skeleton): Returns void, and takes a single parameter.
+       * src/scan-skel.l: Add the license notice.
+       Include skeleton.h.
+       Don't use %option yylineno: it seems that then Flex imagines
+       REJECT has been used, and therefore it won't reallocate its
+       buffers (which makes no other sense to me than a bug).  It results
+       in warnings for `unused: yy_flex_realloc'.
+
+2001-12-30  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
+       (MUSCLE_INSERT_PREFIX): ...to there.
+       * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
+       (MUSCLE_INSERT_PREFIX): Move from here...
+
+       * src/bison.hairy: Add a section directive.  Put braces around muscle
+       names.  This parser skeleton is still broken, but Bison should not
+       choke on a bad muscle 'syntax'.
+       * src/bison.simple: Add a section directive.  Put braces around muscle
+       names.
+
+       * src/files.h (strsuffix, stringappend): Add declarations.
+       (tab_extension): Add declaration.
+       (short_base_name): Add declaration.
+
+       * src/files.c (strsuffix, stringappend): No longer static.  These
+       functions are used in the skeleton parser.
+       (tab_extension): New.
+       (compute_base_names): Use the computations done in this function
+       to guess if the generated parsers should have '.tab' in their
+       names.
+       (short_base_name): No longer static.
+
+       * src/output.c (output_skeleton): New.
+       (output): Disable call to output_master_parser, and give a try to
+       a new skeleton handling system.
+       (guards_output, actions_output): No longer static.
+       (token_definitions_output, get_lines_number): No longer static.
+
+       * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
+
+       * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
+       parse-skel.y.
+
+       * src/parse-skel.y: New file.
+       * src/scan-skel.l: New file.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       %name-prefix is broken.
+
+       * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
+       Adjust all dependencies.
+       * tests/headers.at (export YYLTYPE): Strengthen this test: use
+       %name-prefix.
+
+       Renaming yylval but not yylloc is not consistent.  Now we do.
+
+       * src/bison.simple: Prefix yylloc if used.
+       * doc/bison.texinfo (Decl Summary): Document that.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo: Promote `%long-directive' over
+       `%long_directive'.
+       Remove all references to fixed-output-files, yacc is enough.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
+       user prologue.  These are defaults.
+       * tests/actions.at (Mid-rule actions): Make sure the user can
+       define YYDEBUG and YYERROR_VERBOSE.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (header_output): Don't forget to export YYLTYPE and
+       yylloc.
+       * tests/headers.at (export YYLTYPE): New, make sure it does.
+       * tests/regression.at (%union and --defines, Invalid CPP headers):
+       Move to...
+       * tests/headers.at: here.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * tests/actions.at (Mid-rule actions): Output on a single line
+       instead of several.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo: Formatting changes.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       Don't store the token defs in a muscle, just be ready to output it
+       on command.  Now possible via `symbols'.  Fixes a memory leak.
+
+       * src/output.c (token_definitions_output): New.
+       (output_parser, header_output): Use it.
+       * src/reader.c (symbols_save): Remove.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple: Do not provide a default for YYSTYPE and
+       YYLTYPE before the user's prologue.  Otherwise it's hardly... a
+       default.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       Mid-rule actions are simply... ignored!
+
+       * src/reader.c (readgram): Be sure to attach mid-rule actions to
+       the empty-rule associated to the dummy symbol, not to the host
+       rule.
+       * tests/actions.at (Mid-rule actions): New.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       Memory leak.
+
+       * src/reader.c (reader): Free grammar.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       Memory leak.
+
+       * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
+       since it allocates it for each state, although only one is needed.
+       (allocate_storage): Do it here.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/options.h, src/options.c (create_long_option_table): Rename
+       as...
+       (long_option_table_new): this, with a clearer prototype.
+       (percent_table): Remove, unused,
+       * src/getargs.c (getargs): Adjust.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
+       * src/print.c, src/print_graph.c, src/state.h: Rename state_table
+       as states.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (build_relations): Rename `states' as `states1'.
+       Sorry, I don't understand exactly what it is, no better name...
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c, src/conflicts.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: Rename rule_table
+       as rules.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
+       ago.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c, src/reader.h (user_toknums): Remove.
+       Adjust all users to use symbols[i]->user_token_number.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.c, src/gram.h (sprec, sassoc): Remove.
+       Adjust all users to use symbols[i]->prec or ->assoc.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c, src/reader.h (tags): Remove.
+       Adjust all users to use symbols[i]->tag.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h, src/gram.c (symbols): New, similar to state_table
+       and rule_table.
+       * src/reader.c (packsymbols): Fill this table.
+       Drop sprec.
+       * src/conflicts.c (resolve_sr_conflict): Adjust.
+       * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
+       single table.
+       Use symbols[i]->tag instead of tags[i].
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
+       In addition, put a comment in there, to replace...
+       * tests/regression.at (%union and C comments): Remove.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Web2c Actions): Blindly move the actual
+       output as expected output.  The contents *seem* right to me, but I
+       can't pretend reading perfectly parser tables...  Nonetheless, all
+       the other tests pass correctly, the table look OK, even though the
+       presence of `$axiom' is to be noted: AFAICS it is useless (but
+       harmless).
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (readgram): Don't add the rule 0 if there were no
+       rules read.  In other words, add it _after_ having performed
+       grammar sanity checks.
+       Fixes the `tests/regression.at (Invalid input: 1)' Failure.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
+       visible, and some states have now a different number.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (readgram): Bind the initial rule's lineno to that
+       of the first rule.
+       * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
+       (Solved SR Conflicts): Adjust rule 0's line number.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       Fix the `GAWK Grammar' failure.
+
+       * src/LR0.c (final_state): Initialize to -1 so that we do compute
+       the reductions of the first state which was mistakenly confused
+       with the final state because precisely final_state was initialized
+       to 0.
+       * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
+       now noticed by Bison.
+       * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
+       have a reduction on $default.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
+       rule line numbers.
+       * src/closure.c (print_closure): Likewise.
+       * src/derives.c (print_derives): Likewise.
+       * tests/sets.at (Nullable): Adjust: the rule numbers are correct
+       now.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (lookaheads_print): New.
+       (lalr): Call it when --trace-flag.
+       * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
+       are dumped.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
+       when walking through ritem, even via rule->rhs.
+       * src/reduce.c (dump_grammar, useful_production, reduce_output)
+       (useful_production, useless_nonterminals): Likewise.
+       (reduce_grammar_tables): Likewise, plus update nritems.
+       * src/nullable.c (set_nullable): Likewise.
+       * src/lalr.c (build_relations): Likewise.
+       * tests/sets.at (Nullable): Adjust.
+       Fortunately, now, the $axiom is no longer nullable.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (generate_states): Use nritems, not nitems, nor using
+       the 0-sentinel.
+       * src/gram.c (ritem_longest_rhs): Likewise.
+       * src/reduce.c (nonterminals_reduce): Likewise.
+       * src/print_graph.c (print_graph): Likewise.
+       * src/output.c (output_rule_data): Likewise.
+       * src/nullable.c (set_nullable):  Likewise.
+
+2001-12-29  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c: Comment changes.
+
+2001-12-27  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
+       cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
+       Sparc, as they were causing more porting problems than the
+       (minor) performance improvement was worth.
+
+       Also, catch up with 1.31's YYSTD.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output_gram): Rely on nritems, not the
+       0-sentinel.  See below.
+       Use -1 as separator, not 0.
+       * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
+       Rely on -1 as separator in yyrhs, instead of 0.
+       * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
+       twice `Now at end of input', therefore there are two lines less to
+       expect.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Unresolved SR Conflicts):
+       (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
+       below.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (new_state): Recognize the final state by the fact it
+       is reached by eoftoken.
+       (insert_start_shifting_state, insert_eof_shifting_state)
+       (insert_accepting_state, augment_automaton): Remove, since now
+       these states are automatically computed from the initial state.
+       (generate_states): Adjust.
+       * src/print.c: When reporting a rule number to the user, substract
+       1, so that the axiom rule is rule 0, and the first user rule is 1.
+       * src/reduce.c: Likewise.
+       * src/print_graph.c (print_core): For the time being, just as for
+       the report, depend upon --trace-flags to dump the full set of
+       items.
+       * src/reader.c (readgram): Once the grammar read, insert the rule
+       0: `$axiom: START-SYMBOL $'.
+       * tests/set.at: Adjust: rule 0 is now displayed, and since the
+       number of the states has changed (the final state is no longer
+       necessarily the last), catch up.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       Try to make the use of the eoftoken valid.  Given that its value
+       is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
+       is used instead of > 0 where appropriate, (ii), depend upon nritems
+       instead of the 0-sentinel.
+
+       * src/gram.h, src/gram.c (nritems): New.
+       Expected to be duplication of nitems, but for the time being...
+       * src/reader.c (packgram): Assert nritems and nitems are equal.
+       * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
+       * src/closure.c (print_closure, print_fderives): Likewise.
+       * src/gram.c (ritem_print): Likewise.
+       * src/print.c (print_core, print_grammar): Likewise.
+       * src/print_graph.c: Likewise.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/main.c (main): If there are complains after grammar
+       reductions, then output the report anyway if requested, then die.
+       * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
+       * src/reader.c (eoftoken): New.
+       (parse_token_decl): If the token being defined has value `0', it
+       is the eoftoken.
+       (packsymbols): No longer hack `tags' to insert `$' by hand.
+       Be sure to preserve the value of the eoftoken.
+       (reader): Make sure eoftoken is defined.
+       Initialize nsyms to 0: now eoftoken is created just like the others.
+       * src/print.c (print_grammar): Don't special case the eof token.
+       * src/regression.at: Adjust: `$' has value 0, not -1, which was a
+       lie anyway, albeit pleasant.
+       * tests/calc.at: Exercise error messages with eoftoken.
+       Change the grammar so that empty input is invalid.
+       Adjust expectations.
+       When yyungeting, be sure to use a valid yylloc: use last_yylloc.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * configure.in: Check the protos of strchr ans strspn.
+       Replace strchr if needed.
+       * src/system.h: Provide the protos of strchr, strspn and memchr if
+       missing.
+       * lib/strchr.c: New.
+       * src/reader.c (symbols_save): Use strchr.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/print.c, src/print_graph.c (escape): New.
+       Use it to quote the TAGS outputs.
+       * src/print_graph.c (print_state): Now errors are in red, and
+       reductions in green.
+       Prefer high to wide: output the state number on a line of its own.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h, src/state.c (reductions_new): New.
+       * src/LR0.c (set_state_table): Let all the states have a
+       `reductions', even if reduced to 0.
+       (save_reductions): Adjust.
+       * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
+       * src/print.c (print_reductions, print_actions): Adjust.
+       * src/output.c (action_row): Adjust.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h, src/state.c (errs_new, errs_dup): New.
+       * src/LR0.c (set_state_table): Let all the states have an errs,
+       even if reduced to 0.
+       * src/print.c (print_errs, print_reductions): Adjust.
+       * src/output.c (output_actions, action_row): Adjust.
+       * src/conflicts.c (resolve_sr_conflict): Adjust.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
+       * src/print.c: here.
+       (lookaheadset, shiftset): New, used as additional storage by
+       print_reductions.
+       (print_results): Adjust.
+       (print_shifts, print_gotos, print_errs): New, extracted from...
+       (print_actions): here.
+       * src/print_graph.c (print_actions): Remove dead code.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
+       `$n' and `@n'.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
+       (build_relations): Adjust.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (set_goto_map): Remove a wrong but benign loop
+       duplication.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (packgram): Catch nitems overflows.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/files.c, src/files.h (guard_obstack): Remove.
+       * src/output.c (output): Adjust.
+       * src/reader.c (parse_braces): New, factoring...
+       (copy_action, copy_guard): these two which are renamed as...
+       (parse_action, parse_guard): these.
+       As a voluntary consequence, using braces around guards is now
+       mandatory.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (rule_t): `guard' and `guard_line' are new members.
+       * src/reader.c (symbol_list): `guard' and `guard_line' are new
+       members.
+       (symbol_list_new): Adjust.
+       (copy_action): action_line is the first line, not the last.
+       (copy_guard): Just as for actions, store the `action' only, not
+       the switch/case/break flesh.
+       Don't parse the user action that might follow the guard, let...
+       (readgram): do it, i.e., now, there can be an action after a
+       guard.
+       In other words the guard is just explicitly optional.
+       (packgram): Adjust.
+       * src/output.c (guards_output): New.
+       (output_parser): Call it when needed.
+       (output): Also free the guard and attrs obstacks.
+       * src/files.c, src/files.h (obstack_save): Remove.
+       (output_files): Remove.
+       As a result, if one needs the former `.act' file, using an
+       appropriate skeleton which requires actions and guards is now
+       required.
+       * src/main.c (main): Adjust.
+       * tests/semantic.at: New.
+       * tests/regression.at: Use `input.y' as input file name.
+       Avoid 8+3 problems by requiring input.c when the test needs the
+       parser.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (symbol_list_new): Be sure to initialize all the
+       fields.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       All the hacks using a final pseudo state are now useless.
+
+       * src/LR0.c (set_state_table): state_table holds exactly nstates.
+       * src/lalr.c (nLA): New.
+       (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
+       instead of lookaheadsp from the pseudo state (nstate + 1).
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (action_row, token_actions): Use a state_t instead
+       of a integer, and nlookaheads instead of the following state's
+       lookaheadsp.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (log_resolution, flush_shift)
+       (resolve_sr_conflict, set_conflicts, solve_conflicts)
+       (count_sr_conflicts, count_rr_conflicts, conflicts_output)
+       (conflicts_print, print_reductions): Use a state_t instead of an
+       integer when referring to a state.
+       As much as possible, depend upon nlookaheads, instead of the
+       `lookaheadsp' member of the following state (since lookaheads of
+       successive states are successive, the difference between state n + 1
+       and n served as the number of lookaheads for state n).
+       * src/lalr.c (add_lookback_edge): Likewise.
+       * src/print.c (print_core, print_actions, print_state)
+       (print_results): Likewise.
+       * src/print_graph.c (print_core, print_actions, print_state)
+       (print_graph): Likewise.
+       * src/conflicts.h: Adjust.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.hairy: Formatting/comment changes.
+       ANSIfy.
+       Remove `register' indications.
+       Add plenty of `static'.
+
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (prepare): Drop the muscle `ntbase' which
+       duplicates ntokens.
+       * src/bison.simple: Formatting/comment changes.
+       Use YYNTOKENS only, which is documented, but not YYNTBASE, which
+       is an undocumented synonym.
+
+2001-12-22  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output_table_data): Change the prototype to use
+       `int' for array ranges: some invocations do pass an int, not a
+       short.
+       Reported by Wayne Green.
+
+2001-12-22  Akim Demaille  <akim@epita.fr>
+
+       Some actions of web2c.y are improperly triggered.
+       Reported by Mike Castle.
+
+       * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
+       * tests/regression.at (Web2c): Rename as...
+       (Web2c Report): this.
+       (Web2c Actions): New.
+
+2001-12-22  Akim Demaille  <akim@epita.fr>
+
+       Reductions in web2c.y are improperly reported.
+       Reported by Mike Castle.
+
+       * src/conflicts.c (print_reductions): Fix.
+       * tests/regression.at (Web2c): New.
+
+2001-12-18  Akim Demaille  <akim@epita.fr>
+
+       Some host fail on `assert (!"foo")', which expands to
+       ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
+       Reported by Nelson Beebee.
+
+       * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
+       `#define it_succeeded 0' and `assert (it_succeeded)'.
+
+2001-12-17  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple: Don't hard code the skeleton line and filename.
+       * src/output.c (output_parser): Rename 'line' as 'output_line'.
+       New line counter 'skeleton_line' (skeleton-line muscle).
+
+2001-12-17  Paul Eggert  <eggert@twinsun.com>
+
+       * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
+       YYDEBUG must be defined to a nonzero value.
+
+       * src/bison.simple (yytname): Do not assume that the user defines
+       YYDEBUG to a properly parenthesized expression.
+
+2001-12-17  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (state_t): Rename lookaheads as lookaheadsp.
+       nlookaheads is a new member.
+       Adjust all users.
+       * src/lalr.h (nlookaheads): Remove this orphan declaration.
+       * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
+       state.
+
+2001-12-17  Akim Demaille  <akim@epita.fr>
+
+       * src/files.h, src/files.c (open_files, close_files): Remove.
+       * src/main.c (main): Don't open/close files, nor invoke lex_free,
+       let...
+       * src/reader.c (reader): Do it.
+
+2001-12-17  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Formatting changes.
+
+2001-12-17  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (flush_shift): Also adjust lookaheadset.
+       (flush_reduce): New.
+       (resolve_sr_conflict): Adjust.
+
+2001-12-17  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output_obstack): Be static and rename as...
+       (format_obstack): this, to avoid any confusion with files.c's
+       output_obstack.
+       * src/reader.h (muscle_obstack): Move to...
+       * src/output.h: here, since it's defined in output.c.
+
+2001-12-17  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (action_row, save_column, default_goto)
+       (sort_actions, matching_state, pack_vector): Better variable
+       locality.
+
+2001-12-17  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c: Various formatting changes.
+
+2001-12-17  Akim Demaille  <akim@epita.fr>
+
+       * src/files.c (output_files): Free the output_obstack.
+       * src/main.c (main): Call print and print_graph conditionally.
+       * src/print.c (print): Work unconditionally.
+       * src/print_graph.c (print_graph): Work unconditionally.
+       * src/conflicts.c (log_resolution): Output only if verbose_flag.
+
+2001-12-16  Marc Autret  <autret_m@epita.fr>
+
+       * src/output.c (actions_output): Fix. When we use %no-lines,
+       there is one less line per action.
+
+2001-12-16  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple: Remove a useless #line directive.
+       s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
+       * src/output.c (get_lines_number): New.
+       (output_parser): Adjust, now takes care about the lines of a
+       output muscles.
+       Fix line numbering.
+       (actions_output): Computes the number of lines taken by actions.
+       (output_master_parser): Insert new skeleton which is the name of
+       the output parser file name.
+
+2001-12-15  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
+
+2001-12-15  Marc Autret  <autret_m@epita.fr>
+
+       * src/output.c (output_gram): Keep track of the hairy one.
+
+2001-12-15  Akim Demaille  <akim@epita.fr>
+
+       Make `make distcheck' work.
+
+       * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
+       system.h which uses libgettext.h.
+
+2001-12-15  Akim Demaille  <akim@epita.fr>
+
+       * src/nullable.c (set_nullable): Useless rules must be skipped,
+       otherwise, since we range over their symbols, we might look at a
+       nonterminal which no longer ``exists'', i.e., it is not counted in
+       `nvars', hence we overflow our arrays.
+
+2001-12-15  Akim Demaille  <akim@epita.fr>
+
+       The header can also be produced directly, without any obstack!
+       Yahoo!
+
+       * src/files.c, src/files.h (defines_obstack): Remove.
+       (compute_header_macro): Global.
+       (defines_obstack_save): Remove.
+       * src/reader.c (parse_union_decl): No longer output to
+       defines_obstack: its content can be found in the `stype' muscle
+       anyway.
+       (output_token_translations): Merge into...
+       (symbols_output): this.
+       Rename as...
+       (symbols_save): this.
+       (reader): Adjust.
+       * src/output.c (header_output): New.
+       (output): Call it.
+
+2001-12-15  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (parse_union_decl): Instead of handling two obstack
+       simultaneously, use one to define the `stype' muscle, and use the
+       value of the latter to fill defines_obstack.
+       (copy_comment): Remove.
+       (copy_comment2): Work for a single obstack.
+       Rename as...
+       (copy_comment): this.
+
+2001-12-15  Akim Demaille  <akim@epita.fr>
+
+       * src/lex.c, src/lex.h (xgetc): No longer static.
+       * src/reader.c (parse_union_decl): Revamp.
+
+2001-12-15  Akim Demaille  <akim@epita.fr>
+
+       Still making progress in separating Bison into (i) input, (ii)
+       process, (iii) output: now we can directly output the parser file
+       without using table_obstack at all.
+
+       * src/files.c, src/files.h (table_obstack): Bye bye.
+       (parser_file_name): New.
+       * src/files.c (compute_output_file_names): Compute it.
+       * src/output.c (actions_output, output_parser)
+       (output_master_parser): To a file instead of an obstack.
+
+2001-12-15  Akim Demaille  <akim@epita.fr>
+
+       Attach actions to rules, instead of pre-outputting them to
+       actions_obstack.
+
+       * src/gram.h (rule_t): action and action_line are new members.
+       * src/reader.c (symbol_list): Likewise.
+       (copy_action): Save the actions within the rule.
+       (packgram): Save them in rule_table.
+       * src/output.c (actions_output): New.
+       (output_parser): Use it on `%%actions'.
+       (output_rule_data): Don't free rule_table.
+       (output): Do it.
+       (prepare): Don't save the `action' muscle.
+       * src/bison.simple: s/%%action/%%actions/.
+
+2001-12-15  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (copy_action): When --yacc, don't append a `;'
+       to the user action: let it fail if lacking.
+       Suggested by Arnold Robbins and Tom Tromey.
+
+2001-12-14  Akim Demaille  <akim@epita.fr>
+
+       * src/lex.c (literalchar): Simply return the char you decoded, non
+       longer mess around with obstacks and int pointers.
+       Adjust all callers.
+
+2001-12-14  Akim Demaille  <akim@epita.fr>
+
+       * src/lex.c (literalchar): Don't escape the special characters,
+       just decode them, and keep them as char (before, eol was output as
+       the 2 char string `\n' etc.).
+       * src/output.c (output_rule_data): Use quotearg to output the
+       token strings.
+
+2001-12-13  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
+       Do not infringe on the global user namespace when using C++.
+       (YYFPRINTF, YYSTDERR): New macros, needed for the above.
+       All uses of `fprintf' and `stderr' changed.
+
+       * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
+
+2001-12-13  Akim Demaille  <akim@epita.fr>
+
+       The computation of nullable is broken: it doesn't handle empty
+       RHS's properly.
+
+       * tests/torture.at (GNU AWK Grammar): New.
+       * tests/sets.at (Nullable): New.
+       * src/nullable.c (set_nullable): Instead of blindly looping over
+       `ritems', loop over the rules, and then over their rhs's.
+
+       Work around Autotest bugs.
+
+       * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
+       frame, because Autotest understand lines starting with a `+' as
+       traces from the shell.  Then, they are not processed properly.
+       Admittedly an Autotest bug, but we don't have time to wait for
+       Autotest to catch up.
+       * tests/regression.at (Broken Closure): Adjust to the new table
+       frames.
+       Move to...
+       * tests/sets.at: here.
+
+2001-12-13  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (closure): Use nrules instead of playing tricks
+       with BITS_PER_WORD.
+
+2001-12-13  Akim Demaille  <akim@epita.fr>
+
+       * src/print.c (print_actions): Output the handling of `$' as the
+       traces do: shifting the token EOF.  Before EOF was treated as a
+       nonterminal.
+       * tests/regression.at: Adjust some tests.
+       * src/print_graph.c (print_core): Complete the set of items via
+       closure.  The next-to-final and final states are still unsatisfying,
+       but that's to be addressed elsewhere.
+       No longer output the rule numbers, but do output the state number.
+       A single loop for the shifts + gotos is enough, but picked a
+       distinct color for each.
+       (print_graph): Initialize and finalize closure.
+
+2001-12-13  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (readgram): Remove dead code, an strip useless
+       braces.
+       (get_type): Remove, unused.
+
+2001-12-12  Akim Demaille  <akim@epita.fr>
+
+       * src/complain.h, src/complain.c: Remove error_one_per_line, rely
+       on that of lib/error.c.
+
+2001-12-12  Akim Demaille  <akim@epita.fr>
+
+       Some hosts don't like `/' in includes.
+
+       * src/system.h: Include libgettext.h without qualifying the path.
+       * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
+       $(top_srcdir).
+
+2001-12-11  Marc Autret  <autret_m@epita.fr>
+
+       * src/output.c (output_parser): Remove useless muscle.
+
+2001-12-11  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple: Remove #line just before %%epilogue. It
+       is now handled in ...
+       * src/reader.c (read_additionnal_code): Add the output of a
+       #line for the epilogue.
+
+2001-12-10  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (copy_definition): Re-use CPP-outed code which
+       replace precedent remove.
+       * src/bison.simple: Remove #line before %%prologue because
+       %%input-line is wrong at this time.
+
+2001-12-10  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (symbols_output): Clean up.
+       * src/output.c (output_gram, output): Clean up.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (initialize_lookaheads): New.  Extracted from...
+       * src/LR0.c (set_state_table): here.
+       * src/lalr.c (lalr): Call it.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (shifts): Remove the `number' member: shifts are
+       attached to state, hence no longer need to be labelled with a
+       state number.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       Now that states have a complete set of members, the linked list of
+       shifts is useless: just fill directly the state's shifts member.
+
+       * src/state.h (shifts): Remove the `next' member.
+       * src/LR0.c (first_state, last_state): Remove.
+       Adjust the callers.
+       (augment_automaton): Don't look for the shifts that must be added
+       a shift on EOF: it is those of the state we looked for!  But now,
+       since shifts are attached, it is no longer needed to looking
+       merely by its id: its number.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (augment_automaton): Better variable locality.
+       Remove an impossible branch: if there is a state corresponding to
+       the start symbol being shifted, then there is shift for the start
+       symbol from the initial state.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
+       only when appropriate: when insert_start_shifting_state' is not
+       invoked.
+       * tests/regression.at (Rule Line Numbers): Adjust.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (augment_automaton): Now that all states have shifts,
+       merge the two cases addition shifts to the initial state.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (set_state_table): Move to...
+       * src/LR0.c: here.
+       * src/lalr.c (lalr): Don't call it...
+       * src/LR0.c (generate_states): do it.
+       * src/LR0.h (first_state): Remove, only the table is used.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.h (first_shift, first_reduction): Remove.
+       * src/lalr.c: Don't use first_shift: find shifts through the
+       states.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c: Attach shifts to states as soon as they are
+       computed.
+       * src/lalr.c (set_state_table): Instead of assigning shifts to
+       state, just assert that the mapping was properly done.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (insert_start_shift): Rename as...
+       (insert_start_shifting_state): this.
+       (insert_eof_shifting_state, insert_accepting_state): New.
+       (augment_automaton): Adjust.
+       Better locality of the variables.
+       When looking if the start_symbol is shifted from the initial
+       state, using `while (... symbol != start_symbol ...)' sounds
+       better than `while (... symbol < start_symbol ...)': If fail
+       to see how the order between symbols could be relevant!
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/getargs.h: Don't declare `spec_name_prefix' and
+       `spec_file_prefix', declared by src/files.h.
+       * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
+       * src/muscle_tab.c (muscle_init): Default prefix to NULL.
+       * src/output.c (prepare): Adjust.
+       * src/reader.c (symbols_output): Likewise.
+       * src/vmsgetargs.c: Vaguely adjust, but who cares?
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/muscle_tab.c (muscle_init): NULL is a better default than
+       `"0"'.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (reader): Calling symbols_output once is enough.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       Now that states have a complete set of members, the linked list of
+       reductions is useless: just fill directly the state's reductions
+       member.
+
+       * src/state.h (struct reductions): Remove member `number' and
+       `next'.
+       * src/LR0.c (first_reduction, last_reduction): Remove.
+       (save_reductions): Don't link the new reductions, store them in
+       this_state.
+       * src/lalr.c (set_state_table): No need to attach reductions to
+       states, it's already done.
+       * src/output.c (output_actions): No longer free the shifts, then
+       the reductions, then the states: free all the states and their
+       members.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/options.c (OPTN, DRTV, BOTH): New.
+       (option_table): Use them.
+
+       * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
+       the job of system.h.
+       * src/options.c: Don't include stdio.h and xalloc.h for the same
+       reasons.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output, prepare): Make sure the values of the
+       muscles `action' and `prologue' are 0-terminated.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       Clean up GCC warnings.
+
+       * src/reader.c (copy_action): `buf' is not used.
+       (parse_skel_decl): Be static.
+       * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
+       * src/options.h (create_long_option_table): Have a real prototype.
+       * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
+       (hash_delete_at): Return const void *.
+       Adjust casts to preserve the const.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * configure.in: Require 2.52g.
+       M4 is not needed, but AUTOM4TE is.
+       * m4/m4.m4: Remove.
+       * tests/Makefile.am: Adjust.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       One structure for states is enough, even though theoretically
+       there are LR(0) states and LALR(1) states.
+
+       * src/lalr.h (state_t): Remove.
+       (state_table): Be state_t **, not state_t *.
+       * src/state.h (core, CORE_ALLOC): Rename as...
+       (state_t, STATE_ALLOC): this.
+       Add the LALR(1) members: shifts, reductions, errs.
+       * src/LR0.c (state_table): Rename as...
+       (state_hash): this, to avoid name clashes with the global
+       `state_table'.
+       * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
+       * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       Bison dumps core on bash.y.
+       Reported by Pascal Bart.
+
+       * src/warshall.c (bitmatrix_print): New.
+       (TC): Use it.
+       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.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
+       its argument.
+       Reported by Peter Hámorský.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (err_table): Remove.
+       (resolve_sr_conflict): Adjust.
+       * src/lalr.h (state_t.reduction_table, state_t.shift_table):
+       Rename as...
+       (state_t.reductions, state_t.shifts): this.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (reduce_grammar_tables): No longer disable the
+       removal of useless rules via CPP but via `if (0)', so that the
+       compiler still check the code is valid.
+       For instance, it should have noticed `rline' no longer exists: use
+       the `line' member of rule_t.
+       * src/gram.c (dummy, rline): Remove, unused.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (pack_vector): Use assert, not berror.
+       * src/main.c (berror): Remove, unused.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       New experimental feature: if --verbose --trace output all the
+       items of a state, not only its kernel.
+
+       * src/print.c (print_core): If `trace_flag', then invoke closure
+       before outputting the items of the state (print_core is no longer
+       a correct name them).
+       (print_results): Invoke new_closure/free_closure if needed.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
+       * src/closure.c, src/closure.h (itemsetsize): Rename as...
+       (nitemset): for consistency with the rest of the project.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (print_closure): Improve.
+       (closure): Use it for printing input and output.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
+       indexed by nonterminals.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
+       what it was!).
+       * src/warshall.h: Remove accidental duplication of the content.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (set_fderives): De-obfuscate.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (print_firsts, print_fderives): De-obfuscate.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (set_firsts): De-obfuscate.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (action_row): De-obfuscate
+       using the good o' techniques: arrays not pointers, variable
+       locality, BITISSET, RESETBIT etc.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       Pessimize the code to simplify it: from now on, all the states
+       have a valid SHIFTS, which NSHIFTS is possibly 0.
+
+       * src/LR0.c (shifts_new): Be global and move to..
+       * src/state.c, src/state.h: here.
+       * src/conflicts, src/lalr.c, src/output.c, src/print.c,
+       * src/print_graph: Adjust.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
+       * src/conflicts.c: Use it.
+       Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
+       incorrectly ``simplified''.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
+       using the good o' techniques: arrays not pointers, variable
+       locality, BITISSET, RESETBIT etc.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (SHIFT_SYMBOL): New.
+       * src/conflicts.c: Use it to deobfuscate.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
+       (print_reductions): De-obfuscate using the good o' techniques:
+       arrays not pointers, variable locality, BITISSET.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Arrays, not pointers.
+       Use BITISSET.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Pessimize, but clarify.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Improve variable locality.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Pessimize, but clarify.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Improve variable locality.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
+       * src/lalr.c: Use them.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (augment_automaton): Formatting changes.
+       Better variable locality.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (matrix_print): New.
+       (transpose): Use it.
+       Use arrays instead of pointers.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (maxrhs): Move to...
+       * src/gram.c, src/gram.h (ritem_longest_rhs): here.
+       * src/lalr.c (build_relations): Adjust.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (transpose): Free the memory allocated to the
+       argument, as it is replaced by the results by the unique caller.
+       (build_relations): Merely invoke transpose: it handles the memory
+       deallocation.
+       Improve variable locality.
+       Avoid variables used as mere abbreviations.
+       (compute_lookaheads): Use arrays instead of pointers.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (initialize_F): Improve variable locality.
+       Avoid variables used as mere abbreviations.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/derives.c (print_derives): Display the ruleno.
+       * src/lalr.c (initialize_F, transpose): Better variable locality
+       to improve readability.
+       Avoid variables used as mere abbreviations.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (traverse): Use arrays instead of pointers.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
+       the handling of squeue.
+       `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       Because useless nonterminals are now kept alive (instead of being
+       `destroyed'), we now sometimes examine them, and store information
+       related to them.  Hence we need to know their number, and adjust
+       memory allocations.
+
+       * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
+       static.
+       * src/LR0.c (allocate_itemsets): The memory allocated to
+       `symbol_count' was used for two different purpose: once to count
+       the number of occurrences of each symbol, and later reassigned to
+       `shift_symbol', containing the symbol that can be shifted from a
+       given state.
+       Deobfuscate, i.e., allocate, use and free `symbol_count' here
+       only, and...
+       (new_itemsets): Allocate `shift_symbol' here.
+       (allocate_itemsets): symbol_count includes useless nonterminals.
+       Make room for them.
+       (free_storage): Use `free', not `XFREE', for pointers that cannot
+       be null.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/nullable.c (set_nullable): Deobfuscate the handling of
+       ritem.
+       `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.c, src/gram.h (ritem_print): New.
+       * src/gram.c (dummy): Remove, now there is actual code in gram.c.
+       (This useless function was defined only to work around VMS linkers
+       that can't handle compilation units with variables only).
+       * src/reduce.c (dump_grammar): Use it to trace the construction of
+       ritem.
+
+2001-12-04  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.simple (union yyalloc): Change member names
+       to be the same as the stack names.
+       (yyparse): yyptr is now union yyalloc *, not char *.
+       (YYSTACK_RELOCATE): Likewise.  This avoids a GCC warning,
+       and may generate better code on some machines.
+       (yystpcpy): Use prototype if __STDC__ is defined, not just
+       if __cplusplus is defined.
+
+2001-11-30  Akim Demaille  <akim@epita.fr>
+
+       * configure.in (WARNING_CFLAGS): Add -Werror when possible.
+       (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
+       Gettext doesn't compile cleanly, and dies with -Werror.
+       * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
+       Include WARNING_CFLAGS here.
+       * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
+       before being defined.
+
+2001-11-27  Paul Eggert  <eggert@twinsun.com>
+
+       * lib/quotearg.h (quotearg_n, quotearg_n_style):
+       First arg is int, not unsigned.
+       * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
+       (SIZE_MAX, UINT_MAX): New macros.
+       (quotearg_n_options): Abort if N is negative.
+       Avoid overflow check on hosts where size_t is 64 bits and int
+       is 32 bits, as overflow is impossible there.
+       Fix off-by-one typo that caused unnecessary reallocation.
+
+2001-11-29  Paul Eggert  <eggert@twinsun.com>
+
+       Name space cleanup in generated parser.
+
+       * doc/bison.texinfo (Bison Parser): Discuss system headers
+       and their effect on the user name space.
+
+       * src/bison.simple:
+       (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
+       YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
+       i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
+
+       (YYSIZE_T): New macro.  Use it instead of size_t, to avoid infringing
+       on user names when possible.
+
+       (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
+       Simplify test for whather <alloca.h> exists.
+
+       (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
+
+       (<stdio.h>): Include if YYDEBUG.
+
+       (yymemcpy): Renamed from __yy_memcpy.  Do not define unless
+       ! defined (yyoverflow) && ! defined (yymemcpy).
+
+       (yymemcpy, yyparse): Rename local variables as needed so that
+       they all begin with 'yy'.
+
+       (yystrlen, yystpcpy): New functions.
+
+       (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
+       All uses changed.
+
+       (yyparse): size_t -> YYSIZE_T.  Use yystrlen and yystpcpy
+       instead of relying on string.h functions.  Use YYSTACK_ALLOC
+       and YYSTACK_FREE instead of malloc and free.
+
+2001-11-30  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
+       before their first uses.
+       (YYBISON, YYPURE): Move to the top of the output.
+
+2001-11-30  Akim Demaille  <akim@epita.fr>
+
+       * tests/reduce.at (Useless Nonterminals): Fix.
+
+2001-11-30  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
+       if body instead of `;' to pacify GCC's warnings.
+
+2001-11-30  Akim Demaille  <akim@epita.fr>
+
+       Instead of mapping the LHS of unused rules to -1, keep the LHS
+       valid, but flag the rules as invalid.
+
+       * src/gram.h (rule_t): `useful' is a new member.
+       * src/print.c (print_grammar): Adjust.
+       * src/derives.c (set_derives): Likewise.
+       * src/reader.c (packgram, reduce_output): Likewise.
+       * src/reduce.c (reduce_grammar_tables): Likewise.
+       * tests/reduce.at (Underivable Rules, Useless Rules): New.
+
+2001-11-30  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (reduce_output): Formatting changes.
+       * src/print.c (print_results, print_grammar): Likewise.
+       * tests/regression.at (Rule Line Numbers)
+       (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
+
+2001-11-30  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (nonterminals_reduce): Instead of throwing away
+       useless nonterminals, move them at the end of the symbol arrays.
+       (reduce_output): Adjust.
+       * tests/reduce.at (Useless Nonterminals): Adjust.
+
+2001-11-30  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c: Various comment/formatting changes.
+       (nonterminals_reduce): New, extracted from...
+       (reduce_grammar_tables): here.
+       (reduce_grammar): Call nonterminals_reduce.
+
+2001-11-29  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.simple (YYSTACK_REALLOC): Remove.
+       (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
+       (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
+       New macros.
+       (union yyalloc): New type.
+       (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
+       an arbitrary restriction on hosts where size_t is wider than int.
+
+       (yyparse): Don't dump core if alloca or malloc fails; instead, report
+       a parser stack overflow.  Allocate just one block of memory for all
+       three stacks, instead of allocating three blocks; this typically is
+       faster and reduces fragmentation.
+
+       Do not limit the number of items in the stack to a value that fits
+       in 'int', as this is an arbitrary limit on hosts with 64-bit
+       size_t and 32-bit int.
+
+2001-11-29  Marc Autret  <autret_m@epita.fr>
+
+       * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
+       of defining YYERROR_VERBOSE.
+       [AT_DATA]: $4 is now out of C declarations in the prologue.
+
+2001-11-28  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (parse_dquoted_param): New.
+       (parse_skel_decl): Use it.
+       * src/lex.h: Add its prototype.
+       * src/lex.c (literalchar): Become not static.
+
+2001-11-28  Marc Autret  <autret_m@epita.fr>
+
+       * src/output.h: And put its extern declaration here.
+       * src/output.c (error_verbose): Define here.
+       (prepare): Echo name modification.
+       * src/getargs.h: Clean its extern declaration.
+       * src/getargs.c (error_verbose_flag): Remove.
+       (getargs): Remove case 'e'.
+       * src/options.c (option_table): 'error-verbose' is now seen as simple
+       percent option.
+       Include output.h.
+
+       * src/reader.c (read_declarations): Remove case tok_include.
+       (parse_include_decl): Remove.
+       * src/lex.h (token_t): Remove tok_include.
+       * src/options.c (option_table): 'include' is now a simple command line
+       option.
+
+2001-11-28  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple: Adjust muscle names.
+       * src/muscle_tab.c (muscle_init): Also rename the muscles.
+       * src/output.c (prepare): s/_/-/ for the muscles names.
+       (output_parser): When scanning for a muscle, allow '-' instead of '_'.
+
+2001-11-28  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple: Fix debug.
+       [YYERROR_VERBOSE]: Re-integrate as an internal macro.
+
+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (shifts_new): New.
+       (save_shifts, insert_start_shift, augment_automaton): Use it.
+
+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (closure): `b' and `ruleno' denote the same value:
+       keep ruleno only.
+
+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (closure): Instead of looping over word in array
+       then bits in words, loop over bits in array.
+
+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (closure): No longer optimize the special case
+       where all the bits of `ruleset[r]' are set to 0, to make the code
+       clearer.
+
+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (closure): `r' and `c' are new variables, used to
+       de-obfuscate accesses to RULESET and CORE.
+
+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (reduce_print): Use ngettext.
+       (dump_grammar): Improve the trace accuracy.
+
+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (dump_grammar): Don't translate trace messages.
+
+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
+       * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
+       as all tags are free'ed afterwards.
+       From Enrico Scholz.
+
+2001-11-27  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
+       use alloca when we didn't want to, and vice versa.
+
+2001-11-27  Marc Autret  <autret_m@epita.fr>
+
+       * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
+       initialization.
+       * src/output.c (prepare): Remove its update.
+
+2001-11-27  Marc Autret  <autret_m@epita.fr>
+
+       * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
+       Use %error-verbose.
+
+2001-11-27  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple: Remove YYERROR_VERBOSE using.
+       Use %%error_verbose.
+       (yyparse): Likewise.
+       * src/output.c (prepare): Give its final value.
+       * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
+       * src/getargs.h: Add its extern declaration.
+       * src/getargs.c (error_verbose_flag): New int.
+       (getargs): Update to catch new case.
+       * src/options.c (option_table): 'error-verbose' is a new option.
+       (shortopts): Update.
+
+2001-11-27  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h: Use intl/libgettext.h.
+       * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
+
+2001-11-27  Akim Demaille  <akim@epita.fr>
+
+       * tests/torture.at (Exploding the Stack Size with Malloc):
+       s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
+
+2001-11-27  Akim Demaille  <akim@epita.fr>
+
+       * src/files.c: Include error.h.
+       Reported by Hans Aberg.
+
+2001-11-26  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (parse_include_decl): New, not yet implemented.
+       (read_declarations): Add case tok_include.
+       * src/getargs.h (include): Add its extern definition.
+       * src/getargs.c (include): New const char *.
+       (getargs): Add case '-I'.
+       * src/options.c (option_table): Add include as command line and
+       percent option.
+       * src/lex.h (token_t): Add tok_include.
+
+2001-11-26  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (readgram): Make sure rules for mid-rule actions
+       have a lineno equal to that of their host rule.
+       Reported by Hans Aberg.
+       * tests/regression.at (Rule Line Numbers): New.
+
+2001-11-26  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
+       size_ts.
+
+2001-11-26  Akim Demaille  <akim@epita.fr>
+
+       * src/complain.c, src/complain.h (error): Remove, provided by
+       lib/error.[ch].
+
+2001-11-26  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (read_declarations): Don't abort on tok_illegal,
+       issue an error message.
+       * tests/regression.at (Invalid %directive): New.
+       Reported by Hans Aberg.
+
+2001-11-26  Akim Demaille  <akim@epita.fr>
+
+       * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
+       * lib/Makefile.am (libbison_a_SOURCES): Adjust.
+
+2001-11-26  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (conflicts_print): Don't complain at all when
+       there are no reduce/reduce conflicts, and as many shift/reduce
+       conflicts as expected.
+       * tests/regression.at (%expect right): Adjust.
+
+2001-11-23  Akim Demaille  <akim@epita.fr>
+
+       * lib/alloca.c: Update, from fileutils.
+
+2001-11-23  Akim Demaille  <akim@epita.fr>
+
+       * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
+
+2001-11-23  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h: Include alloca.h.
+       * src/main.c (main) [C_ALLOCA]: Call alloca (0).
+
+2001-11-23  Akim Demaille  <akim@epita.fr>
+
+       * src/print_graph.c (print_actions): Remove `rule', unused.
+       * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
+       pacify GCC's signed < unsigned warnings.
+       * src/closure.c (itemsetsize): Likewise.
+       * src/reader.c (symbol_list_new): Static.
+
+2001-11-23  Akim Demaille  <akim@epita.fr>
+
+       Attaching lineno to buckets is stupid, since only one copy of each
+       symbol is kept, only the line of the first occurrence is kept too.
+
+       * src/symtab.h, src/symtab.c (bucket): Remove the line member.
+       * src/reader.c (rline_allocated): Remove, unused.
+       (symbol_list): Have a `line' member.
+       (symbol_list_new): New.
+       (readgram): Use it.
+       * src/print.c (print_grammar): Output the rule line numbers.
+       * tests/regression.at (Solved SR Conflicts)
+       (Unresolved SR Conflicts): Adjust.
+       Reported by Hans Aberg.
+
+2001-11-22  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
+
+2001-11-22  Marc Autret  <autret_m@epita.fr>
+
+       * src/muscle_tab.c (muscle_init): Remove initialization of
+       skeleton muscle.
+       * src/output.c (output_master_parser): Do it here.
+
+2001-11-20  Akim Demaille  <akim@epita.fr>
+
+       * po/sv.po: New.
+       * configure.in (ALL_LINGUAS): Adjust.
+       * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
+       longer contains strings to translate.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (conflicts_print): Add a missing \n.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/nullable.c (nullable_print): New.
+       (set_nullable): Call it when tracing.
+       Better locality of variables.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/print.c (print_actions): Better locality of variables.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/derives.c (print_derives): Fix and enrich.
+       * src/closure.c (print_fderives): Likewise.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (itemsetend): Remove, replaced with...
+       (itemsetsize): new.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (kernel_end): Remove, replaced with...
+       (kernel_size): new.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (set_conflicts): Use arrays instead of pointers
+       to clarify.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (closure): Use arrays instead of pointers to clarify.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c, src/derives.c, src/nullable.c: Adjust various
+       trace messages.
+       * src/LR0.c: Likewise.
+       (allocate_itemsets): Use arrays instead of pointers to clarify.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/getargs.c (statistics_flag): Replace with...
+       (trace_flag): New.
+       (longopts): Accept --trace instead of --statistics.
+       * src/getargs.h, src/options.c: Adjust.
+       * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
+       * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
+       pointers to clarify the code.
+       (save_reductions, save_shifts): Factor common parts of alternatives.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (new_state, get_state): Complete TRACE code.
+       * src/closure.c: Include `reader.h' to get `tags', needed by the
+       trace code.
+       Rename the conditional DEBUG as TRACE.
+       Output consistently TRACEs to stderr, not stdout.
+       * src/derives.c: Likewise.
+       * src/reduce.c: (inaccessable_symbols): Using if is better style
+       than goto.
+       Use `#if TRACE' instead of `#if 0' for tracing code.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h (LIST_FREE, shortcpy): New.
+       * src/LR0.c: Use them.
+       * src/output.c (free_itemsets, free_reductions, free_shifts):
+       Remove, replaced by LIST_FREE.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
+       (REDUCTIONS_ALLOC):  New.
+       * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
+       allocation.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (new_state): Complete trace code.
+       * src/nullable.c (set_nullable): Don't translate traces.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/print_graph.c (print_core): Better locality of variables.
+       * src/print.c (print_core): Likewise.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/vcg.c: You do the output, so you are responsible of the
+       handling of VCG syntax, in particular: use quotearg.
+       * src/print_graph.c: Don't.
+       (print_actions): Don't output the actions as part of the nodes,
+       since that's the job of the edges.
+       (print_state): Don't output by hand: fill the node description,
+       and ask for its output.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple (yyparse): When verbosely reporting an error,
+       no longer put additional quotes around token names.
+       * tests/calc.at: Adjust.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
+       * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
+       * src/output.c: Adjust.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
+       (rule_t): this.
+       * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (rule_t): New.
+       (rule_table): New.
+       (rrhs, rlhs): Remove, part of state_t.
+       * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
+       * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
+       * src/reader.c, src/reduce.c: Adjust.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (symbols_output): New, extracted from...
+       (packsymbols): Here.
+       (reader): Call it.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
+       (maxrhs): this new function.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (F): New macro to access the variable F.
+       Adjust.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.h (LA): New macro to access the variable LA.
+       * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
+       * src/lalr.c: Adjust.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (initialize_LA): Only initialize LA.  Let...
+       (set_state_table): handle the `lookaheads' members.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.h (lookaheads): Removed array, whose contents is now
+       a member of...
+       (state_t): this structure.
+       * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
+       Adjust.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.h (consistent): Removed array, whose contents is now
+       a member of...
+       (state_t): this structure.
+       * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
+       Adjust.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
+       contents are now members of...
+       (state_t): this structure.
+       * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
+       Adjust.
+
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.h (state_t): New.
+       (state_table): Be a state_t * instead of a core **.
+       (accessing_symbol): Remove, part of state_t.
+       * src/lalr.c: Adjust.
+       (set_accessing_symbol): Merge into...
+       (set_state_table): this.
+       * src/print_graph.c, src/conflicts.c: Adjust.
+
+2001-11-14  Akim Demaille  <akim@epita.fr>
+
+       * tests/calc.at, tests/output.at, tests/regression.at,
+       * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
+       now the tests are run in private dirs, therefore AC_CLEANUP and
+       family can be simplified to 0-ary.
+       * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
+       use abs. path to find config.h.
+       * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
+       stderr, there can be way too much random noise.
+       Instead pass -Werror to GCC and rely on the exit status.
+       Reported by Wolfram Wagner.
+
+2001-11-14  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
+       defined only if yyoverflow is defined, to avoid `warning: unused
+       variable `yyvs1''.
+       Reported by The Test Suite.
+
+2001-11-14  Akim Demaille  <akim@epita.fr>
+
+       * src/print.c: Include reduce.h.
+       Reported by Hans Aberg.
+
+2001-11-14  Akim Demaille  <akim@epita.fr>
+
+       * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
+       Revert a previous patch:  these are really const.
+       * src/conflicts.c (conflict_report): Additional useless pair of
+       braces to pacify GCC's warnings for `if () if () {} else {}'.
+       * src/lex.c (parse_percent_token): Replace equal_offset with
+       arg_offset.
+       arg is const.
+       Be sure to strdup `arg' when used, since there is no reason for
+       token_buffer not to change.
+
+2001-11-14  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
+       definition.
+       * src/main.c (main): Use them.
+       Suggested by Hans Aberg.
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h (ngettext): Now that we use ngettext, be sure to
+       provide a default definition when NLS are not used.
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
+       Use @kbd to denote user input.
+       (Language and Grammar): ANSIfy the example.
+       Adjust its layout for info/notinfo.
+       (Location Tracking Calc): Output error messages to stderr.
+       Output locations in a more GNUtically correct way.
+       Fix a couple of Englishos.
+       Adjust @group/@end group pairs.
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       %expext was not functioning at all.
+
+       * src/conflicts.c (expected_conflicts): Set to -1.
+       (conflict_report): Use ngettext.
+       (conflicts_print): Check %expect and make its violation an error.
+       * doc/bison.texinfo (Expect Decl): Adjust.
+       * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
+       * tests/regression.at (%expect not enough, %expect right)
+       (%expect too much): New.
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Conflicts): Rename as...
+       (Unresolved SR Conflicts): this.
+       (Solved SR Conflicts): New.
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (print_results): Rename as...
+       (reduce_output): This.
+       Output to OUT, passed as argument, instead of output_obstack.
+       (dump_grammar): Likewise.
+       (reduce_free): New.
+       Also free V1.
+       (reduce_grammar): No longer call reduce_output, since...
+       * src/print.c (print_results): do it.
+       * src/main.c (main): Call reduce_free;
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Accept OUT as argument.
+       Output to it, not to output_obstack.
+       * src/print.c (print_actions): Adjust.
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
+       the result instead of using...
+       (src_total, rrc_total, src_count, rrc_count): Remove.
+       (any_conflicts): Remove.
+       (print_conflicts): Split into...
+       (conflicts_print, conflicts_output): New.
+       * src/conflicts.h: Adjust.
+       * src/main.c (main): Invoke both conflicts_output and conflicts_print.
+       * src/print.c (print_grammar): Issue `\n' between two rules.
+       * tests/regression.at (Conflicts): New.
+       Reported by Tom Lane.
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Invalid input): Remove, duplicate with
+       ``Invalid input: 1''.
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       * tests/torture.at (AT_DATA_STACK_TORTURE)
+       (Exploding the Stack Size with Alloca)
+       (Exploding the Stack Size with Malloc): New.
+
+2001-11-12  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple (YYSTACK_REALLOC): New.
+       (yyparse) [!yyoverflow]: Use it and free the old stack.
+       Reported by Per Allansson.
+
+2001-11-12  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/bison.simple: Define type yystype instead of YYSTYPE, and
+       define CPP macro, which substitute YYSTYPE by yystype.
+       * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
+       with yyltype/YYLTYPE.  This allows inclusion of the generated
+       header within the parser if the compiler, such as GGC, accepts
+       multiple equivalent #defines.
+       From Akim.
+
+2001-11-05  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (symbols_output): New, extracted from...
+       (packsymbols): here.
+       (reader): Adjust.
+
+2001-11-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lex.c (parse_percent_token): s/quotearg/quote/.
+
+2001-11-05  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
+       pattern.
+
+2001-11-05  Akim Demaille  <akim@epita.fr>
+
+       * src/options.h (struct option_table_struct): set_flags is void*.
+       * src/options.c (longopts): Support `--output' and `%output'.
+       (usage): Adjust.
+       * src/lex.h (tok_setopt): Remove, replaced with...
+       (tok_intopt, tok_stropt): these new guys.
+       * src/lex.c (getopt.h): Not needed.
+       (token_buffer, unlexed_token_buffer): Not const.
+       (percent_table): Promote `-' over `_' in directive names.
+       Active `%name-prefix', `file-prefix', and `output'.
+       (parse_percent_token): Accept possible arguments to directives.
+       Promote `-' over `_' in directive names.
+
+2001-11-04  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Decl Summary): Split the list into
+       `directives for grammars' and `directives for bison'.
+       Sort'em.
+       Add description of `%name-prefix', `file-prefix', and `output'.
+       Promote `-' over `_' in directive names.
+       (Bison Options): s/%locactions/%locations/.  Nice Freudian slip.
+       Simplify the description of `--name-prefix'.
+       Promote `-' over `_' in directive names.
+       Promote `--output' over `--output-file'.
+       Fix the description of `--defines'.
+       * tests/output.at: Exercise %file-prefix and %output.
+
+2001-11-02  Akim Demaille  <akim@epita.fr>
+
+       * doc/refcard.tex: Update.
+
+2001-11-02  Akim Demaille  <akim@epita.fr>
+
+       * src/symtab.h (SUNDEF): New.
+       * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
+       stand for `uninitialized', instead of 0.
+       * src/reader.c (packsymbols, parse_thong_decl): Adjust.
+       * src/lex.c (lex): Adjust.
+
+       * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
+       Number it 0.
+       Let yylex return it instead of a plain 0.
+       Reported by Dick Streefland.
+
+2001-11-02  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Mixing %token styles): New test.
+
+2001-11-02  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (parse_thong_decl): Formatting changes.
+       (token_translations_init): New, extracted from...
+       (packsymbols): Here.
+       Adjust.
+
+2001-11-01  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
+       Check that `9foo.y' produces correct cpp guards.
+       * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
+       guards.
+       Reported by Wwp.
+
+2001-11-01  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Invalid input: 2): New.
+       * src/lex.c (unlexed_token_buffer): New.
+       (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
+       too.
+       Reported by Wwp.
+
+2001-11-01  Akim Demaille  <akim@epita.fr>
+
+       * tests/calc.at: Catch up with 1.30.
+       * configure.in: Bump to 1.49a.
+       Adjust to newer Autotest.
+
+2001-10-19  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/conflicts.c: Move global variables rrc_total and src_total ...
+       (print_conflicts): here.
+       * src/output.c (output): Free global variable user_toknums.
+       * src/lex.c (token_obstack): Become static.
+
+2001-10-18  Akim Demaille  <akim@epita.fr>
+
+       * tests/atlocal.in (GCC): Add.
+       * tests/calc.at: s/m4_match/m4_bmatch/.
+       s/m4_patsubst/m4_bpatsubst/.
+       (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
+       * configure.in: AC_SUBST(GCC).
+
+2001-10-14  Marc Autret  <autret_m@epita.fr>
+
+       * src/options.c (create_long_option_table): Fix.
+
+2001-10-10  Akim Demaille  <akim@epita.fr>
+
+       * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
+
+2001-10-04  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (parse_union_decl): Push the caracters in
+       union_obstack, not attrs_obstack.
+
+2001-10-04  Akim Demaille  <akim@epita.fr>
+
+       Merge in the branch 1.29.
+
+       * src/reader.c (packsymbols): Use a temporary obstack for
+       `%%tokendef', since output_stack is already used elsewhere.
+
+       2001-10-02  Akim Demaille  <akim@epita.fr>
+
+       Bump 1.29d.
+
+       2001-10-02  Akim Demaille  <akim@epita.fr>
+
+       Version 1.29c.
+
+       2001-10-02  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Invalid CPP headers): New.
+       From Alexander Belopolsky.
+       * src/files.c (compute_header_macro): Map non alnum chars to `_'.
+
+       2001-10-02  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Invalid input): New.
+       * src/lex.c (lex): Be sure to set `token_buffer' in any case.
+       Reported by Shura.
+
+       2001-10-02  Akim Demaille  <akim@epita.fr>
+
+       * tests/calc.at: Now that --debug works, the tests must be adjusted.
+
+       2001-10-02  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output_parser): Assert `skeleton'.
+       * src/files.c (skeleton_find): Look harder for skeletons on DOSish
+       systems.
+       From Shura.
+
+       2001-10-01  Marc Autret  <autret_m@epita.fr>
+
+       * src/lex.h: Echo modifications.
+       * src/lex.c (unlex): Parameter is now token_t.
+       From Hans Aberg.
+
+       2001-10-01  Marc Autret  <autret_m@epita.fr>
+
+       * src/main.c: Include lex.h.
+       From Hans Aberg.
+
+       2001-09-29  Akim Demaille  <akim@epita.fr>
+
+       * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
+
+       2001-09-28  Akim Demaille  <akim@epita.fr>
+
+       * tests/testsuite.at: Update to newer Autotest.
+       * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
+
+       2001-09-27  Akim Demaille  <akim@epita.fr>
+
+       Position independent wrapper.
+
+       * tests/bison: Remove.
+       * tests/bison.in: New.
+       * configure.in: Adjust.
+
+       2001-09-27  Paul Eggert  <eggert@twinsun.com>
+
+       Port quotearg fixes from tar 1.13.24.
+
+       * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
+       tm to be declared.
+       (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
+       (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
+
+       * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
+       * m4/mbrtowc.m4: New file.
+       * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
+       Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
+
+       2001-09-27  Akim Demaille  <akim@epita.fr>
+
+       Bump to 1.29c.
+
+       2001-09-27  Akim Demaille  <akim@epita.fr>
+
+       Version 1.29b.
+
+       2001-09-25  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h: Include `xalloc.h'.
+       Remove it from the C files.
+       * src/files.c (output_files): Free the obstacks.
+       * src/lex.c (init_lex): Rename as...
+       (lex_init): this.
+       (lex_free): New.
+       * src/main.c (main): Use it.
+
+       2001-09-24  Marc Autret  <autret_m@epita.fr>
+
+       * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
+       to output informations in fout (FILE*).
+       (open_graph, close_graph): Likewise.
+       (output_graph, output_edge, output_node): Likewise.
+       * src/vcg.h: Update function prototypes.
+       * src/print_graph.c (print_graph): Open output graph file.
+       (print_actions): Adjust.
+       * src/files.h: Remove extern declaration.
+       * src/files.c: Remove graph_obstack declaration.
+       (open_files): Remove graph_obstack initialization.
+       (output_files): Remove graph_obstack saving.
+
+       2001-09-24  Marc Autret  <autret_m@epita.fr>
+
+       * src/files.c (compute_output_file_names): Fix.
+
+       2001-09-24  Marc Autret  <autret_m@epita.fr>,
+                   Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (reader): Remove call to free_symtab ().
+       * src/main.c (main): Call it here.
+       Include symtab.h.
+       * src/conflicts.c (initialize_conflicts): Rename as...
+       (solve_conflicts): this.
+       * src/print.c (print_core, print_actions, print_state)
+       (print_grammar): Dump to a file instead a `output_obstack'.
+       (print_results): Dump `output_obstack', and then proceed with the
+       FILE *.
+       * src/files.c (compute_output_file_names, close_files): New.
+       (output_files): Adjust.
+       * src/main.c (main): Adjust.
+
+       2001-09-23  Marc Autret  <autret_m@epita.fr>
+
+       * src/files.c (compute_header_macro): Computes header macro name
+       from spec_defines_file when given.
+
+       2001-09-23  Marc Autret  <autret_m@epita.fr>
+
+       * src/files.c (output_files): Add default extensions.
+
+       2001-09-22  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (finalize_conflicts): Rename as...
+       (free_conflicts): this.
+
+       2001-09-22  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.c (gram_free): Rename back as...
+       (dummy): this.
+       (output_token_translations): Free `token_translations'.
+       * src/symtab.c (free_symtab): Free the tag field.
+
+       2001-09-22  Akim Demaille  <akim@epita.fr>
+
+       Remove `translations' as it is always set to true.
+
+       * src/gram.h: Adjust.
+       * src/reader.c (packsymbols, parse_token_decl): Adjust
+       * src/print.c (print_grammar): Adjust.
+       * src/output.c (output_token_translations): Adjust.
+       * src/lex.c (lex): Adjust.
+       * src/gram.c: Be sure the set pointers to NULL.
+       (dummy): Rename as...
+       (gram_free): this.
+
+       2001-09-22  Akim Demaille  <akim@epita.fr>
+
+       * configure.in: Invoke AM_LIB_DMALLOC.
+       * src/system.h: Use dmalloc.
+       * src/LR0.c: Be sure to have pointers initialized to NULL.
+       (allocate_itemsets): Allocate kernel_items only if needed.
+
+       2001-09-22  Akim Demaille  <akim@epita.fr>
+
+       * configure.in: Bump to 1.29b.
+       * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
+       * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
+       need xmalloc.c in calc.y.
+       From Pascal Bart.
+
+       2001-09-21  Akim Demaille  <akim@epita.fr>
+
+       Version 1.29a.
+       * Makefile.maint, config/config.guess, config/config.sub,
+       * config/missing: Update from masters.
+       * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
+       upon package.m4.
+       * configure.in (ALL_LINGUAS): Add `tr'.
+
+       2001-09-21  Akim Demaille  <akim@epita.fr>
+
+       * tests/Makefile.am (package.m4): Move to...
+       ($(srcdir)/$(TESTSUITE)): here.
+
+       2001-09-20  Akim Demaille  <akim@epita.fr>
+
+       * src/complain.c: No longer try to be standalone: use system.h.
+       Don't assume __STDC__ is defined to 1. Just test if it is defined.
+       * src/complain.h: Likewise.
+       * src/reduce.c (useless_nonterminals, inaccessable_symbols):
+       Remove the unused variable `n'.
+       From Albert Chin-A-Young.
+
+       2001-09-18  Marc Autret  <autret_m@epita.fr>
+
+       * doc/bison.1: Update.
+       * doc/bison.texinfo (Bison Options): Update --defines and --graph
+       descriptions.
+       (Option Cross Key): Update.
+       Add --graph.
+
+       2001-09-18  Marc Autret  <autret_m@epita.fr>
+
+       * tests/regression.at: New test (comment in %union).
+
+       2001-09-18  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
+       do that.
+       Reported by Keith Browne.
+
+       2001-09-18  Marc Autret  <autret_m@epita.fr>
+
+       * tests/output.at: Add tests for --defines and --graph.
+
+       2001-09-18  Marc Autret  <autret_m@epita.fr>
+
+       * tests/output.at: Removes tests of %{header,src}_extension features.
+
+       2001-09-18  Akim Demaille  <akim@epita.fr>
+
+       * tests/Makefile.am (package.m4): New.
+       * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
+       (_AT_CHECK_CALC_ERROR): Likewise.
+       Factor the `, ' part of verbose error messages.
+
+       2001-09-18  Marc Autret  <autret_m@epita.fr>
+
+       * src/getargs.c (longopts): Declare --defines and --graph as options
+       with optional arguments.
+       * src/files.h: Add extern declarations.
+       * src/files.c (spec_graph_file, spec_defines_file): New.
+       (output_files): Update.
+       Remove CPP-outed code.
+
+       2001-09-18  Marc Autret  <autret_m@epita.fr>
+
+       Turn off %{source,header}_extension feature.
+
+       * src/files.c (compute_exts_from_gf): Update.
+       (compute_exts_from_src): Update.
+       (output_files): CPP-out useless code.
+       * src/files.h: Remove {header,source}_extension extern declarations.
+       * src/reader.c (parse_dquoted_param): CPP-out.
+       (parse_header_extension_decl): Remove.
+       (parse_source_extension_decl): Remove.
+       (read_declarations): Remove cases tok_{hdrext,srcext}.
+       * src/lex.c (percent_table): Remove {header,source}_extension entries.
+       * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
+
+       2001-09-10  Akim Demaille  <akim@epita.fr>
+
+       * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
+       (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
+       (AT_CHECK_OUTPUT): this.
+       Merely check ls' exit status, its output is useless.
+
+       2001-09-10  Akim Demaille  <akim@epita.fr>
+
+       * tests/calc.at: Use m4_match.
+       (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
+
+       2001-09-10  Marc Autret  <autret_m@epita.fr>,
+                   Akim Demaille  <akim@epita.fr>
+
+       * src/vcg.h (graph_s): color, textcolor, bordercolor are now
+       enum color_e.
+       * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
+       to `normal'.
+       * src/reader.c (parse_token_decl): Initialize token with tok_eof.
+       * src/lex.h: Adjust prototype.
+       (token_t): Add `tok_undef'.
+       * src/lex.c (struct percent_table_struct): Retval is now a token_t.
+       (parse_percent_token): Now returns token_t.
+       Add default statement in switch.
+       (lex): Separate `c' as an input variable, from the token_t result
+       part.
+       (unlexed): Is a token_t.
+
+       2001-09-10  Akim Demaille  <akim@epita.fr>
+
+       * configure.in: Bump to 1.29a.
+
+       2001-09-07  Akim Demaille  <akim@epita.fr>
+
+       Version 1.29.
+
+       2001-08-30  Akim Demaille  <akim@epita.fr>
+
+       * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
+       * m4/atconfig.m4: Remove.
+       * tests/testsuite.at, tests/atlocal.in, tests/output.at,
+       * tests/bison: New.
+       * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
+       m4_if, m4_patsubst, and m4_regexp.
+       * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
+       `input' file instead of echo.
+
+       2001-08-29  Akim Demaille  <akim@epita.fr>
+
+       Bump to 1.28e.
+
+       2001-08-29  Akim Demaille  <akim@epita.fr>
+
+       Version 1.28d.
+
+       2001-08-29  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.simple (yyparse): Don't take the address of an
+       item before the start of an array, as that doesn't conform to
+       the C Standard.
+
+       2001-08-29  Robert Anisko  <anisko_r@epita.fr>
+
+       * doc/bison.texinfo (Location Tracking Calc): New node.
+
+       2001-08-29  Paul Eggert  <eggert@twinsun.com>
+
+       * src/output.c (output): Do not define const, as this now
+       causes more problems than it cures.
+
+       2001-08-29  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
+       the nodes.
+       Be sure to tag the `detailmenu'.
+
+       2001-08-29  Akim Demaille  <akim@epita.fr>
+
+       * Makefile.maint (do-po-update): Wget refuses to overwrite files:
+       download in a tmp dir.
+
+       2001-08-28  Marc Autret  <autret_m@epita.fr>
+
+       * config/depcomp: New file.
+
+       2001-08-28  Marc Autret  <autret_m@epita.fr>
+
+       * doc/bison.1 (mandoc): Adjust.
+       From Juan Manuel Guerrero.
+
+       2001-08-28  Marc Autret  <autret_m@epita.fr>
+
+       * src/print_graph.c (print_state): Fix.
+
+       2001-08-27  Marc Autret  <autret_m@epita.fr>
+
+       * src/vcg.h (classname_s, infoname_s, node_s): Constify the
+       char * members.
+       Echo modifications to the functions prototypes.
+       * src/vcg.c (add_classname, add_infoname): Adjust arguments.
+
+       2001-08-27  Marc Autret  <autret_m@epita.fr>
+
+       * src/vcg.c: Include `xalloc.h'.
+       (add_colorentry): New.
+       (add_classname): New.
+       (add_infoname): New.
+       * src/vcg.h: Add new prototypes.
+
+       2001-08-27  Akim Demaille  <akim@epita.fr>
+
+       * Makefile.maint: Sync. again with CVS Autoconf.
+
+       2001-08-27  Akim Demaille  <akim@epita.fr>
+
+       * Makefile.maint: Formatting changes.
+       (po-update, cvs-update, update): New targets.
+       (AMTAR): Remove.
+
+       2001-08-27  Akim Demaille  <akim@epita.fr>
+
+       * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
+       * Makefile.maint: Sync. with CVS Autoconf.
+
+       2001-08-27  Marc Autret  <autret_m@epita.fr>
+
+       * src/vcg.h (struct infoname_s): New.
+       (struct colorentry_s): New.
+       (graph_s): New fields {vertical,horizontal}_order in structure.
+       Add `infoname' field.
+       Add `colorentry' field;
+       * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
+       (G_HORIZONTAL_ORDER): New.
+       (G_INFONAME): New.
+       (G_COLORENTRY): New.
+       * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
+       Add output of `infoname'.
+       Add output of `colorentry'.
+
+       2001-08-27  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
+       This one shadowed a global parameter.
+
+       2001-08-24  Marc Autret  <autret_m@epita.fr>
+
+       * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
+       instead of `unsigned'.
+       (print_state): Do not call obstack_object_size () in obstack_grow ()
+       to avoid macro variables shadowing.
+
+       2001-08-23  Marc Autret  <autret_m@epita.fr>
+
+       * src/lex.c (percent_table): Typo: s/naem/name/.
+       Add graph option.
+       Normalize new options declarations.
+
+       2001-08-20  Pascal Bart  <pascal.bart@epita.fr>
+
+       * tests/suite.at: Exercise %header_extension and %source_extension.
+
+       2001-08-16  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (parse_dquoted_param): New.
+       (parse_header_extension_decl): Use it.
+       (parse_source_extension_decl): Likewise.
+
+       2001-08-16  Marc Autret  <autret_m@epita.fr>
+
+       * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
+       (get_xxxx_str): Use assert () instead of complain ().
+       Remove return invokations in default cases.
+       (get_decision_str): Modify default behaviour. Remove second argument.
+       Echo modifications on calls.
+       (output_graph): Fix.
+
+       2001-08-16  Marc Autret  <autret_m@epita.fr>
+
+       * src/getargs.c (usage): Update with ``-g, --graph''.
+
+       2001-08-16  Marc Autret  <autret_m@epita.fr>
+
+       * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
+       (Option Cross Key): Likewise.
+       * doc/bison.1: Update.
+
+2001-09-25  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/output.c (output_master_parser): Don't finish action_obstack.
+       (output_parser): Don't care about the muscle action, here.
+       (prepare): Copy the action_obstack in the action muscle.
+       (output): Free action_obstack.
+
+2001-09-23  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/reader.c (parse_union_decl): Add new obstack union_obstack.  Which
+       will contain `%union' declaration.
+       (parse_union_decl): Delete #line directive output.
+       (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
+       informations about %union.
+       (parse_union_decl): Copy the union_obstack in the muscle stype.
+       * src/bison.simple: Add new #line directive.
+       Add typdef %%stype YYSTYPE.
+
+2001-09-23  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/bison.simple: Add new `#line' directive.
+
+2001-09-22  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/bison.simple: New `#line' directive.
+       * src/output.c (output_parser): Support new dynamic muscle input_line.
+
+2001-09-22  Marc Autret  <autret_m@epita.fr>
+
+       * src/output.c (output_master_parser): New.
+       (output_parser): Be more re-entrant.
+
+2001-09-21  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (copy_definition, parse_union_decl): Update and use
+       `linef' muscle.
+       (copy_action): Likewise.
+       Use obstack_1grow ().
+       * src/muscle_tab.c (muscle_init): Add muscle `linef'.
+
+2001-09-21  Marc Autret  <autret_m@epita.fr>
+
+       * src/options.c (option_table): Adjust.
+       * src/lex.c (parse_percent_token): Fix.
+
+2001-09-20  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/options.c (symtab.h): Include it, need by lex.h.
+
+2001-09-20  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/lex.c (parse_percent_token): Change type of variable `tx', which
+       is now an option_table_struct*.
+       (option_strcmp): New function option_strcmp.
+       (parse_percent_token): Call option_strcmp.
+       * src/getargs.c (xalloc.h, options.h): Include it.
+       (getargs): Call create_long_option_table.
+       (getargs): Free longopts at the end of the function.
+       (shortopts): Move in options.c.
+       * src/options.c (create_long_option_table): New function.  Convert
+       information from option_table to option structure.
+       * src/reader.c (options.h): Include it.
+
+       * src/Makefile.am: Adjust.
+       * src/options.c (option_table): Create from longopts and percent_table.
+       * src/getargs.c (longopts): Delete.
+       * src/lex.c (struct percent_table_struct): Delete.
+       (percent_table): Delete.
+       (options.h): Include it.
+       * src/options.c: Create.
+       * src/options.h: Create.
+       Declare enum opt_access_e.
+       Define struct option_table_struct.
+
+2001-09-20  Marc Autret  <autret_m@epita.fr>
+
+       * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
+       sections of Bison.
+
+2001-09-19  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/bison.simple: s/%%filename/%%skeleton.
+       * src/muscle_tab.c (getargs.h): Include it.
+       (muscle_init): Insert new muscle skeleton.
+
+2001-09-18  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/output.c (output_parser): Delete unused variable actions_dumped.
+
+2001-09-07  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/output.c (output): Delete call to reader_output_yylsp.
+       * src/reader.c (reader): Likewise.
+       * src/reader.h: Delete declaration of reader_output_yylsp.
+
+2001-09-02  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c: Include muscle_tab.h.
+       (parse_union_decl): Update.
+       (parse_macro_decl): Rename parse_muscle_decl.
+       Update to use renamed functions and variable.
+       (read_declarations, copy_action, read_additionnal_code, : Updated
+       with correct variables and functions names.
+       (packsymbols, reader): Likewise.
+
+       * src/reader.h (muscle_obstack): Extern declaration update.
+
+       * src/output.c: Include muscle_tab.h
+       In all functions using macro_insert, change by using muscle_insert ().
+       (macro_obstack): Rename muscle_obstack.
+       Echo modifications in the whole file.
+       (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
+       (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
+       (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
+
+       * src/muscle_tab.h: Update double inclusion macros.
+       (macro_entry_s): Rename muscle_entry_s.
+       Update prototypes.
+
+       * src/muscle_tab.c: Include muscle_tab.h.
+       Rename macro_tabble to muscle_table.
+       (mhash1, mhash2, mcmp): Use muscle_entry.
+       (macro_init): Rename muscle_init. Update.
+       (macro_insert): Rename muscle_insert. Update.
+       (macro_find): Rename muscle_find. Update.
+
+       * src/main.c: Include muscle_tab.h.
+       (main): Call muscle_init ().
+       * src/Makefile.am (bison_SOURCES): Echo modifications.
+
+2001-09-02  Marc Autret  <autret_m@epita.fr>
+
+       Now the files macro_tab.[ch] are named muscle_tab.[ch].
+
+       * src/muscle_tab.c, src/muscle_tab.h: Add files.
+
+2001-09-02  Marc Autret  <autret_m@epita.fr>
+
+       * src/macrotab.c, src/macrotab.h: Remove.
+
+2001-09-01  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/reader.c (copy_guard): Use muscle to specify the `#line'
+       filename.
+
+2001-09-01  Marc Autret  <autret_m@epita.fr>
+
+       * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
+       to an explicit value to activate the feature. We do it here.
+
+2001-08-31  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/output.c (prepare): Delete the `filename' muscule insertion.
+       * src/reader.c (copy_action): Use `filename' muscule with `#line'.
+       (parse_union_decl): Likewise.
+       * src/macrotab.c (macro_init): Initialize filename by infile.
+
+2001-08-31  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple (YYLSP_NEEDED): New definition.
+       * src/output.c (prepare): Add macro insertion of `locations_flag'
+
+2001-08-31  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/output.c (prepare): Delete insertion of previous muscles,
+       and insert the `prefix' muscles.
+       * src/macrotab.c (macro_init): Likewise.
+       (macro_init): Initialization prefix directive by `yy'.
+       * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
+       %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
+       yylval, yydebug, yyerror, yynerrs and yyparse.
+       New directive `#define' to substitute yydebug, ... with option
+       name_prefix.
+
+2001-08-31  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/main.c (main): Standardize.
+       * src/output.c (output_table_data, output_parser): Likewise.
+       * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
+
+2001-08-31  Pascal Bart  <pascal.bart@epita.fr>, Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (read_additionnal_code): Rename %%user_code to
+       %%epilogue.
+       * src/output.c (output): Rename %%declarations to %%prologue.
+       * src/bison.simple: Echo modifications.
+
+2001-08-31  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (readgram): CleanUp.
+       (output_token_defines): Likewise.
+       (packsymbols): Likewise.
+       (reader): Likewise.
+       * src/output.c (output): CPP-out useless code.
+
+2001-08-31  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/reader.c (reader): Delete obsolete call to function
+       output_trailers and output_headers.
+       * src/output.h: Remove obsolete functions prototypes of output_headers
+       and output_trailers.
+
+2001-08-30  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/main.c: Include macrotab.h.
+       * src/macrotab.h (macro_entry_s): Constify fields.
+       Adjust functions prototypes.
+       * src/macrotab.c (macro_insert): Constify key and value.
+       (macro_find): Constify key.
+       (macro_insert): Include 'xalloc.h'
+       (macro_insert): Use XMALLOC.
+       (macro_find): Constify return value.
+       * src/output.c (output_table_data): Rename table to table_data.
+       (output_parser): Constify macro_key, macro_value.
+
+2001-08-30  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (parse_skel_decl): New.
+       (read_declarations): Add case `tok_skel', call parse_skel_decl ().
+       * src/lex.h (token_t): New token `tok_skel'.
+       * src/lex.c (percent_table): Add skeleton option entry.
+       Standardize.
+
+2001-08-29  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple: Add %%user_code directive at the end.
+       * src/reader.c (read_additionnal_code): New.
+       (reader): Use it.
+       * src/output.c (output_program): Remove.
+       (output): Update.
+
+2001-08-28  Marc Autret  <autret_m@epita.fr>
+
+       * src/output.c (output_actions): Clean up.
+       (output_gram): CPP-out useless code.
+       * src/reader.c (reader): Clean up, CPP-out useless code.
+
+2001-08-28  Pascal Bart  <pascal.bart@epita.fr>
+
+       * src/output.c (output): Copy attrs_obstack in the '%%definitions'
+       directive.
+       * src/bison.simple: Add `%%definitions'.
+
+2001-08-28  Marc Autret  <autret_m@epita.fr>
+
+       * config/depcomp: New file.
+
+2001-08-27  Paul Eggert  <eggert@twinsun.com>
+
+       * src/bison.simple (yyparse): Don't take the address of an
+       item before the start of an array, as that doesn't conform to
+       the C Standard.
+
+2001-08-27  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/output.c (output): Remove the initialization of the macro
+       obstack.  It was done too late here.
+
+       * src/reader.c (parse_macro_decl): Fix.  Use of the macro obstack was
+       completely wrong.
+       (reader): Initialize the macro obstack here, since we need it to grow
+       '%define' directives.
+
+       * src/reader.h: Declare the macro obstack as extern.
+
+2001-08-27  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/output.c (output_parser): Fix.  Store single '%' characters in
+       the output obstack instead of throwing them away.
+
+2001-08-27  Akim Demaille  <akim@epita.fr>
+
+       * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
+
+2001-08-25  Robert Anisko  <robert.anisko@epita.fr>
+
+       * lib/Makefile.am: Adjust.
+
+2001-08-25  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/bison.simple: Update and add '%%' directives.
+
+2001-08-25  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/reader.c (reader): Remove calls to 'output_headers' and
+       'output_trailers'. Remove some C output.
+       (readgram): Disable a piece of code that was writing a default
+       definition for 'YYSTYPE'.
+       (reader_output_yylsp): Remove.
+       (packsymbols): Output token defintions to a macro.
+       (copy_definition): Disable C output.
+
+       * src/reader.c (parse_macro_decl): New function used to parse macro
+       declarations.
+       (copy_string2): Put the body of copy_string into this new function.
+       Add a parameter to let the caller choose whether he wants to copy the
+       string delimiters or not.
+       (copy_string): Be a simple call to copy_string2 with the last argument
+       bound to true.
+       (read_declarations): Add case for macro definition.
+       (copy_identifier): New.
+       (parse_macro_decl): Read macro identifiers using copy_identifier
+       rather than lex.
+
+2001-08-25  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/output.c (prepare): Add prefixed names.
+       (output_parser): Output semantic actions.
+       (output_parser): Fix bug on '%%line' directives.
+
+       * src/output.c (output_headers): Remove. The C code printed by this
+       function should now be in the skeletons.
+       (output_trailers): Remove.
+       (output): Disable call to 'reader_output_yylsp'.
+       (output_rule_data): Do not output tables to the table obstack.
+
+       * src/output.c: Remove some C dedicated output.
+       Improve the use of macro and output obstacks.
+       (output_defines): Remove.
+
+       * src/output.c (output_token_translations): Associate 'translate'
+       table with a macro. No output to the table obstack.
+       (output_gram): Same for 'rhs' and 'prhs'.
+       (output_stos): Same for 'stos'.
+       (output_rule_data): Same for 'r1' and 'r2'.
+       (token_actions): Same for 'defact'.
+       (goto_actions): Same for 'defgoto'.
+       (output_base): Same for 'pact' and 'pgoto'.
+       (output_table): Same for 'table'.
+       (output_check): Same for 'check'.
+
+       * src/output.c (output_table_data): New function.
+       (output_short_table): Remove.
+       (output_short_or_char_table): Remove.
+
+       * src/output.c (output_parser): Replace most of the skeleton copy code
+       with something new. Skeletons are now processed character by character
+       rather than line by line, and Bison looks for '%%' macros. This is the
+       first step in making Bison's output process (a lot) more flexible.
+       (output_parser): Use the macro table.
+
+2001-08-25  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/main.c (main): Initialize the macro table.
+
+2001-08-25  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/lex.c (percent_table): Add tok_define.
+       * src/lex.h: Add tok_define.
+
+2001-08-25  Robert Anisko  <robert.anisko@epita.fr>
+
+       * src/macrotab.c: New file.
+       * src/macrotab.h: New file.
+       * src/Makefile.am: Update.
+
+2001-08-25  Robert Anisko  <robert.anisko@epita.fr>
+
+       * lib/hash.c: New file.
+       * lib/hash.h: New file.
+       * lib/Makefile.am: Update.
+
+2001-08-15  Akim Demaille  <akim@epita.fr>
+
+       Version 1.28c.
+
+2001-08-15  Marc Autret  <autret_m@epita.fr>
+
+       * src/reader.c (readgram): Indent output macro YYSTYPE.
+       (packsymbols): Likewise.
+       (output_token_defines): Likewise.
+       * src/files.c: Standardize.
+       (compute_header_macro): New.
+       (defines_obstack_save): New. Use compute_header_macro.
+       (output_files): Update. Use defines_obstack_save.
+
+2001-08-15  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Table of Symbols): Document
+       YYSTACK_USE_ALLOCA.
+
+2001-08-15  Akim Demaille  <akim@epita.fr>
+
+       * missing: Update from CVS Automake.
+       * config/config.guess, config/config.sub, config/texinfo.tex:
+       Update from gnu.org.
+
+2001-08-15  Akim Demaille  <akim@epita.fr>
+
+       * Makefile.maint: Sync with CVS Autoconf.
+
+2001-08-14  Pascal Bart  <pascal.bart@epita.fr>
+
+       * doc/bison.texinfo: Include GNU Free Documentation License from
+       `fdl.texi'.
+       * doc/fdl.texi: Add to package.
+
+2001-08-14  Marc Autret  <autret_m@epita.fr>
+
+       Turn on %{source,header}_extension features.
+
+       * src/lex.c (percent_table): Un-CPP out header_extension and
+       source_extension.
+       * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
+       (compute_exts_from_src): Remove conditions. It restores priorities
+       between options.
+
+2001-08-14  Marc Autret  <autret_m@epita.fr>
+
+       * src/files.c (compute_base_names): Add extensions computing when
+       `--file-prefix' used.
+       Standardize function calls.
+
+2001-08-13  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
+       defining it (defined but null disables alloca).
+
+2001-08-13  Marc Autret  <autret_m@epita.fr>
+
+       * src/bison.simple (_yy_memcpy): CPP reformat.
+
+2001-08-13  Pascal Bart  <pascal.bart@epita.fr>
+
+       * tests/atconfig.in (CPPFLAGS): Fix.
+
+2001-08-10  Pascal Bart  <pascal.bart@epita.fr>
+
+       * doc/bison.texinfo: Include GNU General Public License from
+       `gpl.texi'.
+       * doc/gpl.texi: Add to package.
+
+2001-08-10  Marc Autret  <autret_m@epita.fr>
+
+       * src/print_graph.h: Fix.
+       * src/reader.c (read_declarations): Use parse_header_extension_decl ().
+
+2001-08-10  Akim Demaille  <akim@epita.fr>
+
+       * src/system.h: Provide default declarations for stpcpy, strndup,
+       and strnlen.
+
+2001-08-10  Robert Anisko  <anisko_r@epita.fr>
+
+       * doc/bison.texinfo (Locations): Update @$ stuff.
+
+2001-08-09  Robert Anisko  <anisko_r@epita.fr>
+
+       * src/bison.simple (YYLLOC_DEFAULT): Update.
+       (yyparse): Adjust.
+
+2001-08-08  Marc Autret  <autret_m@epita.fr>
+
+       * doc/bison.texinfo: Change @samp{$<@dots{}>} to
+       @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
+       Reported by Fabrice Bauzac.
+
 2001-08-08  Marc Autret  <autret_m@epita.fr>
 
        * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
        * src/vcg.c (output_node): Fix.
        * src/vcg.h: Cleanup.
        * src/print_graph.c: Add comments.
 2001-08-08  Marc Autret  <autret_m@epita.fr>
 
        * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
        * src/vcg.c (output_node): Fix.
        * src/vcg.h: Cleanup.
        * src/print_graph.c: Add comments.
-       (node_output_size): New global variable. Simplify the formatting of 
+       (node_output_size): New global variable. Simplify the formatting of
        the VCG graph output.
        the VCG graph output.
-       (print_actions): Unused code is now used. It notifies the final state 
+       (print_actions): Unused code is now used. It notifies the final state
        and no action states in the VCG graph. It also give the reduce actions.
        and no action states in the VCG graph. It also give the reduce actions.
-       The `shift and goto' edges are red and the `go to state' edges are 
+       The `shift and goto' edges are red and the `go to state' edges are
        blue.
        Get the current node name and node_obstack by argument.
        (node_obstack): New variable.
        blue.
        Get the current node name and node_obstack by argument.
        (node_obstack): New variable.
        * src/print_graph.c (quote): New.
        (print_core): Use it.
 
        * src/print_graph.c (quote): New.
        (print_core): Use it.
 
-2001-08-06  Akim Demaille  <akim@epita.fr>, Marc Autret  <autret_@epita.fr>
+2001-08-06  Akim Demaille  <akim@epita.fr>, Marc Autret  <autret_m@epita.fr>
 
        * src/vcg.c (complain.h): Include it.
        Unepitaize `return' invocations.
        [NDEBUG] (main): Remove.
 
        * src/vcg.c (complain.h): Include it.
        Unepitaize `return' invocations.
        [NDEBUG] (main): Remove.
-       * src/vcg.h (node_t, edge_t, graph_t): Constify the char * memebers.
+       * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
        * src/files.c (open_files): Initialize graph_obstack.
        * src/print_graph.c (print_actions): CPP out useless code.
        (print_core): Don't output the last `\n' in labels.
        * src/files.c (open_files): Initialize graph_obstack.
        * src/print_graph.c (print_actions): CPP out useless code.
        (print_core): Don't output the last `\n' in labels.
        * src/files.c (output_files): Output the VCG file.
        * src/main.c (main): Invoke print_graph ();
 
        * src/files.c (output_files): Output the VCG file.
        * src/main.c (main): Invoke print_graph ();
 
-2001-08-06  Marc Autret   <autret_@epita.fr>
+2001-08-06  Marc Autret  <autret_m@epita.fr>
 
        Automaton VCG graph output.
        Using option ``-g'' or long option ``--graph'', you can generate
 
        Automaton VCG graph output.
        Using option ``-g'' or long option ``--graph'', you can generate
        * src/files.h (graph_obstack): New extern declaration.
        * src/Makefile.am: Add new source files.
 
        * src/files.h (graph_obstack): New extern declaration.
        * src/Makefile.am: Add new source files.
 
-2001-08-06  Marc Autret   <autret_@epita.fr>
+2001-08-06  Marc Autret  <autret_m@epita.fr>
 
        * src/print_graph.c, src/print_graph.h (graph): New.
        * src/vcg.h: New file.
 
        * src/print_graph.c, src/print_graph.h (graph): New.
        * src/vcg.h: New file.
 1987-12-16  Richard Stallman  <rms@gnu.org>
 
        * REFERENCES: entered into RCS
 1987-12-16  Richard Stallman  <rms@gnu.org>
 
        * REFERENCES: entered into RCS
+-----
+
+Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Autoconf.
+
+GNU Autoconf 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,
+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
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.