From 4ca965019f07b1b13be738fc6bdc105f9ce98f37 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 10 Dec 2015 21:06:22 -0800 Subject: [PATCH] Break down unverified reductions eagerly when the next node has changes --- src/runtime/parser.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/runtime/parser.c b/src/runtime/parser.c index 4498e9bb..d5574152 100644 --- a/src/runtime/parser.c +++ b/src/runtime/parser.c @@ -145,6 +145,10 @@ static TSTree *ts_parser__get_next_lookahead(TSParser *self, int head) { bool can_reuse = true; if (ts_tree_has_changes(state->reusable_subtree)) { + if (state->is_verifying) { + ts_parser__breakdown_top_of_stack(self, head); + state->is_verifying = false; + } LOG("breakdown_changed sym:%s", SYM_NAME(state->reusable_subtree->symbol)); can_reuse = false; } else if (ts_tree_is_fragile(state->reusable_subtree)) {