]> git.saurik.com Git - bison.git/log
bison.git
12 years agomaint: factor copyright year.
Akim Demaille [Fri, 13 Jan 2012 11:02:36 +0000 (12:02 +0100)] 
maint: factor copyright year.

* configure.ac: Use $PACKAGE_COPYRIGHT_YEAR instead of repeating it.

12 years agomaint: catch missing gnulib macros.
Akim Demaille [Fri, 13 Jan 2012 11:00:12 +0000 (12:00 +0100)] 
maint: catch missing gnulib macros.

* configure.ac: Add m4_pattern_forbid.

12 years agomaint: run "make update-copyright".
Jim Meyering [Fri, 13 Jan 2012 09:09:44 +0000 (10:09 +0100)] 
maint: run "make update-copyright".

12 years agojava: remove used variable
Tim Landscheidt [Sun, 8 Jan 2012 01:27:33 +0000 (01:27 +0000)] 
java: remove used variable

* data/lalr1.java (yyresult): remove, unused.

12 years agoscanner: fix typo.
Akim Demaille [Wed, 11 Jan 2012 15:46:36 +0000 (16:46 +0100)] 
scanner: fix typo.

* src/scan-skel.l (@`): s/emtpy/empty/.
Reported by Tim Landscheidt.

Conflicts:

src/scan-skel.l

12 years agobuild: avoid warnings about set-but-not-used variables
Jim Meyering [Fri, 6 Jan 2012 12:55:11 +0000 (13:55 +0100)] 
build: avoid warnings about set-but-not-used variables

* lib/bitset_stats.c (bitset_stats_list): Remove declaration
and set of unused local, "type".
* lib/ebitset.c (ebitset_init): Likewise, for "size".
* lib/lbitset.c (lbitset_not): Likewise, for "elt".

13 years agolalr1.cc: remove trailing comma from enumerator list.
Joel E. Denny [Sun, 21 Aug 2011 21:35:26 +0000 (17:35 -0400)] 
lalr1.cc: remove trailing comma from enumerator list.

* data/lalr1.cc (yy::parser): Here.  This suppresses a -pedantic
warning.

13 years agotests: add -pedantic for --enable-gcc-warnings.
Joel E. Denny [Sun, 21 Aug 2011 17:07:16 +0000 (13:07 -0400)] 
tests: add -pedantic for --enable-gcc-warnings.

This should help to avoid some portability problems.  For example,
it would have revealed the empty unions fixed by the last patch
* configure.ac (WARN_CFLAGS_TESTS, WARN_CXXFLAGS_TEST): Implement.
* tests/synclines.at (AT_TEST_SYNCLINE): Avoid -pedantic warning
about an empty translation unit.
(cherry picked from commit 5422d56a718805a2470558808355e04182a12d65)

13 years agotests: fix empty unions.
Joel E. Denny [Sun, 21 Aug 2011 18:45:03 +0000 (14:45 -0400)] 
tests: fix empty unions.

Empty unions are not accepted by the ISO C99 grammar or by at
least some versions of Sun Studio.  Reported by Wolfgang S. Kechel
at
<http://lists.gnu.org/archive/html/bug-bison/2011-08/msg00003.html>.
* NEWS (2.5.1): Document fix.
* THANKS (Wolfgang S. Kechel): Add.
* tests/existing.at (GNU Cim Grammar)
(GNU pic (Groff 1.18.1) Grammar.): Remove empty %union.
(cherry picked from commit 7451638148706f6317975db418cc78e488f420aa)

13 years agoglobal: remove unnecessary horizontal tabs.
Joel E. Denny [Sun, 24 Jul 2011 21:50:37 +0000 (17:50 -0400)] 
global: remove unnecessary horizontal tabs.

This change was made by applying emacs' untabify function to
nearly all files in Bison's repository.  Required tabs in make
files, ChangeLog, regexps, and test code were manually skipped.
Other notable exceptions and changes are listed below.
* bootstrap: Skip because we sync this with gnulib.
* data/m4sugar/foreach.m4
* data/m4sugar/m4sugar.m4: Skip because we sync these with
Autoconf.
* djgpp: Skip because I don't know how to test djgpp properly, and
this code appears to be unmaintained anyway.
* README-hacking (Hacking): Specify that tabs should be avoided
where not required.

13 years agobuild: avoid YACC typo inherited from Autoconf.
Joel E. Denny [Sun, 10 Jul 2011 17:42:12 +0000 (13:42 -0400)] 
build: avoid YACC typo inherited from Autoconf.

The typo shows up in the `configure --help' output.  Reported by
W.C.A. Wijngaards and Paul Eggert at
<http://lists.gnu.org/archive/html/bug-bison/2011-07/msg00000.html>.
* README-hacking (Release Procedure): Remind about updating
maintainer tools before a release.
* THANKS (W.C.A. Wijngaards): Add.
* configure.ac (AC_PREREQ): Set to 2.68, which fixes the YACC
typo.
(cherry picked from commit 845346b3bb526d0f18878f15d906f05205b5c618)

13 years agobuild: create xz instead of bzip2 tarballs.
Joel E. Denny [Sun, 10 Jul 2011 16:38:24 +0000 (12:38 -0400)] 
build: create xz instead of bzip2 tarballs.

Suggested by Jim Meyering at
<http://lists.gnu.org/archive/html/bug-bison/2011-06/msg00012.html>.
* README-hacking (Release Procedure): Update example.
* configure.ac (AM_INIT_AUTOMAKE): Replace dist-bzip2 with
dist-xz.
(cherry picked from commit abd189e8dc6ca848f038da12e4110d6192374b82)

13 years agodoc: clean up references to `Locations Overview'.
Joel E. Denny [Mon, 30 May 2011 02:30:55 +0000 (22:30 -0400)] 
doc: clean up references to `Locations Overview'.

* doc/bison.texinfo (Locations Overview): Rename node to...
(Locations): ... this, which is its section name.  Update menus to
match that and not to use the title `Tracking Locations', which is
a different section.
(cherry picked from commit 8348436580ae3db8091f564e8b24d552a9d23590)

13 years agodoc: clean up references to `Tracking Locations'.
Joel E. Denny [Mon, 30 May 2011 02:18:27 +0000 (22:18 -0400)] 
doc: clean up references to `Tracking Locations'.

* doc/bison.texinfo (Locations): Rename node to...
(Tracking Locations): ... this, which is its section name, and
update all cross references.  The trouble is that there is another
node about locations.  Its section name is `Locations', which was
easily confused with the node name of this node.  Moreover, its
node name is `Locations Overview', which was mistakenly used to
label some cross references to this node.
(cherry picked from commit 7404cdf3a1235c4f7304c29b942ac72029600f19)

Conflicts:

doc/bison.texinfo

13 years agodoc: clean up `Named References' a little.
Joel E. Denny [Mon, 30 May 2011 00:28:09 +0000 (20:28 -0400)] 
doc: clean up `Named References' a little.

* doc/bison.texinfo (Named References): Rename section to match
the node name, and update all cross references.  Don't use the
acronyms RHS and LHS given that we don't expand them anywhere in
the manual.  Try to use @samp and @code properly.  Mention that
named references are experimental as we've already stated in NEWS.
(Destructor Decl): Expand the only remaining use of RHS or LHS.
(cherry picked from commit ce24f7f59b9ececb3137a53a881e25fa28e19466)

13 years agodoc: motivate named references.
Joel E. Denny [Mon, 30 May 2011 00:06:22 +0000 (20:06 -0400)] 
doc: motivate named references.

Suggested by Hans Aberg at
<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
* doc/bison.texinfo (Named References): Explain briefly how
they're better than the traditional positional references.
(cherry picked from commit 7d31f0928907ccdd647479075d385b5a36c62611)

13 years agodoc: discuss named references after locations.
Joel E. Denny [Sun, 29 May 2011 23:59:44 +0000 (19:59 -0400)] 
doc: discuss named references after locations.

Reported by Hans Aberg at
<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
* NEWS (2.5.1): Document.
* doc/bison.texinfo (Named References): Because it discusses
locations in addition to semantic values, move this subsection out
of the section `Defining Language Semantics', where locations have
not yet been introduced, to be a new section after the following
section, `Tracking Locations'.
(cherry picked from commit 908c8647de654d4ab0944ecef7811af1d736742b)

13 years agoPrepare for the possibility of a 2.5.1 release.
Joel E. Denny [Mon, 30 May 2011 00:49:16 +0000 (20:49 -0400)] 
Prepare for the possibility of a 2.5.1 release.

* NEWS (2.5.1): New heading.
(cherry picked from commit 90dcd4156ccab3d704d9ff2771b9ce7791e3ffc4)

Conflicts:

NEWS

13 years agoVersion 2.5.
Joel E. Denny [Sat, 14 May 2011 22:14:52 +0000 (18:14 -0400)] 
Version 2.5.

* NEWS (2.5): Set date.
(cherry picked from commit b2bc8a1ba001669ad12b15d39ec425e81b41e778)

Conflicts:

NEWS

13 years agoDon't use IF_LINT in Bison sources.
Joel E. Denny [Sat, 14 May 2011 20:16:26 +0000 (16:16 -0400)] 
Don't use IF_LINT in Bison sources.

It creates unnecessary differences between the sources that Bison
maintainers build and test (given that maintainers normally
configure with --enable-gcc-warnings) and the sources that Bison
users build.  Instead, use PACIFY_CC, which doesn't.  This change
fixes compiler warnings reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bison-patches/2011-05/msg00004.html>.
* configure.ac: Don't AC_DEFINE lint regardless of the configure
options.  This change affects imported gnulib sources, where
IF_LINT still appears and depends on lint.
* src/scan-gram.l, src/scan-skel.l: Replace uses of IF_LINT with
PACIFY_CC.
* src/system.h (IF_LINT): Remove cpp macro.
(PACIFY_CC): New cpp macro.
(cherry picked from commit 77bb73e7af76ef5180b22c3b8355aaff1f498f68)

Conflicts:

src/scan-gram.l

13 years agoFix precedence for end token.
Joel E. Denny [Mon, 2 May 2011 01:53:35 +0000 (21:53 -0400)] 
Fix precedence for end token.

Since Bison 2.3b, which restored the ability of precedence
directives to assign user token numbers, doing so for user token
number 0 has produced an assertion failure.
* NEWS (2.5): Document fix.
* src/symtab.c (symbol_user_token_number_set): In the case of the
end token, don't decrement ntokens if it was never incremented.
* tests/regression.at (Token number in precedence declaration):
Extend.
(cherry picked from commit 9d6af153184eea964fef7f87d76a60fe29f715b5)

13 years agoPacify -DGNULIB_POSIXCHECK.
Joel E. Denny [Sun, 1 May 2011 16:25:31 +0000 (12:25 -0400)] 
Pacify -DGNULIB_POSIXCHECK.

* bootstrap.conf (gnulib_modules): Add all modules suggested by
-DGNULIB_POSIXCHECK.
* src/files.c (file_name_split)
* src/getargs.c (getargs)
* src/location.c (boundary_set_from_string)
* src/output.c (output_skeleton)
* src/parse-gram.y (prologue_declaration)
* src/scan-gram.l (handle_syncline)
* src/symtab.c (symbol_new): Use mbschr and mbsrchr instead of
strchr and strrchr.  In the cases of command-line options, file
names, and thus locations, functionality may be improved.  In the
case of symbol names, there should be no functional difference as
all characters are ASCII, so the intended benefit is just warning
suppression.
(cherry picked from commit d143e9c33f07e1a9966c10077f43e2f81232bf6c)

Conflicts:

src/output.c
src/parse-gram.c
src/parse-gram.h

13 years ago* NEWS (2.5): Fix minor typos.
Joel E. Denny [Sun, 1 May 2011 21:33:14 +0000 (17:33 -0400)] 
* NEWS (2.5): Fix minor typos.
(cherry picked from commit 723206df6f4be135a708a4509ba99da5a256224e)

13 years agodoc: clean up quotation style in NEWS.
Joel E. Denny [Sun, 1 May 2011 14:22:39 +0000 (10:22 -0400)] 
doc: clean up quotation style in NEWS.

* NEWS (2.5): For multi-character tokens in example grammar rules,
use "token" not 'token'.  In English, use a consistent quotation
style; we might as well follow the precedent seen in info pages:
`quote' not "quote".
(cherry picked from commit ac3297d501e9b74a11095d966bb8e5aa6fcf0ff4)

13 years agotests: pacify gcc 4.6.0's -Wunused-but-set-variable.
Joel E. Denny [Sat, 16 Apr 2011 22:26:18 +0000 (18:26 -0400)] 
tests: pacify gcc 4.6.0's -Wunused-but-set-variable.

Reported by Jim Meyering at
<http://lists.gnu.org/archive/html/bug-bison/2011-04/msg00002.html>.
* tests/actions.at
(Default %printer and %destructor for mid-rule values): Define
YYLLOC_DEFAULT so that it uses its Rhs argument.
(cherry picked from commit c9e2da4f20c97c4cb53b68d4912dbdb8836df9a4)

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