]> git.saurik.com Git - bison.git/commitdiff
Fix some errors that were causing testsuite failures for GLR.
authorPaul Hilfinger <Hilfinger@cs.berkeley.edu>
Wed, 8 Sep 2010 07:52:05 +0000 (00:52 -0700)
committerPaul Hilfinger <Hilfinger@cs.berkeley.edu>
Wed, 8 Sep 2010 07:52:05 +0000 (00:52 -0700)
* 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
data/glr.c

index 1f33443aaa5bed810b9332e315b4b35bf92382e7..cef54a3d53003f6997ebda04a140dec2e720b41c 100644 (file)
--- 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).
 2010-09-01  Akim Demaille  <demaille@gostai.com>
 
        Address GCC warnings about shadowed local variables (yyflag).
index 7c76fa3e2d172f904806a555d879e85cbb199e13..944c33499e237caa4a32e72f051a413a279a3ac7 100644 (file)
@@ -1325,26 +1325,27 @@ do {                                    \
 `----------------------------------------------------------------------*/
 
 /*ARGSUSED*/ static inline void
 `----------------------------------------------------------------------*/
 
 /*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)
   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,
   /* 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[);
                       ]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");
     }
         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[);
 
       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));
         {
          YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
                     (unsigned long int) yyk, yyrule - 1));