X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/d4bd22956952464408f6d1c7aa3f82fd60f9f17d..31984206a710101776d1db64009aff6c7962551c:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 62d14dba..25a026b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,183 @@ +2007-10-19 Joel E. Denny + + 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 + + * 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 + + * src/print-xml.c (print_grammar): Renamed + and 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 + + * 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 + + * 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 + + * src/getargs.c (version): Update copyright year. + +2007-10-09 Joel E. Denny + + 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 + + Improve C++ namespace support. Discussed starting at + . + * 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 + + 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 + + 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 Implement --print-datadir.