]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
YYACCEPT, YYERROR, and YYABORT, as user actions, should not
[bison.git] / ChangeLog
index 450e30ed46a40fdac2e12890d6083add66950c0a..30d153307a2159d858e4f4de6bdc40461b97788b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,264 @@
+2005-12-21  Akim Demaille  <akim@epita.fr>
+
+       YYACCEPT, YYERROR, and YYABORT, as user actions, should not
+       destroy the RHS symbols of a rule.
+       * data/yacc.c (yylen): Initialize to 0.
+       Keep its value to the number of items to possibly shift.
+       In particular, a regular successful parse that ends on YYFINAL by
+       a (internal) YYACCEPT must not have yylen != 0.
+       (yyerrorlab, yyreturn): Pop the RHS.
+       Reorder a bit to emphasize the `shifting' bits of code.
+       (YYPOPSTACK): Now accept a number of items to pop.
+       * data/lalr1.cc: Likewise.
+       * data/glr.c: Formatting changes.
+       Use goto instead of fall through.
+       * doc/bison.texinfo (Destructor Decl): Complete.
+
+2005-12-20  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+       * Makefile.am: DJGPP specific files added to EXTRA_DIST.
+       * djgpp/Makefile.maint: Fix PACKAGE variable computation.
+       * djgpp/config.bat: Replace every occurence of the file name
+       scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
+       c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
+       * djgpp/config.sed: Replace every occurence of the file name
+       scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
+       c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
+       * djgpp/djunpack.bat: DJGPP specific file.
+       * djgpp/fnchange.lst: DJGPP specific file.
+       * djgpp/README.in: Add new information about how to unpack the bison
+       source on MSDOS and other systems which have 8.3 file name restrictions
+       using djunpack.bat and fnchange.lst.
+
+2005-12-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap (build_cvs_prefix): Remove; unused.
+       (CVS_PREFIX): Adjust to yesterday's Savannah reorganization
+       when getting gnulib.
+
+2005-12-12  "Joel E. Denny" <jdenny@ces.clemson.edu>
+
+       * data/glr.c: Reorder typedef declarations for structs to match order
+       of struct declarations.
+       Rename yystack everywhere to yystackp except in yyparse where it's not
+       a pointer.
+       (yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
+       consistency.
+       (yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
+       (yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
+       (yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
+       lint.
+
+2005-12-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/sets.at (Accept): Fix typos in regular expression used to
+       sed out the final state number.
+
+       Work around portability problem on Solaris 10: flex-generated
+       files include <stdio.h> before <config.h>, which messes up
+       because the latter defines __EXTENSIONS__.  Address the problem
+       by creating two new little files that include <config.h> first,
+       then include the flex-generated files.  Rewrite everyone else
+       to include <config.h> first, as well.
+       * lib/timevar.c: Always include "config.h".
+       * src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
+       scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
+       (EXTRA_bison_SOURCES): New macro.
+       * src/scan-gram-c.c, src/scan-skel-c.c: New files.
+       * src/system.h: Don't include config.h.
+       * src/LR0.c: Include <config.h> first.
+       * src/assoc.c: Likewise.
+       * src/closure.c: Likewise.
+       * src/complain.c: Likewise.
+       * src/conflicts.c: Likewise.
+       * src/derives.c: Likewise.
+       * src/files.c: Likewise.
+       * src/getargs.c: Likewise.
+       * src/gram.c: Likewise.
+       * src/lalr.c: Likewise.
+       * src/location.c: Likewise.
+       * src/main.c: Likewise.
+       * src/muscle_tab.c: Likewise.
+       * src/nullable.c: Likewise.
+       * src/output.c: Likewise.
+       * src/parse-gram.y: Likewise.
+       * src/print.c: Likewise.
+       * src/print_graph.c: Likewise.
+       * src/reader.c: Likewise.
+       * src/reduce.c: Likewise.
+       * src/relation.c: Likewise.
+       * src/state.c: Likewise.
+       * src/symlist.c: Likewise.
+       * src/symtab.c: Likewise.
+       * src/tables.c: Likewise.
+       * src/uniqstr.c: Likewise.
+       * src/vcg.c: Likewise.
+
+       * src/parse-gram.y: Fix minor problems uncovered by lint.
+       (current_lhs, current_lhs_location): Now static.
+       (current_assoc): Remove unused variable.
+
+       Cleanups so that Bison-generated parsers have less lint.
+       * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
+       Prepend /*ARGSUSED*/, for lint's sake.
+       * data/glr.c (YYUSE): Properly parenthesize, and use an alternate
+       definition if 'lint' is defined.
+       (YYID): New macro (or function, if lint).
+       All uses of /*CONSTCOND*/0 replaced by YYID(0).
+       * data/yacc.c: Likewise.
+       * data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
+       (yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
+       * data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
+       is C++ only.
+       * data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
+       * data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
+       Use YYID(0) rather than 0, for lint.
+       (yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
+       (yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
+
+2005-12-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/glr-regression.at
+       (Improper handling of embedded actions and dollar(-N) in GLR parsers):
+       Close memory leak reported by twlevo.
+
+2005-12-06  "Joel E. Denny" <jdenny@ces.clemson.edu>
+
+       * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
+       all stacks.
+       (yyparse): Iterate another stack in order to call user destructors.
+       * tests/glr-regression.at (No users destructors if stack 0 deleted):
+       New test case.
+       (Duplicated user destructor for lookahead): This test now is expected
+       to succeed.
+
+2005-12-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Document the following change.
+       * data/yacc.c: Say "parser skeleton" rather than "file", since
+       it's no longer just a file.
+       * data/glr.c: Grant a special exception for C GLR parsers, that
+       reads like the already-existing exception for C LALR(1) parsers.
+       * data/glr.cc: Likewise.
+       * data/lalr1.cc: Likewise.
+       * data/location.cc: Likewise.
+       * data/yacc.c: Reword the "written by" statement to clarify that
+       it was the parser skeleton, not the entire output file.
+       * data/glr.c: Written by Paul Hilfinger.
+       * data/glr.cc: Written by Akim Demaille.
+       * data/lalr1.cc: Likewise.
+
+2005-11-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
+       Fix typos in previous change that broke 'make check'.
+       YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
+       supported in C.
+       * tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
+       Don't check NUM-STDERR-LINES, since the output format is fluctuating.
+       We can revert this once things settle down.
+
+       * src/conflicts.c (conflicts_print): Don't print file name twice
+       when %expect fails because there were no conflicts.
+       * doc/bison.texinfo (Expect Decl): Tighten up wording in previous
+       change.
+       * tests/conflicts.at (%expect not enough, %expect too much):
+       (%expect with reduce conflicts): Adjust to new behavior.
+
+2005-11-18  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (conflicts_print): Unsatisfied %expectation are
+       errors.
+       * NEWS: Document this.
+       * doc/bison.texinfo (Expect Decl): Likewise.
+
+2005-11-16  Akim Demaille  <akim@epita.fr>
+
+       Generalize the display of semantic values and locations in traces.
+       * data/glr.c (yy_reduce_print): Fix indices (again).
+       * data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
+       literal integers.
+       * data/lalr1.cc (yyreduce_print): Rename as...
+       (yy_reduce_print): this.
+       Display values and locations.
+       * data/yacc.c (yy_reduce_print): Likewise.
+       (YY_REDUCE_PRINT): Adjust to pass the required arguments.
+       (yysymprint): Move higher to be visible from yy_reduce_print).
+       (yyparse): Adjust.
+       * tests/calc.at: Adjust the expected length of the traces.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (yy_reduce_print): The loop was quite wrong: type are
+       from 1 to N, while values and location start at 0.
+       (b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (yy_reduce_print): Fix the $ number.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       "Use" parse parameters.
+       * data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
+       * data/glr.c, data/glr.cc: Use them.
+       * data/glr.c (YYUSE): Have a C++ definition that supports
+       non-pointer types.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (yyexpandGLRStack): Declare only if defined.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.cc: New.
+       * data/m4sugar/m4sugar.m4 (m4_prepend): New.
+
+2005-11-12  Akim Demaille  <akim@epita.fr>
+
+       Let position and location be PODs.
+       * data/location.cc (position::initialize, location::initialize): New.
+       (position::position, location::location): Define only if
+       b4_location_constructors is defined.
+       * data/lalr1.cc (b4_location_constructors): Define it for backward
+       compatibility.
+       * doc/bison.texinfo (Initial Action Decl): Use initialize.
+
+2005-11-12  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc: Move the body of the ctor and dtor into the
+       parser file (instead of the header).
+       Wrap the implementations in a "namespace yy".
+
+2005-11-12  Akim Demaille  <akim@epita.fr>
+
+       Have glr.c include its header file when created.
+       * data/glr.c (b4_shared_declarations): New.
+       Output them verbatim in the parser if !%defines, otherwise
+       output then in the header file, and include it instead.
+
+2005-11-11  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c: Comment changes.
+
+2005-11-11  Akim Demaille  <akim@epita.fr>
+
+       When yydebug, report semantic and location values for reductions.
+       * data/glr.c (yy_reduce_print): Report the semantic values and the
+       locations.
+       (YY_REDUCE_PRINT): Adjust.
+       (yyglrReduce): Use them.
+       (b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
+       * data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
+       * tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
+       traces.
+
+2005-11-10  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
+       (yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
+       (yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
+
 2005-11-09  Albert Chin-A-Young  <china@thewrittenword.com>
 
        * m4/cxx.m4, examples/Makefile.am: Don't build