tree-sitter-raml 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/NOTICE +18 -0
- package/README.md +16 -0
- package/binding.gyp +30 -0
- package/bindings/node/binding.cc +20 -0
- package/bindings/node/binding_test.js +16 -0
- package/bindings/node/index.d.ts +60 -0
- package/bindings/node/index.js +37 -0
- package/grammar.js +742 -0
- package/package.json +64 -0
- package/queries/highlights.scm +79 -0
- package/src/grammar.json +7056 -0
- package/src/node-types.json +552 -0
- package/src/parser.c +41392 -0
- package/src/scanner.c +1416 -0
- package/src/schema.core.c +204 -0
- package/src/schema.json.c +106 -0
- package/src/schema.legacy.c +517 -0
- package/src/tree_sitter/alloc.h +54 -0
- package/src/tree_sitter/array.h +336 -0
- package/src/tree_sitter/parser.h +286 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
#include <stdint.h>
|
|
2
|
+
|
|
3
|
+
#include <stdlib.h>
|
|
4
|
+
|
|
5
|
+
#define SCH_STT_FRZ -1
|
|
6
|
+
|
|
7
|
+
#define HAS_TIMESTAMP 0
|
|
8
|
+
|
|
9
|
+
typedef enum {
|
|
10
|
+
RS_STR,
|
|
11
|
+
RS_INT,
|
|
12
|
+
RS_NULL,
|
|
13
|
+
RS_BOOL,
|
|
14
|
+
RS_FLOAT,
|
|
15
|
+
} ResultSchema;
|
|
16
|
+
|
|
17
|
+
static int8_t adv_sch_stt(int8_t sch_stt, int32_t cur_chr, ResultSchema *rlt_sch) {
|
|
18
|
+
switch (sch_stt) {
|
|
19
|
+
case SCH_STT_FRZ:
|
|
20
|
+
break;
|
|
21
|
+
case 0:
|
|
22
|
+
if (cur_chr == '.') {*rlt_sch = RS_STR; return 6;}
|
|
23
|
+
if (cur_chr == '0') {*rlt_sch = RS_INT; return 37;}
|
|
24
|
+
if (cur_chr == 'F') {*rlt_sch = RS_STR; return 2;}
|
|
25
|
+
if (cur_chr == 'N') {*rlt_sch = RS_STR; return 16;}
|
|
26
|
+
if (cur_chr == 'T') {*rlt_sch = RS_STR; return 13;}
|
|
27
|
+
if (cur_chr == 'f') {*rlt_sch = RS_STR; return 17;}
|
|
28
|
+
if (cur_chr == 'n') {*rlt_sch = RS_STR; return 29;}
|
|
29
|
+
if (cur_chr == 't') {*rlt_sch = RS_STR; return 26;}
|
|
30
|
+
if (cur_chr == '~') {*rlt_sch = RS_NULL; return 35;}
|
|
31
|
+
if (cur_chr == '+') {*rlt_sch = RS_STR; return 1;}
|
|
32
|
+
if (cur_chr == '-') {*rlt_sch = RS_STR; return 1;}
|
|
33
|
+
if (('1' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_INT; return 38;}
|
|
34
|
+
break;
|
|
35
|
+
case 1:
|
|
36
|
+
if (cur_chr == '.') {*rlt_sch = RS_STR; return 7;}
|
|
37
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_INT; return 38;}
|
|
38
|
+
break;
|
|
39
|
+
case 2:
|
|
40
|
+
if (cur_chr == 'A') {*rlt_sch = RS_STR; return 9;}
|
|
41
|
+
if (cur_chr == 'a') {*rlt_sch = RS_STR; return 22;}
|
|
42
|
+
break;
|
|
43
|
+
case 3:
|
|
44
|
+
if (cur_chr == 'A') {*rlt_sch = RS_STR; return 12;}
|
|
45
|
+
if (cur_chr == 'a') {*rlt_sch = RS_STR; return 12;}
|
|
46
|
+
break;
|
|
47
|
+
case 4:
|
|
48
|
+
if (cur_chr == 'E') {*rlt_sch = RS_BOOL; return 36;}
|
|
49
|
+
break;
|
|
50
|
+
case 5:
|
|
51
|
+
if (cur_chr == 'F') {*rlt_sch = RS_FLOAT; return 41;}
|
|
52
|
+
break;
|
|
53
|
+
case 6:
|
|
54
|
+
if (cur_chr == 'I') {*rlt_sch = RS_STR; return 11;}
|
|
55
|
+
if (cur_chr == 'N') {*rlt_sch = RS_STR; return 3;}
|
|
56
|
+
if (cur_chr == 'i') {*rlt_sch = RS_STR; return 24;}
|
|
57
|
+
if (cur_chr == 'n') {*rlt_sch = RS_STR; return 18;}
|
|
58
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 42;}
|
|
59
|
+
break;
|
|
60
|
+
case 7:
|
|
61
|
+
if (cur_chr == 'I') {*rlt_sch = RS_STR; return 11;}
|
|
62
|
+
if (cur_chr == 'i') {*rlt_sch = RS_STR; return 24;}
|
|
63
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 42;}
|
|
64
|
+
break;
|
|
65
|
+
case 8:
|
|
66
|
+
if (cur_chr == 'L') {*rlt_sch = RS_NULL; return 35;}
|
|
67
|
+
break;
|
|
68
|
+
case 9:
|
|
69
|
+
if (cur_chr == 'L') {*rlt_sch = RS_STR; return 14;}
|
|
70
|
+
break;
|
|
71
|
+
case 10:
|
|
72
|
+
if (cur_chr == 'L') {*rlt_sch = RS_STR; return 8;}
|
|
73
|
+
break;
|
|
74
|
+
case 11:
|
|
75
|
+
if (cur_chr == 'N') {*rlt_sch = RS_STR; return 5;}
|
|
76
|
+
if (cur_chr == 'n') {*rlt_sch = RS_STR; return 20;}
|
|
77
|
+
break;
|
|
78
|
+
case 12:
|
|
79
|
+
if (cur_chr == 'N') {*rlt_sch = RS_FLOAT; return 41;}
|
|
80
|
+
break;
|
|
81
|
+
case 13:
|
|
82
|
+
if (cur_chr == 'R') {*rlt_sch = RS_STR; return 15;}
|
|
83
|
+
if (cur_chr == 'r') {*rlt_sch = RS_STR; return 28;}
|
|
84
|
+
break;
|
|
85
|
+
case 14:
|
|
86
|
+
if (cur_chr == 'S') {*rlt_sch = RS_STR; return 4;}
|
|
87
|
+
break;
|
|
88
|
+
case 15:
|
|
89
|
+
if (cur_chr == 'U') {*rlt_sch = RS_STR; return 4;}
|
|
90
|
+
break;
|
|
91
|
+
case 16:
|
|
92
|
+
if (cur_chr == 'U') {*rlt_sch = RS_STR; return 10;}
|
|
93
|
+
if (cur_chr == 'u') {*rlt_sch = RS_STR; return 23;}
|
|
94
|
+
break;
|
|
95
|
+
case 17:
|
|
96
|
+
if (cur_chr == 'a') {*rlt_sch = RS_STR; return 22;}
|
|
97
|
+
break;
|
|
98
|
+
case 18:
|
|
99
|
+
if (cur_chr == 'a') {*rlt_sch = RS_STR; return 25;}
|
|
100
|
+
break;
|
|
101
|
+
case 19:
|
|
102
|
+
if (cur_chr == 'e') {*rlt_sch = RS_BOOL; return 36;}
|
|
103
|
+
break;
|
|
104
|
+
case 20:
|
|
105
|
+
if (cur_chr == 'f') {*rlt_sch = RS_FLOAT; return 41;}
|
|
106
|
+
break;
|
|
107
|
+
case 21:
|
|
108
|
+
if (cur_chr == 'l') {*rlt_sch = RS_NULL; return 35;}
|
|
109
|
+
break;
|
|
110
|
+
case 22:
|
|
111
|
+
if (cur_chr == 'l') {*rlt_sch = RS_STR; return 27;}
|
|
112
|
+
break;
|
|
113
|
+
case 23:
|
|
114
|
+
if (cur_chr == 'l') {*rlt_sch = RS_STR; return 21;}
|
|
115
|
+
break;
|
|
116
|
+
case 24:
|
|
117
|
+
if (cur_chr == 'n') {*rlt_sch = RS_STR; return 20;}
|
|
118
|
+
break;
|
|
119
|
+
case 25:
|
|
120
|
+
if (cur_chr == 'n') {*rlt_sch = RS_FLOAT; return 41;}
|
|
121
|
+
break;
|
|
122
|
+
case 26:
|
|
123
|
+
if (cur_chr == 'r') {*rlt_sch = RS_STR; return 28;}
|
|
124
|
+
break;
|
|
125
|
+
case 27:
|
|
126
|
+
if (cur_chr == 's') {*rlt_sch = RS_STR; return 19;}
|
|
127
|
+
break;
|
|
128
|
+
case 28:
|
|
129
|
+
if (cur_chr == 'u') {*rlt_sch = RS_STR; return 19;}
|
|
130
|
+
break;
|
|
131
|
+
case 29:
|
|
132
|
+
if (cur_chr == 'u') {*rlt_sch = RS_STR; return 23;}
|
|
133
|
+
break;
|
|
134
|
+
case 30:
|
|
135
|
+
if (cur_chr == '+' ||
|
|
136
|
+
cur_chr == '-') {*rlt_sch = RS_STR; return 32;}
|
|
137
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 43;}
|
|
138
|
+
break;
|
|
139
|
+
case 31:
|
|
140
|
+
if (('0' <= cur_chr && cur_chr <= '7')) {*rlt_sch = RS_INT; return 39;}
|
|
141
|
+
break;
|
|
142
|
+
case 32:
|
|
143
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 43;}
|
|
144
|
+
break;
|
|
145
|
+
case 33:
|
|
146
|
+
if (('0' <= cur_chr && cur_chr <= '9') ||
|
|
147
|
+
('A' <= cur_chr && cur_chr <= 'F') ||
|
|
148
|
+
('a' <= cur_chr && cur_chr <= 'f')) {*rlt_sch = RS_INT; return 40;}
|
|
149
|
+
break;
|
|
150
|
+
case 34:
|
|
151
|
+
abort();
|
|
152
|
+
break;
|
|
153
|
+
case 35:
|
|
154
|
+
*rlt_sch = RS_NULL;
|
|
155
|
+
break;
|
|
156
|
+
case 36:
|
|
157
|
+
*rlt_sch = RS_BOOL;
|
|
158
|
+
break;
|
|
159
|
+
case 37:
|
|
160
|
+
*rlt_sch = RS_INT;
|
|
161
|
+
if (cur_chr == '.') {*rlt_sch = RS_FLOAT; return 42;}
|
|
162
|
+
if (cur_chr == 'o') {*rlt_sch = RS_STR; return 31;}
|
|
163
|
+
if (cur_chr == 'x') {*rlt_sch = RS_STR; return 33;}
|
|
164
|
+
if (cur_chr == 'E' ||
|
|
165
|
+
cur_chr == 'e') {*rlt_sch = RS_STR; return 30;}
|
|
166
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_INT; return 38;}
|
|
167
|
+
break;
|
|
168
|
+
case 38:
|
|
169
|
+
*rlt_sch = RS_INT;
|
|
170
|
+
if (cur_chr == '.') {*rlt_sch = RS_FLOAT; return 42;}
|
|
171
|
+
if (cur_chr == 'E' ||
|
|
172
|
+
cur_chr == 'e') {*rlt_sch = RS_STR; return 30;}
|
|
173
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_INT; return 38;}
|
|
174
|
+
break;
|
|
175
|
+
case 39:
|
|
176
|
+
*rlt_sch = RS_INT;
|
|
177
|
+
if (('0' <= cur_chr && cur_chr <= '7')) {*rlt_sch = RS_INT; return 39;}
|
|
178
|
+
break;
|
|
179
|
+
case 40:
|
|
180
|
+
*rlt_sch = RS_INT;
|
|
181
|
+
if (('0' <= cur_chr && cur_chr <= '9') ||
|
|
182
|
+
('A' <= cur_chr && cur_chr <= 'F') ||
|
|
183
|
+
('a' <= cur_chr && cur_chr <= 'f')) {*rlt_sch = RS_INT; return 40;}
|
|
184
|
+
break;
|
|
185
|
+
case 41:
|
|
186
|
+
*rlt_sch = RS_FLOAT;
|
|
187
|
+
break;
|
|
188
|
+
case 42:
|
|
189
|
+
*rlt_sch = RS_FLOAT;
|
|
190
|
+
if (cur_chr == 'E' ||
|
|
191
|
+
cur_chr == 'e') {*rlt_sch = RS_STR; return 30;}
|
|
192
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 42;}
|
|
193
|
+
break;
|
|
194
|
+
case 43:
|
|
195
|
+
*rlt_sch = RS_FLOAT;
|
|
196
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 43;}
|
|
197
|
+
break;
|
|
198
|
+
default:
|
|
199
|
+
*rlt_sch = RS_STR;
|
|
200
|
+
return SCH_STT_FRZ;
|
|
201
|
+
}
|
|
202
|
+
if (cur_chr != '\r' && cur_chr != '\n' && cur_chr != ' ' && cur_chr != 0) *rlt_sch = RS_STR;
|
|
203
|
+
return SCH_STT_FRZ;
|
|
204
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
#include <stdint.h>
|
|
2
|
+
|
|
3
|
+
#include <stdlib.h>
|
|
4
|
+
|
|
5
|
+
#define SCH_STT_FRZ -1
|
|
6
|
+
|
|
7
|
+
#define HAS_TIMESTAMP 0
|
|
8
|
+
|
|
9
|
+
typedef enum {
|
|
10
|
+
RS_STR,
|
|
11
|
+
RS_INT,
|
|
12
|
+
RS_BOOL,
|
|
13
|
+
RS_NULL,
|
|
14
|
+
RS_FLOAT,
|
|
15
|
+
} ResultSchema;
|
|
16
|
+
|
|
17
|
+
static int8_t adv_sch_stt(int8_t sch_stt, int32_t cur_chr, ResultSchema *rlt_sch) {
|
|
18
|
+
switch (sch_stt) {
|
|
19
|
+
case SCH_STT_FRZ:
|
|
20
|
+
break;
|
|
21
|
+
case 0:
|
|
22
|
+
if (cur_chr == '-') {*rlt_sch = RS_STR; return 1;}
|
|
23
|
+
if (cur_chr == '0') {*rlt_sch = RS_INT; return 16;}
|
|
24
|
+
if (cur_chr == 'f') {*rlt_sch = RS_STR; return 2;}
|
|
25
|
+
if (cur_chr == 'n') {*rlt_sch = RS_STR; return 10;}
|
|
26
|
+
if (cur_chr == 't') {*rlt_sch = RS_STR; return 7;}
|
|
27
|
+
if (('1' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_INT; return 17;}
|
|
28
|
+
break;
|
|
29
|
+
case 1:
|
|
30
|
+
if (cur_chr == '0') {*rlt_sch = RS_INT; return 16;}
|
|
31
|
+
if (('1' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_INT; return 17;}
|
|
32
|
+
break;
|
|
33
|
+
case 2:
|
|
34
|
+
if (cur_chr == 'a') {*rlt_sch = RS_STR; return 4;}
|
|
35
|
+
break;
|
|
36
|
+
case 3:
|
|
37
|
+
if (cur_chr == 'e') {*rlt_sch = RS_BOOL; return 15;}
|
|
38
|
+
break;
|
|
39
|
+
case 4:
|
|
40
|
+
if (cur_chr == 'l') {*rlt_sch = RS_STR; return 8;}
|
|
41
|
+
break;
|
|
42
|
+
case 5:
|
|
43
|
+
if (cur_chr == 'l') {*rlt_sch = RS_NULL; return 14;}
|
|
44
|
+
break;
|
|
45
|
+
case 6:
|
|
46
|
+
if (cur_chr == 'l') {*rlt_sch = RS_STR; return 5;}
|
|
47
|
+
break;
|
|
48
|
+
case 7:
|
|
49
|
+
if (cur_chr == 'r') {*rlt_sch = RS_STR; return 9;}
|
|
50
|
+
break;
|
|
51
|
+
case 8:
|
|
52
|
+
if (cur_chr == 's') {*rlt_sch = RS_STR; return 3;}
|
|
53
|
+
break;
|
|
54
|
+
case 9:
|
|
55
|
+
if (cur_chr == 'u') {*rlt_sch = RS_STR; return 3;}
|
|
56
|
+
break;
|
|
57
|
+
case 10:
|
|
58
|
+
if (cur_chr == 'u') {*rlt_sch = RS_STR; return 6;}
|
|
59
|
+
break;
|
|
60
|
+
case 11:
|
|
61
|
+
if (cur_chr == '+' ||
|
|
62
|
+
cur_chr == '-') {*rlt_sch = RS_STR; return 12;}
|
|
63
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 19;}
|
|
64
|
+
break;
|
|
65
|
+
case 12:
|
|
66
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 19;}
|
|
67
|
+
break;
|
|
68
|
+
case 13:
|
|
69
|
+
abort();
|
|
70
|
+
break;
|
|
71
|
+
case 14:
|
|
72
|
+
*rlt_sch = RS_NULL;
|
|
73
|
+
break;
|
|
74
|
+
case 15:
|
|
75
|
+
*rlt_sch = RS_BOOL;
|
|
76
|
+
break;
|
|
77
|
+
case 16:
|
|
78
|
+
*rlt_sch = RS_INT;
|
|
79
|
+
if (cur_chr == '.') {*rlt_sch = RS_FLOAT; return 18;}
|
|
80
|
+
if (cur_chr == 'E' ||
|
|
81
|
+
cur_chr == 'e') {*rlt_sch = RS_STR; return 11;}
|
|
82
|
+
break;
|
|
83
|
+
case 17:
|
|
84
|
+
*rlt_sch = RS_INT;
|
|
85
|
+
if (cur_chr == '.') {*rlt_sch = RS_FLOAT; return 18;}
|
|
86
|
+
if (cur_chr == 'E' ||
|
|
87
|
+
cur_chr == 'e') {*rlt_sch = RS_STR; return 11;}
|
|
88
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_INT; return 17;}
|
|
89
|
+
break;
|
|
90
|
+
case 18:
|
|
91
|
+
*rlt_sch = RS_FLOAT;
|
|
92
|
+
if (cur_chr == 'E' ||
|
|
93
|
+
cur_chr == 'e') {*rlt_sch = RS_STR; return 11;}
|
|
94
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 18;}
|
|
95
|
+
break;
|
|
96
|
+
case 19:
|
|
97
|
+
*rlt_sch = RS_FLOAT;
|
|
98
|
+
if (('0' <= cur_chr && cur_chr <= '9')) {*rlt_sch = RS_FLOAT; return 19;}
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
*rlt_sch = RS_STR;
|
|
102
|
+
return SCH_STT_FRZ;
|
|
103
|
+
}
|
|
104
|
+
if (cur_chr != '\r' && cur_chr != '\n' && cur_chr != ' ' && cur_chr != 0) *rlt_sch = RS_STR;
|
|
105
|
+
return SCH_STT_FRZ;
|
|
106
|
+
}
|