]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Add %define lr.keep_unreachable_states.
[bison.git] / ChangeLog
index 62d14dbab432218ef3f72aad68aefa71d3dcd0ff..25a026b7b2918cfb5d179deb595a1492285bfa98 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,183 @@
+2007-10-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Add %define lr.keep_unreachable_states.
+       * NEWS (2.3a+): Mention it in the entry for unreachable state removal.
+       * doc/bison.texinfo (Decl Summary): Mention it in the %define entry.
+       * src/main.c (main): Implement it.
+       * tests/conflicts.at (Unreachable States After Conflict Resolution):
+       Extend to test it, and fix a typo.
+
+2007-10-19  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.3a+): Add entry for recent .output file lookahead set fix.
+       * doc/bison.texinfo (Understanding): Remove a bogus lookahead set in
+       the example .output text.
+       * tests/regression.at (Extra lookahead sets in report): Improve wording
+       of comments.
+
+2007-10-17  Wojciech Polak  <polak@gnu.org>
+
+       * src/print-xml.c (print_grammar): Renamed
+       <terminal> and <nonterminal> attributes:
+       "type" to "number" and "symbol" to "name".
+       * data/xslt/xml2text.xsl (xsl:template match="terminal"):
+       Use new attribute names.
+       (xsl:template match="nonterminal"): Likewise.
+       * data/xslt/xml2xhtml.xsl: Likewise.
+
+2007-10-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * doc/bison.texinfo (Bison Options): Add entry for --print-datadir.
+       (Option Cross Key): Likewise.
+
+       * src/print-xml.c (print_core): Don't print a reduction's lookahead set
+       next to an item whose dot is not at the end of the RHS even if it
+       happens to be associated with the same rule.
+       * src/print.c (print_core): Likewise.
+       * tests/conflicts.at (Unresolved SR Conflicts): Update output.
+       (Resolved SR Conflicts): Update output.
+       * tests/regression.at (Extra lookahead sets in report): New test case.
+
+2007-10-11  Wojciech Polak  <polak@gnu.org>
+
+       * src/print-xml.c (print_core): Remove item set
+       redundancy.
+       * data/xslt/bison.xsl (bison:ruleNumber): New key.
+       Improve processing time. Suggested by Joel E. Denny.
+       * data/xslt/xml2dot.xsl (xsl:template name="escape"):
+       Write xsl:param "required" attribute as comment.
+       * data/xslt/xml2text.xsl (xsl:template match="item"): New.
+       (xsl:template match="rule"): Support new reduced itemset.
+       (xsl:template match="point"): Remove.
+       * data/xslt/xml2xhtml.xsl: Likewise.
+
+2007-10-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/getargs.c (version): Update copyright year.
+
+2007-10-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Make xml2dot.xsl and --graph produce the same output.
+       * data/xslt/xml2dot.xsl (xsl:template match="rule"): Use a `&#10;'
+       instead of a `\n'.  That is, don't add escapes yet or they'll be doubly
+       escaped later.
+       (xsl:template name="output-node"): Use the new escape template instead
+       of the string-replace template directly.
+       (xsl:template name="output-edge"): Likewise.
+       (xsl:template name="escape"): New, escapes backslashes and newlines in
+       addition to quotation marks.
+       * src/graphviz.c (start_graph, output_node, output_edge): Add
+       whitespace to output for legibility.
+
+       Make xml2text.xsl and --report produce the same output, and remove the
+       XML "conflicts" element since a conflict summary is easily extracted
+       from the automaton.
+       * data/xslt/bison.xsl: New.
+       (xsl:template match="state" mode="bison:count-conflicts): New.
+       * data/xslt/xml2text.xsl: Import bison.xsl.
+       (xsl:template match="bison-xml-report"): Instead of styling the
+       "conflicts" element, style the "automaton" element with mode
+       "conflicts".  Unlike the former, the latter lists S/R and R/R
+       conflicts for a state on the same line.
+       (xsl:template match="conflicts"): Remove.
+       (xsl:template match="conflict"): Remove.
+       (xsl:template match="terminal"): Line-wrap the list of rules in which
+       the terminal is used.
+       (xsl:template match="nonterminal"): Likewise for nonterminals.
+       (xsl:template match="automaton" mode="conflicts"): New.
+       (xsl:template match="state" mode="conflicts"): New.
+       (xsl:template name="line-wrap"): New.
+       (xsl:template name="ws-search"): New.
+       * data/xslt/xml2xhtml.xsl: Import bison.xsl.
+       (xsl:template match="bison-xml-report"): Instead of styling the
+       "conflicts" element, style the "automaton" element with mode
+       "conflicts."
+       (xsl:template match="conflicts"): Remove.
+       (xsl:template match="conflict"): Remove.
+       (xsl:template match="automaton" mode="conflicts"): New.
+       (xsl:template match="state" mode="conflicts): New.
+       * src/conflicts.c (conflicts_output_xml): Remove.
+       * src/conflicts.h (conflicts_output_xml): Remove prototype.
+       * src/print-xml.c (print_xml): Don't invoke conflicts_output_xml.
+       * src/print.c (print_grammar): Consistently wrap at the 66th column so
+       the corresponding XSLT is easier.  Also, never wrap between a word and
+       the comma that follows it.
+
+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.