/[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.24 by akim, Wed Nov 28 14:52:50 2001 UTC revision 1.25 by akim, Wed Nov 28 14:53:03 2001 UTC
# Line 242  closure (short *core, int n) Line 242  closure (short *core, int n)
242    /* Index over RULESET. */    /* Index over RULESET. */
243    int r;    int r;
244    
245    int itemno;    /* A bit index over RULESET. */
246      int b;
247    
248    if (trace_flag)    if (trace_flag)
249      {      {
# Line 271  closure (short *core, int n) Line 272  closure (short *core, int n)
272    ruleno = 0;    ruleno = 0;
273    itemsetsize = 0;    itemsetsize = 0;
274    c = 0;    c = 0;
275    for (r = 0; r < rulesetsize; ++r)    for (b = 0; b < rulesetsize * BITS_PER_WORD; ++b)
276      {      {
277        int b;        if (BITISSET (ruleset, b))
   
       for (b = 0; b < BITS_PER_WORD; b++)  
278          {          {
279            if (ruleset[r] & (1 << b))            int itemno = rule_table[ruleno].rhs;
280              while (c < n && core[c] < itemno)
281              {              {
282                itemno = rule_table[ruleno].rhs;                itemset[itemsetsize] = core[c];
               while (c < n && core[c] < itemno)  
                 {  
                   itemset[itemsetsize] = core[c];  
                   itemsetsize++;  
                   c++;  
                 }  
               itemset[itemsetsize] = itemno;  
283                itemsetsize++;                itemsetsize++;
284                  c++;
285              }              }
286              itemset[itemsetsize] = itemno;
287            ruleno++;            itemsetsize++;
288          }          }
289    
290          ruleno++;
291      }      }
292    
293    while (c < n)    while (c < n)

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

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