diff options
Diffstat (limited to 'vendor/github.com/mitjafelicijan/go-tree-sitter/tree_cursor.h')
| -rw-r--r-- | vendor/github.com/mitjafelicijan/go-tree-sitter/tree_cursor.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/github.com/mitjafelicijan/go-tree-sitter/tree_cursor.h b/vendor/github.com/mitjafelicijan/go-tree-sitter/tree_cursor.h new file mode 100644 index 0000000..96a386d --- /dev/null +++ b/vendor/github.com/mitjafelicijan/go-tree-sitter/tree_cursor.h | |||
| @@ -0,0 +1,48 @@ | |||
| 1 | #ifndef TREE_SITTER_TREE_CURSOR_H_ | ||
| 2 | #define TREE_SITTER_TREE_CURSOR_H_ | ||
| 3 | |||
| 4 | #include "./subtree.h" | ||
| 5 | |||
| 6 | typedef struct { | ||
| 7 | const Subtree *subtree; | ||
| 8 | Length position; | ||
| 9 | uint32_t child_index; | ||
| 10 | uint32_t structural_child_index; | ||
| 11 | uint32_t descendant_index; | ||
| 12 | } TreeCursorEntry; | ||
| 13 | |||
| 14 | typedef struct { | ||
| 15 | const TSTree *tree; | ||
| 16 | Array(TreeCursorEntry) stack; | ||
| 17 | TSSymbol root_alias_symbol; | ||
| 18 | } TreeCursor; | ||
| 19 | |||
| 20 | typedef enum { | ||
| 21 | TreeCursorStepNone, | ||
| 22 | TreeCursorStepHidden, | ||
| 23 | TreeCursorStepVisible, | ||
| 24 | } TreeCursorStep; | ||
| 25 | |||
| 26 | void ts_tree_cursor_init(TreeCursor *, TSNode); | ||
| 27 | void ts_tree_cursor_current_status( | ||
| 28 | const TSTreeCursor *, | ||
| 29 | TSFieldId *, | ||
| 30 | bool *, | ||
| 31 | bool *, | ||
| 32 | bool *, | ||
| 33 | TSSymbol *, | ||
| 34 | unsigned * | ||
| 35 | ); | ||
| 36 | |||
| 37 | TreeCursorStep ts_tree_cursor_goto_first_child_internal(TSTreeCursor *); | ||
| 38 | TreeCursorStep ts_tree_cursor_goto_next_sibling_internal(TSTreeCursor *); | ||
| 39 | |||
| 40 | static inline Subtree ts_tree_cursor_current_subtree(const TSTreeCursor *_self) { | ||
| 41 | const TreeCursor *self = (const TreeCursor *)_self; | ||
| 42 | TreeCursorEntry *last_entry = array_back(&self->stack); | ||
| 43 | return *last_entry->subtree; | ||
| 44 | } | ||
| 45 | |||
| 46 | TSNode ts_tree_cursor_parent_node(const TSTreeCursor *); | ||
| 47 | |||
| 48 | #endif // TREE_SITTER_TREE_CURSOR_H_ | ||
