+2007-12-08 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ In XML output, remove redundant class attribute on symbol element.
+ * data/xslt/bison.xsl (xsl:key name="bison:symbolByName"): New.
+ * data/xslt/xml2xhtml.xsl (xsl:template match="symbol"): Use it to
+ look up a symbol to determine whether it's a nonterminal or terminal.
+ * src/gram.c (rule_rhs_print_xml): Remove class attribute.
+ * src/state.c (state_rule_lookahead_tokens_print_xml): Likewise.
+
+ Add prec/assoc information to XML output.
+ * src/gram.c (grammar_rules_print_xml): For each rule that has a
+ %prec, add a percent_prec attribute.
+ * src/print-xml.c (print_grammar): For each terminal that has a
+ precedence or associativity, add a prec or assoc attribute.
+ (xml_indent): New.
+ (xml_puts): Use xml_indent.
+ (xml_printf): Use xml_indent.
+ * src/print-xml.h (xml_indent): Prototype.
+
+ * tests/existing.at (GNU pic Grammar): Fix a rule miscopied from
+ <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
+
+2007-12-08 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/xslt/bison.xsl (bison:ruleNumber): Rename to...
+ (bison:ruleByNumber): ... this for clarity.
+ * data/xslt/xml2dot.xsl (xsl:template match="item"): Update.
+ * data/xslt/xml2text.xsl (xsl:template match="item"): Update.
+ (xsl:template match="reduction"): Update.
+ (xsl:template match="item"): Update.
+ (xsl:template match="reduction"): Update.
+
+ In the XML output, don't print the list of rules where symbols appear.
+ Compute it in XSLT instead. Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00024.html>.
+ * data/xslt/bison.xsl (bison:ruleByLhs): New.
+ (bison:ruleByRhs): New.
+ * data/xslt/xml2text.xsl (xsl:template match="terminal"): Use
+ bison:ruleByRhs.
+ (xsl:template match="terminal/rule"): Remove.
+ (xsl:template match="nonterminal"): Use bison:ruleByLhs and
+ bison:ruleByRhs.
+ (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
+ Remove.
+ * data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Use
+ bison:ruleByRhs and mode="number-link" for rule template.
+ (xsl:template match="terminal/rule"): Remove.
+ (xsl:template match="nonterminal"): Use bison:ruleByLhs and
+ bison:ruleByRhs and mode="number-link" for rule template.
+ (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
+ Rewrite as...
+ (xsl:template match="rule" mode="number-link"): ... this.
+ * src/print-xml.c (print_grammar): Don't print the list of rules.
+
+2007-12-01 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Don't let --report affect XML output; always print all information.
+ Discussed at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00020.html>.
+ * src/conflicts.c (log_resolution): Implement.
+ * src/print-xml.c (print_core): Implement.
+ (print_state): Implement.
+ (print_xml): Implement.
+
+ * NEWS (2.3a+): Fix quotes.
+ * src/parse-gram.y (prologue_declaration): For consistency with -v,
+ don't let %verbose clear the list specified by --report.
+
+2007-11-26 Akim Demaille <akim@epita.fr>
+
+ * data/Makefile.am (dist_pkgdata_DATA): Ship and install bison.xsl.
+
+2007-11-24 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ In the XML output, list useless and unused symbols and rules with the
+ useful ones and add a "usefulness" attribute. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00017.html>.
+ * src/gram.c (grammar_rules_partial_print_xml): Remove.
+ (grammar_rules_print_xml): Print all rules instead of just those
+ useful in the grammar, and add a "usefulness" attribute.
+ * src/gram.h (grammar_rules_partial_print_xml): Remove prototype.
+ * src/print-xml.c (print_rules_useless_in_parser): Remove.
+ (print_grammar): Print all nonterminals instead of just useful ones,
+ and add a "usefulness" attribute to nonterminals and terminals.
+ (print_xml): Don't print a separate "reductions" or
+ "rules-useless-in-parser" element.
+ * src/reduce.c (reduce_output): Use reduce_token_unused_in_grammar.
+ (reduce_xml): Remove.
+ (reduce_token_unused_in_grammar): New.
+ (reduce_nonterminal_useless_in_grammar): New.
+ * src/reduce.h (reduce_xml): Remove prototype.
+ (reduce_token_unused_in_grammar): Add prototype.
+ (reduce_nonterminal_useless_in_grammar): Add prototype.
+ * data/xslt/xml2text.xsl: Update for XML changes.
+ * data/xslt/xml2xhtml.xsl: Update for XML changes.
+ * tests/reduce.at (Useless Terminals): Update output.
+ (Useless Rules): Update output.
+ (Reduced Automaton): Update output.
+
+ Say "Terminals unused in grammar" instead of "Unused terminals".
+ * NEWS (2.3a+): Update.
+ * doc/bison.texinfo (Understanding): Update example output.
+ * src/reduce.c (reduce_output): Implement.
+ * data/xslt/xml2text.xsl: Implement.
+ * data/xslt/xml2xhtml.xsl: Implement.
+
+2007-11-18 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Accept --report-file=FILE to override the default `.output' filename.
+ * NEWS (2.3a+): Mention.
+ * doc/bison.texinfo (Bison Options): Add an entry.
+ * src/files.c (compute_output_file_names): Don't override
+ spec_verbose_file if already set.
+ * src/getargs.c (usage): Document --report-file.
+ (REPORT_FILE_OPTION): New anonymous enum member.
+ (long_options): Add entry for it.
+ (getargs): Add case for it setting spec_verbose_file.
+
+ * build-aux/cross-options.pl: Don't record a short option just because
+ there's an arg.
+ * doc/.cvsignore: Add yacc.1.
+
+2007-11-14 Akim Demaille <akim@epita.fr>
+
+ * doc/yacc.1.in: New.
+ * configure.ac, doc/Makefile.am: Adjust.
+ * configure.ac (PACKAGE_COPYRIGHT_YEAR): New substitution, and new
+ config.h symbol.
+ Use AC_SUBST for assignments too.
+ * src/getargs.c (version): Use PACKAGE_COPYRIGHT_YEAR.
+
+2007-11-10 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * src/gram.c: Remove comments that duplicate comments in gram.h.
+
+ When reporting useless rules and nonterminals, say "useless in grammar"
+ instead of "useless", and say "useless in parser" instead of "never
+ reduced". Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00033.html>.
+ * NEWS (2.3a+): Mention this change.
+ * data/xslt/xml2text.xsl: Update output text and expected input XML
+ element names to match changes below.
+ * data/xslt/xml2xhtml.xsl: Likewise.
+ (xsl:template match="bison-xml-report"): Add missing entry in Table of
+ Contents: "Rules useless in parser due to conflicts".
+ * doc/bison.texinfo (Decl Summary): Reword a little.
+ (Understanding): Update example output for changes below.
+ * src/gram.c: (rule_useful_p): Rename to...
+ (rule_useful_in_grammar_p): ... this.
+ (rule_useless_p): Rename to...
+ (rule_useless_in_grammar_p): ... this.
+ (rule_never_reduced_p): Rename to...
+ (rule_useless_in_parser_p): ... this.
+ (grammar_rules_print): Update for renames.
+ (grammar_rules_print_xml): Update for renames.
+ (grammar_rules_never_reduced_report): Rename to...
+ (grammar_rules_useless_report): ... this since it is used for either
+ kind of useless rule.
+ * src/gram.h: Reword comments and update function names in prototypes.
+ * src/main.c (main): Say "rule useless in parser due to conflicts".
+ * src/print-xml.c (print_rules_never_reduced): Rename to...
+ (print_rules_useless_in_parser): ... this, and rename output XML
+ element "rules-never-reduced" to "rules-useless-in-parser".
+ (print_xml): Update for rename.
+ * src/print.c (print_results): Say "Rules useless in parser due to
+ conflicts".
+ * src/reduce.c (reduce_grammar_tables): Say "rule useless in grammar".
+ (nonterminals_reduce): Say "nonterminal useless in grammar".
+ (reduce_output): Say "Nonterminals useless in grammar".
+ Say "Rules useless in grammar".
+ (reduce_xml): Rename output XML element "useless" to
+ "useless-in-grammar".
+ (reduce_print): Don't report the count of grammatically useless rules
+ as "rules never reduced" just because %yacc is specified.
+ In the correct report of this count, say nonterminal(s) and rule(s)
+ "useless in grammar".
+ * tests/conflicts.at (S/R in initial): Update expected output.
+ (Defaulted Conflicted Reduction): Likewise.
+ (Unreachable States After Conflict Resolution): Likewise.
+ * tests/existing.at (GNU pic Grammar): Likewise.
+ * tests/reduce.at (Useless Nonterminals): Likewise.
+ (Useless Rules): Likewise.
+ (Reduced Automaton): Likewise.
+ (Underivable Rules): Likewise.
+ (Empty Language): Likewise.
+
+2007-11-09 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/bison.m4 (b4_cat): Put a newline after the end delimiter of the
+ here document and before the EOF so that BSD's implementation of Bourne
+ shell doesn't parse the delimiter as part of the here document.
+ * doc/.cvsignore: Add cross-options.texi.
+ * src/getargs.c (usage): Add a blank line after the warning categories.
+
+2007-11-08 Paolo Bonzini <bonzini@gnu.org>
+
+ * data/lalr1.java (Lexer): Remove usage of b4_pure_if.
+
+2007-11-05 Akim Demaille <akim@epita.fr>
+
+ Remove Id: from bison.1.
+ * doc/Makefile.am (remove_time_stamp): Include the sed invocation.
+ (perl -0777 -pi -e 's/\.PP\nId): New.
+ (.x.1): Use it to ignore the version control revision.
+
+2007-11-05 Akim Demaille <demaille@gostai.com>
+
+ * build-aux/Makefile.am: Ship cross-options.pl.
+ * doc/Makefile.am: Always refer to cross-options.texi with
+ $(srcdir).
+ (MAINTAINERCLEANFILES): Add it.
+
+2007-11-04 Akim Demaille <demaille@gostai.com>
+
+ Generate the long/short option cross-table.
+ * build-aux/cross-options.pl: New.
+ * doc/Makefile.am (cross-options.texi): New.
+ * doc/bison.texinfo: Use it.
+
+2007-11-04 Akim Demaille <demaille@gostai.com>
+
+ Generate bison.1 using help2man.
+ * doc/common.x, doc/bison.x: New.
+ * doc/Makefile.am (bison.1, .x.1): New.
+ The code is taken from autoconf-2.61/man/Makefile.am.
+ * configure.ac: Look for help2man.
+
+2007-11-04 Akim Demaille <demaille@gostai.com>
+
+ Complete --help.
+ * src/getargs.c (usage): Document -W, make it clear that -d,
+ -g and -x have optional arguments.
+
+2007-11-04 Akim Demaille <demaille@gostai.com>
+
+ Find sha1sum when named gsha1sum.
+ * bootstrap (find_tool): New.
+ ($SHA1SUM): New.
+
+2007-10-28 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Deprecate %pure-parser and add `%define api.pure'. Discussed starting
+ at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00006.html>.
+ * NEWS (2.3a+): Mention.
+ * data/bison.m4 (b4_pure_if): Don't define it here.
+ * data/c.m4 (b4_identification): Depend on individual skeletons to
+ define b4_pure_flag, b4_push_flag, or b4_pull_flag if they use the
+ values of the %define variables api.pure or api.push_pull. Define
+ YYPURE, YYPUSH, and YYPULL accordingly.
+ * data/glr.c: Define b4_pure_if based on `%define api.pure' unless
+ glr.cc has already defined b4_pure_flag.
+ * data/push.c: Define b4_pure_if based on `%define api.pure'.
+ Remove YYPUSH and YYPULL since they're back in b4_identification again.
+ * data/yacc.c Define b4_pure_if based on `%define api.pure'.
+ * doc/bison.texinfo (Pure Decl): Update.
+ (Push Decl): Update.
+ (Decl Summary): Add api.pure to %define entry.
+ In %pure-parser entry, say it's deprecated and reference %define.
+ (Pure Calling): Update.
+ (Error Reporting): Update.
+ (C++ Scanner Interface): Update.
+ (How Can I Reset the Parser): Update.
+ (Table of Symbols): In %pure-parser entry, say it's deprecated and
+ reference %define.
+ * src/getargs.c (pure_parser): Remove global variable.
+ * src/getargs.h (pure_parser): Remove extern.
+ * src/output.c (prepare): Don't define pure_flag muscle.
+ * src/parse-gram.y (prologue_declaration): Implement %pure-parser as a
+ wrapper around `%define api.pure'.
+ * tests/calc.at (Simple LALR Calculator): Update.
+ (Simple GLR Calculator): Update.
+ * tests/cxx-type.at (GLR: Resolve ambiguity, pure, no locations):
+ Update.
+ (GLR: Resolve ambiguity, pure, locations): Update.
+ (GLR: Merge conflicting parses, pure, no locations): Update.
+ (GLR: Merge conflicting parses, pure, locations): Update.
+ * tests/glr-regression.at (Uninitialized location when reporting
+ ambiguity): Update
+ * tests/input.at (Unused %define api.pure): New test case.
+ * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Update definition for
+ AT_PURE_IF and AT_PURE_AND_LOC_IF.
+ * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
+
+2007-10-28 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ %define push_pull -> %define api.push_pull. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00005.html>.
+ * data/push.c: Expect the new name.
+ * data/yacc.c: Likewise.
+ * doc/bison.texinfo (Push Decl): Update.
+ (Decl Summary): Update %define entry.
+ (Push Parser Function): Update.
+ (Pull Parser Function): Update.
+ (Parser Create Function): Update.
+ (Parser Delete Function): Update.
+ * tests/calc.at (Simple LALR Calculator): Update.
+ * tests/input.at (%define enum variables): Update.
+ * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
+ (Push Parsing: Multiple impure instances): Update.
+ (Push Parsing: Unsupported Skeletons): Update.
+ * tests/torture.at (Exploding the Stack Size with Alloca): Update.
+ (Exploding the Stack Size with Malloc): Update.
+
+ * NEWS (2.3a+): Add an entry for the push parser, and clean up the
+ other entries some.
+