Paul Eggert [Sun, 4 May 2003 06:29:51 +0000 (06:29 +0000)]
(BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
Do not overrun array bounds.
This should fix a bug reported today by Olatunji Oluwabukunmi in
<http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
Paul Eggert [Mon, 28 Apr 2003 06:03:58 +0000 (06:03 +0000)]
Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
<http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
(YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA if it is not defined.
(YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
Paul Eggert [Sun, 27 Apr 2003 05:56:34 +0000 (05:56 +0000)]
(yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
Declare to be of type suitable for the ninf value itself, not of
type suitable for the corresponding table, since the latter might
be unsigned but the ninf value might be negative. This fixes a
bug reported by Alexandre Duret-Lutz in
<http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
Paul Eggert [Sun, 27 Apr 2003 05:27:15 +0000 (05:27 +0000)]
(AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
invokes it. We shouldn't invoke it twice because it will attempt
to put error.o in the archive twice. This fixes a glitch reported
by Martin Mokrejs in
<http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
Paul Eggert [Mon, 21 Apr 2003 19:37:40 +0000 (19:37 +0000)]
* data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
Fix obvious typo that results in uncompilable GLR parsers
when both %pure-parser and %locations are used. (trivial change)
Paul Eggert [Mon, 21 Apr 2003 19:37:09 +0000 (19:37 +0000)]
(yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
Fix obvious typo that results in uncompilable GLR parsers
when both %pure-parser and %locations are used. (trivial change
from Yakov Markovitch <Markovitch@iso.ru>)
Paul Eggert [Fri, 18 Apr 2003 07:26:19 +0000 (07:26 +0000)]
Add %option nounput, since we no longer use unput.
(unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
Do not insert the expected token via unput, as this runs afoul
of a POSIX-compatibility bug in flex 2.5.31.
All uses changed to BEGIN the parent state,
since we no longer insert the expected token via unput.
Paul Eggert [Fri, 18 Apr 2003 05:07:08 +0000 (05:07 +0000)]
(set_conflicts): Resolve all conflicts, not just
the first one. This change is from Paul Hilfinger, and it fixes
regression reported by Werner Lemberg in
<http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
(resolve_sr_conflict): Don't invoke state_errs_set
unless one or more tokens have been explicitly made errors.
Otherwise, the above change causes Bison to abort.
Paul Eggert [Thu, 13 Mar 2003 07:13:05 +0000 (07:13 +0000)]
Fix "Bison blows chunks on empty file" bug.
Work around SunOS 4.1.4 porting problem with <sys/resource.h>.
Don't check for sys/wait.h twice, with two different algorithms.
Paul Eggert [Thu, 13 Mar 2003 07:07:17 +0000 (07:07 +0000)]
(YY_USER_INIT): Initialize code_start, too.
(<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
cursor, instead of leaving it undefined. This fixes a bug
reported by Tim Van Holder in
<http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
Paul Eggert [Thu, 13 Mar 2003 00:25:33 +0000 (00:25 +0000)]
(BISON_PREREQ_TIMEVAR): When checking whether <sys/resource.h> can be
included, include sys/time.h and sys/times.h first, if available.
This works around the SunOS 4.1.4 porting bug reported by Bruce Becker
in <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
Akim Demaille [Sun, 2 Mar 2003 13:39:44 +0000 (13:39 +0000)]
* data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
generate verbose error messages.
Use the number of tokens as an upper bound in yytname, as it
cannot be a non terminal.
Akim Demaille [Sun, 2 Mar 2003 11:22:19 +0000 (11:22 +0000)]
Write a test the yycheck overrun reported by Andrew Suffield.
* tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
Use them to exercise yycheck overrun.
Based on Andrew Suffield's grammar.
Akim Demaille [Sun, 2 Mar 2003 11:14:07 +0000 (11:14 +0000)]
Create tests/local.at for Bison generic testing macros.
* tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
This new file.
* tests/calc.at (AT_CHECK_CALC): Adjust.
* tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
(AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
* tests/local.at: here.
(AT_COMPILE_CXX): Tags the tests using it as c++.
Ignore the test if CXX is not functional.
Paul Eggert [Sun, 2 Mar 2003 06:55:15 +0000 (06:55 +0000)]
(code_start): Initialize it to scanner_cursor,
not loc->end, since loc->end might contain garbage and this leads
to undefined behavior on some platforms.
(id_loc, token_start): Use (IF_LINTed) initial values that do not
depend on *loc, so that the reader doesn't give the the false
impression that *loc is initialized.
(<INITIAL>"%%"): Do not bother setting code_start, since its value
does not survive the return.
Akim Demaille [Sat, 1 Mar 2003 10:55:31 +0000 (10:55 +0000)]
* src/scan-gram.l (code_start): Always initialize it when entering
into yylex, as SC_EPILOGUE is activated *before* the corresponding
yylex invocation. An alternative would be making it static, but
then it starts with the second %%'s beginning, instead of its end.
Paul Eggert [Fri, 28 Feb 2003 09:02:12 +0000 (09:02 +0000)]
* lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
around a UnixWare 7.1.1 porting bug reported by John Hughes in
<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
Paul Eggert [Fri, 28 Feb 2003 09:00:22 +0000 (09:00 +0000)]
Include <wchar.h> before "mbswidth.h", to work around a UnixWare 7.1.1
porting bug reported by John Hughes in
<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
Paul Eggert [Wed, 26 Feb 2003 21:27:11 +0000 (21:27 +0000)]
* README: Mention compiler bug in Sun Forte Developer 6 update 2.
Remove Sequent/Pyramid discussion (nobody uses them any more).
Merge VMS and MS-DOS discussion; these ports may well be dead
but let's keep mentioning them for now. Put <> around email
addresses. Add copyright notice.
Paul Eggert [Wed, 26 Feb 2003 21:26:28 +0000 (21:26 +0000)]
Mention compiler bug in Sun Forte Developer 6 update 2.
Remove Sequent/Pyramid discussion (nobody uses them any more).
Merge VMS and MS-DOS discussion; these ports may well be dead
but let's keep mentioning them for now. Put <> around email
addresses. Add copyright notice.
Paul Eggert [Tue, 25 Feb 2003 07:56:34 +0000 (07:56 +0000)]
(yy_reduce_print): yylineno -> yylno,
to avoid collision with flex use of yylineno.
Problem reported by Bruce Lilly in
<http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
Akim Demaille [Thu, 20 Feb 2003 14:42:43 +0000 (14:42 +0000)]
* data/lalr1.cc (position.hh): Make sure "columns" never pushes
before initial_columns.
(location.hh): Use consistent variable names when defining the
operator<<.
Use "last" so that we subtract from Positions, not from unsigned.
Akim Demaille [Thu, 20 Feb 2003 13:36:08 +0000 (13:36 +0000)]
* data/lalr1.cc (position.hh): New subfile, including the extended
and Doxygen'ed documentation of class Position.
(location.hh): Use it.
Document a` la Doxygen.
With the help of BenoƮt Perrot.
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.