changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/ffi/tree-sitter/alien.h

changeset 696: 38e9c3be2392
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 21:11:52 -0400
permissions: -rw-r--r--
description: prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
696
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 #ifndef TREE_SITTER_API_H_
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 #define TREE_SITTER_API_H_
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
3
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 #ifndef TREE_SITTER_HIDE_SYMBOLS
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 #if defined(__GNUC__) || defined(__clang__)
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 #pragma GCC visibility push(default)
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
 #endif
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 #endif
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 #include <stdlib.h>
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 #include <stdint.h>
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 #include <stdbool.h>
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 #ifdef __cplusplus
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 extern "C" {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 #endif
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
 /****************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
 /* Section - ABI Versioning */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
20
 /****************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
  * The latest ABI version that is supported by the current version of the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
24
  * library. When Languages are generated by the Tree-sitter CLI, they are
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
25
  * assigned an ABI version number that corresponds to the current CLI version.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
26
  * The Tree-sitter library is generally backwards-compatible with languages
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
  * generated using older CLI versions, but is not forwards-compatible.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
 #define TREE_SITTER_LANGUAGE_VERSION 14
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
  * The earliest ABI version that is supported by the current version of the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
  * library.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
 #define TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION 13
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
 /*******************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
 /* Section - Types */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
 /*******************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
 typedef uint16_t TSStateId;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
 typedef uint16_t TSSymbol;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
 typedef uint16_t TSFieldId;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
 typedef struct TSLanguage TSLanguage;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
45
 typedef struct TSParser TSParser;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
46
 typedef struct TSTree TSTree;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
 typedef struct TSQuery TSQuery;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
 typedef struct TSQueryCursor TSQueryCursor;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
 typedef struct TSLookaheadIterator TSLookaheadIterator;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
 typedef enum TSInputEncoding {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
   TSInputEncodingUTF8,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
53
   TSInputEncodingUTF16,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
 } TSInputEncoding;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
56
 typedef enum TSSymbolType {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
57
   TSSymbolTypeRegular,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
58
   TSSymbolTypeAnonymous,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
59
   TSSymbolTypeAuxiliary,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
60
 } TSSymbolType;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
61
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
62
 typedef struct TSPoint {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
63
   uint32_t row;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
64
   uint32_t column;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
65
 } TSPoint;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
66
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
67
 typedef struct TSRange {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
68
   TSPoint start_point;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
69
   TSPoint end_point;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
70
   uint32_t start_byte;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
71
   uint32_t end_byte;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
72
 } TSRange;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
73
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
74
 typedef struct TSInput {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
75
   void *payload;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
76
   const char *(*read)(void *payload, uint32_t byte_index, TSPoint position, uint32_t *bytes_read);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
77
   TSInputEncoding encoding;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
78
 } TSInput;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
79
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
80
 typedef enum TSLogType {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
81
   TSLogTypeParse,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
82
   TSLogTypeLex,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
83
 } TSLogType;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
84
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
85
 typedef struct TSLogger {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
86
   void *payload;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
87
   void (*log)(void *payload, TSLogType log_type, const char *buffer);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
88
 } TSLogger;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
89
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
90
 typedef struct TSInputEdit {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
91
   uint32_t start_byte;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
92
   uint32_t old_end_byte;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
93
   uint32_t new_end_byte;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
94
   TSPoint start_point;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
95
   TSPoint old_end_point;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
96
   TSPoint new_end_point;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
97
 } TSInputEdit;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
98
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
99
 typedef struct TSNode {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
100
   uint32_t context[4];
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
101
   const void *id;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
102
   const TSTree *tree;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
103
 } TSNode;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
104
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
105
 typedef struct TSTreeCursor {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
106
   const void *tree;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
107
   const void *id;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
108
   uint32_t context[3];
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
109
 } TSTreeCursor;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
110
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
111
 typedef struct TSQueryCapture {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
112
   TSNode node;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
113
   uint32_t index;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
114
 } TSQueryCapture;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
115
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
116
 typedef enum TSQuantifier {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
117
   TSQuantifierZero = 0, // must match the array initialization value
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
118
   TSQuantifierZeroOrOne,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
119
   TSQuantifierZeroOrMore,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
120
   TSQuantifierOne,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
121
   TSQuantifierOneOrMore,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
122
 } TSQuantifier;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
123
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
124
 typedef struct TSQueryMatch {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
125
   uint32_t id;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
126
   uint16_t pattern_index;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
127
   uint16_t capture_count;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
128
   const TSQueryCapture *captures;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
129
 } TSQueryMatch;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
130
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
131
 typedef enum TSQueryPredicateStepType {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
132
   TSQueryPredicateStepTypeDone,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
133
   TSQueryPredicateStepTypeCapture,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
134
   TSQueryPredicateStepTypeString,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
135
 } TSQueryPredicateStepType;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
136
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
137
 typedef struct TSQueryPredicateStep {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
138
   TSQueryPredicateStepType type;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
139
   uint32_t value_id;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
140
 } TSQueryPredicateStep;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
141
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
142
 typedef enum TSQueryError {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
143
   TSQueryErrorNone = 0,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
144
   TSQueryErrorSyntax,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
145
   TSQueryErrorNodeType,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
146
   TSQueryErrorField,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
147
   TSQueryErrorCapture,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
148
   TSQueryErrorStructure,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
149
   TSQueryErrorLanguage,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
150
 } TSQueryError;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
151
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
152
 /********************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
153
 /* Section - Parser */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
154
 /********************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
155
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
156
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
157
  * Create a new parser.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
158
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
159
 TSParser *ts_parser_new(void);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
160
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
161
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
162
  * Delete the parser, freeing all of the memory that it used.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
163
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
164
 void ts_parser_delete(TSParser *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
165
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
166
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
167
  * Get the parser's current language.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
168
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
169
 const TSLanguage *ts_parser_language(const TSParser *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
170
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
171
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
172
  * Set the language that the parser should use for parsing.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
173
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
174
  * Returns a boolean indicating whether or not the language was successfully
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
175
  * assigned. True means assignment succeeded. False means there was a version
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
176
  * mismatch: the language was generated with an incompatible version of the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
177
  * Tree-sitter CLI. Check the language's version using [`ts_language_version`]
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
178
  * and compare it to this library's [`TREE_SITTER_LANGUAGE_VERSION`] and
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
179
  * [`TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION`] constants.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
180
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
181
 bool ts_parser_set_language(TSParser *self, const TSLanguage *language);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
182
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
183
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
184
  * Set the ranges of text that the parser should include when parsing.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
185
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
186
  * By default, the parser will always include entire documents. This function
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
187
  * allows you to parse only a *portion* of a document but still return a syntax
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
188
  * tree whose ranges match up with the document as a whole. You can also pass
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
189
  * multiple disjoint ranges.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
190
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
191
  * The second and third parameters specify the location and length of an array
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
192
  * of ranges. The parser does *not* take ownership of these ranges; it copies
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
193
  * the data, so it doesn't matter how these ranges are allocated.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
194
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
195
  * If `count` is zero, then the entire document will be parsed. Otherwise,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
196
  * the given ranges must be ordered from earliest to latest in the document,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
197
  * and they must not overlap. That is, the following must hold for all:
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
198
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
199
  * `i < count - 1`: `ranges[i].end_byte <= ranges[i + 1].start_byte`
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
200
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
201
  * If this requirement is not satisfied, the operation will fail, the ranges
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
202
  * will not be assigned, and this function will return `false`. On success,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
203
  * this function returns `true`
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
204
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
205
 bool ts_parser_set_included_ranges(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
206
   TSParser *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
207
   const TSRange *ranges,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
208
   uint32_t count
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
209
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
210
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
211
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
212
  * Get the ranges of text that the parser will include when parsing.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
213
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
214
  * The returned pointer is owned by the parser. The caller should not free it
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
215
  * or write to it. The length of the array will be written to the given
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
216
  * `count` pointer.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
217
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
218
 const TSRange *ts_parser_included_ranges(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
219
   const TSParser *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
220
   uint32_t *count
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
221
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
222
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
223
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
224
  * Use the parser to parse some source code and create a syntax tree.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
225
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
226
  * If you are parsing this document for the first time, pass `NULL` for the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
227
  * `old_tree` parameter. Otherwise, if you have already parsed an earlier
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
228
  * version of this document and the document has since been edited, pass the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
229
  * previous syntax tree so that the unchanged parts of it can be reused.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
230
  * This will save time and memory. For this to work correctly, you must have
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
231
  * already edited the old syntax tree using the [`ts_tree_edit`] function in a
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
232
  * way that exactly matches the source code changes.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
233
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
234
  * The [`TSInput`] parameter lets you specify how to read the text. It has the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
235
  * following three fields:
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
236
  * 1. [`read`]: A function to retrieve a chunk of text at a given byte offset
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
237
  *    and (row, column) position. The function should return a pointer to the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
238
  *    text and write its length to the [`bytes_read`] pointer. The parser does
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
239
  *    not take ownership of this buffer; it just borrows it until it has
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
240
  *    finished reading it. The function should write a zero value to the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
241
  *    [`bytes_read`] pointer to indicate the end of the document.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
242
  * 2. [`payload`]: An arbitrary pointer that will be passed to each invocation
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
243
  *    of the [`read`] function.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
244
  * 3. [`encoding`]: An indication of how the text is encoded. Either
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
245
  *    `TSInputEncodingUTF8` or `TSInputEncodingUTF16`.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
246
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
247
  * This function returns a syntax tree on success, and `NULL` on failure. There
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
248
  * are three possible reasons for failure:
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
249
  * 1. The parser does not have a language assigned. Check for this using the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
250
       [`ts_parser_language`] function.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
251
  * 2. Parsing was cancelled due to a timeout that was set by an earlier call to
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
252
  *    the [`ts_parser_set_timeout_micros`] function. You can resume parsing from
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
253
  *    where the parser left out by calling [`ts_parser_parse`] again with the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
254
  *    same arguments. Or you can start parsing from scratch by first calling
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
255
  *    [`ts_parser_reset`].
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
256
  * 3. Parsing was cancelled using a cancellation flag that was set by an
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
257
  *    earlier call to [`ts_parser_set_cancellation_flag`]. You can resume parsing
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
258
  *    from where the parser left out by calling [`ts_parser_parse`] again with
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
259
  *    the same arguments.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
260
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
261
  * [`read`]: TSInput::read
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
262
  * [`payload`]: TSInput::payload
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
263
  * [`encoding`]: TSInput::encoding
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
264
  * [`bytes_read`]: TSInput::read
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
265
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
266
 TSTree *ts_parser_parse(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
267
   TSParser *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
268
   const TSTree *old_tree,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
269
   TSInput input
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
270
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
271
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
272
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
273
  * Use the parser to parse some source code stored in one contiguous buffer.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
274
  * The first two parameters are the same as in the [`ts_parser_parse`] function
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
275
  * above. The second two parameters indicate the location of the buffer and its
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
276
  * length in bytes.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
277
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
278
 TSTree *ts_parser_parse_string(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
279
   TSParser *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
280
   const TSTree *old_tree,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
281
   const char *string,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
282
   uint32_t length
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
283
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
284
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
285
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
286
  * Use the parser to parse some source code stored in one contiguous buffer with
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
287
  * a given encoding. The first four parameters work the same as in the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
288
  * [`ts_parser_parse_string`] method above. The final parameter indicates whether
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
289
  * the text is encoded as UTF8 or UTF16.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
290
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
291
 TSTree *ts_parser_parse_string_encoding(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
292
   TSParser *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
293
   const TSTree *old_tree,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
294
   const char *string,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
295
   uint32_t length,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
296
   TSInputEncoding encoding
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
297
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
298
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
299
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
300
  * Instruct the parser to start the next parse from the beginning.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
301
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
302
  * If the parser previously failed because of a timeout or a cancellation, then
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
303
  * by default, it will resume where it left off on the next call to
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
304
  * [`ts_parser_parse`] or other parsing functions. If you don't want to resume,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
305
  * and instead intend to use this parser to parse some other document, you must
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
306
  * call [`ts_parser_reset`] first.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
307
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
308
 void ts_parser_reset(TSParser *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
309
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
310
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
311
  * Set the maximum duration in microseconds that parsing should be allowed to
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
312
  * take before halting.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
313
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
314
  * If parsing takes longer than this, it will halt early, returning NULL.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
315
  * See [`ts_parser_parse`] for more information.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
316
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
317
 void ts_parser_set_timeout_micros(TSParser *self, uint64_t timeout_micros);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
318
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
319
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
320
  * Get the duration in microseconds that parsing is allowed to take.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
321
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
322
 uint64_t ts_parser_timeout_micros(const TSParser *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
323
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
324
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
325
  * Set the parser's current cancellation flag pointer.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
326
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
327
  * If a non-null pointer is assigned, then the parser will periodically read
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
328
  * from this pointer during parsing. If it reads a non-zero value, it will
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
329
  * halt early, returning NULL. See [`ts_parser_parse`] for more information.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
330
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
331
 void ts_parser_set_cancellation_flag(TSParser *self, const size_t *flag);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
332
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
333
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
334
  * Get the parser's current cancellation flag pointer.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
335
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
336
 const size_t *ts_parser_cancellation_flag(const TSParser *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
337
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
338
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
339
  * Set the logger that a parser should use during parsing.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
340
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
341
  * The parser does not take ownership over the logger payload. If a logger was
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
342
  * previously assigned, the caller is responsible for releasing any memory
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
343
  * owned by the previous logger.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
344
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
345
 void ts_parser_set_logger(TSParser *self, TSLogger logger);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
346
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
347
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
348
  * Get the parser's current logger.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
349
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
350
 TSLogger ts_parser_logger(const TSParser *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
351
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
352
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
353
  * Set the file descriptor to which the parser should write debugging graphs
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
354
  * during parsing. The graphs are formatted in the DOT language. You may want
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
355
  * to pipe these graphs directly to a `dot(1)` process in order to generate
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
356
  * SVG output. You can turn off this logging by passing a negative number.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
357
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
358
 void ts_parser_print_dot_graphs(TSParser *self, int fd);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
359
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
360
 /******************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
361
 /* Section - Tree */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
362
 /******************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
363
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
364
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
365
  * Create a shallow copy of the syntax tree. This is very fast.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
366
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
367
  * You need to copy a syntax tree in order to use it on more than one thread at
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
368
  * a time, as syntax trees are not thread safe.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
369
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
370
 TSTree *ts_tree_copy(const TSTree *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
371
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
372
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
373
  * Delete the syntax tree, freeing all of the memory that it used.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
374
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
375
 void ts_tree_delete(TSTree *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
376
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
377
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
378
  * Get the root node of the syntax tree.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
379
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
380
 TSNode ts_tree_root_node(const TSTree *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
381
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
382
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
383
  * Get the root node of the syntax tree, but with its position
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
384
  * shifted forward by the given offset.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
385
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
386
 TSNode ts_tree_root_node_with_offset(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
387
   const TSTree *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
388
   uint32_t offset_bytes,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
389
   TSPoint offset_extent
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
390
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
391
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
392
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
393
  * Get the language that was used to parse the syntax tree.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
394
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
395
 const TSLanguage *ts_tree_language(const TSTree *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
396
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
397
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
398
  * Get the array of included ranges that was used to parse the syntax tree.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
399
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
400
  * The returned pointer must be freed by the caller.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
401
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
402
 TSRange *ts_tree_included_ranges(const TSTree *self, uint32_t *length);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
403
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
404
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
405
  * Edit the syntax tree to keep it in sync with source code that has been
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
406
  * edited.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
407
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
408
  * You must describe the edit both in terms of byte offsets and in terms of
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
409
  * (row, column) coordinates.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
410
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
411
 void ts_tree_edit(TSTree *self, const TSInputEdit *edit);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
412
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
413
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
414
  * Compare an old edited syntax tree to a new syntax tree representing the same
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
415
  * document, returning an array of ranges whose syntactic structure has changed.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
416
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
417
  * For this to work correctly, the old syntax tree must have been edited such
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
418
  * that its ranges match up to the new tree. Generally, you'll want to call
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
419
  * this function right after calling one of the [`ts_parser_parse`] functions.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
420
  * You need to pass the old tree that was passed to parse, as well as the new
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
421
  * tree that was returned from that function.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
422
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
423
  * The returned array is allocated using `malloc` and the caller is responsible
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
424
  * for freeing it using `free`. The length of the array will be written to the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
425
  * given `length` pointer.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
426
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
427
 TSRange *ts_tree_get_changed_ranges(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
428
   const TSTree *old_tree,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
429
   const TSTree *new_tree,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
430
   uint32_t *length
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
431
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
432
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
433
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
434
  * Write a DOT graph describing the syntax tree to the given file.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
435
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
436
 void ts_tree_print_dot_graph(const TSTree *self, int file_descriptor);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
437
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
438
 /******************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
439
 /* Section - Node */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
440
 /******************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
441
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
442
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
443
  * Get the node's type as a null-terminated string.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
444
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
445
 const char *ts_node_type(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
446
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
447
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
448
  * Get the node's type as a numerical id.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
449
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
450
 TSSymbol ts_node_symbol(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
451
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
452
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
453
  * Get the node's language.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
454
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
455
 const TSLanguage *ts_node_language(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
456
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
457
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
458
  * Get the node's type as it appears in the grammar ignoring aliases as a
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
459
  * null-terminated string.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
460
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
461
 const char *ts_node_grammar_type(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
462
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
463
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
464
  * Get the node's type as a numerical id as it appears in the grammar ignoring
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
465
  * aliases. This should be used in [`ts_language_next_state`] instead of
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
466
  * [`ts_node_symbol`].
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
467
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
468
 TSSymbol ts_node_grammar_symbol(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
469
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
470
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
471
  * Get the node's start byte.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
472
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
473
 uint32_t ts_node_start_byte(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
474
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
475
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
476
  * Get the node's start position in terms of rows and columns.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
477
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
478
 TSPoint ts_node_start_point(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
479
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
480
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
481
  * Get the node's end byte.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
482
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
483
 uint32_t ts_node_end_byte(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
484
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
485
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
486
  * Get the node's end position in terms of rows and columns.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
487
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
488
 TSPoint ts_node_end_point(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
489
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
490
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
491
  * Get an S-expression representing the node as a string.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
492
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
493
  * This string is allocated with `malloc` and the caller is responsible for
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
494
  * freeing it using `free`.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
495
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
496
 char *ts_node_string(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
497
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
498
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
499
  * Check if the node is null. Functions like [`ts_node_child`] and
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
500
  * [`ts_node_next_sibling`] will return a null node to indicate that no such node
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
501
  * was found.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
502
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
503
 bool ts_node_is_null(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
504
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
505
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
506
  * Check if the node is *named*. Named nodes correspond to named rules in the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
507
  * grammar, whereas *anonymous* nodes correspond to string literals in the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
508
  * grammar.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
509
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
510
 bool ts_node_is_named(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
511
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
512
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
513
  * Check if the node is *missing*. Missing nodes are inserted by the parser in
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
514
  * order to recover from certain kinds of syntax errors.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
515
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
516
 bool ts_node_is_missing(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
517
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
518
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
519
  * Check if the node is *extra*. Extra nodes represent things like comments,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
520
  * which are not required the grammar, but can appear anywhere.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
521
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
522
 bool ts_node_is_extra(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
523
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
524
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
525
  * Check if a syntax node has been edited.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
526
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
527
 bool ts_node_has_changes(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
528
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
529
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
530
  * Check if the node is a syntax error or contains any syntax errors.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
531
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
532
 bool ts_node_has_error(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
533
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
534
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
535
  * Check if the node is a syntax error.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
536
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
537
 bool ts_node_is_error(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
538
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
539
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
540
  * Get this node's parse state.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
541
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
542
 TSStateId ts_node_parse_state(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
543
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
544
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
545
  * Get the parse state after this node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
546
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
547
 TSStateId ts_node_next_parse_state(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
548
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
549
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
550
  * Get the node's immediate parent.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
551
  * Prefer [`ts_node_child_containing_descendant`] for
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
552
  * iterating over the node's ancestors.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
553
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
554
 TSNode ts_node_parent(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
555
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
556
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
557
  * Get the node's child that contains `descendant`.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
558
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
559
 TSNode ts_node_child_containing_descendant(TSNode self, TSNode descendant);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
560
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
561
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
562
  * Get the node's child at the given index, where zero represents the first
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
563
  * child.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
564
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
565
 TSNode ts_node_child(TSNode self, uint32_t child_index);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
566
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
567
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
568
  * Get the field name for node's child at the given index, where zero represents
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
569
  * the first child. Returns NULL, if no field is found.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
570
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
571
 const char *ts_node_field_name_for_child(TSNode self, uint32_t child_index);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
572
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
573
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
574
  * Get the node's number of children.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
575
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
576
 uint32_t ts_node_child_count(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
577
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
578
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
579
  * Get the node's *named* child at the given index.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
580
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
581
  * See also [`ts_node_is_named`].
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
582
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
583
 TSNode ts_node_named_child(TSNode self, uint32_t child_index);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
584
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
585
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
586
  * Get the node's number of *named* children.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
587
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
588
  * See also [`ts_node_is_named`].
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
589
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
590
 uint32_t ts_node_named_child_count(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
591
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
592
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
593
  * Get the node's child with the given field name.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
594
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
595
 TSNode ts_node_child_by_field_name(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
596
   TSNode self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
597
   const char *name,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
598
   uint32_t name_length
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
599
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
600
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
601
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
602
  * Get the node's child with the given numerical field id.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
603
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
604
  * You can convert a field name to an id using the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
605
  * [`ts_language_field_id_for_name`] function.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
606
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
607
 TSNode ts_node_child_by_field_id(TSNode self, TSFieldId field_id);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
608
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
609
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
610
  * Get the node's next / previous sibling.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
611
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
612
 TSNode ts_node_next_sibling(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
613
 TSNode ts_node_prev_sibling(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
614
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
615
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
616
  * Get the node's next / previous *named* sibling.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
617
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
618
 TSNode ts_node_next_named_sibling(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
619
 TSNode ts_node_prev_named_sibling(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
620
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
621
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
622
  * Get the node's first child that extends beyond the given byte offset.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
623
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
624
 TSNode ts_node_first_child_for_byte(TSNode self, uint32_t byte);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
625
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
626
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
627
  * Get the node's first named child that extends beyond the given byte offset.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
628
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
629
 TSNode ts_node_first_named_child_for_byte(TSNode self, uint32_t byte);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
630
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
631
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
632
  * Get the node's number of descendants, including one for the node itself.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
633
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
634
 uint32_t ts_node_descendant_count(TSNode self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
635
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
636
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
637
  * Get the smallest node within this node that spans the given range of bytes
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
638
  * or (row, column) positions.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
639
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
640
 TSNode ts_node_descendant_for_byte_range(TSNode self, uint32_t start, uint32_t end);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
641
 TSNode ts_node_descendant_for_point_range(TSNode self, TSPoint start, TSPoint end);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
642
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
643
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
644
  * Get the smallest named node within this node that spans the given range of
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
645
  * bytes or (row, column) positions.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
646
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
647
 TSNode ts_node_named_descendant_for_byte_range(TSNode self, uint32_t start, uint32_t end);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
648
 TSNode ts_node_named_descendant_for_point_range(TSNode self, TSPoint start, TSPoint end);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
649
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
650
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
651
  * Edit the node to keep it in-sync with source code that has been edited.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
652
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
653
  * This function is only rarely needed. When you edit a syntax tree with the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
654
  * [`ts_tree_edit`] function, all of the nodes that you retrieve from the tree
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
655
  * afterward will already reflect the edit. You only need to use [`ts_node_edit`]
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
656
  * when you have a [`TSNode`] instance that you want to keep and continue to use
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
657
  * after an edit.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
658
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
659
 void ts_node_edit(TSNode *self, const TSInputEdit *edit);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
660
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
661
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
662
  * Check if two nodes are identical.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
663
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
664
 bool ts_node_eq(TSNode self, TSNode other);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
665
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
666
 /************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
667
 /* Section - TreeCursor */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
668
 /************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
669
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
670
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
671
  * Create a new tree cursor starting from the given node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
672
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
673
  * A tree cursor allows you to walk a syntax tree more efficiently than is
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
674
  * possible using the [`TSNode`] functions. It is a mutable object that is always
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
675
  * on a certain syntax node, and can be moved imperatively to different nodes.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
676
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
677
 TSTreeCursor ts_tree_cursor_new(TSNode node);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
678
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
679
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
680
  * Delete a tree cursor, freeing all of the memory that it used.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
681
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
682
 void ts_tree_cursor_delete(TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
683
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
684
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
685
  * Re-initialize a tree cursor to start at the original node that the cursor was
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
686
  * constructed with.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
687
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
688
 void ts_tree_cursor_reset(TSTreeCursor *self, TSNode node);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
689
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
690
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
691
  * Re-initialize a tree cursor to the same position as another cursor.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
692
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
693
  * Unlike [`ts_tree_cursor_reset`], this will not lose parent information and
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
694
  * allows reusing already created cursors.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
695
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
696
 void ts_tree_cursor_reset_to(TSTreeCursor *dst, const TSTreeCursor *src);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
697
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
698
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
699
  * Get the tree cursor's current node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
700
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
701
 TSNode ts_tree_cursor_current_node(const TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
702
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
703
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
704
  * Get the field name of the tree cursor's current node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
705
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
706
  * This returns `NULL` if the current node doesn't have a field.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
707
  * See also [`ts_node_child_by_field_name`].
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
708
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
709
 const char *ts_tree_cursor_current_field_name(const TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
710
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
711
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
712
  * Get the field id of the tree cursor's current node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
713
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
714
  * This returns zero if the current node doesn't have a field.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
715
  * See also [`ts_node_child_by_field_id`], [`ts_language_field_id_for_name`].
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
716
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
717
 TSFieldId ts_tree_cursor_current_field_id(const TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
718
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
719
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
720
  * Move the cursor to the parent of its current node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
721
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
722
  * This returns `true` if the cursor successfully moved, and returns `false`
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
723
  * if there was no parent node (the cursor was already on the root node).
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
724
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
725
 bool ts_tree_cursor_goto_parent(TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
726
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
727
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
728
  * Move the cursor to the next sibling of its current node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
729
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
730
  * This returns `true` if the cursor successfully moved, and returns `false`
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
731
  * if there was no next sibling node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
732
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
733
 bool ts_tree_cursor_goto_next_sibling(TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
734
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
735
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
736
  * Move the cursor to the previous sibling of its current node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
737
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
738
  * This returns `true` if the cursor successfully moved, and returns `false` if
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
739
  * there was no previous sibling node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
740
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
741
  * Note, that this function may be slower than
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
742
  * [`ts_tree_cursor_goto_next_sibling`] due to how node positions are stored. In
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
743
  * the worst case, this will need to iterate through all the children upto the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
744
  * previous sibling node to recalculate its position.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
745
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
746
 bool ts_tree_cursor_goto_previous_sibling(TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
747
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
748
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
749
  * Move the cursor to the first child of its current node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
750
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
751
  * This returns `true` if the cursor successfully moved, and returns `false`
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
752
  * if there were no children.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
753
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
754
 bool ts_tree_cursor_goto_first_child(TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
755
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
756
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
757
  * Move the cursor to the last child of its current node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
758
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
759
  * This returns `true` if the cursor successfully moved, and returns `false` if
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
760
  * there were no children.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
761
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
762
  * Note that this function may be slower than [`ts_tree_cursor_goto_first_child`]
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
763
  * because it needs to iterate through all the children to compute the child's
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
764
  * position.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
765
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
766
 bool ts_tree_cursor_goto_last_child(TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
767
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
768
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
769
  * Move the cursor to the node that is the nth descendant of
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
770
  * the original node that the cursor was constructed with, where
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
771
  * zero represents the original node itself.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
772
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
773
 void ts_tree_cursor_goto_descendant(TSTreeCursor *self, uint32_t goal_descendant_index);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
774
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
775
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
776
  * Get the index of the cursor's current node out of all of the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
777
  * descendants of the original node that the cursor was constructed with.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
778
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
779
 uint32_t ts_tree_cursor_current_descendant_index(const TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
780
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
781
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
782
  * Get the depth of the cursor's current node relative to the original
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
783
  * node that the cursor was constructed with.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
784
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
785
 uint32_t ts_tree_cursor_current_depth(const TSTreeCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
786
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
787
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
788
  * Move the cursor to the first child of its current node that extends beyond
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
789
  * the given byte offset or point.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
790
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
791
  * This returns the index of the child node if one was found, and returns -1
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
792
  * if no such child was found.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
793
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
794
 int64_t ts_tree_cursor_goto_first_child_for_byte(TSTreeCursor *self, uint32_t goal_byte);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
795
 int64_t ts_tree_cursor_goto_first_child_for_point(TSTreeCursor *self, TSPoint goal_point);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
796
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
797
 TSTreeCursor ts_tree_cursor_copy(const TSTreeCursor *cursor);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
798
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
799
 /*******************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
800
 /* Section - Query */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
801
 /*******************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
802
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
803
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
804
  * Create a new query from a string containing one or more S-expression
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
805
  * patterns. The query is associated with a particular language, and can
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
806
  * only be run on syntax nodes parsed with that language.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
807
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
808
  * If all of the given patterns are valid, this returns a [`TSQuery`].
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
809
  * If a pattern is invalid, this returns `NULL`, and provides two pieces
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
810
  * of information about the problem:
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
811
  * 1. The byte offset of the error is written to the `error_offset` parameter.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
812
  * 2. The type of error is written to the `error_type` parameter.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
813
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
814
 TSQuery *ts_query_new(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
815
   const TSLanguage *language,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
816
   const char *source,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
817
   uint32_t source_len,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
818
   uint32_t *error_offset,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
819
   TSQueryError *error_type
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
820
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
821
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
822
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
823
  * Delete a query, freeing all of the memory that it used.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
824
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
825
 void ts_query_delete(TSQuery *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
826
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
827
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
828
  * Get the number of patterns, captures, or string literals in the query.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
829
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
830
 uint32_t ts_query_pattern_count(const TSQuery *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
831
 uint32_t ts_query_capture_count(const TSQuery *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
832
 uint32_t ts_query_string_count(const TSQuery *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
833
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
834
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
835
  * Get the byte offset where the given pattern starts in the query's source.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
836
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
837
  * This can be useful when combining queries by concatenating their source
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
838
  * code strings.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
839
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
840
 uint32_t ts_query_start_byte_for_pattern(const TSQuery *self, uint32_t pattern_index);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
841
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
842
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
843
  * Get the byte offset where the given pattern ends in the query's source.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
844
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
845
  * This can be useful when combining queries by concatenating their source
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
846
  * code strings.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
847
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
848
 uint32_t ts_query_end_byte_for_pattern(const TSQuery *self, uint32_t pattern_index);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
849
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
850
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
851
  * Get all of the predicates for the given pattern in the query.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
852
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
853
  * The predicates are represented as a single array of steps. There are three
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
854
  * types of steps in this array, which correspond to the three legal values for
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
855
  * the `type` field:
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
856
  * - `TSQueryPredicateStepTypeCapture` - Steps with this type represent names
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
857
  *    of captures. Their `value_id` can be used with the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
858
  *   [`ts_query_capture_name_for_id`] function to obtain the name of the capture.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
859
  * - `TSQueryPredicateStepTypeString` - Steps with this type represent literal
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
860
  *    strings. Their `value_id` can be used with the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
861
  *    [`ts_query_string_value_for_id`] function to obtain their string value.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
862
  * - `TSQueryPredicateStepTypeDone` - Steps with this type are *sentinels*
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
863
  *    that represent the end of an individual predicate. If a pattern has two
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
864
  *    predicates, then there will be two steps with this `type` in the array.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
865
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
866
 const TSQueryPredicateStep *ts_query_predicates_for_pattern(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
867
   const TSQuery *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
868
   uint32_t pattern_index,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
869
   uint32_t *step_count
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
870
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
871
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
872
 /*
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
873
  * Check if the given pattern in the query has a single root node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
874
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
875
 bool ts_query_is_pattern_rooted(const TSQuery *self, uint32_t pattern_index);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
876
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
877
 /*
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
878
  * Check if the given pattern in the query is 'non local'.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
879
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
880
  * A non-local pattern has multiple root nodes and can match within a
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
881
  * repeating sequence of nodes, as specified by the grammar. Non-local
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
882
  * patterns disable certain optimizations that would otherwise be possible
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
883
  * when executing a query on a specific range of a syntax tree.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
884
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
885
 bool ts_query_is_pattern_non_local(const TSQuery *self, uint32_t pattern_index);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
886
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
887
 /*
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
888
  * Check if a given pattern is guaranteed to match once a given step is reached.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
889
  * The step is specified by its byte offset in the query's source code.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
890
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
891
 bool ts_query_is_pattern_guaranteed_at_step(const TSQuery *self, uint32_t byte_offset);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
892
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
893
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
894
  * Get the name and length of one of the query's captures, or one of the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
895
  * query's string literals. Each capture and string is associated with a
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
896
  * numeric id based on the order that it appeared in the query's source.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
897
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
898
 const char *ts_query_capture_name_for_id(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
899
   const TSQuery *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
900
   uint32_t index,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
901
   uint32_t *length
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
902
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
903
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
904
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
905
  * Get the quantifier of the query's captures. Each capture is * associated
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
906
  * with a numeric id based on the order that it appeared in the query's source.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
907
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
908
 TSQuantifier ts_query_capture_quantifier_for_id(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
909
   const TSQuery *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
910
   uint32_t pattern_index,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
911
   uint32_t capture_index
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
912
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
913
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
914
 const char *ts_query_string_value_for_id(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
915
   const TSQuery *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
916
   uint32_t index,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
917
   uint32_t *length
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
918
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
919
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
920
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
921
  * Disable a certain capture within a query.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
922
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
923
  * This prevents the capture from being returned in matches, and also avoids
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
924
  * any resource usage associated with recording the capture. Currently, there
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
925
  * is no way to undo this.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
926
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
927
 void ts_query_disable_capture(TSQuery *self, const char *name, uint32_t length);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
928
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
929
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
930
  * Disable a certain pattern within a query.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
931
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
932
  * This prevents the pattern from matching and removes most of the overhead
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
933
  * associated with the pattern. Currently, there is no way to undo this.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
934
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
935
 void ts_query_disable_pattern(TSQuery *self, uint32_t pattern_index);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
936
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
937
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
938
  * Create a new cursor for executing a given query.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
939
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
940
  * The cursor stores the state that is needed to iteratively search
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
941
  * for matches. To use the query cursor, first call [`ts_query_cursor_exec`]
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
942
  * to start running a given query on a given syntax node. Then, there are
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
943
  * two options for consuming the results of the query:
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
944
  * 1. Repeatedly call [`ts_query_cursor_next_match`] to iterate over all of the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
945
  *    *matches* in the order that they were found. Each match contains the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
946
  *    index of the pattern that matched, and an array of captures. Because
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
947
  *    multiple patterns can match the same set of nodes, one match may contain
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
948
  *    captures that appear *before* some of the captures from a previous match.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
949
  * 2. Repeatedly call [`ts_query_cursor_next_capture`] to iterate over all of the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
950
  *    individual *captures* in the order that they appear. This is useful if
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
951
  *    don't care about which pattern matched, and just want a single ordered
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
952
  *    sequence of captures.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
953
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
954
  * If you don't care about consuming all of the results, you can stop calling
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
955
  * [`ts_query_cursor_next_match`] or [`ts_query_cursor_next_capture`] at any point.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
956
  *  You can then start executing another query on another node by calling
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
957
  *  [`ts_query_cursor_exec`] again.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
958
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
959
 TSQueryCursor *ts_query_cursor_new(void);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
960
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
961
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
962
  * Delete a query cursor, freeing all of the memory that it used.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
963
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
964
 void ts_query_cursor_delete(TSQueryCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
965
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
966
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
967
  * Start running a given query on a given node.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
968
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
969
 void ts_query_cursor_exec(TSQueryCursor *self, const TSQuery *query, TSNode node);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
970
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
971
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
972
  * Manage the maximum number of in-progress matches allowed by this query
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
973
  * cursor.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
974
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
975
  * Query cursors have an optional maximum capacity for storing lists of
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
976
  * in-progress captures. If this capacity is exceeded, then the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
977
  * earliest-starting match will silently be dropped to make room for further
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
978
  * matches. This maximum capacity is optional — by default, query cursors allow
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
979
  * any number of pending matches, dynamically allocating new space for them as
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
980
  * needed as the query is executed.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
981
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
982
 bool ts_query_cursor_did_exceed_match_limit(const TSQueryCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
983
 uint32_t ts_query_cursor_match_limit(const TSQueryCursor *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
984
 void ts_query_cursor_set_match_limit(TSQueryCursor *self, uint32_t limit);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
985
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
986
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
987
  * Set the range of bytes or (row, column) positions in which the query
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
988
  * will be executed.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
989
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
990
 void ts_query_cursor_set_byte_range(TSQueryCursor *self, uint32_t start_byte, uint32_t end_byte);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
991
 void ts_query_cursor_set_point_range(TSQueryCursor *self, TSPoint start_point, TSPoint end_point);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
992
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
993
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
994
  * Advance to the next match of the currently running query.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
995
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
996
  * If there is a match, write it to `*match` and return `true`.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
997
  * Otherwise, return `false`.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
998
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
999
 bool ts_query_cursor_next_match(TSQueryCursor *self, TSQueryMatch *match);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1000
 void ts_query_cursor_remove_match(TSQueryCursor *self, uint32_t match_id);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1001
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1002
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1003
  * Advance to the next capture of the currently running query.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1004
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1005
  * If there is a capture, write its match to `*match` and its index within
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1006
  * the matche's capture list to `*capture_index`. Otherwise, return `false`.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1007
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1008
 bool ts_query_cursor_next_capture(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1009
   TSQueryCursor *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1010
   TSQueryMatch *match,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1011
   uint32_t *capture_index
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1012
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1013
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1014
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1015
  * Set the maximum start depth for a query cursor.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1016
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1017
  * This prevents cursors from exploring children nodes at a certain depth.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1018
  * Note if a pattern includes many children, then they will still be checked.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1019
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1020
  * The zero max start depth value can be used as a special behavior and
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1021
  * it helps to destructure a subtree by staying on a node and using captures
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1022
  * for interested parts. Note that the zero max start depth only limit a search
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1023
  * depth for a pattern's root node but other nodes that are parts of the pattern
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1024
  * may be searched at any depth what defined by the pattern structure.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1025
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1026
  * Set to `UINT32_MAX` to remove the maximum start depth.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1027
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1028
 void ts_query_cursor_set_max_start_depth(TSQueryCursor *self, uint32_t max_start_depth);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1029
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1030
 /**********************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1031
 /* Section - Language */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1032
 /**********************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1033
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1034
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1035
  * Get another reference to the given language.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1036
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1037
 const TSLanguage *ts_language_copy(const TSLanguage *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1038
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1039
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1040
  * Free any dynamically-allocated resources for this language, if
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1041
  * this is the last reference.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1042
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1043
 void ts_language_delete(const TSLanguage *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1044
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1045
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1046
  * Get the number of distinct node types in the language.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1047
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1048
 uint32_t ts_language_symbol_count(const TSLanguage *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1049
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1050
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1051
  * Get the number of valid states in this language.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1052
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1053
 uint32_t ts_language_state_count(const TSLanguage *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1054
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1055
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1056
  * Get a node type string for the given numerical id.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1057
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1058
 const char *ts_language_symbol_name(const TSLanguage *self, TSSymbol symbol);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1059
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1060
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1061
  * Get the numerical id for the given node type string.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1062
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1063
 TSSymbol ts_language_symbol_for_name(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1064
   const TSLanguage *self,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1065
   const char *string,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1066
   uint32_t length,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1067
   bool is_named
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1068
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1069
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1070
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1071
  * Get the number of distinct field names in the language.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1072
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1073
 uint32_t ts_language_field_count(const TSLanguage *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1074
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1075
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1076
  * Get the field name string for the given numerical id.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1077
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1078
 const char *ts_language_field_name_for_id(const TSLanguage *self, TSFieldId id);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1079
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1080
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1081
  * Get the numerical id for the given field name string.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1082
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1083
 TSFieldId ts_language_field_id_for_name(const TSLanguage *self, const char *name, uint32_t name_length);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1084
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1085
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1086
  * Check whether the given node type id belongs to named nodes, anonymous nodes,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1087
  * or a hidden nodes.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1088
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1089
  * See also [`ts_node_is_named`]. Hidden nodes are never returned from the API.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1090
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1091
 TSSymbolType ts_language_symbol_type(const TSLanguage *self, TSSymbol symbol);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1092
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1093
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1094
  * Get the ABI version number for this language. This version number is used
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1095
  * to ensure that languages were generated by a compatible version of
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1096
  * Tree-sitter.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1097
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1098
  * See also [`ts_parser_set_language`].
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1099
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1100
 uint32_t ts_language_version(const TSLanguage *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1101
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1102
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1103
  * Get the next parse state. Combine this with lookahead iterators to generate
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1104
  * completion suggestions or valid symbols in error nodes. Use
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1105
  * [`ts_node_grammar_symbol`] for valid symbols.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1106
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1107
 TSStateId ts_language_next_state(const TSLanguage *self, TSStateId state, TSSymbol symbol);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1108
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1109
 /********************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1110
 /* Section - Lookahead Iterator */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1111
 /********************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1112
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1113
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1114
  * Create a new lookahead iterator for the given language and parse state.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1115
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1116
  * This returns `NULL` if state is invalid for the language.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1117
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1118
  * Repeatedly using [`ts_lookahead_iterator_next`] and
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1119
  * [`ts_lookahead_iterator_current_symbol`] will generate valid symbols in the
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1120
  * given parse state. Newly created lookahead iterators will contain the `ERROR`
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1121
  * symbol.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1122
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1123
  * Lookahead iterators can be useful to generate suggestions and improve syntax
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1124
  * error diagnostics. To get symbols valid in an ERROR node, use the lookahead
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1125
  * iterator on its first leaf node state. For `MISSING` nodes, a lookahead
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1126
  * iterator created on the previous non-extra leaf node may be appropriate.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1127
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1128
 TSLookaheadIterator *ts_lookahead_iterator_new(const TSLanguage *self, TSStateId state);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1129
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1130
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1131
  * Delete a lookahead iterator freeing all the memory used.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1132
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1133
 void ts_lookahead_iterator_delete(TSLookaheadIterator *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1134
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1135
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1136
  * Reset the lookahead iterator to another state.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1137
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1138
  * This returns `true` if the iterator was reset to the given state and `false`
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1139
  * otherwise.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1140
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1141
 bool ts_lookahead_iterator_reset_state(TSLookaheadIterator *self, TSStateId state);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1142
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1143
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1144
  * Reset the lookahead iterator.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1145
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1146
  * This returns `true` if the language was set successfully and `false`
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1147
  * otherwise.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1148
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1149
 bool ts_lookahead_iterator_reset(TSLookaheadIterator *self, const TSLanguage *language, TSStateId state);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1150
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1151
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1152
  * Get the current language of the lookahead iterator.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1153
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1154
 const TSLanguage *ts_lookahead_iterator_language(const TSLookaheadIterator *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1155
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1156
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1157
  * Advance the lookahead iterator to the next symbol.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1158
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1159
  * This returns `true` if there is a new symbol and `false` otherwise.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1160
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1161
 bool ts_lookahead_iterator_next(TSLookaheadIterator *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1162
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1163
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1164
  * Get the current symbol of the lookahead iterator;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1165
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1166
 TSSymbol ts_lookahead_iterator_current_symbol(const TSLookaheadIterator *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1167
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1168
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1169
  * Get the current symbol type of the lookahead iterator as a null terminated
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1170
  * string.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1171
 */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1172
 const char *ts_lookahead_iterator_current_symbol_name(const TSLookaheadIterator *self);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1173
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1174
 /*************************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1175
 /* Section - WebAssembly Integration */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1176
 /************************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1177
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1178
 typedef struct wasm_engine_t TSWasmEngine;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1179
 typedef struct TSWasmStore TSWasmStore;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1180
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1181
 typedef enum {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1182
   TSWasmErrorKindNone = 0,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1183
   TSWasmErrorKindParse,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1184
   TSWasmErrorKindCompile,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1185
   TSWasmErrorKindInstantiate,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1186
   TSWasmErrorKindAllocate,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1187
 } TSWasmErrorKind;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1188
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1189
 typedef struct {
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1190
   TSWasmErrorKind kind;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1191
   char *message;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1192
 } TSWasmError;
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1193
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1194
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1195
  * Create a Wasm store.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1196
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1197
 TSWasmStore *ts_wasm_store_new(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1198
   TSWasmEngine *engine,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1199
   TSWasmError *error
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1200
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1201
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1202
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1203
  * Free the memory associated with the given Wasm store.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1204
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1205
 void ts_wasm_store_delete(TSWasmStore *);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1206
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1207
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1208
  * Create a language from a buffer of Wasm. The resulting language behaves
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1209
  * like any other Tree-sitter language, except that in order to use it with
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1210
  * a parser, that parser must have a Wasm store. Note that the language
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1211
  * can be used with any Wasm store, it doesn't need to be the same store that
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1212
  * was used to originally load it.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1213
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1214
 const TSLanguage *ts_wasm_store_load_language(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1215
   TSWasmStore *,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1216
   const char *name,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1217
   const char *wasm,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1218
   uint32_t wasm_len,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1219
   TSWasmError *error
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1220
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1221
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1222
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1223
  * Get the number of languages instantiated in the given wasm store.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1224
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1225
 size_t ts_wasm_store_language_count(const TSWasmStore *);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1226
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1227
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1228
  * Check if the language came from a Wasm module. If so, then in order to use
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1229
  * this language with a Parser, that parser must have a Wasm store assigned.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1230
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1231
 bool ts_language_is_wasm(const TSLanguage *);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1232
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1233
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1234
  * Assign the given Wasm store to the parser. A parser must have a Wasm store
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1235
  * in order to use Wasm languages.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1236
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1237
 void ts_parser_set_wasm_store(TSParser *, TSWasmStore *);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1238
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1239
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1240
  * Remove the parser's current Wasm store and return it. This returns NULL if
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1241
  * the parser doesn't have a Wasm store.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1242
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1243
 TSWasmStore *ts_parser_take_wasm_store(TSParser *);
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1244
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1245
 /**********************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1246
 /* Section - Global Configuration */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1247
 /**********************************/
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1248
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1249
 /**
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1250
  * Set the allocation functions used by the library.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1251
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1252
  * By default, Tree-sitter uses the standard libc allocation functions,
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1253
  * but aborts the process when an allocation fails. This function lets
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1254
  * you supply alternative allocation functions at runtime.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1255
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1256
  * If you pass `NULL` for any parameter, Tree-sitter will switch back to
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1257
  * its default implementation of that function.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1258
  *
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1259
  * If you call this function after the library has already been used, then
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1260
  * you must ensure that either:
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1261
  *  1. All the existing objects have been freed.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1262
  *  2. The new allocator shares its state with the old one, so it is capable
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1263
  *     of freeing memory that was allocated by the old allocator.
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1264
  */
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1265
 void ts_set_allocator(
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1266
   void *(*new_malloc)(size_t),
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1267
         void *(*new_calloc)(size_t, size_t),
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1268
         void *(*new_realloc)(void *, size_t),
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1269
         void (*new_free)(void *)
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1270
 );
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1271
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1272
 #ifdef __cplusplus
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1273
 }
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1274
 #endif
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1275
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1276
 #ifndef TREE_SITTER_HIDE_SYMBOLS
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1277
 #if defined(__GNUC__) || defined(__clang__)
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1278
 #pragma GCC visibility pop
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1279
 #endif
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1280
 #endif
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1281
 
38e9c3be2392 prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1282
 #endif  // TREE_SITTER_API_H_