/[bison]/bison/src/closure.c
ViewVC logotype

Diff of /bison/src/closure.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.31 by akim, Wed Dec 5 09:40:47 2001 UTC revision 1.32 by akim, Wed Dec 5 09:41:01 2001 UTC
# Line 26  Line 26 
26  #include "derives.h"  #include "derives.h"
27  #include "warshall.h"  #include "warshall.h"
28    
29  /* ITEMSETSIZE is the size of the array ITEMSET.  */  /* NITEMSET is the size of the array ITEMSET.  */
30  short *itemset;  short *itemset;
31  int itemsetsize;  int nitemset;
32    
33  static unsigned *ruleset;  static unsigned *ruleset;
34    
# Line 218  closure (short *core, int n) Line 218  closure (short *core, int n)
218              ruleset[r] |= FDERIVES (ritem[core[c]])[r];              ruleset[r] |= FDERIVES (ritem[core[c]])[r];
219      }      }
220    
221    itemsetsize = 0;    nitemset = 0;
222    c = 0;    c = 0;
223    for (ruleno = 0; ruleno < rulesetsize * BITS_PER_WORD; ++ruleno)    for (ruleno = 0; ruleno < rulesetsize * BITS_PER_WORD; ++ruleno)
224      if (BITISSET (ruleset, ruleno))      if (BITISSET (ruleset, ruleno))
# Line 226  closure (short *core, int n) Line 226  closure (short *core, int n)
226          int itemno = rule_table[ruleno].rhs;          int itemno = rule_table[ruleno].rhs;
227          while (c < n && core[c] < itemno)          while (c < n && core[c] < itemno)
228            {            {
229              itemset[itemsetsize] = core[c];              itemset[nitemset] = core[c];
230              itemsetsize++;              nitemset++;
231              c++;              c++;
232            }            }
233          itemset[itemsetsize] = itemno;          itemset[nitemset] = itemno;
234          itemsetsize++;          nitemset++;
235        }        }
236    
237    while (c < n)    while (c < n)
238      {      {
239        itemset[itemsetsize] = core[c];        itemset[nitemset] = core[c];
240        itemsetsize++;        nitemset++;
241        c++;        c++;
242      }      }
243    
244    if (trace_flag)    if (trace_flag)
245      print_closure ("output", itemset, itemsetsize);      print_closure ("output", itemset, nitemset);
246  }  }
247    
248    

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.32

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26