]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* data/glr.c (YYRHSLOC): Move its definition next to its uses.
[bison.git] / ChangeLog
index 4c54cbd07124b135a721598416d0d0426b9e0cac..1c82ae20008047389c65c8bb5b921181d207a960 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,222 @@
+2004-10-25  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (YYRHSLOC): Move its definition next to its uses.
+       Introduce another definition to address simple location arrays.
+       (yyGLRStack): New member: yyerror_range.
+       (yyrecoverSyntaxError, yyparse): Update it.
+       (yyrecoverSyntaxError): Use it when shifting the error token to
+       have an accurate range, equivalent to the one computed by both
+       yacc.c and lalr1.cc.
+       * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
+       that column numbers start at column 0, as per GNU Coding
+       Standards, the others tests, and the doc.
+       (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
+       Adjust to the above change (first column is 0).
+       And adjust the location of the "<error>", now covering the whole
+       line.
+
+2004-10-22  Akim Demaille  <akim@epita.fr>
+       and  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove some arbitrary limits on goto numbers and relations.
+       * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
+       initial values, since they're never used.
+       (set_goto_map): ngotos is now unsigned, so test for overflow
+       by seeing whether it wraps around to zero.
+       * src/lalr.h (goto_number): Now size_t, not short int.
+       (GOTO_NUMBER_MAXIMUM): Remove.
+       * src/relation.c (relation_print, traverse, relation_transpose):
+       Check for END_NODE rather than looking at sign.
+       * src/relation.h (END_NODE): New macro.
+       (relation_node): Now size_t, not short int.
+
+2004-10-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo (Language and Grammar): In example, "int" is a
+       keyword, not an identifier.  Problem reported by Baron Schwartz in
+       <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
+
+2004-10-11  Akim Demaille  <akim@epita.fr>
+
+       * src/symtab.c (symbol_check_alias_consistency): Also check
+       type names, destructors, and printers.
+       Reported by Alexandre Duret-Lutz.
+       Recode the handling of associativity and precedence in terms
+       of symbol_precedence_set.
+       Accept no redeclaration at all, not even equal to the previous
+       value.
+       (redeclaration): New.
+       Use it to factor redeclaration complaints.
+       (symbol_make_alias): Don't set the type of the alias, let
+       symbol_check_alias_consistency do it as for other features.
+       * src/symtab.h (symbol): Add new member prec_location, and
+       type_location.
+       * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
+       * tests/input.at (Incompatible Aliases): New.
+
+2004-10-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       .cvsignore fixes to accommodate gnulib changes,
+       and the practice of naming build directories "_build".
+       * .cvsignore: Add "_*".  Sort.
+       * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
+       * m4/.cvsignore: Add "*_gl.m4".
+
+2004-10-06  Akim Demaille  <akim@epita.fr>
+
+       * src/parse-gram.y (add_param): Fix the truncation of trailing
+       spaces.
+
+2004-10-05  Akim Demaille  <akim@epita.fr>
+
+       In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
+       whether the reducion was empty or not.  This leaves room to
+       improve the use of YYLLOC_DEFAULT in such a case.
+       lalr1.cc is still experimental, so changing this is acceptable.
+       And finally, there are probably not many users who changed the
+       handling of locations in GLR, so changing is admissible too.
+
+       * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
+       empty reduction, set @$ to an empty location ending the previously
+       stacked symbol.
+       Adjust uses to make sure the code is triggered on empty
+       reductions.
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
+       expected output: empty reductions have empty locations.
+
+2004-09-29  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc: Move towards a more standard C++ coding style
+       for templates: Class < T > -> Class<T>.
+
+2004-09-29  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc: Reinstall the former ctor, for sake of
+       compatibility, but warn it will be removed.
+       Move towards a more standard C++ coding style (i.e., type *var ->
+       type* var).
+
+2004-09-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/parse-gram.y (add_param): Rewrite to avoid strchr,
+       since it's less likely to work if NULs are involved in the future.
+
+2004-09-27  Akim Demaille  <akim@epita.fr>
+
+       * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
+
+2004-09-27  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (b4_parse_param_decl_1): New.
+       (b4_parse_param_decl): Use it to have different names between attribute
+       and argument names.
+       (b4_cc_constructor_call): Likewise.
+
+2004-09-24  Akim Demaille  <akim@epita.fr>
+
+       * src/parse-gram.y (add_param): Strip the leading and trailing
+       blanks from a formal argument declaration.
+       (YY_LOCATION_PRINT): New.
+
+2004-09-24  Akim Demaille  <akim@epita.fr>
+
+       * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
+       after the location.
+
+2004-09-24  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Table of Symbols): Sort.
+
+2004-09-21  Akim Demaille  <akim@epita.fr>
+
+       * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
+       the useless parentheses.
+       Suggested by Paul Eggert.
+
+2004-09-20  Akim Demaille  <akim@epita.fr>
+
+       Let the initial-action act on the look-ahead, and use it for the
+       "initial push" (corresponding to an hypothetical beginning-of-file).
+       And let lalr1.cc honor %initial-action.
+
+       * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
+       example.
+       * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
+       (Parser::Parser): Remove the ctor that used to initialize it.
+       (Parser::parse): Like in the other skeletons, issue the "starting
+       parse" message before any action.
+       Honor %initial-action.
+       Initialize the stacks with the lookahead.
+       * data/yacc.c: Let $$ and @$ in %initial-action designate the
+       look-ahead.
+       Push them in the stacks.
+       * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
+
+2004-09-20  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Initial Action Decl): New.
+
+2004-09-20  Akim Demaille  <akim@epita.fr>
+
+       * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
+       clearer criterion to define it.
+       (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
+       When reducing on an empty RHS, use the latest stacked location as
+       location.
+       yylloc is not always available.
+       * data/glr.c: Likewise.
+       Also, honor initial-actions.
+
+2004-09-20  Akim Demaille  <akim@epita.fr>
+
+       * data/yacc.c (YY_LOCATION_PRINT): New.
+       Define when we know YYLTYPE's structure, i.e., when the default
+       YYLLOC_DEFAULT is used.
+       * data/c.m4 (b4_yysymprint_generate): Use it.
+       * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
+       value of the result.
+       (error_start_): Replace with...
+       (error_range_): this location array.
+       This allows to replace code relying on the implementation of
+       locations by portable code.
+       * data/yacc.c (yylerrsp): Replace with...
+       (yyerror_range): this.
+       Every time a token is popped, update yyerror_range[0], to have an
+       accurate location for the error token.
+       * data/glr.c (YY_LOCATION_PRINT): New.
+       (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
+       deference a pointer.
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
+       report the location in %printers.
+
+       * src/scan-skel.l: Instead of abort, report error messages to ease
+       understanding skeleton scanning failures.
+
+2004-09-16  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
+       (iterator, const_iterator): these, to be more in the C++ spirit.
+       Also, return reverse iterators so that when displaying the stack
+       we display its bottom first.
+       (Parser::stack_print_, Parser::reduce_print_): Match the messages
+       from yacc.c.
+       We should probably use vector here though.
+
+2004-09-16  Akim Demaille  <akim@epita.fr>
+
+       Have more complete shift traces.
+
+       * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
+       to report Shifts instead of ad hoc YYDPRINTF invocations,
+       including for the error token.
+       * data/lalr1.cc (symprint_): Output the location.
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
+       output the location within the %printer.
+       Activate GLR tests, at least to make sure they compile properly.
+       They still don't pass though.
+       * tests/calc.at: Adjust expect verbose output, since now "Entering
+       state..." is on a different line than the "Shifting" message.
+
 2004-09-08  Akim Demaille  <akim@epita.fr>
 
        * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the