bison-patches
[Top][All Lists]
Advanced

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

15-fyi-LA.patch


From: Akim Demaille
Subject: 15-fyi-LA.patch
Date: Mon, 19 Nov 2001 10:02:52 +0100

Index: ChangeLog
from  Akim Demaille  <address@hidden>

        * src/lalr.h (LA): New macro to access to the variable LA.
        * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
        * src/lalr.c: Adjust.

Index: src/conflicts.c
--- src/conflicts.c Thu, 15 Nov 2001 23:25:10 +0100 akim
+++ src/conflicts.c Thu, 15 Nov 2001 23:48:02 +0100 akim
@@ -97,7 +97,7 @@
   redprec = rprec[LAruleno[lookaheadnum]];
 
   mask = 1;
-  fp1 = LA + lookaheadnum * tokensetsize;
+  fp1 = LA (lookaheadnum);
   fp2 = lookaheadset;
   for (i = 0; i < ntokens; i++)
     {
@@ -219,7 +219,7 @@
   for (i = state_table[state].lookaheads; i < k; i++)
     if (rprec[LAruleno[i]])
       {
-       fp1 = LA + i * tokensetsize;
+       fp1 = LA (i);
        fp2 = fp1;
        fp3 = lookaheadset;
 
@@ -238,7 +238,7 @@
      for conflicts not resolved above.  */
   for (i = state_table[state].lookaheads; i < k; i++)
     {
-      fp1 = LA + i * tokensetsize;
+      fp1 = LA (i);
       fp2 = fp1;
       fp3 = lookaheadset;
 
@@ -314,7 +314,7 @@
 
   for (i = state_table[state].lookaheads; i < k; i++)
     {
-      fp1 = LA + i * tokensetsize;
+      fp1 = LA (i);
       fp2 = lookaheadset;
 
       while (fp2 < fp3)
@@ -366,7 +366,7 @@
     return 0;
 
   mask = 1;
-  baseword = LA + m * tokensetsize;
+  baseword = LA (m);
   for (i = 0; i < ntokens; i++)
     {
       unsigned *wordp = baseword;
@@ -572,7 +572,7 @@
     {
       default_rule = LAruleno[m];
 
-      fp1 = LA + m * tokensetsize;
+      fp1 = LA (m);
       fp2 = shiftset;
       fp3 = lookaheadset;
       fp4 = lookaheadset + tokensetsize;
@@ -609,7 +609,7 @@
       if (!nodefault)
        for (i = m; i < n; i++)
          {
-           fp1 = LA + i * tokensetsize;
+           fp1 = LA (i);
            fp2 = shiftset;
            fp3 = lookaheadset;
 
@@ -664,7 +664,7 @@
        }
 
       mask = 1;
-      fp1 = LA + m * tokensetsize;
+      fp1 = LA (m);
       fp2 = shiftset;
       for (i = 0; i < ntokens; i++)
        {
Index: src/lalr.c
--- src/lalr.c Thu, 15 Nov 2001 23:33:35 +0100 akim
+++ src/lalr.c Thu, 15 Nov 2001 23:50:50 +0100 akim
@@ -141,6 +141,11 @@
   XFREE (VERTICES);
 }
 
+
+/*--------------------.
+| Build STATE_TABLE.  |
+`--------------------*/
+
 static void
 set_state_table (void)
 {
@@ -643,22 +648,18 @@
   unsigned *fp2;
   unsigned *fp3;
   shorts *sp;
-  unsigned *rowp;
   shorts *sptmp;               /* JF */
 
-  rowp = LA;
   for (i = 0; i < state_table[nstates].lookaheads; i++)
     {
-      fp3 = rowp + tokensetsize;
+      fp3 = LA (i + 1);
       for (sp = lookback[i]; sp; sp = sp->next)
        {
-         fp1 = rowp;
+         fp1 = LA (i);
          fp2 = F + tokensetsize * sp->value;
          while (fp1 < fp3)
            *fp1++ |= *fp2++;
        }
-
-      rowp = fp3;
     }
 
   for (i = 0; i < state_table[nstates].lookaheads; i++)
Index: src/lalr.h
--- src/lalr.h Thu, 15 Nov 2001 23:25:10 +0100 akim
+++ src/lalr.h Thu, 15 Nov 2001 23:45:34 +0100 akim
@@ -66,6 +66,7 @@
    it is a conflict.  */
 
 extern unsigned *LA;
+#define LA(Rule) (LA + (Rule) * tokensetsize)
 
 
 /* A structure decorating a state, with additional information. */
Index: src/output.c
--- src/output.c Thu, 15 Nov 2001 23:25:10 +0100 akim
+++ src/output.c Thu, 15 Nov 2001 23:45:49 +0100 akim
@@ -546,7 +546,7 @@
          for (i = n - 1; i >= m; i--)
            {
              rule = -LAruleno[i];
-             wordp = LA + i * tokensetsize;
+             wordp = LA (i);
              mask = 1;
 
              /* and find each token which the rule finds acceptable



reply via email to

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