+2006-05-17 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/glr.c (yyreportTree): Make room in yystates for the state
+ preceding the RHS. This fixes the segmentation fault reported by Derek
+ M. Jones in
+ <http://lists.gnu.org/archive/html/help-bison/2006-05/msg00035.html>.
+ (yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing
+ to the user. Reported for yyreportTree by Derek M. Jones later in the
+ same thread.
+ * THANKS: Add Derek M. Jones.
+ Update my email address.
+ Fix typo in Steve Murphy's name.
+
2006-05-14 Paul Eggert <eggert@cs.ucla.edu>
* data/glr.c (yyreportSyntaxError): Fix off-by-one error in
Cris van Pelt cris@amf03054.office.wxs.nl
Daniel Hagerty hag@gnu.org
David J. MacKenzie djm@gnu.org
+Derek M. Jones derek@knosof.co.uk
Dick Streefland dick.streefland@altium.nl
Enrico Scholz enrico.scholz@informatik.tu-chemnitz.de
Evgeny Stambulchik fnevgeny@plasma-gate.weizmann.ac.il
Jesse Thilo jthilo@gnu.org
Jim Kent jkent@arch.sel.sony.com
Jim Meyering jim@meyering.net
-Joel E. Denny jdenny@hubcap.clemson.edu
+Joel E. Denny jdenny@ces.clemson.edu
Juan Manuel Guerrero ST001906@HRZ1.HRZ.TU-Darmstadt.De
Kees Zeelenberg kzlg@users.sourceforge.net
Keith Browne kbrowne@legato.com
Richard Stallman rms@gnu.org
Robert Anisko anisko_r@epita.fr
Shura debil_urod@ngs.ru
-Steve Murhpy murf@parsetree.com
+Steve Murphy murf@parsetree.com
Tim Josling tej@melbpc.org.au
Tim Van Holder tim.van.holder@pandora.be
Tom Lane tgl@sss.pgh.pa.us
int yynrhs = yyrhsLength (yyx->yyrule);
int yyi;
yyGLRState* yys;
- yyGLRState* yystates[YYMAXRHS];
+ yyGLRState* yystates[1 + YYMAXRHS];
yyGLRState yyleftmost_state;
for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
if (yyx->yystate->yyposn < yys->yyposn + 1)
YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
- yyx->yyrule);
+ yyx->yyrule - 1);
else
YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
- yyx->yyrule, (unsigned long int) (yys->yyposn + 1),
+ yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
(unsigned long int) yyx->yystate->yyposn);
for (yyi = 1; yyi <= yynrhs; yyi += 1)
{
else
{
fprintf (stderr, "Option. rule: %d, state: %ld, next: %ld",
- yyp->yyoption.yyrule,
+ yyp->yyoption.yyrule - 1,
(long int) YYINDEX (yyp->yyoption.yystate),
(long int) YYINDEX (yyp->yyoption.yynext));
}