]> git.saurik.com Git - bison.git/commitdiff
* src/output.c (output_gram): Rely on nritems, not the
authorAkim Demaille <akim@epita.fr>
Thu, 27 Dec 2001 18:17:39 +0000 (18:17 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 27 Dec 2001 18:17:39 +0000 (18:17 +0000)
0-sentinel.  See below.
Use -1 as separator, not 0.
* src/bison.simple (yyparse): Subtract 1 to the rule numbers.
Rely on -1 as separator in yyrhs, instead of 0.
* tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
twice `Now at end of input', therefore there are two lines less to
expect.

ChangeLog
src/bison.simple
src/output.c
tests/calc.at

index 984bbc9755a5cfa2fff5e3e3cf36e6b165d3a289..da19c05ad4872f3c91f5c140b9f9ba8750d68d46 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output_gram): Rely on nritems, not the
+       0-sentinel.  See below.
+       Use -1 as separator, not 0.
+       * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
+       Rely on -1 as separator in yyrhs, instead of 0.
+       * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
+       twice `Now at end of input', therefore there are two lines less to
+       expect.
+
+       
 2001-12-27  Akim Demaille  <akim@epita.fr>
 
        * tests/regression.at (Unresolved SR Conflicts):
index 593eadf34b44b1f8bc29470bf19ceb80200f218a..5403492f5cd685f1509b46fc2bbf0b0b24481cc4 100644 (file)
@@ -222,7 +222,7 @@ static const short yyprhs[] =
   %%prhs
 };
 
-/* YYRHS -- A `0'-separated list of the rules' RHS. */
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short yyrhs[] =
 {
   %%rhs
@@ -899,10 +899,10 @@ yyreduce:
       int yyi;
 
       YYFPRINTF (YYSTDERR, "Reducing via rule %d (line %d), ",
-                yyn, yyrline[yyn]);
+                yyn - 1, yyrline[yyn]);
 
       /* Print the symbols being reduced, and their result.  */
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
+      for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++)
        YYFPRINTF (YYSTDERR, "%s ", yytname[yyrhs[yyi]]);
       YYFPRINTF (YYSTDERR, " -> %s\n", yytname[yyr1[yyn]]);
     }
index 49e63944be12a0e24d56b36031d212e6f773bb70..4ad8f4e803e0abba8403e6d691a18c8c868acfb1 100644 (file)
@@ -195,19 +195,16 @@ output_gram (void)
   muscle_insert ("prhs", obstack_finish (&format_obstack));
 
   {
-    size_t yyrhs_size = 1;
-    short *yyrhs, *sp;
+    short *yyrhs;
     int i;
 
-    for (sp = ritem + 1; *sp; sp++)
-      ++yyrhs_size;
-    yyrhs = XMALLOC (short, yyrhs_size);
+    yyrhs = XMALLOC (short, nritems);
 
-    for (sp = ritem + 1, i = 1; *sp; ++sp, ++i)
-      yyrhs[i] = *sp >= 0 ? *sp : 0;
+    for (i = 1; i < nritems; ++i)
+      yyrhs[i] = ritem[i] >= 0 ? ritem[i] : -1;
 
     output_table_data (&format_obstack, yyrhs,
-                      ritem[0], 1, yyrhs_size);
+                      ritem[0], 1, nritems);
     muscle_insert ("rhs", obstack_finish (&format_obstack));
 
     XFREE (yyrhs);
index 49cf4e2325c209f8208a473b7f0eab603d08ed09..db308dfdb699865fdda859874c2c480dd7c12a4b 100644 (file)
@@ -371,7 +371,7 @@ _AT_CHECK_CALC([$1],
 1 - (2 - 3) = 2
 
 2^2^3 = 256
-(2^2)^3 = 64], [488])
+(2^2)^3 = 64], [486])
 
 # Some parse errors.
 _AT_CHECK_CALC_ERROR([$1], [0 0], [10],