96 |
{ |
{ |
97 |
/* This rule has an empty RHS. */ |
/* This rule has an empty RHS. */ |
98 |
assert (rules[ruleno].rhs[0] == -ruleno); |
assert (rules[ruleno].rhs[0] == -ruleno); |
99 |
if (rules[ruleno].useful && !nullable[rules[ruleno].lhs]) |
if (rules[ruleno].useful && !nullable[rules[ruleno].lhs->number]) |
100 |
{ |
{ |
101 |
nullable[rules[ruleno].lhs] = 1; |
nullable[rules[ruleno].lhs->number] = 1; |
102 |
*s2++ = rules[ruleno].lhs; |
*s2++ = rules[ruleno].lhs->number; |
103 |
} |
} |
104 |
} |
} |
105 |
} |
} |
109 |
{ |
{ |
110 |
ruleno = p->value; |
ruleno = p->value; |
111 |
if (--rcount[ruleno] == 0) |
if (--rcount[ruleno] == 0) |
112 |
if (rules[ruleno].useful && !nullable[rules[ruleno].lhs]) |
if (rules[ruleno].useful && !nullable[rules[ruleno].lhs->number]) |
113 |
{ |
{ |
114 |
nullable[rules[ruleno].lhs] = 1; |
nullable[rules[ruleno].lhs->number] = 1; |
115 |
*s2++ = rules[ruleno].lhs; |
*s2++ = rules[ruleno].lhs->number; |
116 |
} |
} |
117 |
} |
} |
118 |
|
|