Commit Graph

3528 Commits

Author SHA1 Message Date
Joel E. Denny
43fdc9fd8e Document that undefined %prec identifier warnings will remain.
* NEWS (2.4.3): Here.
(2.4.2): Here.
(cherry picked from commit ff1f7871df)
2010-04-30 15:34:35 -04:00
Joel E. Denny
e02df72c2d 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 02354690ee)
2010-04-30 14:59:24 -04:00
Joel E. Denny
ba3063f613 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 b733bcd00e)
2010-04-25 17:49:25 -04:00
Joel E. Denny
e0fda26c8d 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.
2010-04-25 17:07:15 -04:00
Akim Demaille
ecbca7db4b tests: calc: minor refactoring.
* tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.
(cherry picked from commit 67f1a2c254)
2010-04-14 12:46:30 +02:00
Akim Demaille
ed228e60b2 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 4f756f887b)

Conflicts:

	tests/local.at
2010-04-14 12:45:25 +02:00
Akim Demaille
cacfdef716 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 24bb8c8c25)

Conflicts:

	tests/calc.at
2010-04-14 12:25:51 +02:00
Akim Demaille
2f61c4a2d0 tests: check fclose's return value.
* tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.
(cherry picked from commit af129079f0)
2010-04-14 12:04:43 +02:00
Akim Demaille
16d9244df6 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 36dc3637a4)

Conflicts:

	tests/calc.at
2010-04-14 12:02:45 +02:00
Akim Demaille
3e4a253ba9 formatting changes.
* tests/calc.at: Formatting changes.
(cherry picked from commit c499231de4)
2010-04-14 12:01:06 +02:00
Akim Demaille
df5df58d91 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 7799ef1594)

Conflicts:

	data/lalr1.cc.
2010-04-14 12:00:19 +02:00
Joel E. Denny
88bb35d6ac * NEWS (2.4.3): Mention fix for Sun Studio C++.
(cherry picked from commit cb76b1f1a3)
2010-04-11 14:46:01 -04:00
Joel E. Denny
585ef2eb20 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 4333ba11c6)
2010-04-10 17:54:22 -04:00
Joel E. Denny
a005dbcbe3 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 48f4100a82)

Conflicts:

	data/yacc.c
	src/parse-gram.c
	src/parse-gram.h
2010-04-09 21:08:37 -04:00
Akim Demaille
8a8b33e8d2 remove useless include.
* src/graphviz.h: Don't include stdbool.h.
(cherry picked from commit 218287f567)
2010-04-05 21:36:21 +02:00
Akim Demaille
a02797656e graph: sign the output file.
* src/graphviz.c (start_graph): Issue comments about Bison.
	Suggested by Tys Lefering.
(cherry picked from commit 8176ab33c8)
2010-04-05 21:36:13 +02:00
Joel E. Denny
132247cd94 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 18493762be)
2010-04-03 13:49:40 -04:00
Akim Demaille
c0259969d7 fix comments.
* src/graphviz.h: Add missing license notice.
	Document.
(cherry picked from commit c7b5c7fd06)
2010-03-30 14:38:40 +02:00
Akim Demaille
23761f428a 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 d6b347e433)
2010-03-26 09:44:27 +01:00
Joel E. Denny
9097fda06c 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 cf80e9c386)
2010-03-23 20:22:45 -04:00
Joel E. Denny
7a9c3cb3a7 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 311b2e56ea)

Conflicts:

	NEWS
2010-03-23 12:38:09 -04:00
Joel E. Denny
5a3c69f103 maint: update for changes to gnulib's announce-gen.
* HACKING (Announce): RELEASE_TYPE=major must now be written
RELEASE_TYPE=stable.
2010-03-20 15:41:34 -04:00
Joel E. Denny
ea66d039b4 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 08090fe64c)

Conflicts:

	NEWS
2010-03-20 14:40:07 -04:00
Joel E. Denny
c50befe615 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 a3d760ef5d)
2010-02-22 21:55:22 -05:00
Joel E. Denny
47fa574761 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 22cc8d813e)

Conflicts:

	NEWS
	bootstrap.conf
	lib/.cvsignore
	lib/.gitignore
	m4/.cvsignore
	m4/.gitignore
	src/output.c
2010-02-22 18:32:47 -05:00
Joel E. Denny
d67e37a74b 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 9398411bfc)
2010-02-04 21:20:48 -05:00
Joel E. Denny
0ee1af2ed5 Code cleanup.
* tests/atlocal.in (abs_top_srcdir): Remove shell variable,
which is already defined in atconfig.
2010-02-01 17:26:29 -05:00
Joel E. Denny
2655c7cd13 * cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
(cherry picked from commit 97d520633b)
2010-01-21 18:53:16 -05:00
Joel E. Denny
8ebc7dca63 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 af8a609a90)
2010-01-21 17:00:37 -05:00
Joel E. Denny
f0a43dd1bb * bootstrap: Import improvements from latest gnulib.
(cherry picked from commit 73edad9a25)
2010-01-20 00:41:03 -05:00
Joel E. Denny
e4ca7a85cc 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 9736697d6d)
2010-01-20 00:36:13 -05:00
Joel E. Denny
8d830047ec gnulib: update to latest. 2010-01-19 14:39:16 -05:00
Joel E. Denny
e592664788 ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
(cherry picked from commit d6bdb90a2a)
2010-01-19 11:52:48 -05:00
Joel E. Denny
5a2f6eb4af 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 326e5cf81e)
2010-01-15 13:44:55 -05:00
Joel E. Denny
1c4ad777cb 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.
2010-01-04 14:13:43 -05:00
Joel E. Denny
1462fcee1e maint: run "make update-copyright" 2010-01-04 13:46:45 -05:00
Joel E. Denny
510df9519e 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.
2009-12-31 12:51:56 -05:00
Joel E. Denny
2c2035282c 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 f1ceed0774)
2009-12-31 12:51:35 -05:00
Joel E. Denny
a93cdd3d67 * HACKING (Release Procedure): Recommend a secure automake.
(cherry picked from commit d2829fdc04)
2009-12-31 12:45:27 -05:00
Akim Demaille
bb57985c2e 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 2b008529ed)

Conflicts:

	TODO
2009-12-29 16:01:48 -05:00
Joel E. Denny
70afaf2603 Port small part of master's 11707b2b so future ports are easier.
* data/lalr1.java (YYParser::yysyntax_error): Untabify.
2009-12-29 16:01:47 -05:00
Akim Demaille
8200219a2a Simplify the i18n of the error messages.
* data/lalr1.cc: Comment changes.
(cherry picked from commit eeb2942237)

Conflicts:

	data/yacc.c
2009-12-29 16:01:47 -05:00
Akim Demaille
39f6a8d142 Prefer M4 to CPP.
* data/lalr1.cc: Use b4_error_verbose_if instead of #if
	YYERROR_VERBOSE.
(cherry picked from commit 422c18f48d)
2009-12-29 16:01:46 -05:00
Akim Demaille
e657f3698e 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 a0ffc1751e)

Conflicts:

	TODO
	data/lalr1.cc
2009-12-29 16:01:46 -05:00
Joel E. Denny
1e05521d4f 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_.
2009-12-29 16:01:45 -05:00
Joel E. Denny
2728ac7ecd 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.
2009-12-29 15:39:37 -05:00
Joel E. Denny
abcc7c03cc 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 df222dfaf4)

Conflicts:

	src/parse-gram.c
	src/parse-gram.h
2009-12-22 14:50:45 -05:00
Joel E. Denny
62efdd2a85 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 4395a9ff4f)

Conflicts:

	data/lalr1.java
2009-12-22 13:01:19 -05:00
Joel E. Denny
41d35e54d5 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 1625df5b18)

Conflicts:

	src/parse-gram.c
	src/parse-gram.h
2009-12-22 12:53:17 -05:00
Joel E. Denny
692d04cb6a Code cleanup.
* src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
function, which is no longer used.
(cherry picked from commit 387b4d5047)
2009-12-17 01:11:47 -05:00