platform/upstream/bison.git
21 years agoImport of GCC head 2002-10-11 GCC_2002-10-11
Paul Eggert [Sun, 13 Oct 2002 04:42:59 +0000 (04:42 +0000)]
Import of GCC head 2002-10-11

21 years agoImport of GCC head 2002-10-11
Paul Eggert [Sun, 13 Oct 2002 04:40:03 +0000 (04:40 +0000)]
Import of GCC head 2002-10-11

16 years ago* data/yacc.c: Reformat m4 a little for readability.
Joel E. Denny [Tue, 13 May 2008 05:35:33 +0000 (05:35 +0000)]
* data/yacc.c: Reformat m4 a little for readability.
* src/lalr.c (build_relations): Correct comment.

16 years ago* djgpp/config.sed: Fixes required to run configure scripts generated by autoconf...
Juan Manuel Guerrero [Mon, 12 May 2008 00:58:38 +0000 (00:58 +0000)]
* djgpp/config.sed: Fixes required to run configure scripts generated by autoconf 2.62.

16 years agoDJGPP specific issue added.
Juan Manuel Guerrero [Mon, 12 May 2008 00:58:17 +0000 (00:58 +0000)]
DJGPP specific issue added.

16 years ago* HACKING: Update copyright year.
Joel E. Denny [Wed, 7 May 2008 23:48:30 +0000 (23:48 +0000)]
* HACKING: Update copyright year.

16 years ago* HACKING (Release Procedure): translation@iro.umontreal.ca is now
Joel E. Denny [Wed, 7 May 2008 23:36:40 +0000 (23:36 +0000)]
* HACKING (Release Procedure): translation@iro.umontreal.ca is now
coordinator@translationproject.org.

16 years ago* THANKS: Add Eric Blake.
Joel E. Denny [Wed, 7 May 2008 05:02:12 +0000 (05:02 +0000)]
* THANKS: Add Eric Blake.

16 years agoRevert prior patch, by working around autoconf regression.
Joel E. Denny [Wed, 7 May 2008 02:53:15 +0000 (02:53 +0000)]
Revert prior patch, by working around autoconf regression.
* tests/output.at (m4_expand): Add workaround for autoconf 2.62.
("Output file name: ("): Uncomment test.
("Output file name: )"): Likewise.
Based on an idea from Noah Misch.

16 years agoGNUmakefile: Update copyright year.
Joel E. Denny [Tue, 22 Apr 2008 08:50:17 +0000 (08:50 +0000)]
GNUmakefile: Update copyright year.

16 years agotests/output.at: Update copyright date.
Joel E. Denny [Tue, 22 Apr 2008 03:40:19 +0000 (03:40 +0000)]
tests/output.at: Update copyright date.

16 years agoWork-around an Autoconf 2.62 AT_SETUP bug that was not present in
Joel E. Denny [Tue, 22 Apr 2008 03:37:31 +0000 (03:37 +0000)]
Work-around an Autoconf 2.62 AT_SETUP bug that was not present in
2.61.  Reported by Juan Manuel Guerrero at
<http://lists.gnu.org/archive/html/bug-bison/2008-04/msg00011.html>.
* tests/output.at ("Output file name: ("): Comment out test case for
now.
("Output file name: )"): Likewise.

16 years ago* GNUmakefile: Update git-version-gen invocation so make dist
Joel E. Denny [Mon, 21 Apr 2008 18:16:32 +0000 (18:16 +0000)]
* GNUmakefile: Update git-version-gen invocation so make dist
succeeds.

16 years agoUpdate to the current gnulib CVS repository, and fix trigraph handling
Joel E. Denny [Mon, 21 Apr 2008 06:54:39 +0000 (06:54 +0000)]
Update to the current gnulib CVS repository, and fix trigraph handling
in Bison.
* bootstrap: Update gnulib CVS repository URL.
(symlink_to_dir): Encapsulate the code that guarantees the destination
directory exists into...
(check_dst_dir): ... this new function, and...
(cp_mark_as_generated): ... reuse it here so that bootstrap doesn't
fail when copying files into lib/uniwidth/.
* src/output.c (prepare_symbols): When writing yytname muscles, where
symbol names will be encoded in C-string literals, tell quotearg to
escape trigraphs.  This used to be the default in gnulib.
* tests/regression.at (Token definitions): Because of the change in
gnulib's quotearg behavior, string_as_id in parse-gram.y no longer
escapes trigraphs in symbol names.  Thus, yytname no longer has
trigraphs unnecessarily doubly escaped.  Update test case output.
Extend test case to be sure Bison's own error messages will no longer
have trigraphs in symbol names unnecessarily escaped once.

16 years agoUpdate copyright year, and fix whitespace.
Joel E. Denny [Mon, 21 Apr 2008 01:03:21 +0000 (01:03 +0000)]
Update copyright year, and fix whitespace.

16 years agoFix make dist infinite loop reported by Juan Manuel Guerrero at
Joel E. Denny [Mon, 21 Apr 2008 00:35:54 +0000 (00:35 +0000)]
Fix make dist infinite loop reported by Juan Manuel Guerrero at
<http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00009.html>.
* .cvsignore: Add .version.
* .version.in: New.
* bootstrap.conf (gnulib_modules): Add git-version-gen.
* configure.ac (AC_CONFIG_FILES): Add .version.
* build-aux/.cvsignore: Add git-version-gen.

16 years ago* NEWS (2.3a+): Mention that -g now takes an argument.
Joel E. Denny [Sat, 8 Mar 2008 20:49:57 +0000 (20:49 +0000)]
* NEWS (2.3a+): Mention that -g now takes an argument.
* doc/bison.texinfo (Bison Options): Reword -W entry a little for
consistency.  Update the -g and -x entries now that they take
arguments.  Use brackets to indicate optional arguments.
* src/getargs.c (usage): Explain the relationship between arguments of
long and short options more completely.  Document --defines and -d
separately since the former takes an argument but, for POSIX Yacc, the
latter does not.
(short_options): Let -W take an optional argument like --warnings.
(getargs): Sort cases.

16 years ago* doc/bison.texinfo: Fix a few typos.
Akim Demaille [Thu, 28 Feb 2008 16:28:07 +0000 (16:28 +0000)]
* doc/bison.texinfo: Fix a few typos.

16 years ago* doc/bison.texinfo (Bison Options): Document -W.
Akim Demaille [Thu, 28 Feb 2008 16:18:37 +0000 (16:18 +0000)]
* doc/bison.texinfo (Bison Options): Document -W.
Based on Joel E. Denny's NEWS entry, and Automake's documentation.

16 years ago* src/getargs.c (short_options): Split and sort for readability.
Akim Demaille [Thu, 28 Feb 2008 16:01:16 +0000 (16:01 +0000)]
* src/getargs.c (short_options): Split and sort for readability.
-g and -x take optional arguments, just like their long options.
* build-aux/cross-options.pl: Use /x to make the regexp easier to
understand.
Fix the handling of $opt which resulted in all the argument to be
considered as optional.

16 years ago* NEWS (2.3a+): Don't say %language is experimental. Mention Java and
Joel E. Denny [Sat, 23 Feb 2008 04:26:14 +0000 (04:26 +0000)]
* NEWS (2.3a+): Don't say %language is experimental.  Mention Java and
say its interface is experimental.
* doc/bison.texinfo (Decl Summary): In the %language entry, mention
Java.
(Bison Options): In the -L and --language entry, mention Java.
(Java Bison Interface): Say the interface is experimental.
* src/getargs.c (usage): Mention -L and --language.

* NEWS (2.3a+): Say the push parsing interface is experimental.
* doc/bison.texinfo (Push Decl): Likewise.
(Decl Summary): Likewise in the "%define api.push_pull" entry.
(Push Parser Function): Likewise.
(Pull Parser Function): Likewise.
(Parser Create Function): Likewise.
(Parser Delete Function): Likewise.
(Table of Symbols): Likewise in the yypstate_delete, yypstate_new,
yypull_parse, and yypush_parse entries.

* NEWS (2.3a+): Mention XML support, and say the schema is
experimental.
* doc/bison.texinfo (Bison Options): Mention -x and --xml.
* src/getargs.c (usage): Say the XML schema is experimental.

* NEWS (2.3a+): Say option instead of flag.

16 years ago* data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer text.
Wojciech Polak [Thu, 21 Feb 2008 17:08:18 +0000 (17:08 +0000)]
* data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer text.

16 years ago(xsl:template match="/"): Change footer text.
Wojciech Polak [Thu, 21 Feb 2008 17:07:33 +0000 (17:07 +0000)]
(xsl:template match="/"): Change footer text.

16 years agoFix impure push parser compile error reported by Bob Rossi at
Joel E. Denny [Wed, 20 Feb 2008 18:23:21 +0000 (18:23 +0000)]
Fix impure push parser compile error reported by Bob Rossi at
<http://lists.gnu.org/archive/html/help-bison/2008-02/msg00023.html>.
* data/yacc.c: Clean up whitespace in the output a little.
(yypstate_allocated): Define for impure push parsers regardless of
whether the pull interface is also requested.
* tests/push.at (Push Parsing: Multiple impure instances): Extend to
check impure push parsers without the pull interface.

* data/yacc.c (yypstate_new): Don't try to invoke yyerror since
yyerror takes arguments specified by %parse-param while yypstate_new
does not.
* doc/bison.texinfo (Parser Create Function): Document that
yypstate_new returns 0 for multiple impure parser instances.
* tests/push.at (Push Parsing: Multiple impure instances): Update
expected stderr output.

16 years ago* runtime-po/POTFILES.in (push.c): Remove.
Joel E. Denny [Wed, 20 Feb 2008 00:50:00 +0000 (00:50 +0000)]
* runtime-po/POTFILES.in (push.c): Remove.

16 years ago* src/parse-gram.c, src/parse-gram.h: Regenerate.
Joel E. Denny [Wed, 20 Feb 2008 00:03:43 +0000 (00:03 +0000)]
* src/parse-gram.c, src/parse-gram.h: Regenerate.

16 years ago* data/Makefile.am (dist_pkgdata_DATA): Remove push.c.
Joel E. Denny [Sun, 17 Feb 2008 19:55:48 +0000 (19:55 +0000)]
* data/Makefile.am (dist_pkgdata_DATA): Remove push.c.
* data/push.c: Rename to...
* data/yacc.c: ... this, overwriting it.
* etc/bench.pl.in (bench_grammar): `%pure-parser'-> `%define api.pure'.
`%push-pull-parser' -> `%define api.push_pull "both"'.
Remove old yacc.c tests, and update push.c tests to yacc.c.

16 years ago* data/bison.m4 (b4_percent_code_get): Output %code block comments like
Joel E. Denny [Sun, 17 Feb 2008 19:11:21 +0000 (19:11 +0000)]
* data/bison.m4 (b4_percent_code_get): Output %code block comments like
`"%code top" blocks' instead of `%code "top" blocks'.
* data/push.c: Import yacc.c changes from 2008-01-09 and 2007-08-03.
Clean up whitespace in the output a little.

16 years agoFix documentation problems reported by Tim Josling at
Joel E. Denny [Sun, 17 Feb 2008 02:47:53 +0000 (02:47 +0000)]
Fix documentation problems reported by Tim Josling at
<http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00013.html>.
* NEWS (2.3a+): Mention removal of --no-parser, -n, and %no-parser.
* doc/bison.texinfo (Token Decl): Token numbers are *nonnegative*
integers.  Explain the effect of literal string aliases on error
messages.  Copy token 0 documentation from the C++ skeleton
documentation.

16 years agoAccept a token number in a %left, %right, or %nonassoc for POSIX
Joel E. Denny [Sun, 17 Feb 2008 00:18:36 +0000 (00:18 +0000)]
Accept a token number in a %left, %right, or %nonassoc for POSIX
conformance.  Reported by Tim Josling at
<http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00010.html>.
* NEWS (2.3a+): Mention.
* doc/bison.texinfo (Precedence Decl): Describe how literal strings
and code numbers are treated by precedence declarations.
* src/parse-gram.y (precedence_declaration): Use symbols.prec instead
of symbols.1.
(symbols.prec): New, just like symbols.1 but uses symbol.prec instead
of symbol.
(symbol.prec): New, just like symbol but allows INT.
* src/symtab.c (symbol_user_token_number_set): Remove an aver that no
longer holds.
* tests/regression.at (Token number in precedence declaration): New
test case.

16 years ago* THANKS: Update my email address.
Juan Manuel Guerrero [Wed, 6 Feb 2008 10:24:07 +0000 (10:24 +0000)]
* THANKS: Update my email address.

16 years ago* README.in: List of required packages updated. Copyright timestamp adjusted.
Juan Manuel Guerrero [Wed, 6 Feb 2008 10:11:52 +0000 (10:11 +0000)]
* README.in: List of required packages updated.  Copyright timestamp adjusted.

16 years ago* Makefile.maint: Copyright timestamp adjusted.
Juan Manuel Guerrero [Wed, 6 Feb 2008 10:11:43 +0000 (10:11 +0000)]
* Makefile.maint: Copyright timestamp adjusted.

16 years ago* fnchange.lst: Add filenames that are not 8.3 clean to the
Juan Manuel Guerrero [Wed, 6 Feb 2008 10:00:58 +0000 (10:00 +0000)]
* fnchange.lst: Add filenames that are not 8.3 clean to the
filename translation list.

16 years ago* testsuite.sed: Copyright timestamp adjusted.
Juan Manuel Guerrero [Wed, 6 Feb 2008 09:59:26 +0000 (09:59 +0000)]
* testsuite.sed: Copyright timestamp adjusted.

16 years ago* subpipe.h: Copyright timestamp adjusted.
Juan Manuel Guerrero [Wed, 6 Feb 2008 09:59:13 +0000 (09:59 +0000)]
* subpipe.h: Copyright timestamp adjusted.

16 years ago* subpipe.c (init_subpipe): Check the environment variables
Juan Manuel Guerrero [Wed, 6 Feb 2008 09:58:56 +0000 (09:58 +0000)]
* subpipe.c (init_subpipe): Check the environment variables
TMPDIR, TMP and TEMP, in that order, to determinate where the temp
files shall be created.  Before trying to use the temp dir where the
environment variable points to check that the dir really exists. If
not default to the cwd as temp dir.  Copyright timestamp adjusted.

16 years ago* djunpack.bat: Copyright timestamp adjusted.
Juan Manuel Guerrero [Wed, 6 Feb 2008 09:58:41 +0000 (09:58 +0000)]
* djunpack.bat: Copyright timestamp adjusted.

16 years ago* djgpp/config_h.sed: Copyright timestamp adjusted.
Juan Manuel Guerrero [Wed, 6 Feb 2008 09:58:32 +0000 (09:58 +0000)]
* djgpp/config_h.sed: Copyright timestamp adjusted.

16 years ago* config.site: Copyright timestamp adjusted.
Juan Manuel Guerrero [Wed, 6 Feb 2008 09:58:23 +0000 (09:58 +0000)]
* config.site: Copyright timestamp adjusted.

16 years ago* config.sed: Add filenames that are not 8.3 clean and that must
Juan Manuel Guerrero [Wed, 6 Feb 2008 09:58:13 +0000 (09:58 +0000)]
* config.sed: Add filenames that are not 8.3 clean and that must
be changed.  Copyright timestamp adjusted.

16 years ago* config.bat: Add filenames that are not 8.3 clean and that must
Juan Manuel Guerrero [Wed, 6 Feb 2008 09:58:03 +0000 (09:58 +0000)]
* config.bat: Add filenames that are not 8.3 clean and that must
be changed.  Copyright timestamp adjusted.

16 years agoDJGPP specific issues.
Juan Manuel Guerrero [Wed, 6 Feb 2008 09:57:35 +0000 (09:57 +0000)]
DJGPP specific issues.
* djgpp/config.bat: Add filenames that are not 8.3 clean and that must
be changed.  Copyright timestamp adjusted.
* djgpp/config.sed: Add filenames that are not 8.3 clean and that must
be changed.  Copyright timestamp adjusted.
* djgpp/config.site: Copyright timestamp adjusted.
* djgpp/config_h.sed: Copyright timestamp adjusted.
* djgpp/djunpack.bat: Copyright timestamp adjusted.
* djgpp/fnchnage.lst: Add filenames that are not 8.3 clean to the
filename translation list.
* djgpp/subpipe.c (init_subpipe): Check the environment variables
TMPDIR, TMP and TEMP, in that order, to determinate where the temp
files shall be created.  Before trying to use the temp dir where the
environment variable points to check that the dir really exists. If
not default to the cwd as temp dir.  Copyright timestamp adjusted.
* djgpp/subpipe.h: Copyright timestamp adjusted.
* djgpp/testsuite.sed: Copyright timestamp adjusted.

16 years ago* doc/bison.texinfo: Update Back-Cover text to reflect new GNU wording.
Paul Eggert [Thu, 31 Jan 2008 00:53:21 +0000 (00:53 +0000)]
* doc/bison.texinfo: Update Back-Cover text to reflect new GNU wording.

16 years ago* data/yacc.c: Update copyright for recent commit.
Joel E. Denny [Sat, 19 Jan 2008 21:19:24 +0000 (21:19 +0000)]
* data/yacc.c: Update copyright for recent commit.

16 years ago* data/yacc.c (yyparse): Correct the comment when locations aren't used.
Paul Eggert [Thu, 10 Jan 2008 00:58:14 +0000 (00:58 +0000)]
* data/yacc.c (yyparse): Correct the comment when locations aren't used.

Problem reported by Claudio Saavedra in
<http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00003.html>.

16 years ago2008-01-05 Wojciech Polak <polak@gnu.org>
Wojciech Polak [Sat, 5 Jan 2008 22:29:56 +0000 (22:29 +0000)]
2008-01-05  Wojciech Polak  <polak@gnu.org>

        * data/xslt/xml2xhtml.xsl (xsl:template match="/"): Precede an XHTML
        document's title with the input grammar file name.

16 years agodata/xslt/xml2xhtml.xsl (xsl:template match="/"): Precede an XHTML
Wojciech Polak [Sat, 5 Jan 2008 22:28:44 +0000 (22:28 +0000)]
data/xslt/xml2xhtml.xsl (xsl:template match="/"): Precede an XHTML
document's title with the input grammar file name.

16 years ago* src/parse-gram.c: Make timestamp later than parse-gram.y.
Joel E. Denny [Sat, 5 Jan 2008 20:38:06 +0000 (20:38 +0000)]
* src/parse-gram.c: Make timestamp later than parse-gram.y.

16 years ago* tests/local.at (AT_BISON_CHECK_XML): Fix quoting in previous patch.
Joel E. Denny [Sat, 22 Dec 2007 19:43:27 +0000 (19:43 +0000)]
* tests/local.at (AT_BISON_CHECK_XML): Fix quoting in previous patch.

16 years agoAutomate regression testing of the XML/XSLT implementation. Discussed
Joel E. Denny [Sat, 22 Dec 2007 18:35:03 +0000 (18:35 +0000)]
Automate regression testing of the XML/XSLT implementation.  Discussed
starting at
<http://lists.gnu.org/archive/html/bison-patches/2007-11/msg00021.html>.
* configure.ac (XSLTPROC): New substitution.
* Makefile.am (maintainer-xml-check): New phony target invoking...
* tests/Makefile.am (maintainer-xml-check): ... this new phony target
invoking make maintainer-check with BISON_TEST_XML=1.
* tests/atlocal.in (XSLTPROC): New.
* tests/local.at (AT_BISON_CHECK): New macro to (1) instruct Valgrind
not to report reachable memory when Bison is expected to have a
non-zero exit status and (2) to compare XML/XSLT output with --graph
and --report=all output for every working grammar when
BISON_TEST_XML=1.
(AT_BISON_CHECK_NO_XML): Likewise, but skip XML checks.
(AT_BISON_CHECK_XML): New.
(AT_QUELL_VALGRIND): New.
* tests/testsuite.at (ORIGINAL_AT_CHECK): Remove this and...
(AT_CHECK): ... don't redefine this since this was the old way to
quell Valgrind.
* tests/actions.at: Rewrite all AT_CHECK invocations for bison as
AT_BISON_CHECK invocations.
* tests/c++.at: Likewise.
* tests/calc.at: Likewise.
* tests/conflicts.at: Likewise.
* tests/cxx-type.at: Likewise.
* tests/existing.at: Likewise.
* tests/glr-regression.at: Likewise.
* tests/headers.at: Likewise.
* tests/input.at: Likewise.
* tests/java.at: Likewise.
* tests/output.at: Likewise.
* tests/push.at: Likewise.
* tests/reduce.at: Likewise.
* tests/regression.at: Likewise.
* tests/sets.at: Likewise.
* tests/skeletons.at: Likewise.
* tests/synclines.at: Likewise.
* tests/torture.at: Likewise.
(Big triangle): Use AT_BISON_CHECK_NO_XML instead since this grammar
tends to hang xsltproc.
(Big horizontal): Likewise.

16 years agoIn XML output, remove redundant class attribute on symbol element.
Joel E. Denny [Sat, 15 Dec 2007 02:08:02 +0000 (02:08 +0000)]
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>.

16 years ago* data/xslt/bison.xsl (bison:ruleNumber): Rename to...
Joel E. Denny [Sat, 8 Dec 2007 16:05:38 +0000 (16:05 +0000)]
* 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.

16 years agoDon't let --report affect XML output; always print all information.
Joel E. Denny [Sat, 1 Dec 2007 19:44:36 +0000 (19:44 +0000)]
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.

16 years ago* data/Makefile.am (dist_pkgdata_DATA): Ship and install bison.xsl.
Akim Demaille [Mon, 26 Nov 2007 10:04:15 +0000 (10:04 +0000)]
* data/Makefile.am (dist_pkgdata_DATA): Ship and install bison.xsl.

16 years agoIn the XML output, list useless and unused symbols and rules with the
Joel E. Denny [Sat, 24 Nov 2007 19:41:25 +0000 (19:41 +0000)]
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.

16 years agoAccept --report-file=FILE to override the default `.output' filename.
Joel E. Denny [Sun, 18 Nov 2007 06:40:41 +0000 (06:40 +0000)]
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.

16 years ago* doc/yacc.1.in: New.
Akim Demaille [Wed, 14 Nov 2007 13:18:44 +0000 (13:18 +0000)]
* 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.

16 years ago* src/gram.c: Remove comments that duplicate comments in gram.h.
Joel E. Denny [Sat, 10 Nov 2007 03:42:37 +0000 (03:42 +0000)]
* 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.

16 years ago* data/bison.m4 (b4_cat): Put a newline after the end delimiter of the
Joel E. Denny [Sat, 10 Nov 2007 01:36:54 +0000 (01:36 +0000)]
* 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.

16 years ago2007-11-08 Paolo Bonzini <bonzini@gnu.org>
Paolo Bonzini [Thu, 8 Nov 2007 09:08:45 +0000 (09:08 +0000)]
2007-11-08  Paolo Bonzini  <bonzini@gnu.org>

* data/lalr1.java (Lexer): Remove usage of b4_pure_if.

16 years agoRemove Id: from bison.1.
Akim Demaille [Mon, 5 Nov 2007 16:10:09 +0000 (16:10 +0000)]
Remove Id: from bison.1.
* doc/Makefile.am (remove_time_stamp): Include the sed invocation.
(perl -0777 -pi -e 's/.PPnId): New.
(.x.1): Use it to ignore the version control revision.

16 years ago* build-aux/Makefile.am: Ship cross-options.pl.
Akim Demaille [Mon, 5 Nov 2007 06:38:00 +0000 (06:38 +0000)]
* build-aux/Makefile.am: Ship cross-options.pl.
* doc/Makefile.am: Always refer to cross-options.texi with
$(srcdir).
(MAINTAINERCLEANFILES): Add it.

16 years ago* doc/Makefile.am: Complete the previous checkin.
Akim Demaille [Sun, 4 Nov 2007 21:17:55 +0000 (21:17 +0000)]
* doc/Makefile.am: Complete the previous checkin.

16 years agoGenerate the long/short option cross-table.
Akim Demaille [Sun, 4 Nov 2007 21:15:11 +0000 (21:15 +0000)]
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.

16 years agoGenerate bison.1 using help2man.
Akim Demaille [Sun, 4 Nov 2007 21:13:21 +0000 (21:13 +0000)]
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.

16 years agoComplete --help.
Akim Demaille [Sun, 4 Nov 2007 20:45:32 +0000 (20:45 +0000)]
Complete --help.
* src/getargs.c (usage): Document -W, make it clear that -d,
-g and -x have optional arguments.

16 years agoFind sha1sum when named gsha1sum.
Akim Demaille [Sun, 4 Nov 2007 20:40:50 +0000 (20:40 +0000)]
Find sha1sum when named gsha1sum.
* bootstrap (find_tool): New.
($SHA1SUM): New.

16 years agoFix tabs.
Akim Demaille [Sun, 4 Nov 2007 20:39:50 +0000 (20:39 +0000)]
Fix tabs.

16 years agoDeprecate %pure-parser and add `%define api.pure'. Discussed starting
Joel E. Denny [Mon, 29 Oct 2007 17:36:40 +0000 (17:36 +0000)]
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.

16 years ago%define push_pull -> %define api.push_pull. Discussed starting at
Joel E. Denny [Sun, 28 Oct 2007 20:11:35 +0000 (20:11 +0000)]
%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.

16 years agoFor the XML output's terminal element, rename @number to @token-number,
Joel E. Denny [Sun, 28 Oct 2007 00:24:22 +0000 (00:24 +0000)]
For the XML output's terminal element, rename @number to @token-number,
and add @symbol-number.  In the nonterminal element, rename @number to
@symbol-number.  Discussed starting at
<http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00040.html>.
* data/xslt/xml2text.xsl (xsl:template match="terminal"): Update for
renames.
(xsl:template match="nonterminal"): Likewise.
* data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Likewise.
(xsl:template match="nonterminal"): Likewise.
* src/print-xml.c (print_grammar): Implement.

16 years ago* data/xslt/xml2dot.xsl (xsl:template match="automaton/state"): After
Joel E. Denny [Sun, 21 Oct 2007 15:34:08 +0000 (15:34 +0000)]
* data/xslt/xml2dot.xsl (xsl:template match="automaton/state"): After
2007-10-11 change, the child elements here are items not rules.
(<xsl:template match="item"): New.
(xsl:template match="rule"): Update for new reduced itemset.
(xsl:template match="point"): Remove.
(xsl:template match="empty"): For consistency with --graph, don't
output "/* empty */".
* data/xslt/xml2text.xsl (xsl:template match="terminal"): When invoking
line-wrap, don't pass a negative value as first-line-length since this
won't work with the following changes.
(xsl:template name="line-wrap"): Simplify slightly.
(xsl:template name="ws-search"): Eliminate recursion.
* src/print_graph.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.

16 years agoAdd %define lr.keep_unreachable_states.
Joel E. Denny [Fri, 19 Oct 2007 06:14:44 +0000 (06:14 +0000)]
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.

16 years ago* NEWS: Add entry for recent .output file lookahead set fix.
Joel E. Denny [Fri, 19 Oct 2007 02:46:21 +0000 (02:46 +0000)]
* NEWS: 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.

16 years ago2007-10-17 Wojciech Polak <polak@gnu.org>
Wojciech Polak [Wed, 17 Oct 2007 18:13:53 +0000 (18:13 +0000)]
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.

16 years ago(xsl:template match="terminal"): Use new attribute names.
Wojciech Polak [Wed, 17 Oct 2007 18:12:20 +0000 (18:12 +0000)]
(xsl:template match="terminal"): Use new attribute names.
(xsl:template match="nonterminal"): Likewise.

16 years agosrc/print-xml.c (print_grammar): Renamed <terminal> and <nonterminal>
Wojciech Polak [Wed, 17 Oct 2007 18:11:03 +0000 (18:11 +0000)]
src/print-xml.c (print_grammar): Renamed <terminal> and <nonterminal>
attributes: "type" to "number" and "symbol" to "name".

16 years ago* doc/bison.texinfo (Bison Options): Add entry for --print-datadir.
Joel E. Denny [Wed, 17 Oct 2007 04:35:35 +0000 (04:35 +0000)]
* 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.

16 years ago* src/print-xml.c (print_core): Remove item set
Wojciech Polak [Thu, 11 Oct 2007 16:40:08 +0000 (16:40 +0000)]
* 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.

16 years ago(xsl:template match="item"): New.
Wojciech Polak [Thu, 11 Oct 2007 16:38:42 +0000 (16:38 +0000)]
(xsl:template match="item"): New.
(xsl:template match="rule"): Support new reduced itemset.
(xsl:template match="point"): Remove.

16 years ago(xsl:template name="escape"): Write xsl:param "required" attribute as comment.
Wojciech Polak [Thu, 11 Oct 2007 16:37:59 +0000 (16:37 +0000)]
(xsl:template name="escape"): Write xsl:param "required" attribute as comment.

16 years ago(bison:ruleNumber): New key. Improve processing time. Suggested by Joel E. Denny.
Wojciech Polak [Thu, 11 Oct 2007 16:37:38 +0000 (16:37 +0000)]
(bison:ruleNumber): New key. Improve processing time. Suggested by Joel E. Denny.

16 years ago(print_core): Remove item set redundancy.
Wojciech Polak [Thu, 11 Oct 2007 16:36:49 +0000 (16:36 +0000)]
(print_core): Remove item set redundancy.

16 years ago* src/getargs.c (version): Update copyright year.
Joel E. Denny [Tue, 9 Oct 2007 08:57:14 +0000 (08:57 +0000)]
* src/getargs.c (version): Update copyright year.

16 years agoMake xml2dot.xsl and --graph produce the same output.
Joel E. Denny [Tue, 9 Oct 2007 08:48:43 +0000 (08:48 +0000)]
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.

16 years agoImprove C++ namespace support. Discussed starting at
Joel E. Denny [Mon, 8 Oct 2007 10:09:07 +0000 (10:09 +0000)]
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.

16 years agoAdd syncline support and location accessor to internal %define
Joel E. Denny [Mon, 8 Oct 2007 04:00:13 +0000 (04:00 +0000)]
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.

16 years agoFix some error-reporting macro bugs.
Joel E. Denny [Mon, 8 Oct 2007 01:53:08 +0000 (01:53 +0000)]
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.

16 years agoImplement --print-datadir.
Joel E. Denny [Fri, 5 Oct 2007 02:54:33 +0000 (02:54 +0000)]
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.

16 years ago* src/print-xml.c (escape_bufs): New static global variable
Joel E. Denny [Sat, 29 Sep 2007 22:36:38 +0000 (22:36 +0000)]
* 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.

16 years agoReplace `%push-parser' and `%push-pull-parser' with
Joel E. Denny [Tue, 25 Sep 2007 05:47:27 +0000 (05:47 +0000)]
Replace `%push-parser' and `%push-pull-parser' with
`%define push_pull "push"' and `%define push_pull "both"'.
`%define push_pull "pull"' is the default.
* doc/bison.texinfo (Push Decl, Push Parser Function,
Pull Parser Function, Parser Create Function, Parser Delete Function):
Update declarations.
(Decl Summary, Table of Symbols): Replace %push-parser and
%push-pull-parser entries with a %define push_pull entry.
* data/bison.m4 (b4_percent_define_check_values): New macro.
(b4_pull_if, b4_push_if, b4_use_push_for_pull_if): Move these
definitions...
* data/c.m4 (b4_identification): ... and the YYPUSH and YYPULL cpp
definitions...
* data/push.c: ... to here and compute them from the value of the
%define variable push_pull.
* data/c-skel.m4: Instead of choosing the push.c skeleton for push
parsing requests here...
* data/yacc.c: ... hack this to switch to push.c any time
b4_use_push_pull_flag or the %define variable push_pull is set.  This
will go away when we mv push.c yacc.c.
* data/c++-skel.m4, data/glr.c, data/java-skel.m4: Don't report that
push parsing is not supported since unused %define variables are
reported anyway.
* src/getargs.c, src/getargs.h (pull_parser, push_parser): Remove.
* src/muscle_tab.h (muscle_percent_define_check_values): Update
comments for consistency with b4_percent_define_check_values.
* src/output.c (prepare): Don't insert b4_pull_flag and b4_push_flag
muscles.
* src/parse-gram.y (PERCENT_PUSH_PARSER, PERCENT_PUSH_PULL_PARSER):
Remove.
(prologue_declaration): Remove %push-parser and %push-pull-parser
rules.
* src/scan-gram.l (%push-parser, %push-pull-parser): Remove rules.
* tests/calc.at: Update declarations.
* tests/input.at (%define enum variables): New test case.
* tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update
declaration.
(Push Parsing: Multiple impure instances): Update declaration.
(Push Parsing: Unsupported Skeletons): New test case.
* tests/torture.at (Exploding the Stack Size with Alloca): Update
declaration.
(Exploding the Stack Size with Malloc): Update declaration.

16 years agoUpdated
Wojciech Polak [Mon, 24 Sep 2007 19:35:08 +0000 (19:35 +0000)]
Updated

16 years agodata/Makefile.am (xsltdir): New variable.
Wojciech Polak [Mon, 24 Sep 2007 19:32:02 +0000 (19:32 +0000)]
data/Makefile.am (xsltdir): New variable.
(dist_xslt_DATA): Add xslt/*.xsl files.

16 years agoTransform XML into XHTML.
Wojciech Polak [Mon, 24 Sep 2007 19:31:08 +0000 (19:31 +0000)]
Transform XML into XHTML.

16 years agoTransform XML into plain text.
Wojciech Polak [Mon, 24 Sep 2007 19:30:49 +0000 (19:30 +0000)]
Transform XML into plain text.

16 years agoTransform XML into DOT.
Wojciech Polak [Mon, 24 Sep 2007 19:30:17 +0000 (19:30 +0000)]
Transform XML into DOT.

16 years ago* src/conflicts.c (log_resolution): Fix indenting bugs I introduced.
Paul Eggert [Mon, 24 Sep 2007 06:34:44 +0000 (06:34 +0000)]
* src/conflicts.c (log_resolution): Fix indenting bugs I introduced.
Problem reported by Wojciech Polak.
* src/print-xml.c (xml_puts): Work even if LEVEL exceeds INT_MAX/2.
(xml_printf): Undo change I made on 21 September; that is,
indent 2 spaces, not 1.

16 years agoPacify ./configure --enable-gcc-warnings.
Joel E. Denny [Mon, 24 Sep 2007 01:41:35 +0000 (01:41 +0000)]
Pacify ./configure --enable-gcc-warnings.
* src/print-xml.c, src/print-xml.h (xml_puts): Make third argument
`char const *' instead of `char *'.
* src/state.c (state_rule_lookahead_tokens_print_xml): Remove unused
local variable `sep'.

16 years ago* src/gram.c (rule_rhs_print_xml): Now static, since it isn't used
Paul Eggert [Fri, 21 Sep 2007 22:53:58 +0000 (22:53 +0000)]
* src/gram.c (rule_rhs_print_xml): Now static, since it isn't used
elsewhere.
* src/print-xml.c: Prefer "const" after types; that's more consistent.
(xml_printf): Indent just 1 space for level.
(e_char, xlate_char): Remove.
(xml_escape_string): Rewrite to avoid undefined behavior (used
storage that was freed from the stack).
(xml_escape_n): Don't bother checking for subscript error.

2007-09-21  Wojciech Polak <polak@gnu.org>

Add support for an -x option to generate an XML report.
It is not documented yet.
* src/print-xml.c: New file.
* src/print-xml.h: Likewise.
* lib/timevar.def (TV_XML): New var.
* src/Makefile.am (bison_SOURCES): Add print-xml.c, print-xml.h.
* src/conflicts.c: Include print-xml.h.
(solved_conflicts_xml_obstack): New var.
(log_resolution, conflicts_solve, conflicts_free):
Add support for XML report.
(conflicts_output_val): New function.
* src/conflicts.h (conflicts_output_val): New decl.
* src/files.c (spec_xml_file): New var.
(compute_output_file_names, output_file_names_free): Add XML support.
* src/files.h (spec_xml_file): New decl.
* src/getargs.c (xml_flag): New var.
(usage, short_options, long_options, getargs): Add XML support.
* src/getargs.h (xml_flag): New decl.
* src/gram.c: Include print-xml.h.
(rule_lhs_print_xml, rule_rhs_print_xml):
(grammar_rules_partial_print_xml, grammar_rules_print_xml):
New functions.
* src/gram.h: Declare external ones.
* src/main.c: Include print-xml.h.
(main): Add XML support.
* src/reduce.c: Include print-xml.h.
(reduce_xml): New function.
* src/reduce.h: Declare it.
* src/state.c: Include print-xml.h.
(state_new): Add XML support.
(state_rule_lookahead_tokens_print_xml): New function.
* src/state.h: Declare it.
(struct state): New member solved_conflicts_xml.
* src/symtab.c (symbol_class_get_string): New function.
* src/symtab.h: Declare it.

2007-09-21  Paul Eggert  <eggert@cs.ucla.edu>