fix a loop in setupLR
This commit is contained in:
parent
dffe47bf57
commit
63dbf83b4d
1 changed files with 4 additions and 2 deletions
|
|
@ -83,10 +83,12 @@ void setupLR(const HParser *p, HParseState *state, HLeftRec *rec_detect) {
|
||||||
rec_detect->head = some;
|
rec_detect->head = some;
|
||||||
}
|
}
|
||||||
assert(state->lr_stack->head != NULL);
|
assert(state->lr_stack->head != NULL);
|
||||||
HLeftRec *lr = state->lr_stack->head->elem;
|
HSlistNode *head = state->lr_stack->head;
|
||||||
while (lr && lr->rule != p) {
|
HLeftRec *lr;
|
||||||
|
while (head && (lr = head->elem)->rule != p) {
|
||||||
lr->head = rec_detect->head;
|
lr->head = rec_detect->head;
|
||||||
h_slist_push(lr->head->involved_set, (void*)lr->rule);
|
h_slist_push(lr->head->involved_set, (void*)lr->rule);
|
||||||
|
head = head->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue