From d467f443dfad0b9f243d0270feb85719c1ae6be6 Mon Sep 17 00:00:00 2001 From: Paul Hilfinger Date: Wed, 8 Sep 2010 00:52:05 -0700 Subject: [PATCH] Fix some errors that were causing testsuite failures for GLR. * data/glr.c (yy_reduce_print): Change yyrhsVals to yyvsp to remove compiler errors when using %debug. Add declaration of yylow when locations in use to avoid compilation error. (yyglrReduce): Conditionalize message "Parse ... rejected by rule..." on whether we are in split mode, for consistency with behavior of non-GLR parsing. --- ChangeLog | 10 ++++++++++ data/glr.c | 15 ++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1f33443a..cef54a3d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2010-09-08 Paul Hilfinger + + * data/glr.c (yy_reduce_print): Change yyrhsVals to yyvsp to remove + compiler errors when using %debug. + Add declaration of yylow when locations in use to avoid compilation + error. + (yyglrReduce): Conditionalize message "Parse ... rejected by rule..." + on whether we are in split mode, for consistency with behavior of + non-GLR parsing. + 2010-09-01 Akim Demaille Address GCC warnings about shadowed local variables (yyflag). diff --git a/data/glr.c b/data/glr.c index 7c76fa3e..944c3349 100644 --- a/data/glr.c +++ b/data/glr.c @@ -1325,26 +1325,27 @@ do { \ `----------------------------------------------------------------------*/ /*ARGSUSED*/ static inline void -yy_reduce_print (int yynormal, yyGLRStackItem* yyrhsVals, size_t yyk, yyRuleNum yyrule]b4_user_formals[) +yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk, yyRuleNum yyrule]b4_user_formals[) { - int yynrhs = yyrhsLength (yyrule); + int yynrhs = yyrhsLength (yyrule);]b4_locations_if([ + int yylow = 1;])[ int yyi; ]b4_parse_param_use[]dnl [ YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n", (unsigned long int) yyk, yyrule - 1, (unsigned long int) yyrline[yyrule]); if (! yynormal) - yyfillin (yyrhsVals, 1, -yynrhs); + yyfillin (yyvsp, 1, -yynrhs); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyrhsVals[yyi - yynrhs + 1].yystate.yylrState], - &yyrhsVals[yyi - yynrhs + 1].yystate.yysemantics.yysval + yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState], + &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval ]b4_locations_if([, &]b4_rhs_location(yynrhs, yyi + 1))[]dnl b4_user_args[); - if (!yyrhsVals[yyi - yynrhs + 1].yystate.yyresolved) + if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved) YYFPRINTF (stderr, " (unresolved)"); YYFPRINTF (stderr, "\n"); } @@ -1423,7 +1424,7 @@ yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule, yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, &yyloc]b4_user_args[); - if (yyflag == yyerr) + if (yyflag == yyerr && yystackp->yysplitPoint != NULL) { YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n", (unsigned long int) yyk, yyrule - 1)); -- 2.45.2