X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/99013900121bb2de1197f5d0768749f9e50ccb8a..ec3bc39:/src/nullable.c diff --git a/src/nullable.c b/src/nullable.c index abeefdde..ae02db75 100644 --- a/src/nullable.c +++ b/src/nullable.c @@ -47,11 +47,11 @@ void set_nullable (void) { int ruleno; - short *s1; - short *s2; + token_number_t *s1; + token_number_t *s2; shorts *p; - short *squeue = XCALLOC (short, nvars); + token_number_t *squeue = XCALLOC (token_number_t, nvars); short *rcount = XCALLOC (short, nrules + 1); /* RITEM contains all the rules, including useless productions. Hence we must allocate room for useless nonterminals too. */ @@ -74,7 +74,7 @@ set_nullable (void) if (rules[ruleno].rhs[0] >= 0) { /* This rule has a non empty RHS. */ - short *r; + item_number_t *r; int any_tokens = 0; for (r = rules[ruleno].rhs; *r >= 0; ++r) if (ISTOKEN (*r)) @@ -96,10 +96,10 @@ set_nullable (void) { /* This rule has an empty RHS. */ assert (rules[ruleno].rhs[0] == -ruleno); - if (rules[ruleno].useful && !nullable[rules[ruleno].lhs]) + if (rules[ruleno].useful && !nullable[rules[ruleno].lhs->number]) { - nullable[rules[ruleno].lhs] = 1; - *s2++ = rules[ruleno].lhs; + nullable[rules[ruleno].lhs->number] = 1; + *s2++ = rules[ruleno].lhs->number; } } } @@ -109,10 +109,10 @@ set_nullable (void) { ruleno = p->value; if (--rcount[ruleno] == 0) - if (rules[ruleno].useful && !nullable[rules[ruleno].lhs]) + if (rules[ruleno].useful && !nullable[rules[ruleno].lhs->number]) { - nullable[rules[ruleno].lhs] = 1; - *s2++ = rules[ruleno].lhs; + nullable[rules[ruleno].lhs->number] = 1; + *s2++ = rules[ruleno].lhs->number; } }