Akim Demaille [Thu, 20 Feb 2003 08:14:27 +0000 (08:14 +0000)]
* tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
AT_YACC_IF.
Redefine AT_YYERROR_SEES_LOC_IF using it.
(_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
not defined.
Don't use the location in yy::Parser::error_ and
yy::Parser::print_ when not %locations.
Activate more lalr1.cc tests.
Akim Demaille [Wed, 19 Feb 2003 13:40:53 +0000 (13:40 +0000)]
* tests/calc.at (AT_CHECK_CALC): Check different scenarios of
error recovery, mixing with/without pops and discarding of the
lookahead.
Exercise YYERROR.
Disable the lalr1.cc tests as currently it doesn't support YYERROR.
Paul Eggert [Tue, 18 Feb 2003 05:10:12 +0000 (05:10 +0000)]
* tests/atlocal.in (LDFLAGS, LIBS): New vars.
* tests/testsuite.at (AT_COMPILE): Use them.
This fixes the testsuite problem reported by Robert Lentz in
<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
Paul Eggert [Thu, 13 Feb 2003 07:15:52 +0000 (07:15 +0000)]
* data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
* data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
Check for malloc failure, for consistency with yacc.c.
(yytname_size): Remove, for consistency with yacc.c.
The bug still remains in data/lalr1.cc, as I didn't have time
to fix it there.
Paul Eggert [Thu, 13 Feb 2003 07:14:29 +0000 (07:14 +0000)]
(yyreportSyntaxError) [YYERROR_VERBOSE]:
Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
Check for malloc failure, for consistency with yacc.c.
(yytname_size): Remove, for consistency with yacc.c.
Paul Eggert [Thu, 13 Feb 2003 07:13:57 +0000 (07:13 +0000)]
(yyerrlab) [YYERROR_VERBOSE]:
Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
Akim Demaille [Thu, 6 Feb 2003 10:04:29 +0000 (10:04 +0000)]
* configure.ac (GXX): Rename as...
(CXX): this, to keep the original Autoconf semantics.
Require 2.57.
* data/lalr1.cc: Fix b4_copyright invocations.
If YYDEBUG is not defined, don't depend upon name_ being defined.
(location.hh): Include string and iostream.
(Position::filename): New member.
(Position::Position ()): New.
(operator<< (Position)): New.
(operator- (Position, int)): New.
(Location::first, Location::last): Rename as...
(Location::begin, Location::end): these, to mock the conventional
iterator names.
(operator<< (Location)): New.
* tests/atlocal.in (CXX): New.
* tests/testsuite.at (AT_COMPILE_CXX): New.
* tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
locations in a more synthetic way.
(AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
lalr1.cc is used.
Adjust the C locations to match those from Emacs: first column is
column 0.
Change all the expected results.
Conform to the GCS: simplify the locations when applicable.
(LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
(LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
these CPP macros with the m4 macros new defined by...
(AT_CHECK_PUSHDEFS): this, i.e.:
(AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
(AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALSm AT_LEX_PRE_ARGS)
New macros.
(AT_CHECK_POPDEFS): Undefine them.
(AT_CHECK_CALC_LALR1_CC): New.
Use it for the first lalr1.cc test.
Akim Demaille [Thu, 30 Jan 2003 08:03:10 +0000 (08:03 +0000)]
* doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
Changes in response to error report by S. Eken: GLR mode does not
(yyfill): New function to copy from stack tree into array
(yyuserAction): Modify to allow incremental move of semantic values
to rhs array when in GLR mode.
Define YYFILL to use in user-defined actions to fill semantic array
(yyresolveStates): Use X == NULL for pointers, not !X.
Paul Hilfinger [Wed, 29 Jan 2003 23:39:11 +0000 (23:39 +0000)]
Rename tests/glr-regr1.at to tests/glr-regression.at.
tests/glr-regression.at: Add new regression test for the problems
reported by S. Eken with semantic values for embedded rules.
Update copyright notice.
tests/testsuite.at, tests/Makefile.am: Rename glr-regr1.at to
glr-regression.at.
Paul Hilfinger [Wed, 29 Jan 2003 23:37:15 +0000 (23:37 +0000)]
Changes in response to error report by S. Eken: GLR mode does not
handle negative $ indices or $ indices in embedded rules correctly.
See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
(b4_rhs_value): Change to use YYFILL macro.
(b4_rhs_location): Ditto.
(yyfill): New function to copy from stack tree into array
incrementally.
(yyuserAction): Modify to allow incremental move of semantic values
to rhs array when in GLR mode.
Define YYFILL to use in user-defined actions to fill semantic array
as needed.
Remove dummy use of yystack, as there is now a guaranteed use.
(yydoAction): Modify to allow incremental move of semantic values
to rhs array when in GLR mode.
(yyresolveAction): Ditto.
(yyglrShiftDefer): Update comment.
(yyresolveStates): Use X == NULL for pointers, not !X.
(yyglrReduce): Ditto.
(yydoAction): Ditto
Paul Eggert [Wed, 29 Jan 2003 06:31:02 +0000 (06:31 +0000)]
Do not use @output_header_name@ unless
b4_defines_flag is set. This fixes two bugs reported by
Tim Van Holder in
<http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
Paul Eggert [Wed, 22 Jan 2003 06:39:16 +0000 (06:39 +0000)]
* data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
we don't need to worry about yyerrlab1 being reported as an
"unused label" by non-GCC C compilers.
Paul Eggert [Wed, 22 Jan 2003 06:38:32 +0000 (06:38 +0000)]
(YYERROR): Move code from yyerrlab1 to here, so that
we don't need to worry about yyerrlab1 being reported as an
"unused label" by non-GCC C compilers. The downside is that if
locations are used then a couple of statements are duplicated each
time YYERROR is invoked, but the upside is that the warnings
should vanish.
(yyerrlab1): Move code to YERROR.
(yyerrlab2): Remove. Change uses back to yyerrlab1.
This reverts some of the 2002-12-27 change.
Paul Eggert [Fri, 17 Jan 2003 08:43:08 +0000 (08:43 +0000)]
(symbol_printers_output): Fix typo that led
to core dump. Problem reported by Antonio Rus in
<http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
Akim Demaille [Mon, 13 Jan 2003 15:42:31 +0000 (15:42 +0000)]
Quoc Peyrot <chojin@lrde.epita.fr>,
Robert Anisko <anisko_r@lrde.epita.fr>
* data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
when the stacks contain one element, as the loop would otherwise
free the last state, and then use the top state (the one we just
popped). This means that the initial elements will not be freed
explicitly, as is the case in yacc.c; it is not a problem, as
these elements have fake values.
Paul Eggert [Mon, 13 Jan 2003 06:41:29 +0000 (06:41 +0000)]
* NEWS: %expect-violations are now just warnings, reverting
to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
bootstrapping problem reported by Matthias Klose; see
<http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
* src/conflicts.c (conflicts_print): Likewise.
* tests/conflicts.at (%expect not enough, %expect too much,
%expect with reduce conflicts): Likewise.
* doc/bison.texinfo (Expect Decl): Document this. Also mention
that the warning is enabled if the number of conflicts changes
(not necessarily increases).
Paul Eggert [Thu, 9 Jan 2003 07:44:05 +0000 (07:44 +0000)]
(WGETFLAGS): New macro, containing "-C off" to disable proxy caches.
All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
(rel-check): Use $(WGET) instead of wget.
Paul Eggert [Sun, 5 Jan 2003 01:07:13 +0000 (01:07 +0000)]
Do not let the scan-skel token buffer grow unboundedly in the usual case.
Fix off-by-one error in scan-skel calculation of output line.
Fix some portability problems noted by Nelson H. F. Beebe.
Paul Eggert [Sun, 5 Jan 2003 00:48:16 +0000 (00:48 +0000)]
(yyerrlab1): Omit attribute if __cplusplus is defined,
since GNU C++ (as of 3.2.1) does not allow attributes on labels.
Problem reported by Nelson H. F. Beebe.
Paul Eggert [Sat, 4 Jan 2003 01:37:48 +0000 (01:37 +0000)]
(__INT_TO_PTR) [__STDC__]: Cast result to
(void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
when compiling Bison 1.875's `bitset bset = obstack_alloc
(bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
Paul Eggert [Fri, 3 Jan 2003 14:22:53 +0000 (14:22 +0000)]
(yybool): Renamed from bool, to avoid collisions in C.
All uses changed. Provide a definition in both C and C++.
(yytrue, yyfalse): Define even if defined (__cplusplus).
Paul Eggert [Fri, 3 Jan 2003 14:15:16 +0000 (14:15 +0000)]
(_Bool, bool, false, true, __bool_true_false_are_defined):
Use the pattern recommended by Autoconf 2.57, except also protect
against double-definition.
Paul Eggert [Mon, 30 Dec 2002 22:40:52 +0000 (22:40 +0000)]
(<SC_BRACED_CODE>"}"): Append ";" before the last brace in braced code
when not in Yacc mode, for compatibility with Bison 1.35. This
resurrects the 2001-12-15 patch to src/reader.c.
Paul Eggert [Sun, 29 Dec 2002 01:59:13 +0000 (01:59 +0000)]
(Unresolved SR Conflicts, Defaulted
Conflicted Reduction, %expect not enough, %expect too much,
%expect with reduce conflicts): Switch to Yacc-style reports.
Paul Eggert [Sun, 29 Dec 2002 01:58:49 +0000 (01:58 +0000)]
(conflict_report):
Renamed from conflict_report_yacc, removing the old
'conflict_report'. Translate the entire conflict report at once,
so that we don't assume that "," has the same interpretation in
all languages.
(conflicts_output): Use Yacc-style conflict report for each state,
instead of our more-complicated style.
(conflicts_print): Use Yacc-style conflict report, except print
the input file name when not emulating Yacc.
Paul Eggert [Sun, 29 Dec 2002 01:22:30 +0000 (01:22 +0000)]
(warn_at, warn, complain_at, complain, fatal_at, fatal): Don't invoke
fflush; it's not needed and it might even be harmful for stdout, as
stdout might not be open.
Paul Eggert [Sat, 28 Dec 2002 08:36:02 +0000 (08:36 +0000)]
(yyparse): New local var yylerrsp, to record the
top of the location stack's error locations.
(yyerrlab): Set it. When discarding a token, push its location
onto yylerrsp so that we don't lose track of the error's end.
(yyerrlab1): Now is only the target of YYERROR, so that we can
properly record the location of the action that failed. For GCC
2.93 and later, insert an __attribute__ ((__unused__)) to avoid
GCC warning about yyerrlab1 being unused if YYERROR is unused.
(yyerrlab2): New label, which yyerrlab now falls through to.
Compute the error's location by applying YYLLOC_DEFAULT to
the locations of all the symbols that went into the error.
Paul Eggert [Thu, 26 Dec 2002 22:10:52 +0000 (22:10 +0000)]
(conflicts_print): If the user specifies "%expect N", report an error
if there are any reduce/reduce conflicts. This is what the manual
says should happen. This fixes Debian bug 130890, reported by Anthony
DeRobertis.
Paul Eggert [Thu, 26 Dec 2002 09:12:05 +0000 (09:12 +0000)]
Don't use m4_include on relative file names, as it doesn't work.
Remove obsolete references to bison.simple and bison.hairy.
* src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL.
* src/parse-gram.y (declaration): Use enum "report_states".
* src/scan-skel.l ("@output ".*\n): Close any old yyout before new one.