]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* src/reader.c (parse_braces): Merge into...
[bison.git] / ChangeLog
index 713c5fc70399a9c7f23fcfa81b7bfd68bae47d9d..4f0f2ca0c1fc45c7d9bcf9b2382f6b2cfae132cc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,498 @@
+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,
 2002-04-07  Akim Demaille  <akim@epita.fr>
 
        * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
        YYERROR_VERBOSE is nonzero, not whether it is defined.
 
        Merge changes from bison-1_29-branch.
        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.
 2002-03-20  Paul Eggert  <eggert@twinsun.com>
 
        Merge fixes from Debian bison_1.34-1.diff.
        * src/reader.c (parse_union_decl): Define the muscle stype_line.
        * data/bison.simple, data/bison.c++: Use it.
 
        * 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)
 2002-03-19  Akim Demaille  <akim@epita.fr>
 
        * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
 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.