Consolidate logic for deciding on a lookahead node

This commit is contained in:
Max Brunsfeld 2017-08-30 17:35:12 -07:00
parent 41074cbf2d
commit 4a0587061e
3 changed files with 82 additions and 57 deletions

View file

@ -3,7 +3,7 @@
typedef struct {
Tree *tree;
uint32_t byte_index;
Tree *preceding_external_token;
Tree *last_external_token;
} ReusableNode;
static inline ReusableNode reusable_node_new(Tree *tree) {
@ -14,7 +14,7 @@ static inline ReusableNode reusable_node_new(Tree *tree) {
static inline void reusable_node_pop(ReusableNode *self) {
self->byte_index += ts_tree_total_bytes(self->tree);
if (self->tree->has_external_tokens) {
self->preceding_external_token = ts_tree_last_external_token(self->tree);
self->last_external_token = ts_tree_last_external_token(self->tree);
}
while (self->tree) {