63 |
set_derives (void) |
set_derives (void) |
64 |
{ |
{ |
65 |
int i; |
int i; |
|
int lhs; |
|
66 |
shorts *p; |
shorts *p; |
67 |
short *q; |
short *q; |
68 |
shorts **dset; |
shorts **dset; |
73 |
|
|
74 |
p = delts; |
p = delts; |
75 |
for (i = nrules; i > 0; i--) |
for (i = nrules; i > 0; i--) |
76 |
{ |
if (rule_table[i].useful) |
77 |
lhs = rule_table[i].lhs; |
{ |
78 |
if (lhs >= 0) |
int lhs = rule_table[i].lhs; |
79 |
{ |
p->next = dset[lhs]; |
80 |
p->next = dset[lhs]; |
p->value = i; |
81 |
p->value = i; |
dset[lhs] = p; |
82 |
dset[lhs] = p; |
p++; |
83 |
p++; |
} |
|
} |
|
|
} |
|
84 |
|
|
85 |
derives = XCALLOC (short *, nvars) - ntokens; |
derives = XCALLOC (short *, nvars) - ntokens; |
86 |
q = XCALLOC (short, nvars + nrules); |
q = XCALLOC (short, nvars + nrules); |