bison-patches
[Top][All Lists]
Advanced

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

23-fyi-output.patch


From: Akim Demaille
Subject: 23-fyi-output.patch
Date: Wed, 05 Dec 2001 08:25:57 +0100

Index: ChangeLog
from  Akim Demaille  <address@hidden>
        * src/output.c (action_row): De-obfuscate
        using the good o' techniques: arrays not pointers, variable
        locality, BITISSET, RESETBIT etc.
        
        
Index: src/output.c
--- src/output.c Sat, 01 Dec 2001 20:18:59 +0100 akim
+++ src/output.c Sat, 01 Dec 2001 20:22:17 +0100 akim
@@ -529,15 +529,11 @@
   int k;
   int m = 0;
   int n = 0;
-  int count;
   int default_rule;
   int nreds;
-  int max;
   int rule;
   int shift_state;
   int symbol;
-  unsigned mask;
-  unsigned *wordp;
   reductions *redp;
   shifts *shiftp;
   errs *errp;
@@ -562,28 +558,13 @@
          n = state_table[state + 1].lookaheads;
 
          for (i = n - 1; i >= m; i--)
-           {
-             rule = -LAruleno[i];
-             wordp = LA (i);
-             mask = 1;
-
-             /* and find each token which the rule finds acceptable
-                to come next */
-             for (j = 0; j < ntokens; j++)
-               {
-                 /* and record this rule as the rule to use if that
-                    token follows.  */
-                 if (mask & *wordp)
-                   actrow[j] = rule;
-
-                 mask <<= 1;
-                 if (mask == 0)
-                   {
-                     mask = 1;
-                     wordp++;
-                   }
-               }
-           }
+           /* and find each token which the rule finds acceptable
+              to come next */
+           for (j = 0; j < ntokens; j++)
+             /* and record this rule as the rule to use if that
+                token follows.  */
+             if (BITISSET (LA (i), j))
+               actrow[j] = -LAruleno[i];
        }
     }
 
@@ -591,7 +572,6 @@
      them, record the shift as the thing to do.  So shift is preferred
      to reduce.  */
   shiftp = state_table[state].shift_table;
-
   for (i = 0; i < shiftp->nshifts; i++)
     {
       shift_state = shiftp->shifts[i];
@@ -635,10 +615,10 @@
        default_rule = redp->rules[0];
       else
        {
-         max = 0;
+         int max = 0;
          for (i = m; i < n; i++)
            {
-             count = 0;
+             int count = 0;
              rule = -LAruleno[i];
 
              for (j = 0; j < ntokens; j++)



reply via email to

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