bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

23-fyi-fix-output.patch


From: Akim Demaille
Subject: 23-fyi-fix-output.patch
Date: Thu, 27 Dec 2001 19:02:40 +0100

Index: ChangeLog
from  Akim Demaille  <address@hidden>
        * 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.
        
        
Index: src/bison.simple
--- src/bison.simple Sun, 23 Dec 2001 11:51:18 +0100 akim
+++ src/bison.simple Thu, 27 Dec 2001 17:58:29 +0100 akim
@@ -222,7 +222,7 @@
   %%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: src/output.c
--- src/output.c Thu, 27 Dec 2001 16:33:48 +0100 akim
+++ src/output.c Thu, 27 Dec 2001 17:57:46 +0100 akim
@@ -195,19 +195,16 @@
   muscle_insert ("prhs", obstack_finish (&format_obstack));
 
   {
-    size_t yyrhs_size = 1;
     short *yyrhs, *sp;
     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: tests/calc.at
--- tests/calc.at Thu, 27 Dec 2001 14:58:13 +0100 akim
+++ tests/calc.at Thu, 27 Dec 2001 17:53:56 +0100 akim
@@ -371,7 +371,7 @@ m4_define([AT_CHECK_CALC],
 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],



reply via email to

[Prev in Thread] Current Thread [Next in Thread]