Store verifying flag within parse stack

This commit is contained in:
Max Brunsfeld 2016-03-31 12:03:07 -07:00
parent 523923bd93
commit 6bce6da1e6
4 changed files with 197 additions and 116 deletions

View file

@ -41,7 +41,8 @@ typedef enum {
typedef StackIterateAction (*StackIterateCallback)(void *, TSStateId state,
size_t tree_count,
bool is_done);
bool is_done,
bool is_pending);
typedef int (*TreeSelectionFunction)(void *, TSTree *tree1, TSTree *tree2);
@ -76,7 +77,8 @@ TSLength ts_stack_top_position(const Stack *, int head_index);
* Push a (tree, state) pair onto the given head of the stack. This could cause
* the head to merge with an existing head.
*/
StackPushResult ts_stack_push(Stack *, int head_index, TSTree *, TSStateId);
StackPushResult ts_stack_push(Stack *, int head_index, TSTree *, bool,
TSStateId);
/*
* Pop the given number of entries from the given head of the stack. This
@ -89,6 +91,8 @@ StackPopResult ts_stack_pop_count(Stack *, int head_index, int count);
StackPopResult ts_stack_pop_until(Stack *, int head_index, StackIterateCallback,
void *);
StackPopResult ts_stack_pop_pending(Stack *, int head_index);
/*
* Remove the given number of entries from the given head of the stack.
*/