/[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.57 by akim, Sun Jun 30 17:34:52 2002 UTC revision 1.58 by akim, Tue Jul 2 13:51:26 2002 UTC
# Line 74  print_firsts (void) Line 74  print_firsts (void)
74    fprintf (stderr, "FIRSTS\n");    fprintf (stderr, "FIRSTS\n");
75    for (i = ntokens; i < nsyms; i++)    for (i = ntokens; i < nsyms; i++)
76      {      {
77          bitset_iterator iter;
78        fprintf (stderr, "\t%s firsts\n", symbols[i]->tag);        fprintf (stderr, "\t%s firsts\n", symbols[i]->tag);
79        BITSET_EXECUTE (FIRSTS (i), 0, j,        BITSET_FOR_EACH (iter, FIRSTS (i), j, 0)
80        {          {
81          fprintf (stderr, "\t\t%s\n",            fprintf (stderr, "\t\t%s\n",
82                   symbols[j + ntokens]->tag);                     symbols[j + ntokens]->tag);
83        });          }
84      }      }
85    fprintf (stderr, "\n\n");    fprintf (stderr, "\n\n");
86  }  }
# Line 94  print_fderives (void) Line 95  print_fderives (void)
95    fprintf (stderr, "FDERIVES\n");    fprintf (stderr, "FDERIVES\n");
96    for (i = ntokens; i < nsyms; i++)    for (i = ntokens; i < nsyms; i++)
97      {      {
98          bitset_iterator iter;
99        fprintf (stderr, "\t%s derives\n", symbols[i]->tag);        fprintf (stderr, "\t%s derives\n", symbols[i]->tag);
100        BITSET_EXECUTE (FDERIVES (i), 0, r,        BITSET_FOR_EACH (iter, FDERIVES (i), r, 0)
101        {          {
102          item_number_t *rhsp = NULL;            item_number_t *rhsp = NULL;
103          fprintf (stderr, "\t\t%d:", r - 1);            fprintf (stderr, "\t\t%d:", r - 1);
104          for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp)            for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp)
105            fprintf (stderr, " %s", symbols[*rhsp]->tag);              fprintf (stderr, " %s", symbols[*rhsp]->tag);
106          fputc ('\n', stderr);            fputc ('\n', stderr);
107        });          }
108      }      }
109    fprintf (stderr, "\n\n");    fprintf (stderr, "\n\n");
110  }  }
# Line 198  closure (item_number_t *core, int n) Line 200  closure (item_number_t *core, int n)
200    /* A bit index over RULESET. */    /* A bit index over RULESET. */
201    rule_number_t ruleno;    rule_number_t ruleno;
202    
203      bitset_iterator iter;
204    
205    if (trace_flag)    if (trace_flag)
206      print_closure ("input", core, n);      print_closure ("input", core, n);
207    
# Line 209  closure (item_number_t *core, int n) Line 213  closure (item_number_t *core, int n)
213    
214    nritemset = 0;    nritemset = 0;
215    c = 0;    c = 0;
216    BITSET_EXECUTE (ruleset, 0, ruleno,    BITSET_FOR_EACH (iter, ruleset, ruleno, 0)
217    {      {
218      item_number_t itemno = rules[ruleno].rhs - ritem;        item_number_t itemno = rules[ruleno].rhs - ritem;
219      while (c < n && core[c] < itemno)        while (c < n && core[c] < itemno)
220        {          {
221          itemset[nritemset] = core[c];            itemset[nritemset] = core[c];
222          nritemset++;            nritemset++;
223          c++;            c++;
224        }          }
225      itemset[nritemset] = itemno;        itemset[nritemset] = itemno;
226      nritemset++;        nritemset++;
227    });      };
228    
229    while (c < n)    while (c < n)
230      {      {

Legend:
Removed from v.1.57  
changed lines
  Added in v.1.58

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