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

Diff of /bison/src/LR0.c

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

revision 1.62 by akim, Mon Apr 8 11:45:59 2002 UTC revision 1.63 by akim, Mon Apr 22 08:21:54 2002 UTC
# Line 26  Line 26 
26  #include "bitset.h"  #include "bitset.h"
27  #include "quotearg.h"  #include "quotearg.h"
28  #include "symtab.h"  #include "symtab.h"
29    #include "gram.h"
30  #include "getargs.h"  #include "getargs.h"
31  #include "reader.h"  #include "reader.h"
32  #include "gram.h"  #include "gram.h"
# Line 51  static state_t *this_state = NULL; Line 52  static state_t *this_state = NULL;
52  static state_t *last_state = NULL;  static state_t *last_state = NULL;
53    
54  static int nshifts;  static int nshifts;
55  static short *shift_symbol = NULL;  static token_number_t *shift_symbol = NULL;
56    
57  static short *redset = NULL;  static short *redset = NULL;
58  static short *shiftset = NULL;  static short *shiftset = NULL;
# Line 116  allocate_storage (void) Line 117  allocate_storage (void)
117    shiftset = XCALLOC (short, nsyms);    shiftset = XCALLOC (short, nsyms);
118    redset = XCALLOC (short, nrules + 1);    redset = XCALLOC (short, nrules + 1);
119    state_hash = XCALLOC (state_t *, STATE_HASH_SIZE);    state_hash = XCALLOC (state_t *, STATE_HASH_SIZE);
120    shift_symbol = XCALLOC (short, nsyms);    shift_symbol = XCALLOC (token_number_t, nsyms);
121  }  }
122    
123    
# Line 161  new_itemsets (void) Line 162  new_itemsets (void)
162    nshifts = 0;    nshifts = 0;
163    
164    for (i = 0; i < nritemset; ++i)    for (i = 0; i < nritemset; ++i)
165      {      if (ritem[itemset[i]] >= 0)
166        int symbol = ritem[itemset[i]];        {
167        if (symbol >= 0)          token_number_t symbol
168          {            = item_number_as_token_number (ritem[itemset[i]]);
169            if (!kernel_size[symbol])          if (!kernel_size[symbol])
170              {            {
171                shift_symbol[nshifts] = symbol;              shift_symbol[nshifts] = symbol;
172                nshifts++;              nshifts++;
173              }            }
174    
175            kernel_base[symbol][kernel_size[symbol]] = itemset[i] + 1;          kernel_base[symbol][kernel_size[symbol]] = itemset[i] + 1;
176            kernel_size[symbol]++;          kernel_size[symbol]++;
177          }        }
     }  
178  }  }
179    
180    
# Line 185  new_itemsets (void) Line 185  new_itemsets (void)
185  `-----------------------------------------------------------------*/  `-----------------------------------------------------------------*/
186    
187  static state_t *  static state_t *
188  new_state (int symbol)  new_state (token_number_t symbol)
189  {  {
190    state_t *p;    state_t *p;
191    
# Line 229  new_state (int symbol) Line 229  new_state (int symbol)
229  `--------------------------------------------------------------*/  `--------------------------------------------------------------*/
230    
231  static int  static int
232  get_state (int symbol)  get_state (token_number_t symbol)
233  {  {
234    int key;    int key;
235    int i;    int i;
# Line 298  append_states (void) Line 298  append_states (void)
298  {  {
299    int i;    int i;
300    int j;    int j;
301    int symbol;    token_number_t symbol;
302    
303    if (trace_flag)    if (trace_flag)
304      fprintf (stderr, "Entering append_states, state = %d\n",      fprintf (stderr, "Entering append_states, state = %d\n",

Legend:
Removed from v.1.62  
changed lines
  Added in v.1.63

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