]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Extract the parsing of user actions from the grammar scanner.
[bison.git] / ChangeLog
index f82892cc6784a18dfb6e80c77c582fc6aeaaeaf9..143fd8be8ca0e8511db4f9e17f8a3750ee2e861f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,171 @@
+2006-06-06  Akim Demaille  <akim@epita.fr>
+
+       Extract the parsing of user actions from the grammar scanner.
+       As a consequence, the relation between the grammar scanner and
+       parser is much simpler.  We can also split "composite tokens" back
+       into simple tokens.
+       * src/gram.h (ITEM_NUMBER_MAX, RULE_NUMBER_MAX): New.
+       * src/scan-gram.l (add_column_width, adjust_location): Move to and
+       rename as...
+       * src/location.h, src/location.c (add_column_width)
+       (location_compute): these.
+       Fix the column count: the initial column is 0.
+       (location_print): Be robust to ending column being 0.
+       * src/location.h (boundary_set): New.
+       * src/main.c: Adjust to scanner_free being renamed as
+       gram_scanner_free.
+       * src/output.c: Include scan-code.h.
+       * src/parse-gram.y: Include scan-gram.h and scan-code.h.
+       Use boundary_set.
+       (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_INITIAL_ACTION)
+       (PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Remove the {...} part,
+       which is now, again, a separate token.
+       Adjust all dependencies.
+       Whereever actions with $ and @ are used, use translate_code.
+       (action): Remove this nonterminal which is now useless.
+       * src/reader.c: Include assert.h, scan-gram.h and scan-code.h.
+       (grammar_current_rule_action_append): Use translate_code.
+       (packgram): Bound check ruleno, itemno, and rule_length.
+       * src/reader.h (gram_in, gram__flex_debug, scanner_cursor)
+       (last_string, last_braced_code_loc, max_left_semantic_context)
+       (scanner_initialize, scanner_free, scanner_last_string_free)
+       (gram_out, gram_lineno, YY_DECL_): Move to...
+       * src/scan-gram.h: this new file.
+       (YY_DECL): Rename as...
+       (GRAM_DECL): this.
+       * src/scan-code.h, src/scan-code.l, src/scan-code-c.c: New.
+       * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
+       (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
+       (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
+       Move these declarations, and...
+       (obstack_for_string, STRING_GROW, STRING_FINISH, STRING_FREE):
+       these to...
+       * src/flex-scanner.h: this new file.
+       * src/scan-gram.l (rule_length, rule_length_overflow)
+       (increment_rule_length): Remove.
+       (last_braced_code_loc): Rename as...
+       (gram_last_braced_code_loc): this.
+       Adjust to the changes of the parser.
+       Move all the handling of $ and @ into...
+       * src/scan-code.l: here.
+       * src/scan-gram.l (handle_dollar, handle_at): Remove.
+       (handle_action_dollar, handle_action_at): Move to...
+       * src/scan-code.l: here.
+       * src/Makefile.am (bison_SOURCES): Add flex-scanner.h,
+       scan-code.h, scan-code-c.c, scan-gram.h.
+       (EXTRA_bison_SOURCES): Add scan-code.l.
+       (BUILT_SOURCES): Add scan-code.c.
+       (yacc): Be robust to white spaces.
+
+       * tests/conflicts.at, tests/input.at, tests/reduce.at,
+       * tests/regression.at: Adjust the column numbers.
+       * tests/regression.at: Adjust the error message.
+
+2006-06-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
+       Use Akim's wording from
+       <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00056.html>.
+
+2006-06-06  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Between Bison releases, manually append `+' to the previous Bison
+       release number, and use that as a signal to automatically print the
+       ChangeLog's CVS Id keyword from --version.  Discussed starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00028.html>.
+       * ChangeLog: Add Id header.
+       * configure.ac (AC_INIT): Append `+' to `2.3'.
+       * src/.cvsignore: Add revision.c.
+       * src/Makefile.am (bison_SOURCES): Add revision.c and revision.h.
+       (BUILT_SOURCES): Add revision.c.
+       (revision.c): New target rule.  This file defines a new global variable
+       named revision.  It initializes it with either the Id from ChangeLog
+       or, if VERSION doesn't contain `+', with the empty string.
+       * src/getargs.c (version): Print the value of revision.
+       * src/revision.h: Extern revision.
+
+2006-06-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Version 2.3.
+       * configure.ac (AC_INIT): Likewise.
+
+2006-05-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.c (YYRECOVERING): Define to be a function-like macro
+       with no arguments, not as an object-like macro.  This is for
+       compatibility with data/yacc.c.  Problem reported by John P. Hartmann in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00059.html>.
+       * doc/bison.texinfo (Action Features, Error Recovery, Table of Symbols):
+       Document this.
+
+2006-05-30  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/getargs.c (usage): Back out yesterday's modification of the
+       --help output so that we don't have to wait for translation before
+       releasing 2.3.
+
+2006-05-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/bison.texinfo (Introduction): Don't say "GLR grammar".
+       Problem reported by Akim Demaille.
+
+2006-05-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
+
+2006-05-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (yy_reduce_print): Omit trailing white space in
+       generated source code.  Problem reported by Frans Englich in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00049.html>.
+
+2006-05-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * Makefile.maint (gzip_rsyncable, GZIP_ENV): Compute within the
+       shell, not within 'make', so that 'make' by an ordinary builder
+       (using GNU make) does not worry about configuring gzip.  This also
+       works around a bug reported independently by Keith Thompson and by
+       Georg Schwarz, whereby gzip 1.2.4 --help would output usage on
+       stderr rather than stdout, messing up the build logs.
+
+2006-05-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/yacc.c (yyparse): Wrap the final return from yyparse inside YYID
+       to make sure that YYID will never be unused.  This fixes a 'make
+       maintainer-check' failure caused by the recent changes to the 'Trivial
+       grammars' test case, which caused g++ 4.1.0 to complain that YYID was
+       not used.
+       * data/glr.c (yyparse): Wrap yyparse's return inside YYID just in case.
+
+2006-05-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/glr.c (yyresolveLocations): Remove bogus YYASSERT that the
+       state before an empty RHS is always resolved here.  Only the location
+       of that state is guaranteed to be resolved, and that's enough.  This
+       fixes the remaining bug reported by Derek M. Jones in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
+       * tests/glr-regression.at (Uninitialized location when reporting
+       ambiguity): Test the above case.
+       Also, the embedded comments in this test case claim it checks the case
+       of an empty RHS that has inherited the initial location.  However, the
+       corresponding LHS was already resolved, so yyresolveLocations didn't
+       actually have reason to modify it.  Fix this by forcing
+       nondeterministic operation at the beginning of the parse.
+
+2006-05-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/c.m4 (b4_yy_symbol_print_generate):
+       (b4_yy_symbol_print_generate): Use 'YYSTYPE const' rather than
+       'const YYSTYPE', and similarly for YYLTYPE.  This fixes one
+       of the bugs reported today by Derek M Jones in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
+       * doc/bison.texinfo (Value Type): Document that YYSTYPE must be
+       defined to be a type name without parens or brackets.
+       (Location Type): Similarly for YYLTYPE.
+       * tests/regression.at (Trivial grammars): Put in a test for this
+       bug that will be caught by 'make maintainer-check' (though not,
+       alas, by 'make check' unless your compiler is picky).
+
 2006-05-19  Paul Eggert  <eggert@cs.ucla.edu>
 
        * NEWS: Version 2.2.
 2006-05-19  Paul Eggert  <eggert@cs.ucla.edu>
 
        * NEWS: Version 2.2.
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice and this
        notice are preserved.
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice and this
        notice are preserved.
+
+$Id$