summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Hilfinger <Hilfinger@cs.berkeley.edu>2010-09-08 00:52:05 -0700
committerPaul Hilfinger <Hilfinger@cs.berkeley.edu>2010-09-08 00:52:05 -0700
commitd467f443dfad0b9f243d0270feb85719c1ae6be6 (patch)
tree3e160fb4ebd7471151b9ef198c15c6d4ad661bc8
parentc49784f5f5c0b8a4ffda574e2cf5a1e3e63110ba (diff)
downloadbison-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.
-rw-r--r--ChangeLog10
-rw-r--r--data/glr.c15
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 <hilfinger@cs.berkeley.edu>
+
+ * 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 <demaille@gostai.com>
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));