]> git.saurik.com Git - bison.git/log
bison.git
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.

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 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)

14 years agoDo not use date ranges in copyright notices.
Paul Eggert [Wed, 23 Jun 2010 20:07:29 +0000 (13:07 -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/location.cc:
* 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/subpipe.c, djgpp/subpipe.h:
* djgpp/testsuite.sed, doc/bison.texinfo:
* doc/refcard.tex, etc/README, etc/bench.pl.in:
* examples/calc++/Makefile.am, examples/extexi:
* 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/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/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/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:
* data/Makefile.am, data/location.cc, doc/Makefile.am, src/Makefile.am:
* tests/Makefile.am, lib/Makefile.am, examples/Makefile.am:
* etc/Makefile.am:
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 agoUpdate from GFDL GFDL 1.2 to 1.3.
Akim Demaille [Wed, 23 Jun 2010 12:49:40 +0000 (14:49 +0200)] 
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
(cherry picked from commit 804e83b26daa5c1c2cd84195faf114cc531b876b)

Conflicts:

ChangeLog

14 years agolalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.
Akim Demaille [Wed, 12 May 2010 09:12:24 +0000 (11:12 +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.

Conflicts:

ChangeLog
data/lalr1.cc

14 years agoc++: use YYRHSLOC.
Akim Demaille [Wed, 12 May 2010 05:27:13 +0000 (07:27 +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.
(cherry picked from commit bb9191dd311e4c6d80f8dd12c6a7ce9254404fbc)

Conflicts:

ChangeLog
NEWS
data/lalr1.cc
tests/calc.at

14 years agodoc: fix lalr1.cc documentation.
Akim Demaille [Mon, 10 May 2010 08:27:23 +0000 (10:27 +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:
doc/bison.texinfo

14 years agolalr1.cc: don't generate location.hh when location_type is defined
Akim Demaille [Sun, 9 May 2010 12:29:35 +0000 (14:29 +0200)] 
lalr1.cc: don't generate location.hh when location_type is defined

* data/bison.m4 (b4_percent_define_use): New.
(b4_percent_define_get): Use it.
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.
* data/glr.cc: Likewise.

(cherry picked from commit 7789b6e3e7199a00437f03591a4605e6c042bdea)

Conflicts:

ChangeLog
data/bison.m4
data/c++.m4
data/lalr1.cc

14 years agoThe previous commit (0f404a0af0cb68849b5099e95dec0f9a09e3973d) was
Akim Demaille [Fri, 7 May 2010 20:53:15 +0000 (22:53 +0200)] 
The previous commit (0f404a0af0cb68849b5099e95dec0f9a09e3973d) was
actually cherry-picked from commit
49976d5c45048312c97c4eec4b607660444642a9, not from commit
c826013fb38c98861ef0fc5d4dc3fb3fb4f555be.

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.

(cherry picked from commit c826013fb38c98861ef0fc5d4dc3fb3fb4f555be)

Conflicts:

tests/calc.at

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_TEST_SYNCLINE): Move GCC 4.5 protection
into...
(AT_SYNCLINES_COMPILE): here.
Add more distcc patterns.

(cherry picked from commit c826013fb38c98861ef0fc5d4dc3fb3fb4f555be)

Conflicts:

tests/synclines.at

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.
(cherry picked from commit bc81de36b7ef78ff280e14a173e5cc5d5a3191eb)

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.
(cherry picked from commit b7666378f5cb5e9587d3c918f0cdcaf6f8aca5c7)

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.
(cherry picked from commit 56e92e0bffe6f7d3d6ecb0506280529b0a2fa7bf)

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.
(cherry picked from commit 02354690ee02dfa05564137aafc6721eb54d21ab)

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.

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.
(cherry picked from commit 67f1a2c254e71e15125a1f4f64fae8f68deaa4fd)

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.

(cherry picked from commit 4f756f887bca79b6feeeeedc821b17fd08079e5b)

Conflicts:

tests/local.at

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.

(cherry picked from commit 24bb8c8c257631f988941fcd78ecce09bc5d5f23)

Conflicts:

tests/calc.at

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.
(cherry picked from commit af129079f04cc53129c9056af3ed3e3ae30fd10a)

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.

(cherry picked from commit 36dc3637a40459dbf1043f6ada9badbbba291957)

Conflicts:

tests/calc.at

14 years agoformatting changes.
Akim Demaille [Sat, 10 Apr 2010 11:35:59 +0000 (13:35 +0200)] 
formatting changes.

* tests/calc.at: Formatting changes.
(cherry picked from commit c499231de45a4a30aadbc17db4ceafd74c44b9c4)

14 years agolalr1.cc: remove useless forward declaration.
Akim Demaille [Wed, 7 Apr 2010 14:01:42 +0000 (16:01 +0200)] 
lalr1.cc: remove useless forward declaration.

* data/lalr1.cc: Include location.hh before stack.hh.
Remove the useless forward declarations of position and location.
Reported by Chris Morley.
* data/glr.cc: Likewise.

(cherry picked from commit 7799ef159452772946d91aa89213e87729288ef0)

Conflicts:

data/lalr1.cc.

14 years ago* NEWS (2.4.3): Mention fix for Sun Studio C++.
Joel E. Denny [Sun, 11 Apr 2010 18:43:38 +0000 (14:43 -0400)] 
* NEWS (2.4.3): Mention fix for Sun Studio C++.
(cherry picked from commit cb76b1f1a343642c46bbfa2c4a99ae537b22bd9f)

14 years agotests: fix for newer Sun Studio C++.
Joel E. Denny [Sat, 10 Apr 2010 21:37:27 +0000 (17:37 -0400)] 
tests: fix for newer Sun Studio C++.

Reported by Dagobert Michelsen at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00023.html>.
* THANKS (Dagobert Michelsen): Add.
* configure.ac (AC_PREREQ): Set to 2.64 so we get the latest
Autoconf macro for handling the restrict keyword.
* gnulib: Update to latest, which no longer overrides that macro
from Autoconf.
(cherry picked from commit 4333ba11c65f428040d54820b6d4c6aa663944d2)

14 years agoportability: fix pointer arithmetic to conform to C standard.
Joel E. Denny [Sat, 3 Apr 2010 18:58:22 +0000 (14:58 -0400)] 
portability: fix pointer arithmetic to conform to C standard.

Reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00035.html>.
This fix is already implemented in glr.c and does not apply to
lalr1.java.
* data/lalr1.cc (yy::parser::parse): Increase size of
yyerror_range and adjust subscripting so you don't have to
subtract one from the beginning of the array.
* data/yacc.c (b4_declare_parser_state_variables,
yyparse, yypush_parse): Likewise.
(cherry picked from commit 48f4100a8299918a3abc9c5d29db85319cad3cee)

Conflicts:

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

14 years agoremove useless include.
Akim Demaille [Tue, 30 Mar 2010 12:55:41 +0000 (14:55 +0200)] 
remove useless include.

* src/graphviz.h: Don't include stdbool.h.
(cherry picked from commit 218287f5676ea3d4b1b44c3c43da831170c0fe2a)

14 years agograph: sign the output file.
Akim Demaille [Mon, 5 Apr 2010 19:30:36 +0000 (21:30 +0200)] 
graph: sign the output file.

* src/graphviz.c (start_graph): Issue comments about Bison.
Suggested by Tys Lefering.
(cherry picked from commit 8176ab33c83a8f393fb9a55b4ba28a8f5dc526c8)

14 years agoportability: fix test suite for GCC 4.5's new #error message.
Joel E. Denny [Wed, 31 Mar 2010 16:46:53 +0000 (12:46 -0400)] 
portability: fix test suite for GCC 4.5's new #error message.

Reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00030.html>.
* NEWS (2.4.3): Mention.
* tests/synclines.at (AT_TEST_SYNCLINE): Implement.
(cherry picked from commit 18493762be5ddaaa64c9e498dad11afd6b0e82f6)

14 years agofix comments.
Akim Demaille [Tue, 30 Mar 2010 12:33:58 +0000 (14:33 +0200)] 
fix comments.

* src/graphviz.h: Add missing license notice.
Document.
(cherry picked from commit c7b5c7fd0647140e557fc66ec1f5d7a2fa615e9a)

14 years agotests: fix 250: parse.error=verbose overflow.
Akim Demaille [Thu, 25 Mar 2010 16:02:38 +0000 (17:02 +0100)] 
tests: fix 250: parse.error=verbose overflow.

* tests/regression.at (parse.error=verbose overflow): Avoid the
double inclusion of stdlib.h as it triggers hard errors.
(cherry picked from commit d6b347e43324926f750b22709e2c5262f60fa991)

14 years agoportability: fix for BSD make.
Joel E. Denny [Wed, 24 Mar 2010 00:21:59 +0000 (20:21 -0400)] 
portability: fix for BSD make.

Reported by Johan van Selst at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00016.html>.
* tests/Makefile.am ($(TESTSUITE)): Qualify package.m4 in
this dependency list as in package.m4's target rule.
(cherry picked from commit cf80e9c3868b4a6a9caf53c3b281ee089deffc86)

14 years agoportability: fix spawning on at least FreeBSD 8 and FreeBSD 9.
Joel E. Denny [Tue, 23 Mar 2010 15:07:46 +0000 (11:07 -0400)] 
portability: fix spawning on at least FreeBSD 8 and FreeBSD 9.

Reported by Johan van Selst at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00014.html>.
* NEWS (2.4.3): New.
* THANKS (Johan van Selst): Add.
* gnulib: Update to latest.
(cherry picked from commit 311b2e56eaad952fc7908336e3aeb019dd8bf1ee)

Conflicts:

NEWS

14 years agomaint: update for changes to gnulib's announce-gen.
Joel E. Denny [Sat, 20 Mar 2010 19:41:34 +0000 (15:41 -0400)] 
maint: update for changes to gnulib's announce-gen.

* HACKING (Announce): RELEASE_TYPE=major must now be written
RELEASE_TYPE=stable.

14 years agoVersion 2.4.2.
Joel E. Denny [Sat, 20 Mar 2010 17:10:09 +0000 (13:10 -0400)] 
Version 2.4.2.

* NEWS (2.4.2): Set version and date.  For the recent test suite
portability fixes, don't be so optimistic about their success
given the lack of feedback on the affected platforms.
(cherry picked from commit 08090fe64c2956a4211fb5f6fd40762fe1f198b5)

Conflicts:

NEWS

14 years agotests: fix maintainer-xml-check for recent changes.
Joel E. Denny [Tue, 23 Feb 2010 02:52:39 +0000 (21:52 -0500)] 
tests: fix maintainer-xml-check for recent changes.

* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Use
AT_BISON_CHECK_NO_XML rather than AT_BISON_CHECK because an
output file whose name conflicts with a previous output file
is now never generated.
(cherry picked from commit a3d760ef5d7d9bcab78268f5117c39566aa0345c)

14 years agoportability: fix several issues with M4 subprocess.
Joel E. Denny [Mon, 22 Feb 2010 23:09:19 +0000 (18:09 -0500)] 
portability: fix several issues with M4 subprocess.

M4's output pipe was not being drained upon fatal errors during
scan_skel.  As a result, broken-pipe messages from M4 were seen
on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a
failure in the test suite.  The problem was that, on platforms
where the default disposition for SIGPIPE is ignore instead of
terminate, M4 sometimes saw fwrite fail with errno=EPIPE and
then reported it.  However, there's some sort of race condition,
because the new test group occasionally succeeded.
Reported by Albert Chin at
<http://lists.gnu.org/archive/html/bug-bison/2010-02/msg00004.html>.

There were also problems with the test suite livelocking on
Tru64 5.1b.  Reported by Didier Godefroy at
<http://lists.gnu.org/archive/html/bug-bison/2009-05/msg00005.html>.
Switching to create_pipe_bidi suggested by Akim Demaille.

To attempt to solve both of these problems, switch to gnulib's
create_pipe_bidi and register M4 process as a slave.  Along the
way, clean up file name conflict handling, which was affected by
the broken-pipe problem before the switch.
* NEWS (2.4.2): Document.
* THANKS (Didier Godefroy): Add.
* bootstrap.conf (gnulib_modules): Add pipe.
* gnulib: Update to latest to make sure we have all the latest
fixes.
* lib/Makefile.am (libbison_a_SOURCES): Remove subpipe.h and
subpipe.c.
* po/POTFILES.in (lib/subpipe.c): Remove.
* src/files.c (compute_output_file_names): Update invocations
of output_file_name_check.
(output_file_name_check): In the case that the grammar file
would be overwritten, use complain instead of fatal, but replace
the output file name with /dev/null.  Use the /dev/null solution
for the case of two conflicting output files as well because it
seems safer in case Bison one day tries to open both files at
the same time.
* src/files.h (output_file_name_check): Update prototype.
* src/output.c (output_skeleton): Use create_pipe_bidi and
wait_subprocess.  Assert that scan_skel completely drains the
pipe.
* src/scan-skel.l (at_directive_perform): Update
output_file_name_check invocation.
* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Check that the
grammar file actually isn't overwritten.
(Conflicting output files: -o foo.y): Update expected output.
* tests/skeletons.at (Fatal errors but M4 continues producing
output): New test group.
(cherry picked from commit 22cc8d813ee57c9631e527a31010ab138f9b7e06)

Conflicts:

NEWS
bootstrap.conf
lib/.cvsignore
lib/.gitignore
m4/.cvsignore
m4/.gitignore
src/output.c

14 years agoUpdate POTFILES.
Joel E. Denny [Fri, 5 Feb 2010 02:07:07 +0000 (21:07 -0500)] 
Update POTFILES.

* HACKING (Release Procedure): Add reminder about keeping
POTFILES files up-to-date.
* po/POTFILES.in (src/muscle-tab.c, src/scan-skel.l): Add.
(cherry picked from commit 9398411bfc774e7d5c46c77039d8ea72f8185a7d)

14 years agoCode cleanup.
Joel E. Denny [Mon, 1 Feb 2010 22:26:29 +0000 (17:26 -0500)] 
Code cleanup.

* tests/atlocal.in (abs_top_srcdir): Remove shell variable,
which is already defined in atconfig.

14 years ago* cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
Joel E. Denny [Thu, 21 Jan 2010 23:51:29 +0000 (18:51 -0500)] 
* cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
(cherry picked from commit 97d520633b611829cbd867aec5479e8a9a2759a7)

14 years agomaint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.
Joel E. Denny [Thu, 21 Jan 2010 17:18:45 +0000 (12:18 -0500)] 
maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.

* HACKING (Release Procedure): Update notes on copyright years.
* Makefile.am (update-package-copyright-year): New target rule.
* build-aux/update-package-copyright-year: New file.
* cfg.mk (update-copyright): Add update-package-copyright-year
as a dependency.
(cherry picked from commit af8a609a90c48d1a7e6ea9e31dba4fbad6c7fbed)

14 years ago* bootstrap: Import improvements from latest gnulib.
Joel E. Denny [Wed, 20 Jan 2010 05:24:55 +0000 (00:24 -0500)] 
* bootstrap: Import improvements from latest gnulib.
(cherry picked from commit 73edad9a25ff7dd15f276a071a39e95bc8cca07a)

14 years agobuild: require Automake 1.11.1 to avoid a security flaw.
Joel E. Denny [Tue, 19 Jan 2010 23:08:48 +0000 (18:08 -0500)] 
build: require Automake 1.11.1 to avoid a security flaw.

* HACKING (Release Procedure): Don't document Automake security
flaw here.
* configure.ac (AM_INIT_AUTOMAKE): Require 1.11.1, and explain
why here.
(cherry picked from commit 9736697d6d8f9e719cae8b22ff842c5098c7edcb)

14 years agognulib: update to latest.
Joel E. Denny [Tue, 19 Jan 2010 19:39:16 +0000 (14:39 -0500)] 
gnulib: update to latest.

14 years agoChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
Joel E. Denny [Tue, 19 Jan 2010 16:41:54 +0000 (11:41 -0500)] 
ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
(cherry picked from commit d6bdb90a2a2ced43828cf6591b3baf513d38285d)

14 years agoThank the developer of the initial push parser implementation.
Joel E. Denny [Fri, 15 Jan 2010 18:42:04 +0000 (13:42 -0500)] 
Thank the developer of the initial push parser implementation.

This unfortunate oversight is several years old.
* THANKS (Odd Arild Olsen): Add.
(cherry picked from commit 326e5cf81eada2ebd9007fa5fe9903a27a8bd067)

14 years agoFix some comments concerning LR(0) versus LALR(1).
Joel E. Denny [Mon, 4 Jan 2010 19:13:43 +0000 (14:13 -0500)] 
Fix some comments concerning LR(0) versus LALR(1).

Stop equating LR(0) with nondeterminism and LALR(1) with
determinism.  That is, if all states are consistent, then LR(0)
tables are deterministic.  On the other hand, LALR(1) tables
might be nondeterministic before conflict resolution, and GLR
permits LALR(1) tables to remain nondeterministic.
* src/LR0.c, src/LR0.h: Here.
* src/lalr.c, src/lalr.h: Here.
* src/main.c (main): Here.
* src/state.c, src/state.h: Here.

* src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1)
parser tables.

14 years agomaint: run "make update-copyright"
Joel E. Denny [Mon, 4 Jan 2010 18:46:45 +0000 (13:46 -0500)] 
maint: run "make update-copyright"

14 years agoPOSIX: complain if %prec's token was not defined.
Joel E. Denny [Wed, 30 Dec 2009 08:14:12 +0000 (03:14 -0500)] 
POSIX: complain if %prec's token was not defined.

* NEWS (2.5): Document.
* src/reader.c (grammar_rule_check): Convert warning to
complaint.
* tests/input.at (%prec's token must be defined): Update.

14 years agoPOSIX: warn if %prec's token was not defined.
Joel E. Denny [Wed, 30 Dec 2009 08:20:11 +0000 (03:20 -0500)] 
POSIX: warn if %prec's token was not defined.

Reported by Florian Krohm at
<http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>.
* NEWS (2.4.2): Document.
* src/reader.c (grammar_rule_check): Implement.
(grammar_current_rule_prec_set): Add comments explaining that we
here assume a %prec identifier is a token, but we still manage
to support POSIX.
* tests/input.at (%prec's token must be defined): New test
group.
(cherry picked from commit f1ceed07743630aa2aef7c77d8bde23c3794ee1b)

14 years ago* HACKING (Release Procedure): Recommend a secure automake.
Joel E. Denny [Thu, 31 Dec 2009 17:43:33 +0000 (12:43 -0500)] 
* HACKING (Release Procedure): Recommend a secure automake.

(cherry picked from commit d2829fdc040f928cc3596725783183f9af8ca5af)

14 years agoPropagate i18n changes into glr.c.
Akim Demaille [Thu, 11 Dec 2008 08:37:40 +0000 (09:37 +0100)] 
Propagate i18n changes into glr.c.

* data/glr.c (yyreportSyntaxError): Use "switch" instead of
building the error message format dynamically.
* data/lalr1.java: Formatting changes.
(cherry picked from commit 2b008529edd233bac07a58d557869ae902be1818)

Conflicts:

TODO

14 years agoPort small part of master's 11707b2b so future ports are easier.
Joel E. Denny [Tue, 22 Dec 2009 22:22:24 +0000 (17:22 -0500)] 
Port small part of master's 11707b2b so future ports are easier.

* data/lalr1.java (YYParser::yysyntax_error): Untabify.

14 years agoSimplify the i18n of the error messages.
Akim Demaille [Wed, 10 Dec 2008 23:59:13 +0000 (00:59 +0100)] 
Simplify the i18n of the error messages.

* data/lalr1.cc: Comment changes.
(cherry picked from commit eeb29422377c730846f784716f22be1759491bcf)

Conflicts:

data/yacc.c

14 years agoPrefer M4 to CPP.
Akim Demaille [Thu, 21 Aug 2008 20:04:27 +0000 (22:04 +0200)] 
Prefer M4 to CPP.

* data/lalr1.cc: Use b4_error_verbose_if instead of #if
YYERROR_VERBOSE.
(cherry picked from commit 422c18f48d3d545c538c61dbb7471cfa7b9e920c)

14 years agoSupport i18n of the parse error messages.
Akim Demaille [Thu, 21 Aug 2008 19:46:13 +0000 (21:46 +0200)] 
Support i18n of the parse error messages.

* TODO (lalr1.cc/I18n): Remove.
* data/lalr1.cc (yysyntax_error_): Support the translation of the
error messages, as done in yacc.c.
Stay within the yy* pseudo namespace.
(cherry picked from commit a0ffc1751e712e55b27aa7349ec7db302557476b)

Conflicts:

TODO
data/lalr1.cc

14 years agoPort small part of master's 8901f32e so future ports are easier.
Joel E. Denny [Tue, 22 Dec 2009 20:44:29 +0000 (15:44 -0500)] 
Port small part of master's 8901f32e so future ports are easier.

* data/lalr1.cc (yy::parser::yysyntax_error_): Always add second
argument, but name it in the function definition only when
verbose error messages are enabled and it'll thus be used.
(yy::parser::parse): Update use of yysyntax_error_.

14 years agoportability: `<' and `>' are not always defined on addresses.
Joel E. Denny [Tue, 29 Dec 2009 17:43:26 +0000 (12:43 -0500)] 
portability: `<' and `>' are not always defined on addresses.

Specifically, don't sort objects by their memory addresses when
they're not allocated in the same array or other object.  Though
I haven't found a test case where that fails on my platform, C
says the behavior is undefined.
* src/AnnotationList.c (AnnotationList__insertInto): Remove
FIXME.  Use new id field of InadequacyList nodes rather than
their memory addresses when sorting.
(AnnotationList__compute_from_inadequacies): Add
inadequacy_list_node_count argument to pass to
InadequacyList__new_conflict.
* src/AnnotationList.h
(AnnotationList__compute_from_inadequacies): Update prototype
and documentation for new argument.
* src/InadequacyList.c (InadequacyList__new_conflict): Add
node_count argument and use it to assign a unique ID.
* src/InadequacyList.h (InadequacyListNodeCount): New typedef.
(InadequacyList): Add id field.
(InadequacyList__new_conflict): Update prototype and
documentation for new argument.
* src/ielr.c (ielr_compute_annotation_lists): Update
AnnotationList__compute_from_inadequacies invocation.

14 years agoFix handling of yychar manipulation in user semantic actions.
Joel E. Denny [Sun, 20 Dec 2009 07:22:53 +0000 (02:22 -0500)] 
Fix handling of yychar manipulation in user semantic actions.

The problem was that yacc.c didn't always update the yychar
translation afterwards.  However, other skeletons appear to be
fine.  glr.c appears to already translate yychar before every
use.  lalr1.cc does not define yychar and does not document its
replacement, yyla, for users.  It does provide yyclearin, but
that does not manipulate yyla and thus requires no translation
update.  In lalr1.java, yychar is out of scope during semantic
actions.
* NEWS (2.5): Document.
* data/yacc.c (YYBACKUP): Don't bother translating yychar into
yytoken here.
(yyparse, yypush_parse): Instead, translate before every use of
yytoken, and add comments explaining this approach.
* tests/actions.at (Destroying lookahead assigned by semantic
action): New test group checking that translation happens before
lookahead destructor calls at parser return.  Previously,
incorrect destructors were called.
* tests/conflicts.at (%error-verbose and consistent
errors): New test group checking that translation happens at
syntax error detection before the associated verbose error
message and the associated lookahead destructor calls.  While
the destructor call is fixed by this patch, the verbose error
message is currently incorrect due to another bug (see
comments in test group), so this is an expected failure for now.
(cherry picked from commit df222dfaf4da6becae8665d344669eefc705d7f7)

Conflicts:

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

14 years agoYYFAIL: warn about uses and remove from lalr1.java.
Joel E. Denny [Mon, 21 Dec 2009 19:58:48 +0000 (14:58 -0500)] 
YYFAIL: warn about uses and remove from lalr1.java.

* NEWS (2.5): Document.
* data/lalr1.java (parser::YYStack::YYFAIL): Rename to YYERRLAB,
and make it private.  Update all uses.
* src/scan-code.l (SC_RULE_ACTION): Implement warning.
(cherry picked from commit 4395a9ff4fd518580b9abe9482783e8eba192f34)

Conflicts:

data/lalr1.java

14 years agoYYFAIL: deprecate.
Joel E. Denny [Mon, 21 Dec 2009 19:51:40 +0000 (14:51 -0500)] 
YYFAIL: deprecate.

* NEWS (2.4.2): Document deprecation and the phase-out plan.
* data/lalr1.java (parser::YYStack::YYFAIL): Add comment about
deprecation.
* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
YYFAIL from GCC cpp's -Wunused-macros.
* doc/bison.texinfo (Java Action Features): Remove YYFAIL
documentation.
(LocalWords): Remove YYFAIL.
(cherry picked from commit 1625df5b18bc1ad696f149f059e6677ca0759dfc)

Conflicts:

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

14 years agoCode cleanup.
Joel E. Denny [Thu, 17 Dec 2009 06:09:09 +0000 (01:09 -0500)] 
Code cleanup.

* src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
function, which is no longer used.
(cherry picked from commit 387b4d504728391605f751e74a36fb7d0d441b19)

14 years agoAdd gcc's -Wundef to test suite and fix another warning from it.
Joel E. Denny [Wed, 16 Dec 2009 18:19:19 +0000 (13:19 -0500)] 
Add gcc's -Wundef to test suite and fix another warning from it.

* NEWS (2.4.2): Update description of -Wundef fix.
* configure.ac (WARN_CXXFLAGS_TEST): New substitution.
(WARN_CFLAGS_TEST): New substitution.
* data/glr.c: Avoid warning about __STRICT_ANSI__.
* tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of
WARN_CFLAGS.
(NO_WERROR_CFLAGS): Likewise.
(CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS.
(cherry picked from commit a603c6e0bb8b9e79d4136ee0fd0d1bf6a7d010ef)

14 years ago* data/yacc.c: Reformat m4 a little.
Joel E. Denny [Wed, 16 Dec 2009 06:41:17 +0000 (01:41 -0500)] 
* data/yacc.c: Reformat m4 a little.

(cherry picked from commit 19750d310c1f21b72fc26d0b8905fac08d175130)

14 years agoDocument gcc -Wundef fix.
Joel E. Denny [Wed, 16 Dec 2009 06:14:44 +0000 (01:14 -0500)] 
Document gcc -Wundef fix.

* NEWS (2.4.2): Here.
* THANKS (Jonathan Nieder): Add.
(cherry picked from commit c938d650dbddd3d94b3543bab76e1afce99c409d)

14 years agoSimplify y.tab.c when location tracking is disabled.
Jonathan Nieder [Wed, 16 Dec 2009 04:07:46 +0000 (22:07 -0600)] 
Simplify y.tab.c when location tracking is disabled.

* data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location
tracking is not enabled.  Instead, unconditionally define
YY_LOCATION_PRINT as a no-op for backward compatibility.
(cherry picked from commit fcd32abd3a4b68ef525d7766dbed1c98465e23b9)

14 years agoAvoid warnings from gcc -Wundef y.tab.c.
Jonathan Nieder [Wed, 16 Dec 2009 04:03:18 +0000 (22:03 -0600)] 
Avoid warnings from gcc -Wundef y.tab.c.

* data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are
defined before using them.
* data/lalr1.cc: Likewise.
* data/yacc.c: Likewise.
(cherry picked from commit ae93128c9671b58bdc2b557c382ecd84e659ab52)

14 years agoautoconf: update to latest for fix of M4 detection.
Joel E. Denny [Tue, 15 Dec 2009 23:56:52 +0000 (18:56 -0500)] 
autoconf: update to latest for fix of M4 detection.

Reported by Eric Blake.
* submodules/autoconf: Update.
(cherry picked from commit c843aaab352ab1f40c7d218fb5bb2c6fd6fd3a88)

14 years agoportability: use -DGNULIB_POSIXCHECK.
Joel E. Denny [Tue, 15 Dec 2009 05:15:41 +0000 (00:15 -0500)] 
portability: use -DGNULIB_POSIXCHECK.

Reported by Eric Blake.  See discussions at
<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00008.html>
and
<http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00108.html>.
* HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
* bootstrap.conf (gnulib_modules): Add all the printf modules
suggested by -DGNULIB_POSIXCHECK.  Add realloc-posix as
suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
(excluded_files): Remove m4/printf-posix.m4.
* tests/atlocal.in (LIBS): As for LDADD in src/Makefile.am, add
lib/libbison.a so gnulib libraries can be linked.
(cherry picked from commit 5c99151aeb4396bf35b482e27075948c33088afa)

Conflicts:

lib/.cvsignore
lib/.gitignore
m4/.cvsignore
m4/.gitignore

14 years agoEnable assertion output and --disable-assert for configure.
Joel E. Denny [Mon, 14 Dec 2009 23:04:57 +0000 (18:04 -0500)] 
Enable assertion output and --disable-assert for configure.

* bootstrap.conf (gnulib_modules): Add assert module.
* src/system.h (aver): Define as assert, and summarize the
discussion on this issue.
(cherry picked from commit ca01f454f01645533622a59ef0df335ee07679e5)

14 years agoExpand GLR acronym in summary of Bison.
Joel E. Denny [Mon, 14 Dec 2009 21:04:00 +0000 (16:04 -0500)] 
Expand GLR acronym in summary of Bison.

Based on discussion with Akim Demaille starting at
<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00087.html>.
* doc/bison.texinfo (Introduction): Here.
* src/getargs.c (usage): Here.

15 years ago Document named references.
Alex Rozenman [Sat, 14 Nov 2009 20:06:26 +0000 (22:06 +0200)] 
Document named references.

* doc/bison.texinfo (Actions): Add new example and xref to
Using Named References node.
(Using Named References): New node.

15 years agocleanup.
Joel E. Denny [Fri, 16 Oct 2009 23:27:12 +0000 (19:27 -0400)] 
cleanup.

* src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
of char*.
(Sbitset__isEmpty): Use Sbitset instead of char*.
* src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
instead of char.  This helps to avoid casting errors.
(Sbitset__or): Use Sbitset instead of char*.
(cherry picked from commit 5297ebb3bcdf4f957bdab9c5535c2c9c47f7dc07)

15 years agoportability: don't assume 8-bit bytes.
Joel E. Denny [Fri, 16 Oct 2009 23:20:43 +0000 (19:20 -0400)] 
portability: don't assume 8-bit bytes.

That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
* src/Sbitset.h (Sbitset__nbytes): Here.
(Sbitset__byteAddress): Here.
(Sbitset__bit_mask): Here.
(Sbitset__last_byte_mask): Here.
(Sbitset__ones): Here.
(SBITSET__FOR_EACH): Here.
(cherry picked from commit 175620d3c65209ce72e451bd75756f6bb67e33a1)

15 years agoportability: use va_start and va_end in the same function.
Joel E. Denny [Sun, 11 Oct 2009 20:15:39 +0000 (16:15 -0400)] 
portability: use va_start and va_end in the same function.

* src/complain.c (error_message): Move va_end from here...
(ERROR_MESSAGE): ... to here.
(cherry picked from commit 786578e394700615f6a841614e1280bf6284ec8c)

15 years ago* data/bison.m4: Update comments for rename to muscle-tab.h.
Joel E. Denny [Thu, 8 Oct 2009 21:08:01 +0000 (17:08 -0400)] 
* data/bison.m4: Update comments for rename to muscle-tab.h.

15 years agoRename muscle_tab.* to muscle-tab.* for consistency with master.
Joel E. Denny [Thu, 8 Oct 2009 20:58:22 +0000 (16:58 -0400)] 
Rename muscle_tab.* to muscle-tab.* for consistency with master.

* src/Makefile.am (bison_SOURCES): Update.
* src/getargs.c, src/ielr.c, src/lalr.c, src/main.c,
src/output.c, src/parse-gram.y, src/print.c, src/reader.c,
src/tables.c: Update include.
* src/muscle_tab.c, src/muscle_tab.h: Rename to...
* src/muscle-tab.c, src/muscle-tab.h: ... these and update
include.

15 years agoMinor code cleanup.
Joel E. Denny [Thu, 8 Oct 2009 03:09:43 +0000 (23:09 -0400)] 
Minor code cleanup.

* src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
replace all uses with UNIQSTR_CONCAT.
* src/uniqstr.c (uniqstr_vsprintf): New function.
* src/uniqstr.h (uniqstr_vsprintf): Add prototype.
(UNIQSTR_CONCAT, UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): New
macros.
(cherry picked from commit 10659d0ec997368fe57712a7c564795c530ba0c2)

Conflicts:

src/muscle_tab.c

15 years agoMinor code cleanup.
Joel E. Denny [Mon, 5 Oct 2009 03:44:44 +0000 (23:44 -0400)] 
Minor code cleanup.

* src/parse-gram.y: Clean up sorting of declarations.
Use types to simplify %printer declarations where possible.
Provide %printer for BRACKETED_ID and symbol.prec.
* src/symtab.c: Whitespace change.
(cherry picked from commit b143f4048fe39451ec739d956b4ca1f4fd8e694d)

Conflicts:

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

15 years agotests: skip tests of file names that platform does not support.
Joel E. Denny [Mon, 5 Oct 2009 02:59:18 +0000 (22:59 -0400)] 
tests: skip tests of file names that platform does not support.

Reported by Michael Raskin at
<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00001.html>.
* THANKS (Michael Raskin): Add.
* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Fix.  Cygwin used
to fail at least for file names containing ":" or "\".
(cherry picked from commit 2ceb8c617cac934b45f101ab44508d72239c894b)

15 years agoyysyntax_error: avoid duplicate lookahead collection.
Joel E. Denny [Wed, 23 Sep 2009 21:54:04 +0000 (17:54 -0400)] 
yysyntax_error: avoid duplicate lookahead collection.

Except when memory reallocation is required, this change
eliminates the need to invoke yysyntax_error twice and thus to
repeat the collection of lookaheads.  It also prepares for
future extensions that will make those repetitions more
expensive and that will require additional memory management in
yysyntax_error.  Finally, it fixes an obscure bug already
exercised in the test suite.
* data/yacc.c (yysyntax_error): Add arguments for message
buffer variables stored in the parser.  Instead of size, return
status similar to yyparse status but indicating success of
message creation.  Other than the actual reallocation of the
message buffer, import and clean up memory management code
from...
(yyparse, yypush_parse): ... here.
* tests/regression.at (%error-verbose overflow): No longer an
expected failure.
(cherry picked from commit 45319f1365eb8d125424f31401d9d33cc02ff4ad)

Conflicts:

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

15 years agoyysyntax_error: test memory management more.
Joel E. Denny [Wed, 23 Sep 2009 21:53:15 +0000 (17:53 -0400)] 
yysyntax_error: test memory management more.

* tests/atlocal.in (NO_WERROR_CFLAGS): New cpp macro.
* tests/regression.at (%error-verbose and YYSTACK_USE_ALLOCA):
New test group.
(%error-verbose overflow): New test group that reveals an
obscure bug.  Expected fail for now.
(cherry picked from commit 52cea04ad36abf3ab684b88cba45d6c26dda80c9)

15 years agoPass the token type to yysyntax_error.
Akim Demaille [Wed, 10 Dec 2008 23:59:13 +0000 (00:59 +0100)] 
Pass the token type to yysyntax_error.

* data/yacc.c (yysyntax_error): Take the transated token instead
of the raw number.
Adjust callers.
(cherry picked from commit 84eedf86fefd2496f288e72731bd0586e0b216f3)

Conflicts:

TODO

15 years agoSimplify the i18n of the error messages.
Akim Demaille [Wed, 10 Dec 2008 23:59:13 +0000 (00:59 +0100)] 
Simplify the i18n of the error messages.

* data/yacc.c (yysyntax_error): Rewrite, using a switch instead
of building dynamically the format string.
(cherry picked from commit eeb29422377c730846f784716f22be1759491bcf)

Conflicts:

data/lalr1.cc

15 years agoRemove dead code.
Joel E. Denny [Sat, 3 Oct 2009 15:53:05 +0000 (11:53 -0400)] 
Remove dead code.

* src/symtab.c (symbol_pack): Here because every symbol's number
is always defined by this time.
(cherry picked from commit f74d6d25914371ed894583a69f99d547f9f283bf)

15 years agoAdd additional space after periods in NEWS.
Alex Rozenman [Sat, 3 Oct 2009 16:29:14 +0000 (18:29 +0200)] 
Add additional space after periods in NEWS.

* NEWS (2.5): here.

15 years agoUse the correct conversion specifier for size_t.
Joel E. Denny [Tue, 29 Sep 2009 10:54:38 +0000 (06:54 -0400)] 
Use the correct conversion specifier for size_t.

Reported by Jim Meyering.
* src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
because Sbitset__Index is size_t.
* src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
(cherry picked from commit 47eced3099712180364f4e01b839242027d9a9d8)

15 years agotests: don't abuse AT_BISON_CHECK.
Joel E. Denny [Sun, 27 Sep 2009 18:37:00 +0000 (14:37 -0400)] 
tests: don't abuse AT_BISON_CHECK.

* tests/regression.at (parse-gram.y: LALR = IELR): Move
additional shell commands outside of AT_BISON_CHECK.
(cherry picked from commit d8f68fc29536fa1c1e7b1b200b1e8088762c3e93)

Conflicts:

tests/regression.at

15 years agotests: check that parse-gram.y's IELR and LALR are identical.
Joel E. Denny [Sat, 26 Sep 2009 18:49:20 +0000 (14:49 -0400)] 
tests: check that parse-gram.y's IELR and LALR are identical.

* tests/atlocal.in (abs_top_srcdir): New shell variable.
* tests/regression.at (parse-gram.y: LALR = IELR): New test
group.
(cherry picked from commit 43aabb70a95ecbd20c76797c53554641c3576db4)

15 years agodoc: comment changes.
Akim Demaille [Wed, 16 Sep 2009 20:11:33 +0000 (22:11 +0200)] 
doc: comment changes.

* doc/bison.texinfo: Comment changes.
(cherry picked from commit 6b5a0de9600b9112f58ddeb98aa0fe354077ffd4)

Conflicts:

doc/bison.texinfo

15 years agodoc: spell checking.
Akim Demaille [Wed, 16 Sep 2009 20:18:57 +0000 (22:18 +0200)] 
doc: spell checking.

* doc/bison.texinfo: here.
(cherry picked from commit f50bfcd6a1750507926dd33bdd37baa8e0eda16d)

Conflicts:

doc/bison.texinfo

15 years agoKeep sub-messages aligned. Fix strings for translation.
Alex Rozenman [Sat, 19 Sep 2009 09:59:33 +0000 (12:59 +0300)] 
Keep sub-messages aligned. Fix strings for translation.

* src/location.h: (location_print): Add return value.
* src/location.c: (location_print): Return number of printed
characters.
* src/complain.h: Two new functions (complain_at_indent,
warn_at_indent).
* src/complain.cpp: Implement the alignment mechanism. Add new
static variable (indent_ptr). Use and update it (error_message,
complain_at_indent, warn_at_indent).
* src/scan-code.l: Fix strings for translations. Use new *_indent
functions (parse_ref, show_sub_messages).
* tests/named-ref.at: Adjust testcases.
* NEWS (2.5): Add an announcement about named references.

15 years agotests: clean up push.at test group titles.
Joel E. Denny [Sun, 13 Sep 2009 17:45:05 +0000 (13:45 -0400)] 
tests: clean up push.at test group titles.

* tests/push.at: Remove "Push Parsing: " from test group titles
because these are already under the banner "Push Parsing Tests".
(cherry picked from commit 00d80a9cedbffda49212c0cdb90e90c27a561bb2)

15 years agoProvide an additional sub-message for clarity.
Alex Rozenman [Sat, 12 Sep 2009 08:48:56 +0000 (11:48 +0300)] 
Provide an additional sub-message for clarity.

Add "symbol not found in production" error message when
an "invalid reference" is detected in named references
resolution.

* src/scan-code.l: Update "invalid reference" case.
* tests/named-ref.at: Adjust test-cases.

15 years agoClean up yacc.c a little.
Joel E. Denny [Sun, 6 Sep 2009 20:59:04 +0000 (16:59 -0400)] 
Clean up yacc.c a little.

* data/yacc.c: Clean up M4 for readability, and make output
whitespace more consistent.  For the main parse function
comment, instead of saying "yyparse or yypush_parse", say either
"yyparse" or "yypush_parse" depending on which it actually is.
(cherry picked from commit bb31eb56abd67c0ccf92244d160855ff06a336ac)

Conflicts:

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