]> git.saurik.com Git - bison.git/log
bison.git
13 years agoglr.c: omit yyresolveLocations when locations are disabled.
Joel E. Denny [Sat, 16 Apr 2011 22:15:40 +0000 (18:15 -0400)] 
glr.c: omit yyresolveLocations when locations are disabled.

This prevents gcc 4.6.0's -Wunused-but-set-variable from warning
about yyresolveLocations's local yyrhsloc.  When locations are
enabled, there's no such warning because YYLLOC_DEFAULT then uses
yyrhsloc.  Reported by Jim Meyering at
<http://lists.gnu.org/archive/html/bug-bison/2011-04/msg00002.html>.
* data/glr.c (yyresolveLocations): Omit definition when locations
are disabled.
(yyresolveValue): Omit yyresolveLocations invocation when
locations are disabled.
(cherry picked from commit 55dd35633675f588c58ead46ecd6b5f4db504192)

13 years agognulib, autoconf: update.
Joel E. Denny [Sat, 16 Apr 2011 18:59:32 +0000 (14:59 -0400)] 
gnulib, autoconf: update.

* README-hacking (Updating a submodule): Give advice on how to
determine the versions of gnulib and autoconf to which we should
update.
(Release Procedure): Note that submodules should be updated.
* bootstrap.conf (gnulib_modules): Rename pipe to spawn-pipe as
suggested in updated gnulib NEWS.
* gnulib: Choose a stable snapshot according to advice in Bison's
README-hacking.
* po/POTFILES.in (lib/pipe.c): Rename to...
(lib/spawn-pipe.c): ... this.
* src/output.c: Update to include spawn-pipe.h.
* submodules/autoconf: Update to latest for improvement in m4.m4
that excludes M4 with buggy strstr.  The only other changes to
files that we use are copyright updates.
(cherry picked from commit a898435b25eca4869e8c49b2b0fb1f649b030ce7)

Conflicts:

build-aux/.gitignore

13 years agoFix missing updates to GPLv3.
Joel E. Denny [Sat, 9 Apr 2011 22:24:55 +0000 (18:24 -0400)] 
Fix missing updates to GPLv3.

Reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bison-patches/2011-04/msg00000.html>.
* src/print-xml.c, src/print-xml.h: In these files.
(cherry picked from commit fea2d6b0975a5b92dfc13b72e2b1d147e8d4a1b6)

13 years agoAdd -Wconflicts-sr and -Wconflicts-rr.
Joel E. Denny [Mon, 28 Mar 2011 02:38:32 +0000 (22:38 -0400)] 
Add -Wconflicts-sr and -Wconflicts-rr.

Thus, conflict reports are now affected by -Werror and -Wnone
(unless %expect or %expect-rr is specified).  Reported by George
Neuner at
<http://lists.gnu.org/archive/html/bug-bison/2010-08/msg00002.html>.
* NEWS (2.5): Document.
* doc/bison.texinfo (Bison Options): Document.
* src/complain.c, src/complain.h (set_warning_issued): Export
function.
* src/conflicts.c (conflicts_print): Suppress conflict report
based on -Wno-conflicts-sr and -Wno-conflicts-rr, and treat
conflicts as errors if -Werror.
* src/getargs.c (warnings_flag): Initialize with
warnings_conflicts_sr and warnings_conflicts_rr as well.
(warnings_args, warnings_types): Add entries for
warnings_conflicts_sr and warnings_conflicts_rr.
(usage): Update.
* src/getargs.h (enum warnings): Add entries for
warnings_conflicts_sr and warnings_conflicts_rr.
* tests/conflicts.at (-W versus %expect and %expect-rr): New test
group.
* tests/local.at (AT_BISON_CHECK_NO_XML): Update now that the
conflict report can produce a "warnings being treated as errors"
message.  Also, check that stderr is now fully scrubbed by -Wnone
when the exit status is 0.
(cherry picked from commit 6f8bdce25df5669b0b200c2a3848a1c08a44eb79)

13 years agoPacify maintainer-check-posix.
Joel E. Denny [Sun, 27 Mar 2011 23:29:37 +0000 (19:29 -0400)] 
Pacify maintainer-check-posix.

Adding command-line options after the grammar file name is not
permitted, so disable checks that do that when
maintainer-check-posix is running.
* tests/local.at (AT_BISON_CHECK_NO_XML): Don't run the
problematic checks when POSIXLY_CORRECT=1.  Also, for readability,
remove an unnecessary m4_if.
(cherry picked from commit fc7ce9970f2972443c1a031c91ffef2dfdf28651)

13 years agoAdd -Wother so -Wnone suppresses all warnings.
Joel E. Denny [Sun, 27 Mar 2011 23:08:24 +0000 (19:08 -0400)] 
Add -Wother so -Wnone suppresses all warnings.

Reported by George Neuner at
<http://lists.gnu.org/archive/html/bug-bison/2010-08/msg00002.html>.
* NEWS (2.5): Document.
* THANKS (George Neuner): Add.
* doc/bison.texinfo (Bison Options): Document.
* src/complain.c, src/complain.h
(warn_at, warn_at_indent, warn): Suppress warning if -Wno-other.
(midrule_value_at): New warning function, similar to yacc_at in
that it's controlled by its own warning category.
* src/getargs.c (warnings_flag): Initialize to warnings_other.
(warnings_args, warnings_types): Add entry for warnings_other.
(usage): Update.
* src/getargs.h (enum warnings): Add entry for warnings_other.
* src/gram.c (grammar_rules_useless_report): If -Wno-other, then
don't print useless rules.
* src/reader.c (symbol_should_be_used): Rather than adjusting the
return value based on whether midrule value warnings are enabled,
accept a new parameter for telling the caller whether true is
being returned for a potential midrule warning.
(grammar_rule_check): Use midrule_value_at for midrule value
warnings, and continue to use warn_at for all other warnings.  Let
them check whether the warnings are enabled.
* tests/local.at (AT_BISON_CHECK): Update documentation.
(AT_BISON_CHECK_NO_XML): Check that -Wnone and --warnings=none
disable all warnings exercised in the test suite.
(cherry picked from commit 8ffd7912e3b71fb0cc69e83225c3ad8e3452270f)

13 years agoDon't let -Wnone disable -Werror.
Joel E. Denny [Sun, 27 Mar 2011 19:39:25 +0000 (15:39 -0400)] 
Don't let -Wnone disable -Werror.

Discussed at
<http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00009.html>.
* NEWS (2.5): Document.
* src/getargs.c (flags_argmatch): Accept a new argument that
specifies what flags "all" and thus "none" affect.
(FLAGS_ARGMATCH): Update flags_argmatch invocation.
* tests/input.at (-Werror is not affected by -Wnone and -Wall):
New test group.
(cherry picked from commit dab9663283437092d17af8ede75f3aff33380d53)

13 years ago* NEWS (2.5): Document fix for -Wno-KEY.
Joel E. Denny [Sun, 27 Mar 2011 19:46:29 +0000 (15:46 -0400)] 
* NEWS (2.5): Document fix for -Wno-KEY.
(cherry picked from commit 248dba53cb3a33b6cea83050263080f6f000fbfe)

13 years agodoc: fix confusing citation of LAC publication.
Joel E. Denny [Sun, 20 Mar 2011 21:41:23 +0000 (17:41 -0400)] 
doc: fix confusing citation of LAC publication.

Suggested by Akim Demaille.
* doc/bison.texinfo (LAC): Here.
(cherry picked from commit 56706c6167f1cbfde3f48ea63ce6eaa56369f971)

13 years agolr.default-reductions: rename "full" value to "most".
Joel E. Denny [Sun, 20 Mar 2011 21:35:10 +0000 (17:35 -0400)] 
lr.default-reductions: rename "full" value to "most".

Unlike "consistent" and "accepting", "full" doesn't answer the
question of "which states".
* doc/bison.texinfo (%define Summary): Update.
(Default Reductions): Update.
* src/print.c (print_reductions): Update.
* src/reader.c (prepare_percent_define_front_end_variables):
Update.
* src/tables.c (action_row): Update.
* tests/input.at (%define enum variables): Update.
* tests/reduce.at (%define lr.default-reductions): Update.
(cherry picked from commit a6e5a28079865c4924194685723962f198fd33ff)

13 years ago* src/parse-gram.c, src/parse-gram.h: Regenerate.
Joel E. Denny [Sun, 13 Mar 2011 22:03:59 +0000 (18:03 -0400)] 
* src/parse-gram.c, src/parse-gram.h: Regenerate.

13 years agonamed references: fix double free.
Akim Demaille [Wed, 9 Mar 2011 20:10:35 +0000 (21:10 +0100)] 
named references: fix double free.

In `rhs[name]: "a" | "b"', do not free "name" twice.
Reported by Tys Lefering.
<http://lists.gnu.org/archive/html/bug-bison/2010-06/msg00002.html>

* src/named-ref.h, src/named-ref.c (named_ref_copy): New.
* src/parse-gram.y (current_lhs): Rename as...
(current_lhs_symbol): this.
(current_lhs): New function.  Use it to free the current lhs
named reference.
* src/reader.c: Bind lhs to a copy of the current named reference.
* src/symlist.c: Rely on free (0) being valid.
* tests/named-refs.at: Test this.

(cherry picked from commit 8f462efe923947cc4e72deea5b0fa93a5f88000d)

Conflicts:

src/parse-gram.y

13 years agotests: style changes.
Akim Demaille [Wed, 2 Mar 2011 16:03:37 +0000 (17:03 +0100)] 
tests: style changes.

* tests/named-refs.at (Redundant words in LHS brackets)
(Unresolved references): here.

13 years agojava: fix parser tracing bug.
Joel E. Denny [Mon, 7 Mar 2011 03:27:28 +0000 (22:27 -0500)] 
java: fix parser tracing bug.

* NEWS (2.5): Document.
* data/lalr1.java (YYParser::YYStack::print): Don't skip top
element.
(cherry picked from commit f0e2c228a085196742250b3f394bb5ed55ac4d7c)

13 years agojava: finish fixing parser stack popping bug.
Joel E. Denny [Mon, 7 Mar 2011 03:48:46 +0000 (22:48 -0500)] 
java: finish fixing parser stack popping bug.

* NEWS (2.5): Document.
* data/lalr1.java (YYParser::YYStack::pop): Fix off-by-one error
in clearing the location stack.  Also fix pop function that
accepts no arguments.
(cherry picked from commit 4c2a6e42ba8b6bc4e04985f5ef3ec8926048d4b1)

Conflicts:

data/lalr1.java

13 years agojava: fix parser stack popping bug.
Angelo Borsotti [Mon, 7 Mar 2011 03:19:18 +0000 (22:19 -0500)] 
java: fix parser stack popping bug.

Reported at
<http://lists.gnu.org/archive/html/bug-bison/2011-02/msg00005.html>.
* THANKS (Angelo Borsotti): Add.
* data/lalr1.java (YYParser::YYStack::pop): Fix off-by-one error
in clearing the value stack.  Previously, the top element of the
stack wasn't cleared and so the value was not garbage collected.
(cherry picked from commit 6f75992be50b83a084f955f63e5c35ccc8705f08)

Conflicts:

data/lalr1.java

13 years agodoc: cite publication for LAC.
Joel E. Denny [Sun, 6 Mar 2011 22:12:16 +0000 (17:12 -0500)] 
doc: cite publication for LAC.

* doc/bison.texinfo (LAC): Here.
(cherry picked from commit 121c498280f96b31a1f90e2012751509e6358a64)

13 years agodoc: clean up terminology for mysterious conflicts.
Joel E. Denny [Sun, 6 Mar 2011 17:54:35 +0000 (12:54 -0500)] 
doc: clean up terminology for mysterious conflicts.

* doc/bison.texinfo (Mystery Conflicts): Rename node to...
(Mysterious Conflicts): ... this, which is already the section
title and the name used in the index.  Update all cross-references
to this node.  Also, don't imply that R/R conflicts are the only
kind of mysterious conflict.
(cherry picked from commit 5da0355aff4de57e96aba7b788c376fc779d83b1)

13 years agolr.default-reductions: rename "all" value to "full".
Joel E. Denny [Sun, 6 Mar 2011 17:46:27 +0000 (12:46 -0500)] 
lr.default-reductions: rename "all" value to "full".

States that shift the error token do not have default reductions,
and GLR disables some default reductions, so "all" was a misnomer.
* doc/bison.texinfo (%define Summary): Update.
(Default Reductions): Update.
* src/print.c (print_reductions): Update.
* src/reader.c (prepare_percent_define_front_end_variables):
Update.
* src/tables.c (action_row): Update.
* tests/input.at (%define enum variables): Update.
* tests/reduce.at (%define lr.default-reductions): Update.
(cherry picked from commit d815ec4a6290e18fac9220438622f6dd27b3227f)

13 years agodoc: create a new Tuning LR section in the manual.
Joel E. Denny [Tue, 22 Feb 2011 00:09:24 +0000 (19:09 -0500)] 
doc: create a new Tuning LR section in the manual.

And clean up all other documentation of the features described
there.
* NEWS (2.5): Tweak wording of lr.type and parse.lac entries a
bit, update the cross-references to the manual, and point out that
LAC has caveats.  Don't be so adamant that IELR+LAC=canonical LR.
That is, as the referenced section in the manual documents, LAC
does not fix infinite parsing loops on syntax errors.
* doc/bison.texinfo: Consistently drop the "(1)" suffix from LALR,
IELR, and LR in @cindex.
(%define Summary): Condense the entries for lr.default-reductions,
lr.keep-unreachable-states, lr.type, and parse.lac into brief
summaries, and cross-reference the appropriate subsections of
Tuning LR.  For parse.lac, mention that it's only implemented for
deterministic parsers in C.  In parse.error entry, mention LAC,
and add cross-reference to the LAC section.
(Error Reporting): When mentioning parse.error, mention LAC, and
add cross-reference to the LAC section.
(Tuning LR): New section with an extended version of the
documentation removed from %define Summary.  Change all
cross-references in the manual to point here instead of there.
(Calc++ Parser): When mentioning parse.error, mention LAC, and add
cross-reference to the LAC section.
(Table of Symbols): In %error-verbose entry, add cross-reference
to Error Reporting.
(Glossary): Capitalize entry titles consistently.  Add definitions
for "defaulted state" and "unreachable state".  Expand IELR
acronym in IELR's entry.
(cherry picked from commit 6f04ee6c78ba01f9d8e02dbe2baace0c3bd8f4fd)

Conflicts:

doc/bison.texinfo

13 years agodoc: add bibliography to manual.
Joel E. Denny [Sun, 20 Feb 2011 21:58:52 +0000 (16:58 -0500)] 
doc: add bibliography to manual.

* doc/bison.texinfo (Mystery Conflicts): Cross-reference
bibliography instead of citing publications directly.
(Generalized LR Parsing): Likewise.
(Bibliography): New section.  Not all entries are cross-referenced
yet, but that will come in future patches.
(cherry picked from commit 71caec06614dc68d58229dd4e275c8c641df23ac)

13 years agojava: test and document previous bug fix.
Joel E. Denny [Sun, 20 Feb 2011 00:36:33 +0000 (19:36 -0500)] 
java: test and document previous bug fix.

* NEWS (2.5): Document it.
* tests/java.at (_AT_DATA_JAVA_CALC_Y): To one of the yyerror
invocations, pass a location that spans multiple tokens.  Change
yyerror to report all of a location rather than just the begin
position.  Extend yylex and Position to count tokens on a line.
Remove getHashCode as it's unused.  Update all expected output.
(cherry picked from commit 7776816565040879b3b095130a772c06585daeeb)

13 years agojava: fix location handling bug.
Bernd Kiefer [Sun, 20 Feb 2011 00:24:07 +0000 (19:24 -0500)] 
java: fix location handling bug.

Reported at
<http://lists.gnu.org/archive/html/bison-patches/2011-02/msg00005.html>.
* data/lalr1.java (YYParser::yylloc): For non-empty RHS, fix
reversed access to location stack.
* THANKS (Bernd Kiefer): Add.
(cherry picked from commit 8db68289d1162b763606fe5271a7529408224d38)

13 years agodoc: fix some minor inconsistencies.
Joel E. Denny [Sun, 13 Feb 2011 17:02:31 +0000 (12:02 -0500)] 
doc: fix some minor inconsistencies.

* doc/bison.texinfo (%define Summary): Fix mislabeled entry for
lex_symbol.
(%code Summary): For consistency with the variable list in the
%define Summary, enclose the list of %code qualifiers in a table
instead of an itemize.

13 years agodoc: clean up new subsections in manual.
Joel E. Denny [Sun, 6 Feb 2011 19:18:01 +0000 (14:18 -0500)] 
doc: clean up new subsections in manual.

* doc/bison.texinfo (%define Summary): Reword so it reads well as
a separate section.  For example, add an intro, and move most of
the text outside of the @deffn so it is not indented so far.
(%code Summary): Likewise.
(Table of Symbols): Reword %code entry to match the %code entry in
Decl Summary.
(cherry picked from commit 406dec82864f5015bca1cb8c4b0cc298dea39374)

Conflicts:

doc/bison.texinfo

13 years agodoc: finish splitting apart the manual's Decl Summary section.
Joel E. Denny [Sun, 6 Feb 2011 17:41:24 +0000 (12:41 -0500)] 
doc: finish splitting apart the manual's Decl Summary section.

Suggested by Akim Demaille at
<http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00013.html>.
* doc/bison.texinfo (Decl Summary): Extract most of the %define
entry into...
(%define Summary): ... this new subsection, and update all
cross-references.  For readability of the patches, rewriting of
the text so it makes sense as a separate subsection will come in a
later patch.  Moreover, the majority of the text describing the
various new LR features should likely move to another new section
somewhere.
(cherry picked from commit 2f4518a12609c27887a9eb262d60a38b58af9657)

Conflicts:

doc/bison.texinfo

13 years agodoc: begin to split apart the manual's Decl Summary section.
Joel E. Denny [Sun, 6 Feb 2011 17:29:56 +0000 (12:29 -0500)] 
doc: begin to split apart the manual's Decl Summary section.

Discussed in thread starting at
<http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00013.html>.
* doc/bison.texinfo (Decl Summary): Extract most of the %code
entry into...
(%code Summary): ... this new subsection, and update all
cross-references.  For readability of the patches, rewriting of
the text so it makes sense as a separate subsection will come in a
later patch.
(cherry picked from commit 8e6f2266302c2035ef2b0ed7375cd8810b160f13)

Conflicts:

doc/bison.texinfo

13 years agodoc: clean up naming of various Bison files.
Joel E. Denny [Sun, 6 Feb 2011 16:08:27 +0000 (11:08 -0500)] 
doc: clean up naming of various Bison files.

The Bison manual's names for various files associated with a Bison
parser has devolved into inconsistency.  This patch makes the
naming consistent for the most important files.  First, it chooses
"grammar file" over "input file".  The former appears to be more
traditional in the Bison manual, and Bison has other input
files (skeletons).  Second, it chooses "parser implementation
file" over names like "parser file", "parser source file", "parser
source code file", and "parser output file".  The new name makes
it clearer where Bison generates the main parser implementation,
and it is easily distinguishable from "parser header file".
* doc/bison.texinfo: Implement throughout.
(cherry picked from commit 9913d6e45af4106cae7bb3a978eb1ee2501f1168)

Conflicts:

doc/bison.texinfo

13 years agodoc: give credit to more of Bison's developers.
Joel E. Denny [Sun, 6 Feb 2011 13:59:05 +0000 (08:59 -0500)] 
doc: give credit to more of Bison's developers.

* doc/bison.texinfo (Introduction): Don't imply that only Robert
Corbett, Richard Stallman, and Wilfred Hansen have contributed to
Bison.  However, I don't have time to write a full history, so
just point readers to THANKS and ChangeLog.
(cherry picked from commit 840341d67d779107373c42d879ea14518751d7df)

13 years agodoc: document experimental features better.
Joel E. Denny [Sun, 6 Feb 2011 13:52:09 +0000 (08:52 -0500)] 
doc: document experimental features better.

* doc/bison.texinfo (Introduction): Say that IELR(1) and canonical
LR(1) are experimental.  Mention Java.  Normally experimental
features probably shouldn't be mentioned in the introduction.
However, if Bison's limitations to LALR(1), C, and C++ are so
important that they should be mentioned here, then it's important
to point out that Bison is beginning to escape those limitations.
Moreover, these particular experimental features have very little
chance of being removed.
* src/getargs.c (usage): Say that IELR(1) and canonical LR(1) are
experimental.
(cherry picked from commit d89e48b3c9e857aa6d34f0bc66c9d9ac305f1b0c)

13 years agoDo not allow identifiers that start with a dash.
Joel E. Denny [Sat, 29 Jan 2011 17:54:28 +0000 (12:54 -0500)] 
Do not allow identifiers that start with a dash.

This cleans up our previous fixes for a bug whereby Bison
discarded `.field' in `$-1.field'.  The previous fixes were less
restrictive about where a dash could appear in an identifier, but
the restrictions were hard to explain.  That bug was reported and
this final fix was originally suggested by Paul Hilfinger.  This
also fixes a remaining bug reported by Paul Eggert whereby Bison
parses `%token ID -123' as `%token ID - 123' and handles `-' as an
identifier.  Now, `-' cannot be an identifier.  Discussed in
threads beginning at
<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>,
<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00004.html>.
* NEWS (2.5): Update entry describing the dash extension to
grammar symbol names.  Also, move that entry before the named
references entry because the latter mentions the former.
* doc/bison.texinfo (Symbol): Update documentation for symbol
names.  As suggested by Paul Eggert, mention the effect of periods
and dashes on named references.
(Decl Summary): Update documentation for unquoted %define values,
which, as a side effect, can no longer start with dashes either.
* src/scan-code.l (id): Implement.
* src/scan-gram.l (id): Implement.
* tests/actions.at (Exotic Dollars): Extend test group to exercise
bug reported by Paul Hilfinger.
* tests/input.at (Symbols): Update test group, and extend to
exercise bug reported by Paul Eggert.
* tests/named-refs.at (Stray symbols in brackets): Update test
group.
($ or @ followed by . or -): Likewise.
* tests/regression.at (Invalid inputs): Likewise.

13 years agoRevert "Simplify handling of '.' and '-' after unbracketed named references."
Joel E. Denny [Sat, 29 Jan 2011 15:58:03 +0000 (10:58 -0500)] 
Revert "Simplify handling of '.' and '-' after unbracketed named references."

This reverts commit bf3e44fe46440ebe473798f9d887908b120bb646.

See discussion following
<http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00030.html>.

13 years ago* data/yacc.c: Fix last apostrophe warning from xgettext.
Joel E. Denny [Tue, 25 Jan 2011 02:10:41 +0000 (21:10 -0500)] 
* data/yacc.c: Fix last apostrophe warning from xgettext.

(cherry picked from commit 448dc38bc4a5396809f0987fd4e93488498122a4)

Conflicts:

data/yacc.c
src/parse-gram.c
src/parse-gram.h

13 years agoSimplify handling of '.' and '-' after unbracketed named references.
Paul Eggert [Mon, 10 Jan 2011 07:26:12 +0000 (23:26 -0800)] 
Simplify handling of '.' and '-' after unbracketed named references.

* doc/bison.texinfo (Mid-Rule Actions): Mention that periods and
dashes make symbol names less convenient for named references.
* src/scan-code.l:
(handle_action_dollar): New arg textlen.  All callers changed.
(handle_action_at): Likewise.  Also, args are pointers to const.
(ref_tail_fields): Remove; no longer used.
(letter): Now includes '-' and '.', since this is for Bison
identifiers.
(id): Now the simpler traditional defn, since letters now include
'-' and '.'.
(c_letter, c_id): New defns.
(ref): Use c_id for unbracketed IDs.
(<SC_RULE_ACTION>): Simplify, now that the distinction between
Bison and unbracketed IDs are now in the regular expressions.
(VARIANT_BAD_BRACKETING): Remove.
(VARIANT_NOT_VISIBLE_FROM_MIDRULE): Renumber.
(find_prefix_end): Remove, replacing with ....
(identifier_matches): New function.
(variant_add): Use it.  Omit EXPLICIT_BRACKETING arg; no longer
needed.  CP arg is pointer to constant.  All callers changed.
(show_sub_messages): Remove args CP, EXPLICIT_BRACKETING, DOLLAR_OR_AT.
New arg TEXT.  All callers changed.  Do not worry about showing
trailing context.
(parse_ref): Args CP, RULE, TEXT are now pointers to const.  New
arg TEXTLEN.  Remove arg DOLLAR_OR_AT.  All callers changed.
Simplify code now that the regular expressions capture the
restrictions.
* src/scan-gram.l (letter, id): Adjust to match scan-code.l.
* src/symlist.c (symbol_list_null): Arg is now pointer to const.
* src/symlist.h: Likewise.
* tests/named-refs.at (Misleading references): These are now caught
by the C compiler, not by Bison; that's good enough.  Adjust test
to reflect this.
(Many kinds of errors, Unresolved references): Adjust expected
diagnostics to match new behavior.  The same errors are caught,
though the diagnostics are not quite as fancy.
($ or @ followed by . or -): Likewise.  Also, Make the grammar
unambiguous, so that diagnostics are not complicated by ambiguity
warnings.

13 years agoFix minor problems encountered by a fresh bootstrap.
Paul Eggert [Mon, 10 Jan 2011 01:08:33 +0000 (17:08 -0800)] 
Fix minor problems encountered by a fresh bootstrap.

* data/glr.c, data/yacc.c: Do not use apostrophes in '#' comments,
as they confuse xgettext, which tries to parse them as C character
constants in a preprocessor directive.
* data/yacc.c (yy_lac): Don't use printf %d format on *yyesp, as
that expression might not promote to int on some platforms.
* src/parse-gram.c, src/parse-gram.h: Regenerate.

13 years agoImprove error messages for `$' or `@' followed by `.' or `-'.
Joel E. Denny [Sun, 9 Jan 2011 23:06:19 +0000 (18:06 -0500)] 
Improve error messages for `$' or `@' followed by `.' or `-'.

Previously, for this special case of an invalid reference, the
usual "symbol not found in production:" was printed.  However,
because the symbol name was parsed as the empty string, that
message was followed immediately by a newline instead of a symbol
name.  In reality, this is a syntax error, so the reference is
invalid regardless of the symbols actually appearing in the
production.  Discussed at
<http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00012.html>.
* src/scan-code.l (parse_ref): Report the above case as a syntax
error.  Other than that, continue to handle this case like any
other invalid reference that Bison manages to parse because
"possibly meant" messages can still be helpful to the user.
* tests/named-refs.at ($ or @ followed by . or -): New test group.

13 years agodoc: don't use @acronym.
Joel E. Denny [Sat, 8 Jan 2011 18:52:05 +0000 (13:52 -0500)] 
doc: don't use @acronym.

Lately, many GNU packages are dropping it.  See
<http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00003.html>.
* doc/bison.texinfo: Remove all uses.

13 years agoDo not allow identifiers that start with a negative number.
Alex Rozenman [Wed, 5 Jan 2011 13:47:25 +0000 (15:47 +0200)] 
Do not allow identifiers that start with a negative number.

Reported by Paul Hilfinger as a side effect of named references
support at
<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>.
Suggested by Paul Eggert.
* src/scan-code.l ({letter}, {id}): Adjust lexical definitions.
* src/scan-gram.l ({letter}, {id}): Likewise.

13 years ago* ChangeLog (2011-01-02): improve description.
Joel E. Denny [Mon, 3 Jan 2011 23:37:56 +0000 (18:37 -0500)] 
* ChangeLog (2011-01-02): improve description.

13 years agomaint: don't update copyright years in bootstrap.
Joel E. Denny [Mon, 3 Jan 2011 14:00:09 +0000 (09:00 -0500)] 
maint: don't update copyright years in bootstrap.

* .x-update-copyright: Add entry for bootstrap.
* bootstrap: Remove 2011 from copyright years.  The bootstrap
version we're currently using comes from an older version of
gnulib.
* bootstrap.conf (bootstrap_sync): Add comments explaining this
issue.

13 years agomaint: run "make update-copyright".
Joel E. Denny [Sun, 2 Jan 2011 14:12:01 +0000 (09:12 -0500)] 
maint: run "make update-copyright".

13 years agomaint: prepare to use date ranges in copyright notices.
Joel E. Denny [Sun, 2 Jan 2011 13:17:44 +0000 (08:17 -0500)] 
maint: prepare to use date ranges in copyright notices.

* README (Copyright statements): New section explaining the range
notation.  The GNU coding standards require this explanation.  I
copied ours from coreutils.
* build-aux/update-b4-copyright: Revert 2010-06-17 changes that
disabled Bison's automated use of ranges.
* cfg.mk (update-copyright-env): Likewise.

13 years agoCorrect my email address.
Joel E. Denny [Sun, 2 Jan 2011 13:59:40 +0000 (08:59 -0500)] 
Correct my email address.

* ChangeLog: In all recent entries.
* THANKS (Joel E. Denny): Here.

13 years agodoc: cleanup.
Joel E. Denny [Mon, 20 Dec 2010 03:15:57 +0000 (22:15 -0500)] 
doc: cleanup.

* NEWS (2.5): Try to sort entries according to how interesting
users might find them.

13 years agodoc: cleanup.
Joel E. Denny [Mon, 20 Dec 2010 03:14:08 +0000 (22:14 -0500)] 
doc: cleanup.

* NEWS (2.5): Make some minor improvements to wording, and format
entries more consistently.
* doc/bison.texinfo (Language and Grammar): Point out that IELR
and canonical LR are experimental features.
(Decl Summary): In list of %define variables, make wording more
consistent.  Improve discussion of using LALR for GLR.

13 years agoparse.lac: document.
Joel E. Denny [Mon, 20 Dec 2010 03:12:32 +0000 (22:12 -0500)] 
parse.lac: document.

* NEWS (2.5): Add entry for LAC, and mention LAC in entry for
other corrections to verbose syntax error messages.
* doc/bison.texinfo (Decl Summary): Rewrite entries for
lr.default-reductions and lr.type to be clearer, to mention
%nonassoc's effect on canonical LR, and to mention LAC.  Add entry
for parse.lac.
(Glossary): Add entry for LAC.

13 years agoparse.lac: implement exploratory stack reallocations.
Joel E. Denny [Sat, 11 Dec 2010 18:17:13 +0000 (13:17 -0500)] 
parse.lac: implement exploratory stack reallocations.

* data/yacc.c: Rename %define variable parse.lac.es-capacity to
parse.lac.es-capacity-initial.  Accept parse.lac.memory-trace
with values of "failures" (default) or "full".
(b4_declare_parser_state_variables): Add yyesa, yyes, and
yyes_capacity variables.
(YYSTACK_USE_ALLOCA): Ignore it if LAC requested.
(YYSTACK_ALLOC, YYSTACK_FREE, YYSTACK_ALLOC_MAXIMUM): Define if
LAC requested.
(YYCOPY_NEEDED): New cpp macro.
(YYCOPY): Define if LAC requested.
(yy_lac_stack_realloc): New function implementing stack
reallocations.  Use YYMAXDEPTH for maximum stack size given that
the stack should never need to grow larger than the main state
stack needs to grow without LAC.
(YY_LAC_ESTABLISH): Update yy_lac invocation.
(yy_lac): Add arguments for exploratory stack memory data
recorded in the main parser.  Invoke yy_lac_stack_realloc when
reallocation is necessary.
(yysyntax_error): Add the same new arguments and pass them to
yy_lac.
(yypstate_delete): Free yyes if necessary.
(yyesa, yyes, yyes_capacity): #define these to yypstate members
in the case of push parsing.
(yyparse, yypush_parse): Initialize yyes and yyes_capacity.
Update yysyntax_error invocations.  At yyreturn, free yyes if
necessary.
* src/parse-gram.y: %define parse.lac full.
* tests/input.at (LAC: errors for %define): Extend for
parse.lac-memory-trace.
* tests/regression.at (LAC: Exploratory stack): Extend to check
that stack reallocs happen when expected.
(LAC: Memory exhaustion): Update to use YYMAXDEPTH and
parse.lac.es-capacity-initial.

13 years agoparse.lac: implement as %define variable.
Joel E. Denny [Sat, 11 Dec 2010 16:13:33 +0000 (11:13 -0500)] 
parse.lac: implement as %define variable.

LAC = lookahead correction.  See discussion at
<http://lists.gnu.org/archive/html/bison-patches/2009-09/msg00034.html>.
However, one point there must be corrected: because of %nonassoc,
LAC is *not* always redundant for lr.type=canonical-lr.
* data/yacc.c: Accept values of "none" (default) or "full" for
parse.lac.  Accept %define parse.lac.es-capacity to specify
capacity of LAC's temporary exploratory stack.  It defaults to 20
and, for now, will not grow dynamically.
(b4_lac_flag, b4_lac_if): New m4 macros.  Evaluate as true for
parse.lac!=none.
(YYBACKUP): Invoke YY_LAC_DISCARD.
(YY_LAC_ESTABLISH, YY_LAC_DISCARD): New cpp macros that invoke
yy_lac and track when it needs to be invoked
(yy_lac): New function that, given the current stack, determines
whether a token can eventually be shifted.  Return status mimics
yyparse return status.
(yysyntax_error): Change yystate argument to yyssp so stack top
can be passed to yy_lac.  If LAC is requested, build expected
token list by invoking yy_lac for every token instead of just
checking the current state for lookaheads.  Return 2 if yy_lac
exhausts memory.
(yyparse, yypush_parse): Use local variable yy_lac_established and
cpp macros YY_LAC_ESTABLISH and YY_LAC_DISCARD to implement LAC.
Update yysyntax_error invocation.  Add yyexhaustedlab code if LAC
is requested.
* tests/conflicts.at (%nonassoc and eof): Extend to check the
effect of each of -Dlr.type=canonical-lr and -Dparse.lac=full.
(parse.error=verbose and consistent errors): Likewise.
(LAC: %nonassoc requires splitting canonical LR states): New test
group demonstrating how LAC can fix canonical LR.
* tests/input.at (LAC: Errors for %define): New test group.
* tests/regression.at (LAC: Exploratory stack): New test group.
(LAC: Memory exhaustion): New test group.

14 years agobuild: use gnulib's new bootstrap_sync option.
Joel E. Denny [Sun, 21 Nov 2010 15:07:13 +0000 (10:07 -0500)] 
build: use gnulib's new bootstrap_sync option.

Now, whenever we update bison's copy of gnulib, bootstrap will
update itself the next time it's run.
* bootstrap: Copy from latest gnulib for bootstrap_sync support.
* bootstrap.conf (bootstrap_sync): Set to true.
* gnulib: Update to latest so bootstrap is in sync now.

14 years agoyysyntax_error: fix for consistent error with lookahead.
Joel E. Denny [Sun, 7 Nov 2010 21:01:56 +0000 (16:01 -0500)] 
yysyntax_error: fix for consistent error with lookahead.

* NEWS (2.5): Document.
* data/yacc.c (yysyntax_error): In a verbose syntax error
message while in a consistent state with a default action (which
must be an error action given that yysyntax_error is being
invoked), continue to drop the expected token list, but don't
drop the unexpected token unless there actually is no lookahead.
Moreover, handle that internally instead of returning 1 to tell
the caller to do it.  With that meaning of 1 gone, renumber
return codes more usefully.
(yyparse, yypush_parse): Update yysyntax_error usage.  Most
importantly, set yytoken to YYEMPTY when there's no lookahead.
* data/glr.c (yyreportSyntaxError): As in yacc.c, don't drop the
unexpected token unless there actually is no lookahead.
* data/lalr1.cc (yy::parser::parse): If there's no lookahead,
pass yyempty_ not yyla.type to yysyntax_error_.
(yy::parser::yysyntax_error_): Again, don't drop the unexpected
token unless there actually is no lookahead.
* data/lalr1.java (YYParser::parse): If there's no lookahead,
set yytoken to yyempty_ before invoking yysyntax_error.
(YYParser::yysyntax_error): Again, don't drop the unexpected
token unless there actually is no lookahead.
* tests/conflicts.at (parse.error=verbose and consistent
errors): Extend test group to further reveal how the previous
use of the simple "syntax error" message was too general.  Test
yacc.c, glr.c, lalr1.cc, and lalr1.java.  No longer an expected
failure.
* tests/java.at (AT_JAVA_COMPILE, AT_JAVA_PARSER_CHECK): Move
to...
* tests/local.at: ... here.
(_AT_BISON_OPTION_PUSHDEFS): Push AT_SKEL_JAVA_IF definition.
(AT_BISON_OPTION_POPDEFS): Pop it.
(AT_FULL_COMPILE): Extend to handle Java.

14 years agoyysyntax_error: more preparation for readability of next patch.
Joel E. Denny [Sun, 7 Nov 2010 14:45:18 +0000 (09:45 -0500)] 
yysyntax_error: more preparation for readability of next patch.

There are no behavioral changes here.
* data/glr.c (yyreportSyntaxError): Reorganize.
* data/lalr1.cc (yy::parser::yysyntax_error_): Reorganize.
* tests/conflicts.at (parse.error=verbose and consistent errors):
Reorganize.

14 years agoyysyntax_error: prepare for readability of next patches.
Joel E. Denny [Sun, 7 Nov 2010 14:44:07 +0000 (09:44 -0500)] 
yysyntax_error: prepare for readability of next patches.

These are purely whitespace changes that result in ugly code
but that make the next couple of patches much easier to read.
* data/glr.c (yyreportSyntaxError): Reindent.
* data/lalr1.cc (yy::parser::yysyntax_error_): Reindent.
* data/lalr1.java (YYParser::yysyntax_error): Reindent.
* data/yacc.c (yysyntax_error): Reindent.

14 years agoFix memory leak.
Joel E. Denny [Mon, 1 Nov 2010 01:26:22 +0000 (21:26 -0400)] 
Fix memory leak.

* src/output.c (prepare_rules): Free temporary array.

14 years agoyysyntax_error: improve invocation readability.
Joel E. Denny [Sun, 31 Oct 2010 22:56:34 +0000 (18:56 -0400)] 
yysyntax_error: improve invocation readability.

* data/yacc.c (yyparse, yypush_parse): For yysyntax_error
invocation, get rid of the while loop, which is misleading
because there are really at most two iterations.

14 years ago* ChangeLog: Correct some errors in previous entries.
Joel E. Denny [Sun, 31 Oct 2010 22:23:12 +0000 (18:23 -0400)] 
* ChangeLog: Correct some errors in previous entries.

14 years agomaint: re-anchor all .gitignore entries.
Joel E. Denny [Sun, 17 Oct 2010 14:18:26 +0000 (10:18 -0400)] 
maint: re-anchor all .gitignore entries.

* bootstrap: Copy from gnulib's latest for the fix to
automatically anchor entries it constructs.
* gnulib: Update to latest just so it has the same bootstrap.
* .gitignore, build-aux/.gitignore, doc/.gitignore:
* lib/.gitignore, m4/.gitignore, po/.gitignore:
* runtime-po/.gitignore: Re-anchor all entries.

14 years agoFix portability problem on OpenBSD 4.7.
Paul Eggert [Fri, 8 Oct 2010 19:12:48 +0000 (12:12 -0700)] 
Fix portability problem on OpenBSD 4.7.

Jim Meyering reported this in
<http://lists.gnu.org/archive/html/bug-bison/2010-10/msg00007.html>.
* data/yacc.c: Use EXIT_SUCCESS as a witness for stdlib.h,
not _STDLIB_H.  EXIT_SUCCESS has been defined by the standard
for quite some time.
* src/parse-gram.c, src/parse-gram.h: Regenerate.
* tests/regression.at: Tamper with the renamed witness.

14 years agoAdjust to recent changes to gnulib bootstrap.
Paul Eggert [Fri, 8 Oct 2010 18:10:06 +0000 (11:10 -0700)] 
Adjust to recent changes to gnulib bootstrap.

* .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore:
* examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore:
* po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore:
* tests/.cvsignore: Remove; I don't use CVS to maintain Bison
anymore and don't know of anybody else who does.  If someone needs
these files, they can resurrect them.
* .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore:
* m4/.gitignore, po/.gitignore, runtime-po/.gitignore:
Omit leading '/', since bootstrap omits it.
Adjust file names to match current contents better.
* bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook
installed just for us.
* bootstrap.conf (excluded_files): Don't exclude codeset.m4,
glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now
needed somehow.  Don't have time to look into why.
(gnulib_modules): Change malloc to malloc-gnu.  Do we really assume
the GNU malloc behavior, where malloc (0) != NULL unless we're
out of storage?  If not, we can omit malloc-gnu; but for now I left
it in to be safe.
(vc_ignore): Remove.
(gnulib_mk_hook): New function.
* README-hacking: Renamed from HACKING, since gnulib bootstrap now
uses that convention.

14 years agoSync from upstream gnulib and autoconf.
Paul Eggert [Fri, 8 Oct 2010 18:03:04 +0000 (11:03 -0700)] 
Sync from upstream gnulib and autoconf.

14 years agoRemove compiler warnings in GLR parsers.
Paul Hilfinger [Thu, 9 Sep 2010 07:46:50 +0000 (00:46 -0700)] 
Remove compiler warnings in GLR parsers.

* data/glr.c (yySymbol): Define as int to avoid compiler warnings
about possible change of value.

14 years agoFix some errors that were causing testsuite failures for GLR.
Paul Hilfinger [Wed, 8 Sep 2010 07:52:05 +0000 (00:52 -0700)] 
Fix some errors that were causing testsuite failures for GLR.

* data/glr.c (yy_reduce_print): Change yyrhsVals to yyvsp to remove
compiler errors when using %debug.
Add declaration of yylow when locations in use to avoid compilation
error.
(yyglrReduce): Conditionalize message "Parse ... rejected by rule..."
on whether we are in split mode, for consistency with behavior of
non-GLR parsing.

14 years agoAddress GCC warnings about shadowed local variables (yyflag).
Akim Demaille [Wed, 1 Sep 2010 13:13:27 +0000 (15:13 +0200)] 
Address GCC warnings about shadowed local variables (yyflag).

* data/glr.c (YYCHK): Rename yyflag as yychk_flag.
(yyprocessOneStack): Reduce the scope of yyaction, yyconflicts,
yyrule, and yyflag.

14 years agoVersion 2.4.3.
Joel E. Denny [Fri, 6 Aug 2010 00:56:44 +0000 (20:56 -0400)] 
Version 2.4.3.

* NEWS (2.4.3): Set date.
(cherry picked from commit 06d61f775a47b9ae42c84872090cdbaf7204aef7)

Conflicts:

NEWS

14 years agomaint: add gettext version to release announcements.
Joel E. Denny [Thu, 5 Aug 2010 01:15:59 +0000 (21:15 -0400)] 
maint: add gettext version to release announcements.

Suggested by Paul Hilfinger at
<http://lists.gnu.org/archive/html/bison-patches/2010-07/msg00019.html>
<http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00002.html>.
* cfg.mk (bootstrap-tools): Add gettext.
(cherry picked from commit b3b18068885986d25ec2c8f76a7d2b971194598a)

14 years agodoc: fix -W and %expect documentation some.
Joel E. Denny [Thu, 5 Aug 2010 00:17:40 +0000 (20:17 -0400)] 
doc: fix -W and %expect documentation some.

* NEWS (2.4.3): Mention that there are documentation fixes.
* doc/bison.texinfo (Expect Decl): Make it clear that %expect
turns conflicts into errors not warnings.
(Shift/Reduce): Likewise.
(Bison Options): Don't mention -Wsyntax.  It doesn't exist.
(cherry picked from commit 3ffdd5f1254fd9403a5a1d31dbdc5b2756c22775)

14 years ago-Werror: fix for rules useless in parser after conflicts.
Joel E. Denny [Sun, 1 Aug 2010 22:51:46 +0000 (18:51 -0400)] 
-Werror: fix for rules useless in parser after conflicts.

* NEWS (2.4.3): Document fix.
* src/complain.c (error_message): Extend to handle incomplete
error messages so warn and warn_at can be used in more cases.
* src/gram.c (grammar_rules_useless_report): Use warn_at so that
-Werror is always obeyed.
* src/reduce.c (reduce_print): Use warn so that the "warnings
being treated as errors" message is printed consistently before
the first warning message.  This makes testing easier.
* tests/local.at (AT_BISON_WERROR_MSG): New macro.
(AT_BISON_CHECK_NO_XML): Extend to check -Werror and
--warnings=error when warnings appear in bison's stderr.
(cherry picked from commit 954474bfa1a875eeefe9aa1989d9c7be6f64726b)

14 years agoRemove restrictions on expanding GLR stacks in C++.
Paul Hilfinger [Thu, 29 Jul 2010 08:43:37 +0000 (01:43 -0700)] 
Remove restrictions on expanding GLR stacks in C++.

    * data/glr.c:  Remove tests for __cplusplus related to definition of
    YYSTACKEXPANDABLE.
    * doc/bison.texinfo: Rewrite paragraph saying C++ stacks are not
    expandable to instead indicate conditions that prevent their expansion
    in C++.  Reorganize section on GLR semantic values a bit. Remove
    discussion of YYLLOC_DEFAULT. Mention restrictions to POD data.

14 years agomaint: enable gnits only at stable releases.
Joel E. Denny [Fri, 30 Jul 2010 02:05:09 +0000 (22:05 -0400)] 
maint: enable gnits only at stable releases.

* configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a
version string should disable gnits.  Explain in comments.
(cherry picked from commit 122ff4442985540837fae4b4c904c7018a1a3d38)

Conflicts:

configure.ac

14 years agoi18n: update.
Joel E. Denny [Thu, 29 Jul 2010 01:59:34 +0000 (21:59 -0400)] 
i18n: update.

* po/POTFILES.in: Add src/graphviz.c.
(cherry picked from commit 82df2d6dd61f07bbf7e82c90a7b4c18752a325c0)

14 years agoi18n: fix for gnulib.
Joel E. Denny [Thu, 29 Jul 2010 01:46:07 +0000 (21:46 -0400)] 
i18n: fix for gnulib.

* po/POTFILES.in: Add remaining gnulib files that have
translatable strings.
(cherry picked from commit 4b07bd01d81cca58fb8e0ca86ea40669895fd90c)

14 years agobuild: fix our adjustments for gnulib files in lib.
Joel E. Denny [Mon, 26 Jul 2010 01:24:02 +0000 (21:24 -0400)] 
build: fix our adjustments for gnulib files in lib.

* configure.ac: For prepending lib/ to the values of config
variables, fix detection of empty values.  Also, due to recent
gnulib changes, add LIBUNISTRING_UNITYPES_H and
LIBUNISTRING_UNIWIDTH_H to the list of those variables.

14 years agomaint: use announce-gen's new --mail-headers.
Joel E. Denny [Sun, 25 Jul 2010 19:53:18 +0000 (15:53 -0400)] 
maint: use announce-gen's new --mail-headers.

* HACKING (Announce): Update instructions.
* cfg.mk (announcement_Cc_): Define.
* configure.ac (AM_GNU_GETTEXT_VERSION): Update to 0.18 as
required by latest gnulib.
* gnulib: Update to latest.
(cherry picked from commit e5655564583f2f704dd85d6f602f5fcd86f87467)

14 years agotests: handle Valgrind that complains about >&-.
Joel E. Denny [Sat, 24 Jul 2010 20:30:07 +0000 (16:30 -0400)] 
tests: handle Valgrind that complains about >&-.

* tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests.
(Output files: -dv >&-): Skip test group if running
maintainer-check-valgrind.
(cherry picked from commit c027cccb351b7b553f92a827787fa91d28934e5c)

Conflicts:

tests/output.at

14 years agoAllow specification of semantic predicates.
Paul Hilfinger [Fri, 23 Jul 2010 02:08:10 +0000 (19:08 -0700)] 
Allow specification of semantic predicates.

These changes allow users to prefix an action with %? to indicate that it
is a semantic predicate---an expression that is evaluated immediately (not
deferred, even in GLR nondeterministic mode) and causes a syntax error if
false.  In GLR parsers, this has the effect of killing one of a set of
split-off parses, just as would an ordinary syntax error.

Changelog:

    * NEWS: Describe new semantic-predicate feature.
    * data/c.m4 (b4_predicate_case): New definition.
    * data/java.m4 (b4_predicate_case): New definition.
    * data/glr.c (yyimmediate): Add definition.
    (yydoAction): Remove comment, now obsolete.
    Do YY_REDUCE_PRINT here.
    (yyglrReduce): Alter comment to indicate that semantic values
    need not be deferred.
    Remove YY_REDUCE_PRINT from here; done in yydoAction.
    (yyprocessOneStack): Pass immediate flag.
    Delete stacks rejected by predicates in newly split-off parsers.
    Change handling of yyerr so that only current stack gets deleted
    when semantic predicate fails.
    (yyfillin): Don't crash if a semantic value is unresolved (as may
    happen in predicate rules).
    Copy lr state as well in debugging mode.
    Update comment on setting of yysval to include yyloc as well.
    (yy_reduce_print): Add yynormal argument.  Perform fillin properly.
    Report unresolved RHS values.
    (yyimmediate): New table.
    * src/gram.h (struct rule): Add is_predicate field.
    * src/output.c (user_actions_output): Use b4_predicate_case for
    predicates.
    (prepare_symbols): Output yyimmediate.
    * src/scan-gram.l: Add %? token, SC_PREDICATE state.
    * src/scan-code.l (code_props_rule_action_init): Add is_predicate
    argument.
    * src/scan-code.h (struct code_props): Add is_predicate field.
    (code_props_rule_action_init): New interface.
    * src/parse-gram.y (%?{...}): New token.
    (rhs): Add %?{...} rule.
    * src/parse-gram.c: Regenerate.
    * src/parse-gram.h: Regenerate.
    * src/reader.c (grammar_current_rule_action_append): Add
    immediate argument.
    (grammar_midrule_action): Use new interface for
    code_props_rule_action_init.
    (grammar_current_rule_action_append): Ditto.
    (packgram): Transfer is_predicate value.
    * src/reader.h (grammar_current_rule_action_append): New interface.
    * doc/bison.texinfo: Document semantic predicates (%?).

    * data/glr.c (yylhsNonterm, yyisDefaultedState,yyDefaultAction)
    (yygetLRActions,yynewGLRStackItem,yyaddDeferredAction,yyinitStateSet)
    (yyinitGLRStack,yyexpandGLRStack,yyupdateSplit,yymarkStackDeleted)
    (yyundeleteLastStack,yyglrShift,yyglrShiftDefer,yydoAction,yyglrReduce)
    (yyidenticalOptions,yymergeOptionSets,yyresolveStates,yyresolveAction)
    (yyresolveLocations,yyresolveValue,yyreducePrint): Update parameter
    names in comments and mention all parameters.
    (struct yyGLRState): Fix description of yyposn field.
    (yyresolveLocations): Correct comment so as not to imply action when
    yyn1==0.

14 years agoUpdate from GFDL GFDL 1.2 to 1.3.
Paul Eggert [Fri, 18 Jun 2010 06:53:50 +0000 (23:53 -0700)] 
Update from GFDL GFDL 1.2 to 1.3.

* doc/bison.texinfo: Update GFDL version number.
* doc/fdl.texi: Update to version 1.3, taken from:
http://www.gnu.org/licenses/fdl.texi

14 years agoDo not use date ranges in copyright notices.
Paul Eggert [Fri, 18 Jun 2010 06:16:36 +0000 (23:16 -0700)] 
Do not use date ranges in copyright notices.

See http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices

* HACKING, Makefile.am, NEWS, PACKAGING, README, README-alpha:
* TODO, bootstrap, bootstrap.conf:
* build-aux/update-b4-copyright, cfg.mk, configure.ac:
* data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4:
* data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc:
* data/java-skel.m4, data/java.m4, data/lalr1.cc:
* data/lalr1.java, data/local.mk, data/location.cc:
* data/stack.hh, data/variant.hh, data/xslt/bison.xsl:
* data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl:
* data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint:
* djgpp/README.in, djgpp/config.bat, djgpp/config.sed:
* djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat:
* djgpp/local.mk, djgpp/subpipe.c, djgpp/subpipe.h:
* djgpp/testsuite.sed, doc/bison.texinfo, doc/local.mk:
* doc/refcard.tex, etc/README, etc/bench.pl.in, etc/local.mk:
* examples/calc++/Makefile.am, examples/extexi:
* examples/local.mk, lib/abitset.c, lib/abitset.h:
* lib/bbitset.h, lib/bitset.c, lib/bitset.h:
* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
* lib/libiberty.h, lib/local.mk, lib/main.c, lib/timevar.c:
* lib/timevar.def, lib/timevar.h, lib/vbitset.c:
* lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4:
* m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4:
* src/AnnotationList.c, src/AnnotationList.h:
* src/InadequacyList.c, src/InadequacyList.h, src/LR0.c:
* src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c:
* src/assoc.h, src/closure.c, src/closure.h, src/complain.c:
* src/complain.h, src/conflicts.c, src/conflicts.h:
* src/derives.c, src/derives.h, src/files.c, src/files.h:
* src/flex-scanner.h, src/getargs.c, src/getargs.h:
* src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c:
* src/ielr.h, src/lalr.c, src/lalr.h, src/local.mk:
* src/location.c, src/location.h, src/main.c:
* src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c:
* src/named-ref.h, src/nullable.c, src/nullable.h:
* src/output.c, src/output.h, src/parse-gram.y:
* src/print-xml.c, src/print-xml.h, src/print.c, src/print.h:
* src/print_graph.c, src/print_graph.h, src/reader.c:
* src/reader.h, src/reduce.c, src/reduce.h, src/relation.c:
* src/relation.h, src/scan-code.h, src/scan-code.l:
* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
* tests/actions.at, tests/atlocal.in, tests/c++.at:
* tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
* tests/existing.at, tests/glr-regression.at:
* tests/headers.at, tests/input.at, tests/java.at:
* tests/local.at, tests/local.mk, tests/named-refs.at:
* tests/output.at, tests/push.at, tests/reduce.at:
* tests/regression.at, tests/sets.at, tests/skeletons.at:
* tests/synclines.at, tests/testsuite.at, tests/torture.at:
Don't use date ranges in copyright notices.

Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010 Free Software Foundation, Inc.

14 years agolalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.
Akim Demaille [Tue, 11 May 2010 21:51:59 +0000 (23:51 +0200)] 
lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.

* data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the
header file to the implementation file, after the user %code
sections.
* NEWS: Document it.

14 years agoNEWS: fix chronology.
Akim Demaille [Wed, 12 May 2010 08:06:59 +0000 (10:06 +0200)] 
NEWS: fix chronology.

* NEWS (C++ parsers use YYRHSLOC): Move from ?.? to 2.5.

14 years agodoc: please Emacs.
Akim Demaille [Tue, 11 May 2010 19:31:31 +0000 (21:31 +0200)] 
doc: please Emacs.

* doc/bison.texinfo (Local Variables): Move this after the
LocalWords, since the latter are looked for in the whole document,
while the former are looked for only at its end.
Require american spell checking.

14 years agodoc: fix lalr1.cc documentation.
Akim Demaille [Mon, 10 May 2010 08:41:21 +0000 (10:41 +0200)] 
doc: fix lalr1.cc documentation.

* doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
(C++ Bison Interface): Fix lalr1.cc skeleton name.
(C++ Parser Interface): Fix semantic_type and location_type names.
Document yy::parser::token.
Reported by Jerry Quinn.

(cherry picked from commit 0100cd629d91e3e799b9feb7182965ff348ba61c)

Conflicts:

ChangeLog
doc/bison.texinfo

14 years agoc++: use YYRHSLOC.
Akim Demaille [Sun, 9 May 2010 21:58:50 +0000 (23:58 +0200)] 
c++: use YYRHSLOC.

* data/lalr1.cc (YYRHSLOC): New.
(YYLLOC_DEFAULT): Use it.
* data/glr.cc: If location_type was user defined, do not include
location.hh, and do not produce location.hh and position.hh.
* tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC.
Check that glr.cc supports user defined location_type.
* NEWS: Document this.

14 years agocomment change.
Akim Demaille [Sun, 9 May 2010 12:36:09 +0000 (14:36 +0200)] 
comment change.

* data/c++.m4: here.

14 years agodoc: fix typo.
Akim Demaille [Fri, 7 May 2010 15:43:21 +0000 (17:43 +0200)] 
doc: fix typo.

* tests/synclines.at: here.

14 years agotests: enhance AT_SYNCLINES_COMPILE.
Akim Demaille [Wed, 14 Apr 2010 14:40:18 +0000 (16:40 +0200)] 
tests: enhance AT_SYNCLINES_COMPILE.

* tests/synclines.at (AT_SYNCLINES_COMPILE): More distcc patterns.
(AT_TEST_SYNCLINE): Remove GCC 4.5 protection which is already
taken care of in AT_SYNCLINES_COMPILE.

14 years agolalr1.cc: don't generate location.hh when location_type is defined
Akim Demaille [Wed, 14 Apr 2010 15:56:38 +0000 (17:56 +0200)] 
lalr1.cc: don't generate location.hh when location_type is defined

* data/bison.m4 (b4_percent_define_get): Accept a default value.
* data/c++.m4: Do not provide a default value for the %define
variable location_type, rather, use b4_percent_define_get with a
default argument where its value is needed.
* data/lalr1.cc: Do not load location.cc (which outputs both
location.hh and position.hh) if the user defined location_type.
Do not include location.hh either.

14 years agolalr1.cc: minor refactoring.
Akim Demaille [Wed, 14 Apr 2010 16:34:36 +0000 (18:34 +0200)] 
lalr1.cc: minor refactoring.

* data/lalr1.cc: Don't issue empty namespaces.

14 years agotests: fix %printer.
Akim Demaille [Thu, 29 Apr 2010 10:35:13 +0000 (12:35 +0200)] 
tests: fix %printer.

Currently, there is no check that %printer ... <foo> (nor
%destructor) is about an existing <foo> type.  This C++ test had
it wrong (<::std::string> vs. <std::string>).

* tests/c++.at (AT_CHECK_VARIANTS): In list.yy, redefine the
pretty-printing of lists into something better for parser traces.
Update the expected output.
Fix correspondance between %type/%token and %printer.

14 years agolalr1.cc: location_type: make sure we don't depend on loc.(begin|end).
Akim Demaille [Wed, 14 Apr 2010 14:37:54 +0000 (16:37 +0200)] 
lalr1.cc: location_type: make sure we don't depend on loc.(begin|end).

* tests/calc.at (Span): Instead of begin/end, as in the built-in
location class, use first and last.
Define YYLLOC_DEFAULT to adjust to these changes.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
location_type changes.

14 years agotests: fix maintainer-xml-check.
Joel E. Denny [Fri, 30 Apr 2010 23:50:52 +0000 (19:50 -0400)] 
tests: fix maintainer-xml-check.

* data/xslt/xml2dot.xsl (xsl:template match="bison-xml-report"):
Update output to include comments now produced by --graph.
(xsl:template match="automaton"): As for --graph, name the
digraph after the grammar file.
* src/print-xml.c (escape_bufs): Enlarge array.
(print_xml): Add bug-report and url attributes to
bison-xml-report element.

14 years agoIn DOT output, convert from "/*" comments to "//" comments.
Joel E. Denny [Fri, 30 Apr 2010 23:50:34 +0000 (19:50 -0400)] 
In DOT output, convert from "/*" comments to "//" comments.

This handles the possibility that a "*/" might appear in
variable portions of those comments at some point in the future.
* src/graphviz.c (start_graph): Implement.

14 years ago* ChangeLog (2010-04-30): Fix typo.
Joel E. Denny [Sat, 1 May 2010 18:47:49 +0000 (14:47 -0400)] 
* ChangeLog (2010-04-30): Fix typo.

14 years agoDocument that undefined %prec identifier warnings will remain.
Joel E. Denny [Fri, 30 Apr 2010 19:29:23 +0000 (15:29 -0400)] 
Document that undefined %prec identifier warnings will remain.

* NEWS (2.4.3): Here.
(2.4.2): Here.
(cherry picked from commit ff1f7871df81d5183eafeff380104da7a4a94749)

14 years agoRevert 2009-12-30 change for undefined %prec token complaints.
Joel E. Denny [Fri, 30 Apr 2010 18:41:07 +0000 (14:41 -0400)] 
Revert 2009-12-30 change for undefined %prec token complaints.

That is, keep them as warnings because that should be sufficient
to satisfy POSIX without creating backward compatibility issues.
Suggested by Richard Stallman at
<http://lists.gnu.org/archive/html/bison-patches/2010-03/msg00033.html>.
* NEWS (2.5): Remove mention of complaint.
* src/reader.c (grammar_rule_check): Convert warning back to
complaint.
* tests/input.at (%prec's token must be defined): Update.

14 years agobuild: don't require src/bison during bootstrap.
Joel E. Denny [Sun, 25 Apr 2010 21:44:43 +0000 (17:44 -0400)] 
build: don't require src/bison during bootstrap.

Suggested by Eric Blake at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00003.html>.
* bootstrap.conf (bootstrap_epilogue): New function to make sure
src/parse-gram.[ch] are stamped later than src/parse-gram.y.
(cherry picked from commit b733bcd00e6fc8db45c86dc289938a28c1bf72d8)

14 years agoi18n: fix untranslatable string.
Joel E. Denny [Sun, 25 Apr 2010 21:05:18 +0000 (17:05 -0400)] 
i18n: fix untranslatable string.

Reported by Goran Uddeborg at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00000.html>.
* src/muscle-tab.c (muscle_percent_define_insert): Here.
(cherry picked from commit e0fda26c8dda7f03443f69fb8c20b7cdeb1b37fd)

Conflicts:

src/muscle-tab.c

14 years agotests: calc: minor refactoring.
Akim Demaille [Tue, 13 Apr 2010 21:09:14 +0000 (23:09 +0200)] 
tests: calc: minor refactoring.

* tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.

14 years agotests: calc: simplify location management.
Akim Demaille [Tue, 13 Apr 2010 21:04:03 +0000 (23:04 +0200)] 
tests: calc: simplify location management.

* tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New.
(_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to
define the appropriate AT_LOC accessors.
* tests/calc.at: Use AT_LOC accessors.

14 years agotest location_type.
Akim Demaille [Tue, 13 Apr 2010 20:05:42 +0000 (22:05 +0200)] 
test location_type.

* tests/local.at (_AT_BISON_OPTION_PUSHDEFS):
Define AT_LOCATION_TYPE_IF.
(_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF.
* tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is
used, provide a user location type and use it.
(Simple LALR1 C++ Calculator): Add a test case for location_type.

14 years agotests: check fclose's return value.
Akim Demaille [Sat, 10 Apr 2010 11:38:37 +0000 (13:38 +0200)] 
tests: check fclose's return value.

* tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.

14 years agotests: don't depend on the actual location type.
Akim Demaille [Sat, 10 Apr 2010 11:37:21 +0000 (13:37 +0200)] 
tests: don't depend on the actual location type.

* tests/calc.at: Use yy::parser::location_type rather than
yy::location, since the former is always right, and might point to
another type than the latter.