bison-patches
[Top][All Lists]
Advanced

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

24-fyi-set-firsts.patch


From: Akim Demaille
Subject: 24-fyi-set-firsts.patch
Date: Wed, 05 Dec 2001 08:26:02 +0100

Index: ChangeLog
from  Akim Demaille  <address@hidden>
        
        * src/closure.c (set_firsts): De-obfuscate.
        
Index: src/closure.c
--- src/closure.c Wed, 28 Nov 2001 00:01:23 +0100 akim
+++ src/closure.c Mon, 03 Dec 2001 19:12:00 +0100 akim
@@ -124,33 +124,24 @@
 static void
 set_firsts (void)
 {
-  unsigned *row;
-  int symbol;
-  short *sp;
   int rowsize;
 
-  int i;
+  int i, j;
 
   varsetsize = rowsize = WORDSIZE (nvars);
 
   firsts = XCALLOC (unsigned, nvars * rowsize);
 
-  row = firsts;
   for (i = ntokens; i < nsyms; i++)
-    {
-      sp = derives[i];
-      while (*sp >= 0)
-       {
-         symbol = ritem[rule_table[*sp++].rhs];
-         if (ISVAR (symbol))
-           {
-             symbol -= ntokens;
-             SETBIT (row, symbol);
-           }
-       }
-
-      row += rowsize;
-    }
+    for (j = 0; derives[i][j] >= 0; ++j)
+      {
+       int symbol = ritem[rule_table[derives[i][j]].rhs];
+       if (ISVAR (symbol))
+         {
+           symbol -= ntokens;
+           SETBIT (FIRSTS (i - ntokens), symbol);
+         }
+      }
 
   RTC (firsts, nvars);
 



reply via email to

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