]> git.saurik.com Git - bison.git/commitdiff
* src/closure.c (itemsetend): Remove, replaced with...
authorAkim Demaille <akim@epita.fr>
Mon, 19 Nov 2001 10:39:07 +0000 (10:39 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 19 Nov 2001 10:39:07 +0000 (10:39 +0000)
(itemsetsize): new.

ChangeLog
src/LR0.c
src/closure.c
src/closure.h

index a2e58baa569693bbf673bdc98eb7c384d195835e..fd85c1faf6b60de1e166124dcd97c813c170a3f4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-11-19  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (itemsetend): Remove, replaced with...
+       (itemsetsize): new.
+
+       
 2001-11-19  Akim Demaille  <akim@epita.fr>
 
        * src/LR0.c (kernel_end): Remove, replaced with...
index cecc0eae33fa7d5c6913dfbbbb098ba481d20d52..8d424eabeca94acb3db9b9e32a0a77ff0fd2f654 100644 (file)
--- a/src/LR0.c
+++ b/src/LR0.c
@@ -150,7 +150,7 @@ new_itemsets (void)
 
   shiftcount = 0;
 
-  for (i = 0; i < itemsetend - itemset; ++i)
+  for (i = 0; i < itemsetsize; ++i)
     {
       int symbol = ritem[itemset[i]];
       if (symbol > 0)
@@ -544,19 +544,15 @@ augment_automaton (void)
 static void
 save_reductions (void)
 {
-  short *isp;
-  int item;
   int count;
-  reductions *p;
-
-  short *rend;
+  int i;
 
   /* Find and count the active items that represent ends of rules. */
 
   count = 0;
-  for (isp = itemset; isp < itemsetend; isp++)
+  for (i = 0; i < itemsetsize; ++i)
     {
-      item = ritem[*isp];
+      int item = ritem[itemset[i]];
       if (item < 0)
        redset[count++] = -item;
     }
@@ -565,7 +561,7 @@ save_reductions (void)
 
   if (count)
     {
-      p = REDUCTIONS_ALLOC (count);
+      reductions *p = REDUCTIONS_ALLOC (count);
 
       p->number = this_state->number;
       p->nreds = count;
index 09d835002645d855dc801728866291ca26e6cdf5..ac37b2c018021e162b9520e5d84670f585618bed 100644 (file)
 #include "derives.h"
 #include "warshall.h"
 
+/* ITEMSETSIZE is the size of the array ITEMSET.  */
 short *itemset;
-short *itemsetend;
+size_t itemsetsize;
+
 static unsigned *ruleset;
 
 /* internal data.  See comments before set_fderives and set_firsts.  */
@@ -51,11 +53,10 @@ static int varsetsize;
 static void
 print_closure (int n)
 {
-  short *isp;
-
+  int i;
   fprintf (stderr, "n = %d\n", n);
-  for (isp = itemset; isp < itemsetend; isp++)
-    fprintf (stderr, "   %d\n", *isp);
+  for (i = 0; i < itemsetsize; ++i)
+    fprintf (stderr, "   %d\n", itemset[i]);
   fprintf (stderr, "\n\n");
 }
 
@@ -265,9 +266,9 @@ closure (short *core, int n)
     }
 
   ruleno = 0;
-  itemsetend = itemset;
+  itemsetsize = 0;
   csp = core;
-  for (i= 0; i < rulesetsize; ++i)
+  for (i = 0; i < rulesetsize; ++i)
     {
       int word = ruleset[i];
       if (word == 0)
@@ -283,9 +284,9 @@ closure (short *core, int n)
              if (word & (1 << b))
                {
                  itemno = rule_table[ruleno].rhs;
-                 while (csp < (core + n ) && *csp < itemno)
-                   *itemsetend++ = *csp++;
-                 *itemsetend++ = itemno;
+                 while (csp < (core + n) && *csp < itemno)
+                   itemset[itemsetsize++] = *csp++;
+                 itemset[itemsetsize++] = itemno;
                }
 
              ruleno++;
@@ -294,7 +295,7 @@ closure (short *core, int n)
     }
 
   while (csp < (core + n))
-    *itemsetend++ = *csp++;
+    itemset[itemsetsize++] = *csp++;
 
   if (trace_flag)
     print_closure (n);
index 91d9d09d44fd08e60926f740c61a2f8660dc66b7..67759a48d1b75720ed7a4bf58c43c091f89291dc 100644 (file)
@@ -1,5 +1,5 @@
 /* Subroutines for bison
-   Copyright 1984, 1989, 2000 Free Software Foundation, Inc.
+   Copyright 1984, 1989, 2000, 2001  Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -51,6 +51,6 @@ void closure PARAMS ((short *items, int n));
 void free_closure PARAMS ((void));
 
 extern short *itemset;
-extern short *itemsetend;
+extern size_t itemsetsize;
 
 #endif /* !CLOSURE_H_ */