bison-patches
[Top][All Lists]
Advanced

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

04-fyi-fix-set-nullable.patch


From: Akim Demaille
Subject: 04-fyi-fix-set-nullable.patch
Date: Wed, 05 Dec 2001 08:24:22 +0100

Index: ChangeLog
from  Akim Demaille  <address@hidden>
        * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
        the handling of squeue.
        `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
        
        
Index: src/nullable.c
--- src/nullable.c Sat, 01 Dec 2001 13:09:59 +0100 akim
+++ src/nullable.c Sat, 01 Dec 2001 13:22:49 +0100 akim
@@ -107,23 +107,16 @@
     }
 
   while (s1 < s2)
-    {
-      p = rsets[*s1++];
-      while (p)
-       {
-         int ruleno = p->value;
-         p = p->next;
-         if (--rcount[ruleno] == 0)
+    for (p = rsets[*s1++]; p; p = p->next)
+      {
+       int ruleno = p->value;
+       if (--rcount[ruleno] == 0)
+         if (rule_table[ruleno].useful && !nullable[rule_table[ruleno].lhs])
            {
-             int symbol = rule_table[ruleno].lhs;
-             if (symbol >= 0 && !nullable[symbol])
-               {
-                 nullable[symbol] = 1;
-                 *s2++ = symbol;
-               }
+             nullable[rule_table[ruleno].lhs] = 1;
+             *s2++ = rule_table[ruleno].lhs;
            }
-       }
-    }
+      }
 
   XFREE (squeue);
   XFREE (rcount);



reply via email to

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