]> git.saurik.com Git - bison.git/commitdiff
* src/lalr.h (LA): New macro to access to the variable LA.
authorAkim Demaille <akim@epita.fr>
Mon, 19 Nov 2001 10:08:54 +0000 (10:08 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 19 Nov 2001 10:08:54 +0000 (10:08 +0000)
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
* src/lalr.c: Adjust.

ChangeLog
src/conflicts.c
src/lalr.c
src/lalr.h
src/output.c

index b3df6f0c13d455cfe7beadc59ef174138a97ce68..dae2642cb2fe5cf8cc05c9eadbdbbfb6ee5ff0cb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * 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.
+
 2001-11-19  Akim Demaille  <akim@epita.fr>
 
        * src/lalr.c (initialize_LA): Only initialize LA.  Let...
index 77520ade1ef7446dd3cde57ccf31914216f308ba..a0c0986d88cb06cff1c4ff4b04411876c19b1cac 100644 (file)
@@ -97,7 +97,7 @@ resolve_sr_conflict (int state, int lookaheadnum)
   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 @@ set_conflicts (int state)
   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 @@ set_conflicts (int state)
      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 @@ count_sr_conflicts (int state)
 
   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 @@ count_rr_conflicts (int state)
     return 0;
 
   mask = 1;
-  baseword = LA + m * tokensetsize;
+  baseword = LA (m);
   for (i = 0; i < ntokens; i++)
     {
       unsigned *wordp = baseword;
@@ -572,7 +572,7 @@ print_reductions (FILE *out, int state)
     {
       default_rule = LAruleno[m];
 
-      fp1 = LA + m * tokensetsize;
+      fp1 = LA (m);
       fp2 = shiftset;
       fp3 = lookaheadset;
       fp4 = lookaheadset + tokensetsize;
@@ -609,7 +609,7 @@ print_reductions (FILE *out, int state)
       if (!nodefault)
        for (i = m; i < n; i++)
          {
-           fp1 = LA + i * tokensetsize;
+           fp1 = LA (i);
            fp2 = shiftset;
            fp3 = lookaheadset;
 
@@ -664,7 +664,7 @@ print_reductions (FILE *out, int state)
        }
 
       mask = 1;
-      fp1 = LA + m * tokensetsize;
+      fp1 = LA (m);
       fp2 = shiftset;
       for (i = 0; i < ntokens; i++)
        {
index ce076d4d3c887b04f6fc082de49ea9a29b50a5ac..46ec2eef4a848d02d43f1c5002bf53bd79f9adb8 100644 (file)
@@ -141,6 +141,11 @@ digraph (short **relation)
   XFREE (VERTICES);
 }
 
+
+/*--------------------.
+| Build STATE_TABLE.  |
+`--------------------*/
+
 static void
 set_state_table (void)
 {
@@ -643,22 +648,18 @@ compute_lookaheads (void)
   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 0013715439c965a46e1b1da01d30d50e0ea279d2..f9941afacddeacd38104d7ba8432c71f1868900b 100644 (file)
@@ -66,6 +66,7 @@ extern short *LAruleno;
    it is a conflict.  */
 
 extern unsigned *LA;
+#define LA(Rule) (LA + (Rule) * tokensetsize)
 
 
 /* A structure decorating a state, with additional information. */
index 3a7f08177fbc3463c7c8d2095d28314ae16b5126..8ae1cff91d7f95f7f5f9c959dc958b3d7afa2b72 100644 (file)
@@ -354,7 +354,7 @@ action_row (int state)
          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