diff options
author | Paul Hilfinger <Hilfinger@cs.berkeley.edu> | 2010-09-08 00:52:05 -0700 |
---|---|---|
committer | Paul Hilfinger <Hilfinger@cs.berkeley.edu> | 2010-09-08 00:52:05 -0700 |
commit | d467f443dfad0b9f243d0270feb85719c1ae6be6 (patch) | |
tree | 3e160fb4ebd7471151b9ef198c15c6d4ad661bc8 /data/glr.c | |
parent | c49784f5f5c0b8a4ffda574e2cf5a1e3e63110ba (diff) | |
download | bison-d467f443dfad0b9f243d0270feb85719c1ae6be6.tar.gz |
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.
Diffstat (limited to 'data/glr.c')
-rw-r--r-- | data/glr.c | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -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)); |