+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 ` '
+ 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.