]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
[bison.git] / ChangeLog
index 5211570d81840243b7f04f69b594024cb4757cea..fad3a07d636e9bf008712e15da134a9bb9d388cb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+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
+       Bison directive from the Bison file to the invocation of this
+       macro, so that these directives are passed to
+       AT_BISON_OPTION_PUSHDEFS to get correct help macros.
+       Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
+       Move the AT_SETUP/AT_CLEANUP outside, to report as test title
+       the extra Bison directives instead of the whole series.
+       Change the grammar so that there are recoverable errors, and
+       unrecoverable errors.  Now we can have the parser give up before
+       consuming the whole input.  As a result we now can observe that
+       the lookahead is freed when needed.
+       Change the parser source to parse argv[1] instead of a hard coded
+       string.
+       Simplify yylex, and give a value and location to EOF.
+       Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
+       passed directives already coded in the file.
+       Add some tests to check the location of "error".
+       For some tests, the C++ parser is correct, and not yacc.c.
+       For other tests, they provide different, but unsatisfying, values,
+       so keep the C++ value so that at least one parser is "correct"
+       according to the test suite.
+       (Actions after errors): Remove, this is subsumed by the
+       AT_CHECK_PRINTER_AND_DESTRUCTOR series.
+
+2004-09-06  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc: Adjust the indentation of the labels.
+        (Parser::pop): New.
+       Use it.
+
+2004-09-06  Akim Demaille  <akim@epita.fr>
+
+       * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
+       argument, an informative message.
+       Call YY_SYMBOL_PRINT.
+       Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
+       * data/lalr1.cc (destruct_): Likewise.
+       In addition, no longer depend on b4_yysymprint_generate and
+       b4_yydestruct_generate to generate these functions, do it "by
+       hand".
+
+2004-09-03  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
+       invoked, yydestruct the lookahead.
+       * tests/calc.at (Calculator $1): Update the expected lengths of
+       traces: there is an added line for the discarded lookahead.
+       * doc/bison.texinfo (Destructor Decl): Some rewording.
+       Define "discarded" symbols.
+
+2004-09-02  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (translate_, destruct_): No reason to be static.
+
+2004-09-02  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
+       (YYDSYMPRINTF): Rename as...
+       (YY_SYMBOL_PRINT): this.
+       * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
+       two.
+       Use it instead of direct symprint_ calls.
+       (yybackup): Tweak the "Now at end of input" case to match yacc.c's
+       one.
+
+2004-09-02  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (b4_yysymprint_generate): New.
+       (symprint_): New member function, defined when YYDEBUG.
+       Use it consistently instead of token/nterm debugging output by
+       hand.
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
+       %printer calls to use cdebug_ when using lalr1.cc.
+
+2004-08-30  Florian Krohm  <florian@edamail.fishkill.ibm.com>
+
+       * data/glr.c: Guard the declarations of yypstack and yypdumpstack
+       with #ifdef YYDEBUG.
+
+2004-08-26  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Implementing Loops): Rename as...
+       (Implementing Gotos/Loops): this.
+
+2004-08-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Adjust to latest gnulib.
+       * bootstrap (gnulib_modules): Add xalloc-die.
+       Set LC_ALL=C so that file names sort consistently.
+       Prefer the gnulib copies of gettext.m4, glibc21.m4,
+       inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
+       uintmax_t.m4, ulonglong.m4.
+       (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
+       po.m4 since we are now using _gl.m4 instead.
+
+2004-08-10  Florian Krohm  <florian@edamail.fishkill.ibm.com>
+
+       * src/scan-action.l: Remove. Scanning of semantic actions is
+       handled in scan-gram.l.
+
+2004-08-07  Florian Krohm  <florian@edamail.fishkill.ibm.com>
+
+       * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
+
+       * src/location.h (struct): The file member is a uniqstr.
+       (equal_boundaries): Use UNIQSTR_EQ for comparison.
+
+2004-07-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix bug with non-%union parsers that have printers or destructors,
+       which led to a Bison core dump.  Reported by Peter Fales in
+       <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
+
+       * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
+       * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
+       not to our own type.
+       * src/output.c (symbol_destructors_output, symbol_printers_output):
+       Don't assume %union.
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
+       AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
+       UNION-FLAG.  All callers changed.
+       (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
+       Use type char, not unsigned int, when declaring an array of char;
+       this lets us remove a cast.
+       (Printers and Destructors): Add non-%union test cases.
+
 2004-06-21  Paul Eggert  <eggert@cs.ucla.edu>
 
        * doc/bison.texinfo: Minor editorial changes, mostly to the new
        GLR writeups.  E.g., avoid frenchspacing and the future tense,
        change "lookahead" to "look-ahead", and change "wrt" to "with
        respect to".
-       
+
 2004-06-21  Paul Hilfinger  <hilfingr@CS.Berkeley.EDU>
 
        * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
        (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
        Add comments explaining why those particular versions are
        currently needed.
-       
+
        * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
        in SGI MIPSpro 7.4.1m.  Problem reported by Albert Chin-A-Young in
        <http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.