tree-sitter-ucode 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.
@@ -0,0 +1,707 @@
1
+ /* Automatically @generated by tree-sitter */
2
+
3
+ #include "tree_sitter/parser.h"
4
+
5
+ #if defined(__GNUC__) || defined(__clang__)
6
+ #pragma GCC diagnostic ignored "-Wmissing-field-initializers"
7
+ #endif
8
+
9
+ #define LANGUAGE_VERSION 15
10
+ #define STATE_COUNT 17
11
+ #define LARGE_STATE_COUNT 4
12
+ #define SYMBOL_COUNT 23
13
+ #define ALIAS_COUNT 0
14
+ #define TOKEN_COUNT 18
15
+ #define EXTERNAL_TOKEN_COUNT 4
16
+ #define FIELD_COUNT 4
17
+ #define MAX_ALIAS_SEQUENCE_LENGTH 3
18
+ #define MAX_RESERVED_WORD_SET_SIZE 0
19
+ #define PRODUCTION_ID_COUNT 4
20
+ #define SUPERTYPE_COUNT 0
21
+
22
+ enum ts_symbol_identifiers {
23
+ anon_sym_LBRACE_PERCENT_DASH = 1,
24
+ anon_sym_LBRACE_PERCENT_PLUS = 2,
25
+ anon_sym_LBRACE_PERCENT = 3,
26
+ anon_sym_DASH_PERCENT_RBRACE = 4,
27
+ anon_sym_PERCENT_RBRACE = 5,
28
+ anon_sym_LBRACE_LBRACE_DASH = 6,
29
+ anon_sym_LBRACE_LBRACE = 7,
30
+ anon_sym_DASH_RBRACE_RBRACE = 8,
31
+ anon_sym_RBRACE_RBRACE = 9,
32
+ anon_sym_LBRACE_POUND_DASH = 10,
33
+ anon_sym_LBRACE_POUND = 11,
34
+ anon_sym_DASH_POUND_RBRACE = 12,
35
+ anon_sym_POUND_RBRACE = 13,
36
+ sym__raw_text = 14,
37
+ sym__stmt_code = 15,
38
+ sym__expr_code = 16,
39
+ sym__comment_body = 17,
40
+ sym_document = 18,
41
+ sym_statement_tag = 19,
42
+ sym_expression_tag = 20,
43
+ sym_comment_tag = 21,
44
+ aux_sym_document_repeat1 = 22,
45
+ };
46
+
47
+ static const char * const ts_symbol_names[] = {
48
+ [ts_builtin_sym_end] = "end",
49
+ [anon_sym_LBRACE_PERCENT_DASH] = "{%-",
50
+ [anon_sym_LBRACE_PERCENT_PLUS] = "{%+",
51
+ [anon_sym_LBRACE_PERCENT] = "{%",
52
+ [anon_sym_DASH_PERCENT_RBRACE] = "-%}",
53
+ [anon_sym_PERCENT_RBRACE] = "%}",
54
+ [anon_sym_LBRACE_LBRACE_DASH] = "{{-",
55
+ [anon_sym_LBRACE_LBRACE] = "{{",
56
+ [anon_sym_DASH_RBRACE_RBRACE] = "-}}",
57
+ [anon_sym_RBRACE_RBRACE] = "}}",
58
+ [anon_sym_LBRACE_POUND_DASH] = "{#-",
59
+ [anon_sym_LBRACE_POUND] = "{#",
60
+ [anon_sym_DASH_POUND_RBRACE] = "-#}",
61
+ [anon_sym_POUND_RBRACE] = "#}",
62
+ [sym__raw_text] = "raw_text",
63
+ [sym__stmt_code] = "code",
64
+ [sym__expr_code] = "code",
65
+ [sym__comment_body] = "comment_content",
66
+ [sym_document] = "document",
67
+ [sym_statement_tag] = "statement_tag",
68
+ [sym_expression_tag] = "expression_tag",
69
+ [sym_comment_tag] = "comment_tag",
70
+ [aux_sym_document_repeat1] = "document_repeat1",
71
+ };
72
+
73
+ static const TSSymbol ts_symbol_map[] = {
74
+ [ts_builtin_sym_end] = ts_builtin_sym_end,
75
+ [anon_sym_LBRACE_PERCENT_DASH] = anon_sym_LBRACE_PERCENT_DASH,
76
+ [anon_sym_LBRACE_PERCENT_PLUS] = anon_sym_LBRACE_PERCENT_PLUS,
77
+ [anon_sym_LBRACE_PERCENT] = anon_sym_LBRACE_PERCENT,
78
+ [anon_sym_DASH_PERCENT_RBRACE] = anon_sym_DASH_PERCENT_RBRACE,
79
+ [anon_sym_PERCENT_RBRACE] = anon_sym_PERCENT_RBRACE,
80
+ [anon_sym_LBRACE_LBRACE_DASH] = anon_sym_LBRACE_LBRACE_DASH,
81
+ [anon_sym_LBRACE_LBRACE] = anon_sym_LBRACE_LBRACE,
82
+ [anon_sym_DASH_RBRACE_RBRACE] = anon_sym_DASH_RBRACE_RBRACE,
83
+ [anon_sym_RBRACE_RBRACE] = anon_sym_RBRACE_RBRACE,
84
+ [anon_sym_LBRACE_POUND_DASH] = anon_sym_LBRACE_POUND_DASH,
85
+ [anon_sym_LBRACE_POUND] = anon_sym_LBRACE_POUND,
86
+ [anon_sym_DASH_POUND_RBRACE] = anon_sym_DASH_POUND_RBRACE,
87
+ [anon_sym_POUND_RBRACE] = anon_sym_POUND_RBRACE,
88
+ [sym__raw_text] = sym__raw_text,
89
+ [sym__stmt_code] = sym__stmt_code,
90
+ [sym__expr_code] = sym__stmt_code,
91
+ [sym__comment_body] = sym__comment_body,
92
+ [sym_document] = sym_document,
93
+ [sym_statement_tag] = sym_statement_tag,
94
+ [sym_expression_tag] = sym_expression_tag,
95
+ [sym_comment_tag] = sym_comment_tag,
96
+ [aux_sym_document_repeat1] = aux_sym_document_repeat1,
97
+ };
98
+
99
+ static const TSSymbolMetadata ts_symbol_metadata[] = {
100
+ [ts_builtin_sym_end] = {
101
+ .visible = false,
102
+ .named = true,
103
+ },
104
+ [anon_sym_LBRACE_PERCENT_DASH] = {
105
+ .visible = true,
106
+ .named = false,
107
+ },
108
+ [anon_sym_LBRACE_PERCENT_PLUS] = {
109
+ .visible = true,
110
+ .named = false,
111
+ },
112
+ [anon_sym_LBRACE_PERCENT] = {
113
+ .visible = true,
114
+ .named = false,
115
+ },
116
+ [anon_sym_DASH_PERCENT_RBRACE] = {
117
+ .visible = true,
118
+ .named = false,
119
+ },
120
+ [anon_sym_PERCENT_RBRACE] = {
121
+ .visible = true,
122
+ .named = false,
123
+ },
124
+ [anon_sym_LBRACE_LBRACE_DASH] = {
125
+ .visible = true,
126
+ .named = false,
127
+ },
128
+ [anon_sym_LBRACE_LBRACE] = {
129
+ .visible = true,
130
+ .named = false,
131
+ },
132
+ [anon_sym_DASH_RBRACE_RBRACE] = {
133
+ .visible = true,
134
+ .named = false,
135
+ },
136
+ [anon_sym_RBRACE_RBRACE] = {
137
+ .visible = true,
138
+ .named = false,
139
+ },
140
+ [anon_sym_LBRACE_POUND_DASH] = {
141
+ .visible = true,
142
+ .named = false,
143
+ },
144
+ [anon_sym_LBRACE_POUND] = {
145
+ .visible = true,
146
+ .named = false,
147
+ },
148
+ [anon_sym_DASH_POUND_RBRACE] = {
149
+ .visible = true,
150
+ .named = false,
151
+ },
152
+ [anon_sym_POUND_RBRACE] = {
153
+ .visible = true,
154
+ .named = false,
155
+ },
156
+ [sym__raw_text] = {
157
+ .visible = true,
158
+ .named = true,
159
+ },
160
+ [sym__stmt_code] = {
161
+ .visible = true,
162
+ .named = true,
163
+ },
164
+ [sym__expr_code] = {
165
+ .visible = true,
166
+ .named = true,
167
+ },
168
+ [sym__comment_body] = {
169
+ .visible = true,
170
+ .named = true,
171
+ },
172
+ [sym_document] = {
173
+ .visible = true,
174
+ .named = true,
175
+ },
176
+ [sym_statement_tag] = {
177
+ .visible = true,
178
+ .named = true,
179
+ },
180
+ [sym_expression_tag] = {
181
+ .visible = true,
182
+ .named = true,
183
+ },
184
+ [sym_comment_tag] = {
185
+ .visible = true,
186
+ .named = true,
187
+ },
188
+ [aux_sym_document_repeat1] = {
189
+ .visible = false,
190
+ .named = false,
191
+ },
192
+ };
193
+
194
+ enum ts_field_identifiers {
195
+ field_close = 1,
196
+ field_code = 2,
197
+ field_content = 3,
198
+ field_open = 4,
199
+ };
200
+
201
+ static const char * const ts_field_names[] = {
202
+ [0] = NULL,
203
+ [field_close] = "close",
204
+ [field_code] = "code",
205
+ [field_content] = "content",
206
+ [field_open] = "open",
207
+ };
208
+
209
+ static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
210
+ [1] = {.index = 0, .length = 2},
211
+ [2] = {.index = 2, .length = 3},
212
+ [3] = {.index = 5, .length = 3},
213
+ };
214
+
215
+ static const TSFieldMapEntry ts_field_map_entries[] = {
216
+ [0] =
217
+ {field_close, 1},
218
+ {field_open, 0},
219
+ [2] =
220
+ {field_close, 2},
221
+ {field_code, 1},
222
+ {field_open, 0},
223
+ [5] =
224
+ {field_close, 2},
225
+ {field_content, 1},
226
+ {field_open, 0},
227
+ };
228
+
229
+ static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
230
+ [0] = {0},
231
+ };
232
+
233
+ static const uint16_t ts_non_terminal_alias_map[] = {
234
+ 0,
235
+ };
236
+
237
+ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
238
+ [0] = 0,
239
+ [1] = 1,
240
+ [2] = 2,
241
+ [3] = 3,
242
+ [4] = 4,
243
+ [5] = 5,
244
+ [6] = 6,
245
+ [7] = 7,
246
+ [8] = 8,
247
+ [9] = 9,
248
+ [10] = 10,
249
+ [11] = 11,
250
+ [12] = 12,
251
+ [13] = 13,
252
+ [14] = 14,
253
+ [15] = 15,
254
+ [16] = 16,
255
+ };
256
+
257
+ static bool ts_lex(TSLexer *lexer, TSStateId state) {
258
+ START_LEXER();
259
+ eof = lexer->eof(lexer);
260
+ switch (state) {
261
+ case 0:
262
+ if (eof) ADVANCE(9);
263
+ if (lookahead == '#') ADVANCE(3);
264
+ if (lookahead == '%') ADVANCE(4);
265
+ if (lookahead == '-') ADVANCE(2);
266
+ if (lookahead == '{') ADVANCE(1);
267
+ if (lookahead == '}') ADVANCE(5);
268
+ END_STATE();
269
+ case 1:
270
+ if (lookahead == '#') ADVANCE(20);
271
+ if (lookahead == '%') ADVANCE(12);
272
+ if (lookahead == '{') ADVANCE(16);
273
+ END_STATE();
274
+ case 2:
275
+ if (lookahead == '#') ADVANCE(6);
276
+ if (lookahead == '%') ADVANCE(7);
277
+ if (lookahead == '}') ADVANCE(8);
278
+ END_STATE();
279
+ case 3:
280
+ if (lookahead == '}') ADVANCE(22);
281
+ END_STATE();
282
+ case 4:
283
+ if (lookahead == '}') ADVANCE(14);
284
+ END_STATE();
285
+ case 5:
286
+ if (lookahead == '}') ADVANCE(18);
287
+ END_STATE();
288
+ case 6:
289
+ if (lookahead == '}') ADVANCE(21);
290
+ END_STATE();
291
+ case 7:
292
+ if (lookahead == '}') ADVANCE(13);
293
+ END_STATE();
294
+ case 8:
295
+ if (lookahead == '}') ADVANCE(17);
296
+ END_STATE();
297
+ case 9:
298
+ ACCEPT_TOKEN(ts_builtin_sym_end);
299
+ END_STATE();
300
+ case 10:
301
+ ACCEPT_TOKEN(anon_sym_LBRACE_PERCENT_DASH);
302
+ END_STATE();
303
+ case 11:
304
+ ACCEPT_TOKEN(anon_sym_LBRACE_PERCENT_PLUS);
305
+ END_STATE();
306
+ case 12:
307
+ ACCEPT_TOKEN(anon_sym_LBRACE_PERCENT);
308
+ if (lookahead == '+') ADVANCE(11);
309
+ if (lookahead == '-') ADVANCE(10);
310
+ END_STATE();
311
+ case 13:
312
+ ACCEPT_TOKEN(anon_sym_DASH_PERCENT_RBRACE);
313
+ END_STATE();
314
+ case 14:
315
+ ACCEPT_TOKEN(anon_sym_PERCENT_RBRACE);
316
+ END_STATE();
317
+ case 15:
318
+ ACCEPT_TOKEN(anon_sym_LBRACE_LBRACE_DASH);
319
+ END_STATE();
320
+ case 16:
321
+ ACCEPT_TOKEN(anon_sym_LBRACE_LBRACE);
322
+ if (lookahead == '-') ADVANCE(15);
323
+ END_STATE();
324
+ case 17:
325
+ ACCEPT_TOKEN(anon_sym_DASH_RBRACE_RBRACE);
326
+ END_STATE();
327
+ case 18:
328
+ ACCEPT_TOKEN(anon_sym_RBRACE_RBRACE);
329
+ END_STATE();
330
+ case 19:
331
+ ACCEPT_TOKEN(anon_sym_LBRACE_POUND_DASH);
332
+ END_STATE();
333
+ case 20:
334
+ ACCEPT_TOKEN(anon_sym_LBRACE_POUND);
335
+ if (lookahead == '-') ADVANCE(19);
336
+ END_STATE();
337
+ case 21:
338
+ ACCEPT_TOKEN(anon_sym_DASH_POUND_RBRACE);
339
+ END_STATE();
340
+ case 22:
341
+ ACCEPT_TOKEN(anon_sym_POUND_RBRACE);
342
+ END_STATE();
343
+ default:
344
+ return false;
345
+ }
346
+ }
347
+
348
+ static const TSLexerMode ts_lex_modes[STATE_COUNT] = {
349
+ [0] = {.lex_state = 0, .external_lex_state = 1},
350
+ [1] = {.lex_state = 0, .external_lex_state = 2},
351
+ [2] = {.lex_state = 0, .external_lex_state = 2},
352
+ [3] = {.lex_state = 0, .external_lex_state = 2},
353
+ [4] = {.lex_state = 0, .external_lex_state = 2},
354
+ [5] = {.lex_state = 0, .external_lex_state = 2},
355
+ [6] = {.lex_state = 0, .external_lex_state = 2},
356
+ [7] = {.lex_state = 0, .external_lex_state = 2},
357
+ [8] = {.lex_state = 0, .external_lex_state = 2},
358
+ [9] = {.lex_state = 0, .external_lex_state = 2},
359
+ [10] = {.lex_state = 0, .external_lex_state = 3},
360
+ [11] = {.lex_state = 0, .external_lex_state = 4},
361
+ [12] = {.lex_state = 0, .external_lex_state = 5},
362
+ [13] = {.lex_state = 0},
363
+ [14] = {.lex_state = 0},
364
+ [15] = {.lex_state = 0},
365
+ [16] = {.lex_state = 0},
366
+ };
367
+
368
+ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
369
+ [STATE(0)] = {
370
+ [ts_builtin_sym_end] = ACTIONS(1),
371
+ [anon_sym_LBRACE_PERCENT_DASH] = ACTIONS(1),
372
+ [anon_sym_LBRACE_PERCENT_PLUS] = ACTIONS(1),
373
+ [anon_sym_LBRACE_PERCENT] = ACTIONS(1),
374
+ [anon_sym_DASH_PERCENT_RBRACE] = ACTIONS(1),
375
+ [anon_sym_PERCENT_RBRACE] = ACTIONS(1),
376
+ [anon_sym_LBRACE_LBRACE_DASH] = ACTIONS(1),
377
+ [anon_sym_LBRACE_LBRACE] = ACTIONS(1),
378
+ [anon_sym_DASH_RBRACE_RBRACE] = ACTIONS(1),
379
+ [anon_sym_RBRACE_RBRACE] = ACTIONS(1),
380
+ [anon_sym_LBRACE_POUND_DASH] = ACTIONS(1),
381
+ [anon_sym_LBRACE_POUND] = ACTIONS(1),
382
+ [anon_sym_DASH_POUND_RBRACE] = ACTIONS(1),
383
+ [anon_sym_POUND_RBRACE] = ACTIONS(1),
384
+ [sym__raw_text] = ACTIONS(1),
385
+ [sym__stmt_code] = ACTIONS(1),
386
+ [sym__expr_code] = ACTIONS(1),
387
+ [sym__comment_body] = ACTIONS(1),
388
+ },
389
+ [STATE(1)] = {
390
+ [sym_document] = STATE(16),
391
+ [sym_statement_tag] = STATE(2),
392
+ [sym_expression_tag] = STATE(2),
393
+ [sym_comment_tag] = STATE(2),
394
+ [aux_sym_document_repeat1] = STATE(2),
395
+ [ts_builtin_sym_end] = ACTIONS(3),
396
+ [anon_sym_LBRACE_PERCENT_DASH] = ACTIONS(5),
397
+ [anon_sym_LBRACE_PERCENT_PLUS] = ACTIONS(5),
398
+ [anon_sym_LBRACE_PERCENT] = ACTIONS(7),
399
+ [anon_sym_LBRACE_LBRACE_DASH] = ACTIONS(9),
400
+ [anon_sym_LBRACE_LBRACE] = ACTIONS(11),
401
+ [anon_sym_LBRACE_POUND_DASH] = ACTIONS(13),
402
+ [anon_sym_LBRACE_POUND] = ACTIONS(15),
403
+ [sym__raw_text] = ACTIONS(17),
404
+ },
405
+ [STATE(2)] = {
406
+ [sym_statement_tag] = STATE(3),
407
+ [sym_expression_tag] = STATE(3),
408
+ [sym_comment_tag] = STATE(3),
409
+ [aux_sym_document_repeat1] = STATE(3),
410
+ [ts_builtin_sym_end] = ACTIONS(19),
411
+ [anon_sym_LBRACE_PERCENT_DASH] = ACTIONS(5),
412
+ [anon_sym_LBRACE_PERCENT_PLUS] = ACTIONS(5),
413
+ [anon_sym_LBRACE_PERCENT] = ACTIONS(7),
414
+ [anon_sym_LBRACE_LBRACE_DASH] = ACTIONS(9),
415
+ [anon_sym_LBRACE_LBRACE] = ACTIONS(11),
416
+ [anon_sym_LBRACE_POUND_DASH] = ACTIONS(13),
417
+ [anon_sym_LBRACE_POUND] = ACTIONS(15),
418
+ [sym__raw_text] = ACTIONS(21),
419
+ },
420
+ [STATE(3)] = {
421
+ [sym_statement_tag] = STATE(3),
422
+ [sym_expression_tag] = STATE(3),
423
+ [sym_comment_tag] = STATE(3),
424
+ [aux_sym_document_repeat1] = STATE(3),
425
+ [ts_builtin_sym_end] = ACTIONS(23),
426
+ [anon_sym_LBRACE_PERCENT_DASH] = ACTIONS(25),
427
+ [anon_sym_LBRACE_PERCENT_PLUS] = ACTIONS(25),
428
+ [anon_sym_LBRACE_PERCENT] = ACTIONS(28),
429
+ [anon_sym_LBRACE_LBRACE_DASH] = ACTIONS(31),
430
+ [anon_sym_LBRACE_LBRACE] = ACTIONS(34),
431
+ [anon_sym_LBRACE_POUND_DASH] = ACTIONS(37),
432
+ [anon_sym_LBRACE_POUND] = ACTIONS(40),
433
+ [sym__raw_text] = ACTIONS(43),
434
+ },
435
+ };
436
+
437
+ static const uint16_t ts_small_parse_table[] = {
438
+ [0] = 2,
439
+ ACTIONS(48), 3,
440
+ anon_sym_LBRACE_PERCENT,
441
+ anon_sym_LBRACE_LBRACE,
442
+ anon_sym_LBRACE_POUND,
443
+ ACTIONS(46), 6,
444
+ sym__raw_text,
445
+ ts_builtin_sym_end,
446
+ anon_sym_LBRACE_PERCENT_DASH,
447
+ anon_sym_LBRACE_PERCENT_PLUS,
448
+ anon_sym_LBRACE_LBRACE_DASH,
449
+ anon_sym_LBRACE_POUND_DASH,
450
+ [14] = 2,
451
+ ACTIONS(52), 3,
452
+ anon_sym_LBRACE_PERCENT,
453
+ anon_sym_LBRACE_LBRACE,
454
+ anon_sym_LBRACE_POUND,
455
+ ACTIONS(50), 6,
456
+ sym__raw_text,
457
+ ts_builtin_sym_end,
458
+ anon_sym_LBRACE_PERCENT_DASH,
459
+ anon_sym_LBRACE_PERCENT_PLUS,
460
+ anon_sym_LBRACE_LBRACE_DASH,
461
+ anon_sym_LBRACE_POUND_DASH,
462
+ [28] = 2,
463
+ ACTIONS(56), 3,
464
+ anon_sym_LBRACE_PERCENT,
465
+ anon_sym_LBRACE_LBRACE,
466
+ anon_sym_LBRACE_POUND,
467
+ ACTIONS(54), 6,
468
+ sym__raw_text,
469
+ ts_builtin_sym_end,
470
+ anon_sym_LBRACE_PERCENT_DASH,
471
+ anon_sym_LBRACE_PERCENT_PLUS,
472
+ anon_sym_LBRACE_LBRACE_DASH,
473
+ anon_sym_LBRACE_POUND_DASH,
474
+ [42] = 2,
475
+ ACTIONS(60), 3,
476
+ anon_sym_LBRACE_PERCENT,
477
+ anon_sym_LBRACE_LBRACE,
478
+ anon_sym_LBRACE_POUND,
479
+ ACTIONS(58), 6,
480
+ sym__raw_text,
481
+ ts_builtin_sym_end,
482
+ anon_sym_LBRACE_PERCENT_DASH,
483
+ anon_sym_LBRACE_PERCENT_PLUS,
484
+ anon_sym_LBRACE_LBRACE_DASH,
485
+ anon_sym_LBRACE_POUND_DASH,
486
+ [56] = 2,
487
+ ACTIONS(64), 3,
488
+ anon_sym_LBRACE_PERCENT,
489
+ anon_sym_LBRACE_LBRACE,
490
+ anon_sym_LBRACE_POUND,
491
+ ACTIONS(62), 6,
492
+ sym__raw_text,
493
+ ts_builtin_sym_end,
494
+ anon_sym_LBRACE_PERCENT_DASH,
495
+ anon_sym_LBRACE_PERCENT_PLUS,
496
+ anon_sym_LBRACE_LBRACE_DASH,
497
+ anon_sym_LBRACE_POUND_DASH,
498
+ [70] = 2,
499
+ ACTIONS(68), 3,
500
+ anon_sym_LBRACE_PERCENT,
501
+ anon_sym_LBRACE_LBRACE,
502
+ anon_sym_LBRACE_POUND,
503
+ ACTIONS(66), 6,
504
+ sym__raw_text,
505
+ ts_builtin_sym_end,
506
+ anon_sym_LBRACE_PERCENT_DASH,
507
+ anon_sym_LBRACE_PERCENT_PLUS,
508
+ anon_sym_LBRACE_LBRACE_DASH,
509
+ anon_sym_LBRACE_POUND_DASH,
510
+ [84] = 2,
511
+ ACTIONS(72), 1,
512
+ sym__stmt_code,
513
+ ACTIONS(70), 2,
514
+ anon_sym_DASH_PERCENT_RBRACE,
515
+ anon_sym_PERCENT_RBRACE,
516
+ [92] = 2,
517
+ ACTIONS(76), 1,
518
+ sym__expr_code,
519
+ ACTIONS(74), 2,
520
+ anon_sym_DASH_RBRACE_RBRACE,
521
+ anon_sym_RBRACE_RBRACE,
522
+ [100] = 2,
523
+ ACTIONS(80), 1,
524
+ sym__comment_body,
525
+ ACTIONS(78), 2,
526
+ anon_sym_DASH_POUND_RBRACE,
527
+ anon_sym_POUND_RBRACE,
528
+ [108] = 1,
529
+ ACTIONS(82), 2,
530
+ anon_sym_DASH_PERCENT_RBRACE,
531
+ anon_sym_PERCENT_RBRACE,
532
+ [113] = 1,
533
+ ACTIONS(84), 2,
534
+ anon_sym_DASH_RBRACE_RBRACE,
535
+ anon_sym_RBRACE_RBRACE,
536
+ [118] = 1,
537
+ ACTIONS(86), 2,
538
+ anon_sym_DASH_POUND_RBRACE,
539
+ anon_sym_POUND_RBRACE,
540
+ [123] = 1,
541
+ ACTIONS(88), 1,
542
+ ts_builtin_sym_end,
543
+ };
544
+
545
+ static const uint32_t ts_small_parse_table_map[] = {
546
+ [SMALL_STATE(4)] = 0,
547
+ [SMALL_STATE(5)] = 14,
548
+ [SMALL_STATE(6)] = 28,
549
+ [SMALL_STATE(7)] = 42,
550
+ [SMALL_STATE(8)] = 56,
551
+ [SMALL_STATE(9)] = 70,
552
+ [SMALL_STATE(10)] = 84,
553
+ [SMALL_STATE(11)] = 92,
554
+ [SMALL_STATE(12)] = 100,
555
+ [SMALL_STATE(13)] = 108,
556
+ [SMALL_STATE(14)] = 113,
557
+ [SMALL_STATE(15)] = 118,
558
+ [SMALL_STATE(16)] = 123,
559
+ };
560
+
561
+ static const TSParseActionEntry ts_parse_actions[] = {
562
+ [0] = {.entry = {.count = 0, .reusable = false}},
563
+ [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
564
+ [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_document, 0, 0, 0),
565
+ [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
566
+ [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
567
+ [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
568
+ [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
569
+ [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
570
+ [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
571
+ [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
572
+ [19] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_document, 1, 0, 0),
573
+ [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
574
+ [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0),
575
+ [25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(10),
576
+ [28] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(10),
577
+ [31] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(11),
578
+ [34] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(11),
579
+ [37] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(12),
580
+ [40] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(12),
581
+ [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(3),
582
+ [46] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement_tag, 2, 0, 1),
583
+ [48] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement_tag, 2, 0, 1),
584
+ [50] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_tag, 2, 0, 1),
585
+ [52] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_tag, 2, 0, 1),
586
+ [54] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_tag, 2, 0, 1),
587
+ [56] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment_tag, 2, 0, 1),
588
+ [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement_tag, 3, 0, 2),
589
+ [60] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement_tag, 3, 0, 2),
590
+ [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_tag, 3, 0, 2),
591
+ [64] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_tag, 3, 0, 2),
592
+ [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_tag, 3, 0, 3),
593
+ [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment_tag, 3, 0, 3),
594
+ [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
595
+ [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
596
+ [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
597
+ [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
598
+ [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
599
+ [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
600
+ [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
601
+ [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
602
+ [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
603
+ [88] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
604
+ };
605
+
606
+ enum ts_external_scanner_symbol_identifiers {
607
+ ts_external_token__raw_text = 0,
608
+ ts_external_token__stmt_code = 1,
609
+ ts_external_token__expr_code = 2,
610
+ ts_external_token__comment_body = 3,
611
+ };
612
+
613
+ static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
614
+ [ts_external_token__raw_text] = sym__raw_text,
615
+ [ts_external_token__stmt_code] = sym__stmt_code,
616
+ [ts_external_token__expr_code] = sym__expr_code,
617
+ [ts_external_token__comment_body] = sym__comment_body,
618
+ };
619
+
620
+ static const bool ts_external_scanner_states[6][EXTERNAL_TOKEN_COUNT] = {
621
+ [1] = {
622
+ [ts_external_token__raw_text] = true,
623
+ [ts_external_token__stmt_code] = true,
624
+ [ts_external_token__expr_code] = true,
625
+ [ts_external_token__comment_body] = true,
626
+ },
627
+ [2] = {
628
+ [ts_external_token__raw_text] = true,
629
+ },
630
+ [3] = {
631
+ [ts_external_token__stmt_code] = true,
632
+ },
633
+ [4] = {
634
+ [ts_external_token__expr_code] = true,
635
+ },
636
+ [5] = {
637
+ [ts_external_token__comment_body] = true,
638
+ },
639
+ };
640
+
641
+ #ifdef __cplusplus
642
+ extern "C" {
643
+ #endif
644
+ void *tree_sitter_ucode_tmpl_external_scanner_create(void);
645
+ void tree_sitter_ucode_tmpl_external_scanner_destroy(void *);
646
+ bool tree_sitter_ucode_tmpl_external_scanner_scan(void *, TSLexer *, const bool *);
647
+ unsigned tree_sitter_ucode_tmpl_external_scanner_serialize(void *, char *);
648
+ void tree_sitter_ucode_tmpl_external_scanner_deserialize(void *, const char *, unsigned);
649
+
650
+ #ifdef TREE_SITTER_HIDE_SYMBOLS
651
+ #define TS_PUBLIC
652
+ #elif defined(_WIN32)
653
+ #define TS_PUBLIC __declspec(dllexport)
654
+ #else
655
+ #define TS_PUBLIC __attribute__((visibility("default")))
656
+ #endif
657
+
658
+ TS_PUBLIC const TSLanguage *tree_sitter_ucode_tmpl(void) {
659
+ static const TSLanguage language = {
660
+ .abi_version = LANGUAGE_VERSION,
661
+ .symbol_count = SYMBOL_COUNT,
662
+ .alias_count = ALIAS_COUNT,
663
+ .token_count = TOKEN_COUNT,
664
+ .external_token_count = EXTERNAL_TOKEN_COUNT,
665
+ .state_count = STATE_COUNT,
666
+ .large_state_count = LARGE_STATE_COUNT,
667
+ .production_id_count = PRODUCTION_ID_COUNT,
668
+ .supertype_count = SUPERTYPE_COUNT,
669
+ .field_count = FIELD_COUNT,
670
+ .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
671
+ .parse_table = &ts_parse_table[0][0],
672
+ .small_parse_table = ts_small_parse_table,
673
+ .small_parse_table_map = ts_small_parse_table_map,
674
+ .parse_actions = ts_parse_actions,
675
+ .symbol_names = ts_symbol_names,
676
+ .field_names = ts_field_names,
677
+ .field_map_slices = ts_field_map_slices,
678
+ .field_map_entries = ts_field_map_entries,
679
+ .symbol_metadata = ts_symbol_metadata,
680
+ .public_symbol_map = ts_symbol_map,
681
+ .alias_map = ts_non_terminal_alias_map,
682
+ .alias_sequences = &ts_alias_sequences[0][0],
683
+ .lex_modes = (const void*)ts_lex_modes,
684
+ .lex_fn = ts_lex,
685
+ .external_scanner = {
686
+ &ts_external_scanner_states[0][0],
687
+ ts_external_scanner_symbol_map,
688
+ tree_sitter_ucode_tmpl_external_scanner_create,
689
+ tree_sitter_ucode_tmpl_external_scanner_destroy,
690
+ tree_sitter_ucode_tmpl_external_scanner_scan,
691
+ tree_sitter_ucode_tmpl_external_scanner_serialize,
692
+ tree_sitter_ucode_tmpl_external_scanner_deserialize,
693
+ },
694
+ .primary_state_ids = ts_primary_state_ids,
695
+ .name = "ucode_tmpl",
696
+ .max_reserved_word_set_size = 0,
697
+ .metadata = {
698
+ .major_version = 0,
699
+ .minor_version = 1,
700
+ .patch_version = 0,
701
+ },
702
+ };
703
+ return &language;
704
+ }
705
+ #ifdef __cplusplus
706
+ }
707
+ #endif