]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Improve C++ namespace support. Discussed starting at
[bison.git] / ChangeLog
index ae91903bd6a9d24a33a2f87967fc10b73e2a8817..3afcb7d537ccdd0b5405ca4109ec8fa9c242cd71 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,99 @@
+2007-10-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Improve C++ namespace support.  Discussed starting at
+       <http://lists.gnu.org/archive/html/help-bison/2007-09/msg00016.html>.
+       * data/c++.m4: (b4_namespace_ref, b4_namespace_open,
+       b4_namespace_close): New macros that interpret the %define variable
+       "namespace" so its value can contain "::" to indicate nested
+       namespaces.
+       * data/glr.cc (b4_namespace): Don't define, and replace all uses with
+       the above macros.
+       * data/lalr1.cc (b4_namespace): Likewise.
+       * data/location.cc (b4_namespace): Likewise.
+       * doc/bison.texinfo (Decl Summary): Move `%define push_pull' entry
+       inside a new table in the general %define entry.  Document `%define
+       namespace' there as well.  Point the %name-prefix entry to it since it
+       explains it more completely in the case of C++.
+       (C++ Bison Interface): Mention `%define namespace' instead of
+       %name-prefix.
+       (Table of Symbols): Remove the `%define push_pull' entry.  The %define
+       entry suffices.
+       * tests/c++.at (Relative namespace references): New test case.
+       (Absolute namespace references): New test case.
+       (Syntactically invalid namespace references): New test case.
+       * tests/input.at (C++ namespace reference errors): New test case.
+
+2007-10-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Add syncline support and location accessor to internal %define
+       interfaces.
+       * data/bison.m4 (b4_percent_define_get_loc): New.
+       (b4_percent_define_get_syncline): New.
+       (b4_percent_define_flag_if): Use b4_percent_define_get_loc.
+       (b4_percent_define_default): Record defining location as line 1 rather
+       than 0 for the sake of synchronizing #line's, and define
+       b4_percent_define_syncline(VARIABLE).
+       (b4_percent_define_check_values): Use b4_percent_define_get_loc.
+       * src/muscle_tab.c (muscle_syncline_grow): New.
+       (muscle_code_grow): Use muscle_syncline_grow.
+       (muscle_percent_define_insert): Use muscle_percent_define_get_loc, and
+       define b4_percent_define_syncline(VARIABLE).
+       (muscle_percent_define_get_loc): New.
+       (muscle_percent_define_get_syncline): New.
+       (muscle_percent_define_flag_if): Use muscle_percent_define_get_loc, and
+       remove some unused variables.
+       (muscle_percent_define_default): Record defining location as line 1
+       rather than 0 for the sake of synchronizing #line's, and define
+       b4_percent_define_syncline(VARIABLE).
+       (muscle_percent_define_check_values): Use
+       muscle_percent_define_get_loc.
+       * src/muscle_tab.h (muscle_percent_define_get_loc): Prototype.
+       (muscle_percent_define_get_syncline): Prototype.
+       * tests/skeletons.at (%define Boolean variables: invalid skeleton
+       defaults): Update output for location change.
+       (Complaining during macro argument expansion): Extend to test
+       b4_percent_define_get_loc and b4_percent_define_get_syncline errors.
+
+2007-10-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Fix some error-reporting macro bugs.
+       * data/bison.m4 (b4_cat): New.
+       (b4_error, b4_error_at): Use b4_cat to send error directives directly
+       to stdout so they don't become arguments to other macros.  Update
+       comments and add examples.
+       (b4_warn, b4_warn_at, b4_complain, b4_complain_at): Update comments and
+       add examples.
+       (b4_fatal, b4_fatal_at): Likewise, and invoke m4_exit(1) immediately
+       after printing the error directive so that M4 doesn't report subsequent
+       problems that are induced by this problem.
+       * src/scan-skel.l: Recognize @` digraph outside of directive arguments
+       instead of just in them.  Recognize @\n in both places.  Both expand to
+       the empty string.  Needed by b4_cat.
+       * tests/skeletons.at (Complaining during macro argument expansion):
+       New test case.
+       (Fatal errors make M4 exit immediately): New test case.
+
+2007-10-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Implement --print-datadir.
+       * src/getargs.c (usage): Mention.
+       (PRINT_DATADIR_OPTION): New anonymous enum member.
+       (long_options): Add entry for it.
+       (getargs): Add case for it calling compute_pkgdatadir.
+       * src/output.c (output_skeleton): Encapsulate data directory
+       computation from here...
+       (prepare): ... and from here...
+       (compute_pkgdatadir): ... into this new function.
+       * src/output.h (compute_pkgdatadir): Prototype.
+
+2007-09-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/print-xml.c (escape_bufs): New static global variable
+       replacing...
+       (xml_escape_n): ... the static local variable buf here.
+       (print_xml): Free memory for escape_bufs.
+       * src/reduce.c (reduce_xml): XML-escape terminal symbol tags.
+
 2007-09-25  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        Replace `%push-parser' and `%push-pull-parser' with