]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
[bison.git] / ChangeLog
index efb719536675ed36668ac2a6fd572da7b1fd5dce..4a450cbc0a9bd86f426e8ed724afea714a213db8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,519 @@
+2002-05-26  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
+       * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
+       * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
+       (token_number_t, item_number_as_token_number)
+       (token_number_as_item_number, muscle_insert_token_number_table):
+       Rename as...
+       (symbol_number_t, item_number_as_symbol_number)
+       (symbol_number_as_item_number, muscle_insert_symbol_number_table):
+       these, since it is more appropriate.
+
+2002-05-26  Akim Demaille  <akim@epita.fr>
+
+       * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
+       `Error:' lines.
+       * data/bison.simple (yystos) [YYDEBUG]: New.
+       (yyparse) [YYDEBUG]: Display the symbols which are popped during
+       error recovery.
+       * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
+
+2002-05-25  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Debugging): Split into...
+       (Tracing): this new section, its former contents, and...
+       (Understanding): this new section.
+       * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
+       by...
+       (report_flag): this.
+       Adjust all dependencies.
+       (report_args, report_types, report_argmatch): New.
+       (usage, getargs): Report/support -r, --report.
+       * src/options.h
+       (struct option_table_struct): Rename as..,
+       (struct option_table_s): this.
+       Rename the `set_flag' member to `flag' to match with getopt_long's
+       struct.
+       * src/options.c (option_table): Split verbose into an entry for
+       %verbose, and another for --verbose.
+       Support --report/-r, so remove -r from the obsolete --raw.
+       * src/print.c: Attach full item sets and lookaheads reports to
+       report_flag instead of trace_flag.
+       * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
+
+2002-05-24  Paul Hilfinger  <Hilfinger@CS.Berkeley.EDU>
+       and Paul Eggert  <eggert@twinsun.com>
+       
+       * data/bison.simple (yyparse): Correct error handling to conform to
+       POSIX and yacc.  Specifically, after syntax error is discovered,
+       do not reduce further before shifting the error token.
+       Clean up the code a bit by removing the labels yyerrdefault,
+       yyerrhandle, yyerrpop.
+       * NEWS: Document the above.
+
+2002-05-20  Paul Hilfinger  <Hilfinger@CS.Berkeley.EDU>
+
+       * data/bison.simple (yyr1): Don't use yy_token_number_type as element
+       type; it isn't always big enough, since it doesn't necessarily
+       include non-terminals.
+       (yytranslate): Expand definition of yy_token_number_type, so that 
+       the latter can be removed.
+       (yy_token_number_type): Remove, only one use.
+       * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
+       don't use TokenNumberType as element type.
+       
+       * tests/regression.at: Modify expected output to agree with change
+       to yyr1 and yytranslate.
+       
+2002-05-13  Florian Krohm  <florian@edamail.fishkill.ibm.com>
+
+       * src/reader.c (parse_action): Use copy_character instead of
+       obstack_1grow.
+
+2002-05-13  Akim Demaille  <akim@epita.fr>
+
+       * tests/regression.at (Token definitions): Prototype yylex and
+       yyerror.
+
+2002-05-12  Paul Hilfinger  <Hilfinger@CS.Berkeley.EDU>
+
+       * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
+       * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
+       32-bit arithmetic.
+       * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
+
+2002-05-07  Akim Demaille  <akim@epita.fr>
+
+       * tests/synclines.at: Be sure to prototype yylex and yyerror to
+       avoid GCC warnings.
+
+2002-05-07  Akim Demaille  <akim@epita.fr>
+
+       Kill GCC warnings.
+
+       * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
+       over the RHS of each rule.
+       * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
+       * src/state.h (state_t): Member `nitems' is unsigned short.
+       * src/LR0.c (get_state): Adjust.
+       * src/reader.c (packgram): Likewise.
+       * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
+       `Type'.
+       (muscle_insert_int_table): Remove, unused.
+       (prepare_rules): Remove `max'.
+
+2002-05-06  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (print_firsts): Display of the symbol tags.
+       (bitmatrix_print): Move to...
+       * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
+       here.
+       * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
+
+2002-05-06  Akim Demaille  <akim@epita.fr>
+
+       * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
+       hash_do_for_each.
+
+2002-05-06  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (new_state, get_state): Instead of using the global
+       `kernel_size' and `kernel_base', have two new arguments:
+       `core_size' and `core'.
+       Adjust callers.
+
+2002-05-06  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.c (packgram): No longer end `ritem' with a 0
+       sentinel: it is not used.
+
+2002-05-05  Akim Demaille  <akim@epita.fr>
+
+       New experimental feature: display the lookaheads in the report and
+       graph.
+
+       * src/print (print_core): When --trace-flag, display the rules
+       lookaheads.
+       * src/print_graph.c (print_core): Likewise.
+       Swap the arguments.
+       Adjust caller.
+
+2002-05-05  Akim Demaille  <akim@epita.fr>
+
+       * tests/torture.at (Many lookaheads): New test.
+
+2002-05-05  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
+       (GENERATE_MUSCLE_INSERT_TABLE): this.
+       (output_int_table, output_unsigned_int_table, output_short_table)
+       (output_token_number_table, output_item_number_table): Replace with...
+       (muscle_insert_int_table, muscle_insert_unsigned_int_table)
+       (muscle_insert_short_table, muscle_insert_token_number_table)
+       (muscle_insert_item_number_table): these.
+       Adjust all callers.
+       (prepare_tokens): Don't free `translations', since...
+       * src/reader.h, src/reader.c (grammar_free): do it.
+       Move to...
+       * src/gram.h, src/gram.c (grammar_free): here.
+       * data/bison.simple, data/bison.c++: b4_token_number_max is now
+       b4_translate_max.
+
+2002-05-05  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output_unsigned_int_table): New.
+       (prepare_rules): `i' is unsigned.
+       `prhs', `rline', `r2' are unsigned int.
+       Rename muscle `rhs_number_max' as `rhs_max'.
+       Output muscles `prhs_max', `rline_max', and `r2_max'.
+       Free rline and r1.
+       * data/bison.simple, data/bison.c++: Adjust to use these muscles
+       to compute types instead of constant types.
+       * tests/regression.at (Web2c Actions): Adjust.
+
+2002-05-04  Akim Demaille  <akim@epita.fr>
+
+       * src/symtab.h (SALIAS, SUNDEF): Rename as...
+       (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
+       Adjust dependencies.
+       * src/output.c (token_definitions_output): Be sure not to output a
+       `#define 'a'' when fed with `%token 'a' "a"'.
+       * tests/regression.at (Token definitions): New.
+
+2002-05-03  Paul Eggert  <eggert@twinsun.com>
+
+       * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
+       for K&R C.
+
+2002-05-03  gettextize  <bug-gnu-gettext@gnu.org>
+
+       * Makefile.am (SUBDIRS): Remove intl.
+       (EXTRA_DIST): Add config/config.rpath.
+
+2002-05-03  Akim Demaille  <akim@epita.fr>
+
+       * data/bison.simple (m4_if): Don't output empty enums.
+       And actually, output valid enum definitions :(.
+
+2002-05-03  Akim Demaille  <akim@epita.fr>
+
+       * configure.bat: Remove, completely obsolete.
+       * 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-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.
 2002-04-07  Akim Demaille  <akim@epita.fr>
 
        * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
 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.