]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* data/Makefile.am (dist_pkgdata_DATA): Add push.c.
[bison.git] / ChangeLog
index 9c8e99518dec2040b620497a8f72e0761ad36ae0..a68c8506daa651253ed88611c3cf66416c9df444 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,168 @@
+2006-09-15  Bob Rossi  <bob@brasko.net>
+
+       * data/Makefile.am (dist_pkgdata_DATA): Add push.c.
+       * data/c.m4 (YYPUSH): New.
+       (b4_push_if): New macro.  Use it instead of #ifdef YYPUSH.
+       * src/getargs.c (push_parser): New var.
+       * src/getargs.h (push_parser): New declaration.
+       * src/output.c (prepare): Add macro insertion of `push_flag'.
+       * src/parse-gram.y (PERCENT_PUSH_PARSER): New token.
+       (prologue_declaration): Parse %push-parser.
+       * src/scan-gram.l: Scan new PERCENT_PUSH_PARSER token.
+       * tests/calc.at (_AT_CHECK_CALC_ERROR): Add "Return" and "Now" to
+       list of removed lines from the traces observed.
+       (AT_CHECK_CALC_LALR): Added push parser tests.
+
+2006-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * NEWS: Version 2.3a.
+       * configure.ac (AC_INIT): Likewise.
+
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Remove
+       "#define YYSTYPE int" that caused "make maintainer-check" to fail
+       due to header ordering dependencies.  I don't know why the #define
+       was there.
+
+       Fix glr.cc and lalr1.cc's use of YYDEBUG so that there's zero
+       runtime cost when YYDEBUG is not defined, and so that some tests
+       that used to fail now work.  Problem and initial suggestion by
+       Paolo Bonzini.
+       * data/c++.m4 (b4_parse_param_cons): Omit leading ','.
+       * data/glr.cc (b4_parser_class_name):
+       Initialize yycdebug_ only if YYDEBUG.  Also, initialize yydebug_.
+       (debug_level, set_debug_level): Affect yydebug_, not ::yydebug.
+       (yydebug_) [YYDEBUG]: New member.
+       (yycdebug_): Now defined only if YYDEBUG.
+       * data/lalr1.cc (yydebug_, yycdebug_): Now defined only if YYDEBUG.
+       (YYCDEBUG) [!YYDEBUG]: Don't use yydebug_ and yycdebug_.
+       (b4_parser_class_name): Initialize yydebug_ and yycdebug_ only
+       if YYYDEBUG.
+       (debug_stream, set_debug_stream, debug_level, set_debug_level):
+       Define only if YYDEBUG.
+       * tests/calc.at (_AT_DATA_CALC_Y) [!YYDEBUG]: Omit call to
+       set_debug_level.
+       * tests/regression.at (_AT_DATA_DANCER_Y) [!YYDEBUG]: Likewise.
+       * tests/calc.at (AT_CHECK_CALC_GLR_CC): Uncomment calls to
+       AT_CHECK_CALC_GLR_CC that are working now.
+
+2006-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.cc (YYERROR_VERBOSE, YYTOKEN_TABLE): Remove.
+       We don't need them in glr.cc, and glr.c defines them.
+       Defining YYERROR_VERBOSE to 0 here breaks glr.c, since glr.c
+       assumes that defining it to anything is the same as defining
+       it to 1.  Problem reported by Paolo Bonzini.
+
+2006-09-12  Paolo Bonzini  <bonzini@gnu.org>  (tiny change)
+
+       * data/c.m4 (b4_null, b4_case): Define.
+       * src/output.c (prepare_symbols): Use b4_null.
+       (user_actions_output): Use b4_case.
+
+2006-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/glr.c (b4_shared_declarations): Put start-header first,
+       before any #includes that we generate, so that feature-test
+       macros work.  Problem reported by Michael Deutschmann in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00004.html>.
+       * data/lalr1.cc: Likewise.
+       * doc/bison.texinfo (Prologue): Document that feature-test macros
+       should be defined before any Bison declarations.
+       * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Put defns
+       that depend on location.hh after, not before, Bison decls, since
+       we now include location.hh after the first user prologue.
+
+       * doc/bison.texinfo (Calc++ Parser): Fix memory leak reported by
+       Sander Brandenburg in
+       <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00002.html>.
+       Also, fix minor white space and comment issues.
+       (Prologue): Mention that it's better to define feature-test macros
+       before Bison declarations.  Problem reported by Michael Deutschmann.
+
+       * README-cvs: Fix typo: "&" should be "&&".  Problem reported
+       by Jim Meyering.
+       * m4/.cvsignore: Add argmatch.m4.  Remove obstack.m4, strerror_r.m4.
+       This adjusts to recent gnulib changes.
+
+2006-09-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Finish implementation of per-type %destructor/%printer.  Discussed
+       starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>
+       and
+       <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>.
+       * NEWS (2.3+): Add a description of this feature to the default
+       %destructor/%printer description.
+       * doc/bison.texinfo (Freeing Discarded Symbols): Likewise.
+       * src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
+       Invoke semantic_type_destructor_set or semantic_type_printer_set when a
+       list node contains a semantic type.
+       * src/symtab.c, src/symtab.h: Extend with a table that associates
+       semantic types with their %destructor's and %printer's.
+       (semantic_type_from_uniqstr, semantic_type_get,
+       semantic_type_destructor_set, semantic_type_printer_set): New functions
+       composing the public interface of that table.
+       (symbol_destructor_get, symbol_destructor_location_get,
+       symbol_printer_get, symbol_printer_location_get):  If there's no
+       per-symbol %destructor/%printer, look up the per-type before trying
+       the default.
+       * tests/actions.at (Per-type %printer and %destructor): New test case.
+       * tests/input.at (Default %printer and %destructor redeclared):
+       Extend to check that multiple occurrences of %symbol-default in a
+       single %destructor/%printer declaration is an error.
+       (Per-type %printer and %destructor redeclared, Unused values with
+       per-type %destructor): New test cases.
+
+2006-09-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Require default %destructor/%printer to be declared using
+       %symbol-default instead of an empty symbol list, and start working on
+       new per-type %destructor/%printer.  Discussed at
+       <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>.
+       * NEWS (2.3+): Add %symbol-default to example.
+       * bison.texinfo (Freeing Discarded Symbols): Likewise.
+       (Bison Symbols): Add entry for %symbol-default.
+       * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token.
+       (generic_symlist, generic_symlist_item): New nonterminals for creating
+       a list in which each item is a symbol, semantic type, or
+       %symbol-default.
+       (grammar_declaration): Use generic_symlist in %destructor and %printer
+       declarations instead of symbols.1 or an empty list.
+       (symbol_declaration, precedence_declaration, symbols.1): Update actions
+       for changes to symbol_list.
+       * src/reader.c: Update for changes to symbol_list.
+       * src/scan-code.l: Likewise.
+       * src/scan-gram.l: Scan new PERCENT_SYMBOL_DEFAULT token.
+       * src/symlist.c, src/symlist.h: Extend such that a list node may
+       represent a semantic type or a %symbol-default in addition to just an
+       ordinary symbol.  Add switched functions for setting %destructor's and
+       %printer's.
+       * tests/actions.at, tests/input.at: Add %symbol-default to all default
+       %destructor/%printer declarations.
+
+2006-08-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Whether the default %destructor/%printer applies to a particular symbol
+       isn't a question of whether the user *declares* that symbol (in %token,
+       for example).  It's a question of whether the user by any means
+       *defines* the symbol at all (by simply using a char token, for
+       example).  $end is defined by Bison whereas any other token with token
+       number 0 is defined by the user.  The error token is always defined by
+       Bison regardless of whether the user declares it with %token, but we
+       may one day let the user define error as a nonterminal instead.
+       * NEWS (2.3+): Say "user-defined" instead of "user-declared".
+       * doc/bison.texinfo (Freeing Discarded Symbols): Likewise, and document
+       the meaning of "user-defined".
+       * tests/actions.at (Default %printer and %destructor for user-declared
+       end token): Rename to...
+       (Default %printer and %destructor for user-defined end token): ...
+       this.
+
+       * src/symtab.c (symbol_destructor_get, symbol_printer_get): In the
+       computation of whether to apply the default, don't maintain a list of
+       every Bison-defined symbol.  Instead, just check for a first character
+       of '$', which a user symbol cannot have, and check for the error token.
+
 2006-08-21  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        Don't apply the default %destructor or %printer to the error token,