58 |
rule_list_t *p; |
rule_list_t *p; |
59 |
|
|
60 |
symbol_number_t *squeue = XCALLOC (symbol_number_t, nvars); |
symbol_number_t *squeue = XCALLOC (symbol_number_t, nvars); |
61 |
short *rcount = XCALLOC (short, nrules + 1); |
short *rcount = XCALLOC (short, nrules); |
62 |
/* RITEM contains all the rules, including useless productions. |
/* RITEM contains all the rules, including useless productions. |
63 |
Hence we must allocate room for useless nonterminals too. */ |
Hence we must allocate room for useless nonterminals too. */ |
64 |
rule_list_t **rsets = XCALLOC (rule_list_t *, nvars) - ntokens; |
rule_list_t **rsets = XCALLOC (rule_list_t *, nvars) - ntokens; |
74 |
s1 = s2 = squeue; |
s1 = s2 = squeue; |
75 |
p = relts; |
p = relts; |
76 |
|
|
77 |
for (ruleno = 1; ruleno < nrules + 1; ++ruleno) |
for (ruleno = 0; ruleno < nrules; ++ruleno) |
78 |
if (rules[ruleno].useful) |
if (rules[ruleno].useful) |
79 |
{ |
{ |
80 |
rule_t *rule = &rules[ruleno]; |
rule_t *rule = &rules[ruleno]; |