/[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.26 by akim, Wed Nov 28 14:53:16 2001 UTC revision 1.27 by akim, Wed Dec 5 09:39:27 2001 UTC
# Line 124  print_fderives (void) Line 124  print_fderives (void)
124  static void  static void
125  set_firsts (void)  set_firsts (void)
126  {  {
   unsigned *row;  
   int symbol;  
   short *sp;  
127    int rowsize;    int rowsize;
128    
129    int i;    int i, j;
130    
131    varsetsize = rowsize = WORDSIZE (nvars);    varsetsize = rowsize = WORDSIZE (nvars);
132    
133    firsts = XCALLOC (unsigned, nvars * rowsize);    firsts = XCALLOC (unsigned, nvars * rowsize);
134    
   row = firsts;  
135    for (i = ntokens; i < nsyms; i++)    for (i = ntokens; i < nsyms; i++)
136      {      for (j = 0; derives[i][j] >= 0; ++j)
137        sp = derives[i];        {
138        while (*sp >= 0)          int symbol = ritem[rule_table[derives[i][j]].rhs];
139          {          if (ISVAR (symbol))
140            symbol = ritem[rule_table[*sp++].rhs];            {
141            if (ISVAR (symbol))              symbol -= ntokens;
142              {              SETBIT (FIRSTS (i - ntokens), symbol);
143                symbol -= ntokens;            }
144                SETBIT (row, symbol);        }
             }  
         }  
   
       row += rowsize;  
     }  
145    
146    RTC (firsts, nvars);    RTC (firsts, nvars);
147    

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.27

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