~repos /plum

#treesitter#compiler#wasm

git clone https://pyrossh.dev/repos/plum.git
Discussions: https://groups.google.com/g/rust-embed-devs

A statically typed, imperative programming language inspired by rust, python


3fcabcbc Peter John

3 years ago
remove indentation
binding.gyp CHANGED
@@ -8,8 +8,7 @@
8
8
  ],
9
9
  "sources": [
10
10
  "bindings/node/binding.cc",
11
- "src/parser.c",
11
+ "src/parser.c"
12
- "src/scanner.cc",
13
12
  ],
14
13
  "cflags_c": [
15
14
  "-std=c99",
grammar.js CHANGED
@@ -4,73 +4,58 @@ const BIN_DIGITS = token(sep1(/[01]/, /_+/));
4
4
 
5
5
  module.exports = grammar({
6
6
  name: 'pine',
7
- externals: $ => [
7
+ conflicts: $ => [
8
- $._newline,
9
- $._indent,
8
+ [$.fun_field],
10
- $._dedent,
11
- $._string_start,
12
- $._string_content,
13
- $._string_end,
14
-
15
- // Mark comments as external tokens so that the external scanner is always
16
- // invoked, even if no external token is expected. This allows for better
17
- // error recovery, because the external scanner can maintain the overall
18
- // structure by returning dedent tokens whenever a dedent occurs, even
19
- // if no dedent is expected.
20
- $.comment,
21
-
22
- // Allow the external scanner to check for the validity of closing brackets
23
- // so that it can avoid returning dedent tokens between brackets.
24
- ']',
25
- ')',
26
- '}',
27
9
  ],
28
10
  rules: {
29
11
  source_file: $ => seq(
30
12
  seq("package", $.package),
31
13
  repeat($.import_statement),
32
- repeat($.class_definition),
33
- repeat($.enum_definition),
14
+ repeat($.definitions),
34
15
  ),
35
16
 
36
17
  import_statement: $ => seq('import', $.url),
37
18
 
38
19
  definitions: $ => choice(
39
20
  $.class_definition,
21
+ $.trait_definition,
40
22
  $.enum_definition,
23
+ $.fun_definition,
41
24
  ),
42
25
 
43
26
  class_definition: $ => seq(
27
+ field('traits', optional(repeat($.trait_name))),
44
28
  'class',
45
29
  field('name', $.definition_name),
46
30
  field('generics', optional($.generic_list)),
31
+ field('fields', seq('(', commaSep1($.type_field), ')')),
32
+ ),
33
+
34
+ trait_definition: $ => seq(
35
+ 'trait',
36
+ field('name', $.definition_name),
47
- field('traits', optional($.trait_list)),
37
+ field('generics', optional($.generic_list)),
48
- ':',
49
- field('fields', seq($._indent, seq(
38
+ field('fields', seq('(', commaSep1($.trait_field), ')')),
50
- repeat($.class_field),
51
- $._dedent
52
- ))),
53
39
  ),
54
40
 
55
41
  enum_definition: $ => seq(
56
42
  'enum',
57
43
  field('name', $.definition_name),
58
- field('types', $.type_list),
44
+ field('types', seq('(', commaSep1($.type_field), ')')),
59
- ':',
60
- field('fields', seq($._indent, seq(
45
+ field('fields', seq('{', commaSep1($.enum_field), '}')),
61
- repeat($.enum_field),
62
- $._dedent
63
- ))),
64
46
  ),
65
47
 
66
- type: $ => seq($.definition_name, optional('?')),
67
-
68
- type_list: $ => seq(
48
+ fun_definition: $ => seq(
69
- '(',
49
+ 'fun',
70
- commaSep1($.identifier),
50
+ field('name', choice($.identifier, $._extension)),
51
+ field('params', seq('(', optional(commaSep1($.param)), ')')),
71
- ')'
52
+ '=>',
53
+ field('returns', optional(commaSep1($.type))),
54
+ '{', '}',
72
55
  ),
73
56
 
57
+ trait_name: $ => seq("@", $.definition_name),
58
+
74
59
  trait_list: $ => seq(
75
60
  '(',
76
61
  commaSep1($.identifier),
@@ -83,12 +68,34 @@ module.exports = grammar({
83
68
  '>'
84
69
  ),
85
70
 
71
+ type: $ => seq($.definition_name, optional('?')),
72
+
73
+ param: $ => seq(
74
+ field('name', $.variable_name),
75
+ ':',
76
+ field('type', $.type)
77
+ ),
78
+
86
- class_field: $ => seq(
79
+ type_field: $ => seq(
80
+ 'val',
87
81
  field('name', $.variable_name),
88
82
  ':',
89
83
  field('type', $.type)
90
84
  ),
91
85
 
86
+ fun_field: $ => seq(
87
+ 'fun',
88
+ field('name', $.identifier),
89
+ field('params', seq('(', optional(commaSep1($.param)), ')')),
90
+ '=>',
91
+ field('returns', optional(commaSep1($.type))),
92
+ ),
93
+
94
+ trait_field: $ => choice(
95
+ $.type_field,
96
+ $.fun_field,
97
+ ),
98
+
92
99
  enum_field: $ => seq($.enum_field_name, '(', commaSep1($._primary_expression), ')'),
93
100
 
94
101
  _primary_expression: $ => choice(
@@ -96,6 +103,8 @@ module.exports = grammar({
96
103
  $._string_literal,
97
104
  ),
98
105
 
106
+ _extension: $ => seq($.identifier, '.', $.identifier),
107
+
99
108
  url: $ => sep1(/[a-zA-Z_][a-zA-Z_0-9]*/, '/'),
100
109
  package: $ => $.identifier,
101
110
  identifier: $ => /[a-zA-Z_][a-zA-Z_0-9]*/,
src/grammar.json CHANGED
@@ -28,14 +28,7 @@
28
28
  "type": "REPEAT",
29
29
  "content": {
30
30
  "type": "SYMBOL",
31
- "name": "class_definition"
32
- }
33
- },
34
- {
35
- "type": "REPEAT",
36
- "content": {
37
- "type": "SYMBOL",
38
- "name": "enum_definition"
31
+ "name": "definitions"
39
32
  }
40
33
  }
41
34
  ]
@@ -60,15 +53,42 @@
60
53
  "type": "SYMBOL",
61
54
  "name": "class_definition"
62
55
  },
56
+ {
57
+ "type": "SYMBOL",
58
+ "name": "trait_definition"
59
+ },
63
60
  {
64
61
  "type": "SYMBOL",
65
62
  "name": "enum_definition"
63
+ },
64
+ {
65
+ "type": "SYMBOL",
66
+ "name": "fun_definition"
66
67
  }
67
68
  ]
68
69
  },
69
70
  "class_definition": {
70
71
  "type": "SEQ",
71
72
  "members": [
73
+ {
74
+ "type": "FIELD",
75
+ "name": "traits",
76
+ "content": {
77
+ "type": "CHOICE",
78
+ "members": [
79
+ {
80
+ "type": "REPEAT",
81
+ "content": {
82
+ "type": "SYMBOL",
83
+ "name": "trait_name"
84
+ }
85
+ },
86
+ {
87
+ "type": "BLANK"
88
+ }
89
+ ]
90
+ }
91
+ },
72
92
  {
73
93
  "type": "STRING",
74
94
  "value": "class"
@@ -99,13 +119,72 @@
99
119
  },
100
120
  {
101
121
  "type": "FIELD",
102
- "name": "traits",
122
+ "name": "fields",
123
+ "content": {
124
+ "type": "SEQ",
125
+ "members": [
126
+ {
127
+ "type": "STRING",
128
+ "value": "("
129
+ },
130
+ {
131
+ "type": "SEQ",
132
+ "members": [
133
+ {
134
+ "type": "SYMBOL",
135
+ "name": "type_field"
136
+ },
137
+ {
138
+ "type": "REPEAT",
139
+ "content": {
140
+ "type": "SEQ",
141
+ "members": [
142
+ {
143
+ "type": "STRING",
144
+ "value": ","
145
+ },
146
+ {
147
+ "type": "SYMBOL",
148
+ "name": "type_field"
149
+ }
150
+ ]
151
+ }
152
+ }
153
+ ]
154
+ },
155
+ {
156
+ "type": "STRING",
157
+ "value": ")"
158
+ }
159
+ ]
160
+ }
161
+ }
162
+ ]
163
+ },
164
+ "trait_definition": {
165
+ "type": "SEQ",
166
+ "members": [
167
+ {
168
+ "type": "STRING",
169
+ "value": "trait"
170
+ },
171
+ {
172
+ "type": "FIELD",
173
+ "name": "name",
174
+ "content": {
175
+ "type": "SYMBOL",
176
+ "name": "definition_name"
177
+ }
178
+ },
179
+ {
180
+ "type": "FIELD",
181
+ "name": "generics",
103
182
  "content": {
104
183
  "type": "CHOICE",
105
184
  "members": [
106
185
  {
107
186
  "type": "SYMBOL",
108
- "name": "trait_list"
187
+ "name": "generic_list"
109
188
  },
110
189
  {
111
190
  "type": "BLANK"
@@ -113,10 +192,6 @@
113
192
  ]
114
193
  }
115
194
  },
116
- {
117
- "type": "STRING",
118
- "value": ":"
119
- },
120
195
  {
121
196
  "type": "FIELD",
122
197
  "name": "fields",
@@ -124,24 +199,37 @@
124
199
  "type": "SEQ",
125
200
  "members": [
126
201
  {
127
- "type": "SYMBOL",
202
+ "type": "STRING",
128
- "name": "_indent"
203
+ "value": "("
129
204
  },
130
205
  {
131
206
  "type": "SEQ",
132
207
  "members": [
208
+ {
209
+ "type": "SYMBOL",
210
+ "name": "trait_field"
211
+ },
133
212
  {
134
213
  "type": "REPEAT",
135
214
  "content": {
215
+ "type": "SEQ",
216
+ "members": [
217
+ {
218
+ "type": "STRING",
219
+ "value": ","
220
+ },
221
+ {
136
- "type": "SYMBOL",
222
+ "type": "SYMBOL",
137
- "name": "class_field"
223
+ "name": "trait_field"
224
+ }
225
+ ]
138
226
  }
139
- },
140
- {
141
- "type": "SYMBOL",
142
- "name": "_dedent"
143
227
  }
144
228
  ]
229
+ },
230
+ {
231
+ "type": "STRING",
232
+ "value": ")"
145
233
  }
146
234
  ]
147
235
  }
@@ -167,14 +255,44 @@
167
255
  "type": "FIELD",
168
256
  "name": "types",
169
257
  "content": {
258
+ "type": "SEQ",
259
+ "members": [
260
+ {
261
+ "type": "STRING",
262
+ "value": "("
263
+ },
264
+ {
265
+ "type": "SEQ",
266
+ "members": [
267
+ {
170
- "type": "SYMBOL",
268
+ "type": "SYMBOL",
171
- "name": "type_list"
269
+ "name": "type_field"
270
+ },
271
+ {
272
+ "type": "REPEAT",
273
+ "content": {
274
+ "type": "SEQ",
275
+ "members": [
276
+ {
277
+ "type": "STRING",
278
+ "value": ","
279
+ },
280
+ {
281
+ "type": "SYMBOL",
282
+ "name": "type_field"
283
+ }
284
+ ]
285
+ }
286
+ }
287
+ ]
288
+ },
289
+ {
290
+ "type": "STRING",
291
+ "value": ")"
292
+ }
293
+ ]
172
294
  }
173
295
  },
174
- {
175
- "type": "STRING",
176
- "value": ":"
177
- },
178
296
  {
179
297
  "type": "FIELD",
180
298
  "name": "fields",
@@ -182,52 +300,182 @@
182
300
  "type": "SEQ",
183
301
  "members": [
184
302
  {
185
- "type": "SYMBOL",
303
+ "type": "STRING",
186
- "name": "_indent"
304
+ "value": "{"
187
305
  },
188
306
  {
189
307
  "type": "SEQ",
190
308
  "members": [
309
+ {
310
+ "type": "SYMBOL",
311
+ "name": "enum_field"
312
+ },
191
313
  {
192
314
  "type": "REPEAT",
193
315
  "content": {
316
+ "type": "SEQ",
317
+ "members": [
318
+ {
319
+ "type": "STRING",
320
+ "value": ","
321
+ },
322
+ {
194
- "type": "SYMBOL",
323
+ "type": "SYMBOL",
195
- "name": "enum_field"
324
+ "name": "enum_field"
325
+ }
326
+ ]
196
327
  }
328
+ }
329
+ ]
330
+ },
331
+ {
332
+ "type": "STRING",
333
+ "value": "}"
334
+ }
335
+ ]
336
+ }
337
+ }
338
+ ]
339
+ },
340
+ "fun_definition": {
341
+ "type": "SEQ",
342
+ "members": [
343
+ {
344
+ "type": "STRING",
345
+ "value": "fun"
346
+ },
347
+ {
348
+ "type": "FIELD",
349
+ "name": "name",
350
+ "content": {
351
+ "type": "CHOICE",
352
+ "members": [
353
+ {
354
+ "type": "SYMBOL",
355
+ "name": "identifier"
356
+ },
357
+ {
358
+ "type": "SYMBOL",
359
+ "name": "_extension"
360
+ }
361
+ ]
362
+ }
363
+ },
364
+ {
365
+ "type": "FIELD",
366
+ "name": "params",
367
+ "content": {
368
+ "type": "SEQ",
369
+ "members": [
370
+ {
371
+ "type": "STRING",
372
+ "value": "("
373
+ },
374
+ {
375
+ "type": "CHOICE",
376
+ "members": [
377
+ {
378
+ "type": "SEQ",
379
+ "members": [
380
+ {
381
+ "type": "SYMBOL",
382
+ "name": "param"
383
+ },
384
+ {
385
+ "type": "REPEAT",
386
+ "content": {
387
+ "type": "SEQ",
388
+ "members": [
389
+ {
390
+ "type": "STRING",
391
+ "value": ","
392
+ },
393
+ {
394
+ "type": "SYMBOL",
395
+ "name": "param"
396
+ }
397
+ ]
398
+ }
399
+ }
400
+ ]
197
401
  },
402
+ {
403
+ "type": "BLANK"
404
+ }
405
+ ]
406
+ },
407
+ {
408
+ "type": "STRING",
409
+ "value": ")"
410
+ }
411
+ ]
412
+ }
413
+ },
414
+ {
415
+ "type": "STRING",
416
+ "value": "=>"
417
+ },
418
+ {
419
+ "type": "FIELD",
420
+ "name": "returns",
421
+ "content": {
422
+ "type": "CHOICE",
423
+ "members": [
424
+ {
425
+ "type": "SEQ",
426
+ "members": [
198
427
  {
199
428
  "type": "SYMBOL",
200
- "name": "_dedent"
429
+ "name": "type"
430
+ },
431
+ {
432
+ "type": "REPEAT",
433
+ "content": {
434
+ "type": "SEQ",
435
+ "members": [
436
+ {
437
+ "type": "STRING",
438
+ "value": ","
439
+ },
440
+ {
441
+ "type": "SYMBOL",
442
+ "name": "type"
443
+ }
444
+ ]
445
+ }
201
446
  }
202
447
  ]
448
+ },
449
+ {
450
+ "type": "BLANK"
203
451
  }
204
452
  ]
205
453
  }
454
+ },
455
+ {
456
+ "type": "STRING",
457
+ "value": "{"
458
+ },
459
+ {
460
+ "type": "STRING",
461
+ "value": "}"
206
462
  }
207
463
  ]
208
464
  },
209
- "type": {
465
+ "trait_name": {
210
466
  "type": "SEQ",
211
467
  "members": [
212
468
  {
213
- "type": "SYMBOL",
469
+ "type": "STRING",
214
- "name": "definition_name"
470
+ "value": "@"
215
471
  },
216
472
  {
217
- "type": "CHOICE",
218
- "members": [
219
- {
220
- "type": "STRING",
473
+ "type": "SYMBOL",
221
- "value": "?"
222
- },
223
- {
224
- "type": "BLANK"
474
+ "name": "definition_name"
225
- }
226
- ]
227
475
  }
228
476
  ]
229
477
  },
230
- "type_list": {
478
+ "trait_list": {
231
479
  "type": "SEQ",
232
480
  "members": [
233
481
  {
@@ -265,12 +513,12 @@
265
513
  }
266
514
  ]
267
515
  },
268
- "trait_list": {
516
+ "generic_list": {
269
517
  "type": "SEQ",
270
518
  "members": [
271
519
  {
272
520
  "type": "STRING",
273
- "value": "("
521
+ "value": "<"
274
522
  },
275
523
  {
276
524
  "type": "SEQ",
@@ -299,51 +547,63 @@
299
547
  },
300
548
  {
301
549
  "type": "STRING",
302
- "value": ")"
550
+ "value": ">"
303
551
  }
304
552
  ]
305
553
  },
306
- "generic_list": {
554
+ "type": {
307
555
  "type": "SEQ",
308
556
  "members": [
309
557
  {
310
- "type": "STRING",
558
+ "type": "SYMBOL",
311
- "value": "<"
559
+ "name": "definition_name"
312
560
  },
313
561
  {
314
- "type": "SEQ",
562
+ "type": "CHOICE",
315
563
  "members": [
316
564
  {
317
- "type": "SYMBOL",
565
+ "type": "STRING",
318
- "name": "identifier"
566
+ "value": "?"
319
567
  },
320
568
  {
321
- "type": "REPEAT",
322
- "content": {
323
- "type": "SEQ",
324
- "members": [
325
- {
326
- "type": "STRING",
569
+ "type": "BLANK"
327
- "value": ","
328
- },
329
- {
330
- "type": "SYMBOL",
331
- "name": "identifier"
332
- }
333
- ]
334
- }
335
570
  }
336
571
  ]
572
+ }
573
+ ]
574
+ },
575
+ "param": {
576
+ "type": "SEQ",
577
+ "members": [
578
+ {
579
+ "type": "FIELD",
580
+ "name": "name",
581
+ "content": {
582
+ "type": "SYMBOL",
583
+ "name": "variable_name"
584
+ }
337
585
  },
338
586
  {
339
587
  "type": "STRING",
340
- "value": ">"
588
+ "value": ":"
589
+ },
590
+ {
591
+ "type": "FIELD",
592
+ "name": "type",
593
+ "content": {
594
+ "type": "SYMBOL",
595
+ "name": "type"
596
+ }
341
597
  }
342
598
  ]
343
599
  },
344
- "class_field": {
600
+ "type_field": {
345
601
  "type": "SEQ",
346
602
  "members": [
603
+ {
604
+ "type": "STRING",
605
+ "value": "val"
606
+ },
347
607
  {
348
608
  "type": "FIELD",
349
609
  "name": "name",
@@ -366,6 +626,127 @@
366
626
  }
367
627
  ]
368
628
  },
629
+ "fun_field": {
630
+ "type": "SEQ",
631
+ "members": [
632
+ {
633
+ "type": "STRING",
634
+ "value": "fun"
635
+ },
636
+ {
637
+ "type": "FIELD",
638
+ "name": "name",
639
+ "content": {
640
+ "type": "SYMBOL",
641
+ "name": "identifier"
642
+ }
643
+ },
644
+ {
645
+ "type": "FIELD",
646
+ "name": "params",
647
+ "content": {
648
+ "type": "SEQ",
649
+ "members": [
650
+ {
651
+ "type": "STRING",
652
+ "value": "("
653
+ },
654
+ {
655
+ "type": "CHOICE",
656
+ "members": [
657
+ {
658
+ "type": "SEQ",
659
+ "members": [
660
+ {
661
+ "type": "SYMBOL",
662
+ "name": "param"
663
+ },
664
+ {
665
+ "type": "REPEAT",
666
+ "content": {
667
+ "type": "SEQ",
668
+ "members": [
669
+ {
670
+ "type": "STRING",
671
+ "value": ","
672
+ },
673
+ {
674
+ "type": "SYMBOL",
675
+ "name": "param"
676
+ }
677
+ ]
678
+ }
679
+ }
680
+ ]
681
+ },
682
+ {
683
+ "type": "BLANK"
684
+ }
685
+ ]
686
+ },
687
+ {
688
+ "type": "STRING",
689
+ "value": ")"
690
+ }
691
+ ]
692
+ }
693
+ },
694
+ {
695
+ "type": "STRING",
696
+ "value": "=>"
697
+ },
698
+ {
699
+ "type": "FIELD",
700
+ "name": "returns",
701
+ "content": {
702
+ "type": "CHOICE",
703
+ "members": [
704
+ {
705
+ "type": "SEQ",
706
+ "members": [
707
+ {
708
+ "type": "SYMBOL",
709
+ "name": "type"
710
+ },
711
+ {
712
+ "type": "REPEAT",
713
+ "content": {
714
+ "type": "SEQ",
715
+ "members": [
716
+ {
717
+ "type": "STRING",
718
+ "value": ","
719
+ },
720
+ {
721
+ "type": "SYMBOL",
722
+ "name": "type"
723
+ }
724
+ ]
725
+ }
726
+ }
727
+ ]
728
+ },
729
+ {
730
+ "type": "BLANK"
731
+ }
732
+ ]
733
+ }
734
+ }
735
+ ]
736
+ },
737
+ "trait_field": {
738
+ "type": "CHOICE",
739
+ "members": [
740
+ {
741
+ "type": "SYMBOL",
742
+ "name": "type_field"
743
+ },
744
+ {
745
+ "type": "SYMBOL",
746
+ "name": "fun_field"
747
+ }
748
+ ]
749
+ },
369
750
  "enum_field": {
370
751
  "type": "SEQ",
371
752
  "members": [
@@ -421,6 +802,23 @@
421
802
  }
422
803
  ]
423
804
  },
805
+ "_extension": {
806
+ "type": "SEQ",
807
+ "members": [
808
+ {
809
+ "type": "SYMBOL",
810
+ "name": "identifier"
811
+ },
812
+ {
813
+ "type": "STRING",
814
+ "value": "."
815
+ },
816
+ {
817
+ "type": "SYMBOL",
818
+ "name": "identifier"
819
+ }
820
+ ]
821
+ },
424
822
  "url": {
425
823
  "type": "SEQ",
426
824
  "members": [
@@ -974,50 +1372,13 @@
974
1372
  "value": "\\s"
975
1373
  }
976
1374
  ],
977
- "conflicts": [],
1375
+ "conflicts": [
978
- "precedences": [],
1376
+ [
979
- "externals": [
1377
+ "fun_field"
980
- {
1378
+ ]
981
- "type": "SYMBOL",
982
- "name": "_newline"
983
- },
984
- {
985
- "type": "SYMBOL",
986
- "name": "_indent"
987
- },
988
- {
989
- "type": "SYMBOL",
990
- "name": "_dedent"
991
- },
992
- {
993
- "type": "SYMBOL",
994
- "name": "_string_start"
995
- },
996
- {
997
- "type": "SYMBOL",
998
- "name": "_string_content"
999
- },
1000
- {
1001
- "type": "SYMBOL",
1002
- "name": "_string_end"
1003
- },
1004
- {
1005
- "type": "SYMBOL",
1006
- "name": "comment"
1007
- },
1008
- {
1009
- "type": "STRING",
1010
- "value": "]"
1011
- },
1012
- {
1013
- "type": "STRING",
1014
- "value": ")"
1015
- },
1016
- {
1017
- "type": "STRING",
1018
- "value": "}"
1019
- }
1020
1379
  ],
1380
+ "precedences": [],
1381
+ "externals": [],
1021
1382
  "inline": [],
1022
1383
  "supertypes": []
1023
1384
  }
src/node-types.json CHANGED
@@ -33,7 +33,19 @@
33
33
  "required": true,
34
34
  "types": [
35
35
  {
36
+ "type": "(",
37
+ "named": false
38
+ },
39
+ {
40
+ "type": ")",
41
+ "named": false
42
+ },
43
+ {
44
+ "type": ",",
45
+ "named": false
46
+ },
47
+ {
36
- "type": "class_field",
48
+ "type": "type_field",
37
49
  "named": true
38
50
  }
39
51
  ]
@@ -59,11 +71,11 @@
59
71
  ]
60
72
  },
61
73
  "traits": {
62
- "multiple": false,
74
+ "multiple": true,
63
75
  "required": false,
64
76
  "types": [
65
77
  {
66
- "type": "trait_list",
78
+ "type": "trait_name",
67
79
  "named": true
68
80
  }
69
81
  ]
@@ -71,29 +83,30 @@
71
83
  }
72
84
  },
73
85
  {
74
- "type": "class_field",
86
+ "type": "definitions",
75
87
  "named": true,
76
- "fields": {
88
+ "fields": {},
77
- "name": {
89
+ "children": {
78
- "multiple": false,
90
+ "multiple": false,
79
- "required": true,
91
+ "required": true,
80
- "types": [
92
+ "types": [
81
- {
93
+ {
82
- "type": "variable_name",
94
+ "type": "class_definition",
83
- "named": true
95
+ "named": true
96
+ },
97
+ {
98
+ "type": "enum_definition",
99
+ "named": true
100
+ },
101
+ {
102
+ "type": "fun_definition",
103
+ "named": true
104
+ },
105
+ {
106
+ "type": "trait_definition",
107
+ "named": true
84
- }
108
+ }
85
- ]
109
+ ]
86
- },
87
- "type": {
88
- "multiple": false,
89
- "required": true,
90
- "types": [
91
- {
92
- "type": "type",
93
- "named": true
94
- }
95
- ]
96
- }
97
110
  }
98
111
  },
99
112
  {
@@ -104,9 +117,21 @@
104
117
  "multiple": true,
105
118
  "required": true,
106
119
  "types": [
120
+ {
121
+ "type": ",",
122
+ "named": false
123
+ },
107
124
  {
108
125
  "type": "enum_field",
109
126
  "named": true
127
+ },
128
+ {
129
+ "type": "{",
130
+ "named": false
131
+ },
132
+ {
133
+ "type": "}",
134
+ "named": false
110
135
  }
111
136
  ]
112
137
  },
@@ -121,11 +146,23 @@
121
146
  ]
122
147
  },
123
148
  "types": {
124
- "multiple": false,
149
+ "multiple": true,
125
150
  "required": true,
126
151
  "types": [
127
152
  {
153
+ "type": "(",
154
+ "named": false
155
+ },
156
+ {
157
+ "type": ")",
158
+ "named": false
159
+ },
160
+ {
161
+ "type": ",",
162
+ "named": false
163
+ },
164
+ {
128
- "type": "type_list",
165
+ "type": "type_field",
129
166
  "named": true
130
167
  }
131
168
  ]
@@ -179,6 +216,114 @@
179
216
  ]
180
217
  }
181
218
  },
219
+ {
220
+ "type": "fun_definition",
221
+ "named": true,
222
+ "fields": {
223
+ "name": {
224
+ "multiple": true,
225
+ "required": true,
226
+ "types": [
227
+ {
228
+ "type": ".",
229
+ "named": false
230
+ },
231
+ {
232
+ "type": "identifier",
233
+ "named": true
234
+ }
235
+ ]
236
+ },
237
+ "params": {
238
+ "multiple": true,
239
+ "required": true,
240
+ "types": [
241
+ {
242
+ "type": "(",
243
+ "named": false
244
+ },
245
+ {
246
+ "type": ")",
247
+ "named": false
248
+ },
249
+ {
250
+ "type": ",",
251
+ "named": false
252
+ },
253
+ {
254
+ "type": "param",
255
+ "named": true
256
+ }
257
+ ]
258
+ },
259
+ "returns": {
260
+ "multiple": true,
261
+ "required": false,
262
+ "types": [
263
+ {
264
+ "type": ",",
265
+ "named": false
266
+ },
267
+ {
268
+ "type": "type",
269
+ "named": true
270
+ }
271
+ ]
272
+ }
273
+ }
274
+ },
275
+ {
276
+ "type": "fun_field",
277
+ "named": true,
278
+ "fields": {
279
+ "name": {
280
+ "multiple": false,
281
+ "required": true,
282
+ "types": [
283
+ {
284
+ "type": "identifier",
285
+ "named": true
286
+ }
287
+ ]
288
+ },
289
+ "params": {
290
+ "multiple": true,
291
+ "required": true,
292
+ "types": [
293
+ {
294
+ "type": "(",
295
+ "named": false
296
+ },
297
+ {
298
+ "type": ")",
299
+ "named": false
300
+ },
301
+ {
302
+ "type": ",",
303
+ "named": false
304
+ },
305
+ {
306
+ "type": "param",
307
+ "named": true
308
+ }
309
+ ]
310
+ },
311
+ "returns": {
312
+ "multiple": true,
313
+ "required": false,
314
+ "types": [
315
+ {
316
+ "type": ",",
317
+ "named": false
318
+ },
319
+ {
320
+ "type": "type",
321
+ "named": true
322
+ }
323
+ ]
324
+ }
325
+ }
326
+ },
182
327
  {
183
328
  "type": "generic_list",
184
329
  "named": true,
@@ -268,6 +413,32 @@
268
413
  ]
269
414
  }
270
415
  },
416
+ {
417
+ "type": "param",
418
+ "named": true,
419
+ "fields": {
420
+ "name": {
421
+ "multiple": false,
422
+ "required": true,
423
+ "types": [
424
+ {
425
+ "type": "variable_name",
426
+ "named": true
427
+ }
428
+ ]
429
+ },
430
+ "type": {
431
+ "multiple": false,
432
+ "required": true,
433
+ "types": [
434
+ {
435
+ "type": "type",
436
+ "named": true
437
+ }
438
+ ]
439
+ }
440
+ }
441
+ },
271
442
  {
272
443
  "type": "source_file",
273
444
  "named": true,
@@ -277,11 +448,7 @@
277
448
  "required": true,
278
449
  "types": [
279
450
  {
280
- "type": "class_definition",
281
- "named": true
282
- },
283
- {
284
- "type": "enum_definition",
451
+ "type": "definitions",
285
452
  "named": true
286
453
  },
287
454
  {
@@ -296,22 +463,74 @@
296
463
  }
297
464
  },
298
465
  {
466
+ "type": "trait_definition",
467
+ "named": true,
468
+ "fields": {
469
+ "fields": {
470
+ "multiple": true,
471
+ "required": true,
472
+ "types": [
473
+ {
474
+ "type": "(",
475
+ "named": false
476
+ },
477
+ {
478
+ "type": ")",
479
+ "named": false
480
+ },
481
+ {
482
+ "type": ",",
483
+ "named": false
484
+ },
485
+ {
299
- "type": "trait_list",
486
+ "type": "trait_field",
487
+ "named": true
488
+ }
489
+ ]
490
+ },
491
+ "generics": {
492
+ "multiple": false,
493
+ "required": false,
494
+ "types": [
495
+ {
496
+ "type": "generic_list",
497
+ "named": true
498
+ }
499
+ ]
500
+ },
501
+ "name": {
502
+ "multiple": false,
503
+ "required": true,
504
+ "types": [
505
+ {
506
+ "type": "definition_name",
507
+ "named": true
508
+ }
509
+ ]
510
+ }
511
+ }
512
+ },
513
+ {
514
+ "type": "trait_field",
300
515
  "named": true,
301
516
  "fields": {},
302
517
  "children": {
303
- "multiple": true,
518
+ "multiple": false,
304
519
  "required": true,
305
520
  "types": [
306
521
  {
307
- "type": "identifier",
522
+ "type": "fun_field",
523
+ "named": true
524
+ },
525
+ {
526
+ "type": "type_field",
308
527
  "named": true
309
528
  }
310
529
  ]
311
530
  }
312
531
  },
313
532
  {
314
- "type": "type",
533
+ "type": "trait_name",
315
534
  "named": true,
316
535
  "fields": {},
317
536
  "children": {
@@ -326,20 +545,46 @@
326
545
  }
327
546
  },
328
547
  {
329
- "type": "type_list",
548
+ "type": "type",
330
549
  "named": true,
331
550
  "fields": {},
332
551
  "children": {
333
- "multiple": true,
552
+ "multiple": false,
334
553
  "required": true,
335
554
  "types": [
336
555
  {
337
- "type": "identifier",
556
+ "type": "definition_name",
338
557
  "named": true
339
558
  }
340
559
  ]
341
560
  }
342
561
  },
562
+ {
563
+ "type": "type_field",
564
+ "named": true,
565
+ "fields": {
566
+ "name": {
567
+ "multiple": false,
568
+ "required": true,
569
+ "types": [
570
+ {
571
+ "type": "variable_name",
572
+ "named": true
573
+ }
574
+ ]
575
+ },
576
+ "type": {
577
+ "multiple": false,
578
+ "required": true,
579
+ "types": [
580
+ {
581
+ "type": "type",
582
+ "named": true
583
+ }
584
+ ]
585
+ }
586
+ }
587
+ },
343
588
  {
344
589
  "type": "url",
345
590
  "named": true,
@@ -369,6 +614,10 @@
369
614
  "type": ",",
370
615
  "named": false
371
616
  },
617
+ {
618
+ "type": ".",
619
+ "named": false
620
+ },
372
621
  {
373
622
  "type": "/",
374
623
  "named": false
@@ -381,6 +630,10 @@
381
630
  "type": "<",
382
631
  "named": false
383
632
  },
633
+ {
634
+ "type": "=>",
635
+ "named": false
636
+ },
384
637
  {
385
638
  "type": ">",
386
639
  "named": false
@@ -389,6 +642,10 @@
389
642
  "type": "?",
390
643
  "named": false
391
644
  },
645
+ {
646
+ "type": "@",
647
+ "named": false
648
+ },
392
649
  {
393
650
  "type": "\\u",
394
651
  "named": false
@@ -425,6 +682,10 @@
425
682
  "type": "float_literal",
426
683
  "named": true
427
684
  },
685
+ {
686
+ "type": "fun",
687
+ "named": false
688
+ },
428
689
  {
429
690
  "type": "hex_literal",
430
691
  "named": true
@@ -445,12 +706,28 @@
445
706
  "type": "package",
446
707
  "named": false
447
708
  },
709
+ {
710
+ "type": "trait",
711
+ "named": false
712
+ },
448
713
  {
449
714
  "type": "true",
450
715
  "named": false
451
716
  },
717
+ {
718
+ "type": "val",
719
+ "named": false
720
+ },
452
721
  {
453
722
  "type": "variable_name",
454
723
  "named": true
724
+ },
725
+ {
726
+ "type": "{",
727
+ "named": false
728
+ },
729
+ {
730
+ "type": "}",
731
+ "named": false
455
732
  }
456
733
  ]
src/parser.c CHANGED
@@ -6,95 +6,103 @@
6
6
  #endif
7
7
 
8
8
  #define LANGUAGE_VERSION 13
9
- #define STATE_COUNT 120
9
+ #define STATE_COUNT 203
10
10
  #define LARGE_STATE_COUNT 2
11
- #define SYMBOL_COUNT 78
11
+ #define SYMBOL_COUNT 86
12
12
  #define ALIAS_COUNT 1
13
- #define TOKEN_COUNT 43
13
+ #define TOKEN_COUNT 42
14
- #define EXTERNAL_TOKEN_COUNT 10
14
+ #define EXTERNAL_TOKEN_COUNT 0
15
- #define FIELD_COUNT 6
15
+ #define FIELD_COUNT 8
16
- #define MAX_ALIAS_SEQUENCE_LENGTH 8
16
+ #define MAX_ALIAS_SEQUENCE_LENGTH 11
17
- #define PRODUCTION_ID_COUNT 13
17
+ #define PRODUCTION_ID_COUNT 25
18
18
 
19
19
  enum {
20
20
  anon_sym_package = 1,
21
21
  anon_sym_import = 2,
22
22
  anon_sym_class = 3,
23
- anon_sym_COLON = 4,
24
- anon_sym_enum = 5,
25
- anon_sym_QMARK = 6,
26
- anon_sym_LPAREN = 7,
23
+ anon_sym_LPAREN = 4,
27
- anon_sym_COMMA = 8,
24
+ anon_sym_COMMA = 5,
28
- anon_sym_RPAREN = 9,
25
+ anon_sym_RPAREN = 6,
26
+ anon_sym_trait = 7,
27
+ anon_sym_enum = 8,
28
+ anon_sym_LBRACE = 9,
29
+ anon_sym_RBRACE = 10,
30
+ anon_sym_fun = 11,
31
+ anon_sym_EQ_GT = 12,
32
+ anon_sym_AT = 13,
29
- anon_sym_LT = 10,
33
+ anon_sym_LT = 14,
30
- anon_sym_GT = 11,
34
+ anon_sym_GT = 15,
35
+ anon_sym_QMARK = 16,
36
+ anon_sym_COLON = 17,
37
+ anon_sym_val = 18,
38
+ anon_sym_DOT = 19,
31
- aux_sym_url_token1 = 12,
39
+ aux_sym_url_token1 = 20,
32
- anon_sym_SLASH = 13,
40
+ anon_sym_SLASH = 21,
33
- sym_definition_name = 14,
41
+ sym_definition_name = 22,
34
- sym_variable_name = 15,
42
+ sym_variable_name = 23,
35
- sym_enum_field_name = 16,
43
+ sym_enum_field_name = 24,
36
- anon_sym_true = 17,
44
+ anon_sym_true = 25,
37
- anon_sym_false = 18,
45
+ anon_sym_false = 26,
38
- sym_integer_literal = 19,
46
+ sym_integer_literal = 27,
39
- sym_hex_literal = 20,
47
+ sym_hex_literal = 28,
40
- sym_bin_literal = 21,
48
+ sym_bin_literal = 29,
41
- sym_float_literal = 22,
49
+ sym_float_literal = 30,
42
- anon_sym_SQUOTE = 23,
50
+ anon_sym_SQUOTE = 31,
43
- aux_sym_character_literal_token1 = 24,
51
+ aux_sym_character_literal_token1 = 32,
44
- anon_sym_BSLASHu = 25,
52
+ anon_sym_BSLASHu = 33,
45
- aux_sym__uni_character_literal_token1 = 26,
53
+ aux_sym__uni_character_literal_token1 = 34,
46
- sym__escaped_identifier = 27,
54
+ sym__escaped_identifier = 35,
47
- anon_sym_DQUOTE = 28,
55
+ anon_sym_DQUOTE = 36,
48
- anon_sym_BQUOTE = 29,
56
+ anon_sym_BQUOTE = 37,
49
- sym__line_str_text = 30,
57
+ sym__line_str_text = 38,
50
- sym__multi_line_str_text = 31,
58
+ sym__multi_line_str_text = 39,
51
- anon_sym_DOLLAR = 32,
59
+ anon_sym_DOLLAR = 40,
52
- anon_sym_null = 33,
60
+ anon_sym_null = 41,
53
- anon_sym_RBRACK = 34,
54
- anon_sym_RBRACE = 35,
55
- sym__newline = 36,
56
- sym__indent = 37,
57
- sym__dedent = 38,
58
- sym__string_start = 39,
59
- sym__string_content = 40,
60
- sym__string_end = 41,
61
- sym_comment = 42,
62
- sym_source_file = 43,
61
+ sym_source_file = 42,
63
- sym_import_statement = 44,
62
+ sym_import_statement = 43,
63
+ sym_definitions = 44,
64
64
  sym_class_definition = 45,
65
+ sym_trait_definition = 46,
65
- sym_enum_definition = 46,
66
+ sym_enum_definition = 47,
66
- sym_type = 47,
67
- sym_type_list = 48,
67
+ sym_fun_definition = 48,
68
- sym_trait_list = 49,
68
+ sym_trait_name = 49,
69
69
  sym_generic_list = 50,
70
+ sym_type = 51,
71
+ sym_param = 52,
72
+ sym_type_field = 53,
73
+ sym_fun_field = 54,
70
- sym_class_field = 51,
74
+ sym_trait_field = 55,
71
- sym_enum_field = 52,
75
+ sym_enum_field = 56,
72
- sym__primary_expression = 53,
76
+ sym__primary_expression = 57,
77
+ sym__extension = 58,
73
- sym_url = 54,
78
+ sym_url = 59,
74
- sym_package = 55,
79
+ sym_package = 60,
75
- sym_identifier = 56,
80
+ sym_identifier = 61,
76
- sym_boolean_literal = 57,
81
+ sym_boolean_literal = 62,
77
- sym_character_literal = 58,
82
+ sym_character_literal = 63,
78
- sym_character_escape_seq = 59,
83
+ sym_character_escape_seq = 64,
79
- sym__uni_character_literal = 60,
84
+ sym__uni_character_literal = 65,
80
- sym__string_literal = 61,
85
+ sym__string_literal = 66,
81
- sym_line_string_literal = 62,
86
+ sym_line_string_literal = 67,
82
- sym_multi_line_string_literal = 63,
87
+ sym_multi_line_string_literal = 68,
83
- sym__line_string_content = 64,
88
+ sym__line_string_content = 69,
84
- sym__multi_line_string_content = 65,
89
+ sym__multi_line_string_content = 70,
85
- sym__interpolation = 66,
90
+ sym__interpolation = 71,
86
- sym__literal_constant = 67,
91
+ sym__literal_constant = 72,
87
- aux_sym_source_file_repeat1 = 68,
92
+ aux_sym_source_file_repeat1 = 73,
88
- aux_sym_source_file_repeat2 = 69,
93
+ aux_sym_source_file_repeat2 = 74,
89
- aux_sym_source_file_repeat3 = 70,
90
- aux_sym_class_definition_repeat1 = 71,
94
+ aux_sym_class_definition_repeat1 = 75,
95
+ aux_sym_class_definition_repeat2 = 76,
96
+ aux_sym_trait_definition_repeat1 = 77,
91
- aux_sym_enum_definition_repeat1 = 72,
97
+ aux_sym_enum_definition_repeat1 = 78,
98
+ aux_sym_fun_definition_repeat1 = 79,
99
+ aux_sym_fun_definition_repeat2 = 80,
92
- aux_sym_type_list_repeat1 = 73,
100
+ aux_sym_trait_list_repeat1 = 81,
93
- aux_sym_enum_field_repeat1 = 74,
101
+ aux_sym_enum_field_repeat1 = 82,
94
- aux_sym_url_repeat1 = 75,
102
+ aux_sym_url_repeat1 = 83,
95
- aux_sym_line_string_literal_repeat1 = 76,
103
+ aux_sym_line_string_literal_repeat1 = 84,
96
- aux_sym_multi_line_string_literal_repeat1 = 77,
104
+ aux_sym_multi_line_string_literal_repeat1 = 85,
97
- alias_sym_interpolated_identifier = 78,
105
+ alias_sym_interpolated_identifier = 86,
98
106
  };
99
107
 
100
108
  static const char * const ts_symbol_names[] = {
@@ -102,14 +110,22 @@ static const char * const ts_symbol_names[] = {
102
110
  [anon_sym_package] = "package",
103
111
  [anon_sym_import] = "import",
104
112
  [anon_sym_class] = "class",
105
- [anon_sym_COLON] = ":",
106
- [anon_sym_enum] = "enum",
107
- [anon_sym_QMARK] = "\?",
108
113
  [anon_sym_LPAREN] = "(",
109
114
  [anon_sym_COMMA] = ",",
110
115
  [anon_sym_RPAREN] = ")",
116
+ [anon_sym_trait] = "trait",
117
+ [anon_sym_enum] = "enum",
118
+ [anon_sym_LBRACE] = "{",
119
+ [anon_sym_RBRACE] = "}",
120
+ [anon_sym_fun] = "fun",
121
+ [anon_sym_EQ_GT] = "=>",
122
+ [anon_sym_AT] = "@",
111
123
  [anon_sym_LT] = "<",
112
124
  [anon_sym_GT] = ">",
125
+ [anon_sym_QMARK] = "\?",
126
+ [anon_sym_COLON] = ":",
127
+ [anon_sym_val] = "val",
128
+ [anon_sym_DOT] = ".",
113
129
  [aux_sym_url_token1] = "url_token1",
114
130
  [anon_sym_SLASH] = "/",
115
131
  [sym_definition_name] = "definition_name",
@@ -132,26 +148,23 @@ static const char * const ts_symbol_names[] = {
132
148
  [sym__multi_line_str_text] = "_multi_line_str_text",
133
149
  [anon_sym_DOLLAR] = "$",
134
150
  [anon_sym_null] = "null",
135
- [anon_sym_RBRACK] = "]",
136
- [anon_sym_RBRACE] = "}",
137
- [sym__newline] = "_newline",
138
- [sym__indent] = "_indent",
139
- [sym__dedent] = "_dedent",
140
- [sym__string_start] = "_string_start",
141
- [sym__string_content] = "_string_content",
142
- [sym__string_end] = "_string_end",
143
- [sym_comment] = "comment",
144
151
  [sym_source_file] = "source_file",
145
152
  [sym_import_statement] = "import_statement",
153
+ [sym_definitions] = "definitions",
146
154
  [sym_class_definition] = "class_definition",
155
+ [sym_trait_definition] = "trait_definition",
147
156
  [sym_enum_definition] = "enum_definition",
148
- [sym_type] = "type",
149
- [sym_type_list] = "type_list",
157
+ [sym_fun_definition] = "fun_definition",
150
- [sym_trait_list] = "trait_list",
158
+ [sym_trait_name] = "trait_name",
151
159
  [sym_generic_list] = "generic_list",
160
+ [sym_type] = "type",
161
+ [sym_param] = "param",
162
+ [sym_type_field] = "type_field",
163
+ [sym_fun_field] = "fun_field",
152
- [sym_class_field] = "class_field",
164
+ [sym_trait_field] = "trait_field",
153
165
  [sym_enum_field] = "enum_field",
154
166
  [sym__primary_expression] = "_primary_expression",
167
+ [sym__extension] = "_extension",
155
168
  [sym_url] = "url",
156
169
  [sym_package] = "package",
157
170
  [sym_identifier] = "identifier",
@@ -168,10 +181,13 @@ static const char * const ts_symbol_names[] = {
168
181
  [sym__literal_constant] = "_literal_constant",
169
182
  [aux_sym_source_file_repeat1] = "source_file_repeat1",
170
183
  [aux_sym_source_file_repeat2] = "source_file_repeat2",
171
- [aux_sym_source_file_repeat3] = "source_file_repeat3",
172
184
  [aux_sym_class_definition_repeat1] = "class_definition_repeat1",
185
+ [aux_sym_class_definition_repeat2] = "class_definition_repeat2",
186
+ [aux_sym_trait_definition_repeat1] = "trait_definition_repeat1",
173
187
  [aux_sym_enum_definition_repeat1] = "enum_definition_repeat1",
188
+ [aux_sym_fun_definition_repeat1] = "fun_definition_repeat1",
189
+ [aux_sym_fun_definition_repeat2] = "fun_definition_repeat2",
174
- [aux_sym_type_list_repeat1] = "type_list_repeat1",
190
+ [aux_sym_trait_list_repeat1] = "trait_list_repeat1",
175
191
  [aux_sym_enum_field_repeat1] = "enum_field_repeat1",
176
192
  [aux_sym_url_repeat1] = "url_repeat1",
177
193
  [aux_sym_line_string_literal_repeat1] = "line_string_literal_repeat1",
@@ -184,14 +200,22 @@ static const TSSymbol ts_symbol_map[] = {
184
200
  [anon_sym_package] = anon_sym_package,
185
201
  [anon_sym_import] = anon_sym_import,
186
202
  [anon_sym_class] = anon_sym_class,
187
- [anon_sym_COLON] = anon_sym_COLON,
188
- [anon_sym_enum] = anon_sym_enum,
189
- [anon_sym_QMARK] = anon_sym_QMARK,
190
203
  [anon_sym_LPAREN] = anon_sym_LPAREN,
191
204
  [anon_sym_COMMA] = anon_sym_COMMA,
192
205
  [anon_sym_RPAREN] = anon_sym_RPAREN,
206
+ [anon_sym_trait] = anon_sym_trait,
207
+ [anon_sym_enum] = anon_sym_enum,
208
+ [anon_sym_LBRACE] = anon_sym_LBRACE,
209
+ [anon_sym_RBRACE] = anon_sym_RBRACE,
210
+ [anon_sym_fun] = anon_sym_fun,
211
+ [anon_sym_EQ_GT] = anon_sym_EQ_GT,
212
+ [anon_sym_AT] = anon_sym_AT,
193
213
  [anon_sym_LT] = anon_sym_LT,
194
214
  [anon_sym_GT] = anon_sym_GT,
215
+ [anon_sym_QMARK] = anon_sym_QMARK,
216
+ [anon_sym_COLON] = anon_sym_COLON,
217
+ [anon_sym_val] = anon_sym_val,
218
+ [anon_sym_DOT] = anon_sym_DOT,
195
219
  [aux_sym_url_token1] = aux_sym_url_token1,
196
220
  [anon_sym_SLASH] = anon_sym_SLASH,
197
221
  [sym_definition_name] = sym_definition_name,
@@ -214,26 +238,23 @@ static const TSSymbol ts_symbol_map[] = {
214
238
  [sym__multi_line_str_text] = sym__multi_line_str_text,
215
239
  [anon_sym_DOLLAR] = anon_sym_DOLLAR,
216
240
  [anon_sym_null] = anon_sym_null,
217
- [anon_sym_RBRACK] = anon_sym_RBRACK,
218
- [anon_sym_RBRACE] = anon_sym_RBRACE,
219
- [sym__newline] = sym__newline,
220
- [sym__indent] = sym__indent,
221
- [sym__dedent] = sym__dedent,
222
- [sym__string_start] = sym__string_start,
223
- [sym__string_content] = sym__string_content,
224
- [sym__string_end] = sym__string_end,
225
- [sym_comment] = sym_comment,
226
241
  [sym_source_file] = sym_source_file,
227
242
  [sym_import_statement] = sym_import_statement,
243
+ [sym_definitions] = sym_definitions,
228
244
  [sym_class_definition] = sym_class_definition,
245
+ [sym_trait_definition] = sym_trait_definition,
229
246
  [sym_enum_definition] = sym_enum_definition,
230
- [sym_type] = sym_type,
231
- [sym_type_list] = sym_type_list,
247
+ [sym_fun_definition] = sym_fun_definition,
232
- [sym_trait_list] = sym_trait_list,
248
+ [sym_trait_name] = sym_trait_name,
233
249
  [sym_generic_list] = sym_generic_list,
250
+ [sym_type] = sym_type,
251
+ [sym_param] = sym_param,
252
+ [sym_type_field] = sym_type_field,
253
+ [sym_fun_field] = sym_fun_field,
234
- [sym_class_field] = sym_class_field,
254
+ [sym_trait_field] = sym_trait_field,
235
255
  [sym_enum_field] = sym_enum_field,
236
256
  [sym__primary_expression] = sym__primary_expression,
257
+ [sym__extension] = sym__extension,
237
258
  [sym_url] = sym_url,
238
259
  [sym_package] = sym_package,
239
260
  [sym_identifier] = sym_identifier,
@@ -250,10 +271,13 @@ static const TSSymbol ts_symbol_map[] = {
250
271
  [sym__literal_constant] = sym__literal_constant,
251
272
  [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
252
273
  [aux_sym_source_file_repeat2] = aux_sym_source_file_repeat2,
253
- [aux_sym_source_file_repeat3] = aux_sym_source_file_repeat3,
254
274
  [aux_sym_class_definition_repeat1] = aux_sym_class_definition_repeat1,
275
+ [aux_sym_class_definition_repeat2] = aux_sym_class_definition_repeat2,
276
+ [aux_sym_trait_definition_repeat1] = aux_sym_trait_definition_repeat1,
255
277
  [aux_sym_enum_definition_repeat1] = aux_sym_enum_definition_repeat1,
278
+ [aux_sym_fun_definition_repeat1] = aux_sym_fun_definition_repeat1,
279
+ [aux_sym_fun_definition_repeat2] = aux_sym_fun_definition_repeat2,
256
- [aux_sym_type_list_repeat1] = aux_sym_type_list_repeat1,
280
+ [aux_sym_trait_list_repeat1] = aux_sym_trait_list_repeat1,
257
281
  [aux_sym_enum_field_repeat1] = aux_sym_enum_field_repeat1,
258
282
  [aux_sym_url_repeat1] = aux_sym_url_repeat1,
259
283
  [aux_sym_line_string_literal_repeat1] = aux_sym_line_string_literal_repeat1,
@@ -278,7 +302,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
278
302
  .visible = true,
279
303
  .named = false,
280
304
  },
305
+ [anon_sym_LPAREN] = {
306
+ .visible = true,
307
+ .named = false,
308
+ },
281
- [anon_sym_COLON] = {
309
+ [anon_sym_COMMA] = {
310
+ .visible = true,
311
+ .named = false,
312
+ },
313
+ [anon_sym_RPAREN] = {
314
+ .visible = true,
315
+ .named = false,
316
+ },
317
+ [anon_sym_trait] = {
282
318
  .visible = true,
283
319
  .named = false,
284
320
  },
@@ -286,19 +322,23 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
286
322
  .visible = true,
287
323
  .named = false,
288
324
  },
289
- [anon_sym_QMARK] = {
325
+ [anon_sym_LBRACE] = {
290
326
  .visible = true,
291
327
  .named = false,
292
328
  },
293
- [anon_sym_LPAREN] = {
329
+ [anon_sym_RBRACE] = {
294
330
  .visible = true,
295
331
  .named = false,
296
332
  },
297
- [anon_sym_COMMA] = {
333
+ [anon_sym_fun] = {
298
334
  .visible = true,
299
335
  .named = false,
300
336
  },
337
+ [anon_sym_EQ_GT] = {
338
+ .visible = true,
339
+ .named = false,
340
+ },
301
- [anon_sym_RPAREN] = {
341
+ [anon_sym_AT] = {
302
342
  .visible = true,
303
343
  .named = false,
304
344
  },
@@ -310,6 +350,22 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
310
350
  .visible = true,
311
351
  .named = false,
312
352
  },
353
+ [anon_sym_QMARK] = {
354
+ .visible = true,
355
+ .named = false,
356
+ },
357
+ [anon_sym_COLON] = {
358
+ .visible = true,
359
+ .named = false,
360
+ },
361
+ [anon_sym_val] = {
362
+ .visible = true,
363
+ .named = false,
364
+ },
365
+ [anon_sym_DOT] = {
366
+ .visible = true,
367
+ .named = false,
368
+ },
313
369
  [aux_sym_url_token1] = {
314
370
  .visible = false,
315
371
  .named = false,
@@ -398,55 +454,39 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
398
454
  .visible = true,
399
455
  .named = false,
400
456
  },
401
- [anon_sym_RBRACK] = {
457
+ [sym_source_file] = {
402
- .visible = true,
403
- .named = false,
404
- },
405
- [anon_sym_RBRACE] = {
406
458
  .visible = true,
407
- .named = false,
408
- },
409
- [sym__newline] = {
410
- .visible = false,
411
- .named = true,
412
- },
413
- [sym__indent] = {
414
- .visible = false,
415
- .named = true,
416
- },
417
- [sym__dedent] = {
418
- .visible = false,
419
459
  .named = true,
420
460
  },
421
- [sym__string_start] = {
461
+ [sym_import_statement] = {
422
- .visible = false,
462
+ .visible = true,
423
463
  .named = true,
424
464
  },
425
- [sym__string_content] = {
465
+ [sym_definitions] = {
426
- .visible = false,
466
+ .visible = true,
427
467
  .named = true,
428
468
  },
429
- [sym__string_end] = {
469
+ [sym_class_definition] = {
430
- .visible = false,
470
+ .visible = true,
431
471
  .named = true,
432
472
  },
433
- [sym_comment] = {
473
+ [sym_trait_definition] = {
434
474
  .visible = true,
435
475
  .named = true,
436
476
  },
437
- [sym_source_file] = {
477
+ [sym_enum_definition] = {
438
478
  .visible = true,
439
479
  .named = true,
440
480
  },
441
- [sym_import_statement] = {
481
+ [sym_fun_definition] = {
442
482
  .visible = true,
443
483
  .named = true,
444
484
  },
445
- [sym_class_definition] = {
485
+ [sym_trait_name] = {
446
486
  .visible = true,
447
487
  .named = true,
448
488
  },
449
- [sym_enum_definition] = {
489
+ [sym_generic_list] = {
450
490
  .visible = true,
451
491
  .named = true,
452
492
  },
@@ -454,19 +494,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
454
494
  .visible = true,
455
495
  .named = true,
456
496
  },
457
- [sym_type_list] = {
497
+ [sym_param] = {
458
498
  .visible = true,
459
499
  .named = true,
460
500
  },
461
- [sym_trait_list] = {
501
+ [sym_type_field] = {
462
502
  .visible = true,
463
503
  .named = true,
464
504
  },
465
- [sym_generic_list] = {
505
+ [sym_fun_field] = {
466
506
  .visible = true,
467
507
  .named = true,
468
508
  },
469
- [sym_class_field] = {
509
+ [sym_trait_field] = {
470
510
  .visible = true,
471
511
  .named = true,
472
512
  },
@@ -478,6 +518,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
478
518
  .visible = false,
479
519
  .named = true,
480
520
  },
521
+ [sym__extension] = {
522
+ .visible = false,
523
+ .named = true,
524
+ },
481
525
  [sym_url] = {
482
526
  .visible = true,
483
527
  .named = true,
@@ -542,11 +586,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
542
586
  .visible = false,
543
587
  .named = false,
544
588
  },
545
- [aux_sym_source_file_repeat3] = {
589
+ [aux_sym_class_definition_repeat1] = {
590
+ .visible = false,
591
+ .named = false,
592
+ },
593
+ [aux_sym_class_definition_repeat2] = {
546
594
  .visible = false,
547
595
  .named = false,
548
596
  },
549
- [aux_sym_class_definition_repeat1] = {
597
+ [aux_sym_trait_definition_repeat1] = {
550
598
  .visible = false,
551
599
  .named = false,
552
600
  },
@@ -554,7 +602,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
554
602
  .visible = false,
555
603
  .named = false,
556
604
  },
605
+ [aux_sym_fun_definition_repeat1] = {
606
+ .visible = false,
607
+ .named = false,
608
+ },
609
+ [aux_sym_fun_definition_repeat2] = {
610
+ .visible = false,
611
+ .named = false,
612
+ },
557
- [aux_sym_type_list_repeat1] = {
613
+ [aux_sym_trait_list_repeat1] = {
558
614
  .visible = false,
559
615
  .named = false,
560
616
  },
@@ -584,9 +640,11 @@ enum {
584
640
  field_fields = 1,
585
641
  field_generics = 2,
586
642
  field_name = 3,
643
+ field_params = 4,
644
+ field_returns = 5,
587
- field_traits = 4,
645
+ field_traits = 6,
588
- field_type = 5,
646
+ field_type = 7,
589
- field_types = 6,
647
+ field_types = 8,
590
648
  };
591
649
 
592
650
  static const char * const ts_field_names[] = {
@@ -594,89 +652,193 @@ static const char * const ts_field_names[] = {
594
652
  [field_fields] = "fields",
595
653
  [field_generics] = "generics",
596
654
  [field_name] = "name",
655
+ [field_params] = "params",
656
+ [field_returns] = "returns",
597
657
  [field_traits] = "traits",
598
658
  [field_type] = "type",
599
659
  [field_types] = "types",
600
660
  };
601
661
 
602
662
  static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
603
- [1] = {.index = 0, .length = 3},
663
+ [1] = {.index = 0, .length = 4},
604
- [2] = {.index = 3, .length = 4},
664
+ [2] = {.index = 4, .length = 5},
605
- [3] = {.index = 7, .length = 4},
665
+ [3] = {.index = 9, .length = 5},
606
- [4] = {.index = 11, .length = 4},
666
+ [4] = {.index = 14, .length = 2},
607
- [5] = {.index = 15, .length = 4},
667
+ [5] = {.index = 16, .length = 5},
608
- [6] = {.index = 19, .length = 2},
668
+ [6] = {.index = 21, .length = 2},
609
- [7] = {.index = 21, .length = 5},
669
+ [7] = {.index = 23, .length = 6},
610
- [8] = {.index = 26, .length = 5},
670
+ [8] = {.index = 29, .length = 3},
611
- [9] = {.index = 31, .length = 5},
671
+ [9] = {.index = 32, .length = 6},
612
- [10] = {.index = 36, .length = 5},
672
+ [10] = {.index = 38, .length = 6},
613
- [11] = {.index = 41, .length = 6},
673
+ [11] = {.index = 44, .length = 7},
674
+ [12] = {.index = 51, .length = 4},
675
+ [13] = {.index = 55, .length = 4},
676
+ [14] = {.index = 59, .length = 7},
677
+ [15] = {.index = 66, .length = 8},
678
+ [16] = {.index = 74, .length = 8},
679
+ [17] = {.index = 82, .length = 5},
680
+ [18] = {.index = 87, .length = 5},
681
+ [19] = {.index = 92, .length = 5},
682
+ [20] = {.index = 97, .length = 9},
683
+ [21] = {.index = 106, .length = 6},
684
+ [22] = {.index = 112, .length = 6},
685
+ [24] = {.index = 118, .length = 7},
614
686
  };
615
687
 
616
688
  static const TSFieldMapEntry ts_field_map_entries[] = {
617
689
  [0] =
690
+ {field_fields, 2},
618
691
  {field_fields, 3},
619
692
  {field_fields, 4},
620
693
  {field_name, 1},
621
- [3] =
694
+ [4] =
695
+ {field_fields, 2},
622
696
  {field_fields, 3},
623
697
  {field_fields, 4},
624
698
  {field_fields, 5},
625
699
  {field_name, 1},
626
- [7] =
700
+ [9] =
701
+ {field_fields, 3},
627
702
  {field_fields, 4},
628
703
  {field_fields, 5},
704
+ {field_generics, 2},
629
705
  {field_name, 1},
630
- {field_traits, 2},
631
- [11] =
706
+ [14] =
707
+ {field_name, 0},
708
+ {field_type, 2},
709
+ [16] =
710
+ {field_fields, 3},
632
711
  {field_fields, 4},
633
712
  {field_fields, 5},
713
+ {field_name, 2},
634
- {field_generics, 2},
714
+ {field_traits, 0},
715
+ [21] =
635
716
  {field_name, 1},
717
+ {field_type, 3},
636
- [15] =
718
+ [23] =
719
+ {field_fields, 3},
637
720
  {field_fields, 4},
638
721
  {field_fields, 5},
722
+ {field_fields, 6},
723
+ {field_generics, 2},
639
724
  {field_name, 1},
640
- {field_types, 2},
641
- [19] =
725
+ [29] =
642
- {field_name, 0},
726
+ {field_name, 1},
643
- {field_type, 2},
727
+ {field_params, 2},
728
+ {field_params, 3},
644
- [21] =
729
+ [32] =
730
+ {field_fields, 3},
645
731
  {field_fields, 4},
646
732
  {field_fields, 5},
647
733
  {field_fields, 6},
648
- {field_name, 1},
734
+ {field_name, 2},
649
- {field_traits, 2},
735
+ {field_traits, 0},
650
- [26] =
736
+ [38] =
651
737
  {field_fields, 4},
652
738
  {field_fields, 5},
653
739
  {field_fields, 6},
654
- {field_generics, 2},
740
+ {field_generics, 3},
655
- {field_name, 1},
741
+ {field_name, 2},
742
+ {field_traits, 0},
656
- [31] =
743
+ [44] =
657
744
  {field_fields, 5},
658
745
  {field_fields, 6},
746
+ {field_fields, 7},
747
+ {field_name, 1},
748
+ {field_types, 2},
749
+ {field_types, 3},
750
+ {field_types, 4},
751
+ [51] =
752
+ {field_name, 1},
753
+ {field_params, 2},
754
+ {field_params, 3},
659
- {field_generics, 2},
755
+ {field_returns, 5},
756
+ [55] =
660
757
  {field_name, 1},
758
+ {field_params, 2},
661
- {field_traits, 3},
759
+ {field_params, 3},
760
+ {field_params, 4},
662
- [36] =
761
+ [59] =
663
762
  {field_fields, 4},
664
763
  {field_fields, 5},
665
764
  {field_fields, 6},
765
+ {field_fields, 7},
766
+ {field_generics, 3},
767
+ {field_name, 2},
768
+ {field_traits, 0},
769
+ [66] =
770
+ {field_fields, 5},
771
+ {field_fields, 6},
772
+ {field_fields, 7},
773
+ {field_fields, 8},
666
774
  {field_name, 1},
667
775
  {field_types, 2},
776
+ {field_types, 3},
777
+ {field_types, 4},
668
- [41] =
778
+ [74] =
669
- {field_fields, 5},
670
779
  {field_fields, 6},
671
780
  {field_fields, 7},
672
- {field_generics, 2},
781
+ {field_fields, 8},
673
782
  {field_name, 1},
783
+ {field_types, 2},
784
+ {field_types, 3},
785
+ {field_types, 4},
786
+ {field_types, 5},
787
+ [82] =
788
+ {field_name, 1},
789
+ {field_params, 2},
674
- {field_traits, 3},
790
+ {field_params, 3},
791
+ {field_returns, 5},
792
+ {field_returns, 6},
793
+ [87] =
794
+ {field_name, 1},
795
+ {field_params, 2},
796
+ {field_params, 3},
797
+ {field_params, 4},
798
+ {field_returns, 6},
799
+ [92] =
800
+ {field_name, 1},
801
+ {field_params, 2},
802
+ {field_params, 3},
803
+ {field_params, 4},
804
+ {field_params, 5},
805
+ [97] =
806
+ {field_fields, 6},
807
+ {field_fields, 7},
808
+ {field_fields, 8},
809
+ {field_fields, 9},
810
+ {field_name, 1},
811
+ {field_types, 2},
812
+ {field_types, 3},
813
+ {field_types, 4},
814
+ {field_types, 5},
815
+ [106] =
816
+ {field_name, 1},
817
+ {field_params, 2},
818
+ {field_params, 3},
819
+ {field_params, 4},
820
+ {field_returns, 6},
821
+ {field_returns, 7},
822
+ [112] =
823
+ {field_name, 1},
824
+ {field_params, 2},
825
+ {field_params, 3},
826
+ {field_params, 4},
827
+ {field_params, 5},
828
+ {field_returns, 7},
829
+ [118] =
830
+ {field_name, 1},
831
+ {field_params, 2},
832
+ {field_params, 3},
833
+ {field_params, 4},
834
+ {field_params, 5},
835
+ {field_returns, 7},
836
+ {field_returns, 8},
675
837
  };
676
838
 
677
839
  static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
678
840
  [0] = {0},
679
- [12] = {
841
+ [23] = {
680
842
  [1] = alias_sym_interpolated_identifier,
681
843
  },
682
844
  };
@@ -693,759 +855,843 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
693
855
  eof = lexer->eof(lexer);
694
856
  switch (state) {
695
857
  case 0:
696
- if (eof) ADVANCE(51);
858
+ if (eof) ADVANCE(59);
697
- if (lookahead == '"') ADVANCE(97);
859
+ if (lookahead == '"') ADVANCE(113);
698
- if (lookahead == '$') ADVANCE(104);
860
+ if (lookahead == '$') ADVANCE(120);
699
- if (lookahead == '\'') ADVANCE(91);
861
+ if (lookahead == '\'') ADVANCE(107);
700
- if (lookahead == '(') ADVANCE(58);
862
+ if (lookahead == '(') ADVANCE(63);
701
- if (lookahead == ')') ADVANCE(60);
863
+ if (lookahead == ')') ADVANCE(65);
702
- if (lookahead == ',') ADVANCE(59);
864
+ if (lookahead == ',') ADVANCE(64);
865
+ if (lookahead == '.') ADVANCE(78);
703
- if (lookahead == '/') ADVANCE(64);
866
+ if (lookahead == '/') ADVANCE(80);
704
- if (lookahead == '0') ADVANCE(81);
867
+ if (lookahead == '0') ADVANCE(97);
705
- if (lookahead == ':') ADVANCE(55);
706
- if (lookahead == '<') ADVANCE(61);
707
- if (lookahead == '>') ADVANCE(62);
708
- if (lookahead == '?') ADVANCE(57);
709
- if (lookahead == '\\') ADVANCE(38);
710
- if (lookahead == ']') ADVANCE(106);
711
- if (lookahead == '_') ADVANCE(76);
868
+ if (lookahead == ':') ADVANCE(76);
869
+ if (lookahead == '<') ADVANCE(73);
870
+ if (lookahead == '=') ADVANCE(5);
871
+ if (lookahead == '>') ADVANCE(74);
872
+ if (lookahead == '?') ADVANCE(75);
873
+ if (lookahead == '@') ADVANCE(72);
874
+ if (lookahead == '\\') ADVANCE(46);
712
- if (lookahead == '`') ADVANCE(98);
875
+ if (lookahead == '_') ADVANCE(92);
876
+ if (lookahead == '`') ADVANCE(114);
713
- if (lookahead == 'c') ADVANCE(23);
877
+ if (lookahead == 'c') ADVANCE(30);
714
- if (lookahead == 'e') ADVANCE(29);
878
+ if (lookahead == 'e') ADVANCE(35);
715
- if (lookahead == 'f') ADVANCE(14);
879
+ if (lookahead == 'f') ADVANCE(16);
716
- if (lookahead == 'i') ADVANCE(27);
880
+ if (lookahead == 'i') ADVANCE(32);
717
- if (lookahead == 'n') ADVANCE(39);
881
+ if (lookahead == 'n') ADVANCE(47);
718
- if (lookahead == 'p') ADVANCE(11);
882
+ if (lookahead == 'p') ADVANCE(12);
719
- if (lookahead == 't') ADVANCE(33);
883
+ if (lookahead == 't') ADVANCE(38);
720
- if (lookahead == '}') ADVANCE(107);
884
+ if (lookahead == 'v') ADVANCE(17);
885
+ if (lookahead == '{') ADVANCE(68);
886
+ if (lookahead == '}') ADVANCE(69);
721
- if (('a' <= lookahead && lookahead <= 'd')) ADVANCE(50);
887
+ if (('a' <= lookahead && lookahead <= 'd')) ADVANCE(58);
722
888
  if (lookahead == '\t' ||
723
889
  lookahead == '\n' ||
724
890
  lookahead == '\r' ||
725
891
  lookahead == ' ') SKIP(0)
726
- if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(67);
892
+ if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(83);
727
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(84);
893
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(100);
728
- if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(71);
894
+ if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(87);
729
895
  END_STATE();
730
896
  case 1:
731
- if (lookahead == '"') ADVANCE(97);
897
+ if (lookahead == '"') ADVANCE(113);
732
- if (lookahead == '$') ADVANCE(104);
898
+ if (lookahead == '$') ADVANCE(120);
733
- if (lookahead == '\\') ADVANCE(38);
899
+ if (lookahead == '\\') ADVANCE(46);
734
900
  if (lookahead == '\t' ||
735
901
  lookahead == '\n' ||
736
902
  lookahead == '\r' ||
737
- lookahead == ' ') ADVANCE(100);
903
+ lookahead == ' ') ADVANCE(116);
738
- if (lookahead != 0) ADVANCE(101);
904
+ if (lookahead != 0) ADVANCE(117);
739
905
  END_STATE();
740
906
  case 2:
741
- if (lookahead == '"') ADVANCE(97);
907
+ if (lookahead == '"') ADVANCE(113);
742
- if (lookahead == '$') ADVANCE(104);
908
+ if (lookahead == '$') ADVANCE(120);
743
- if (lookahead == '`') ADVANCE(99);
909
+ if (lookahead == '`') ADVANCE(115);
744
910
  if (lookahead == '\t' ||
745
911
  lookahead == '\n' ||
746
912
  lookahead == '\r' ||
747
- lookahead == ' ') ADVANCE(102);
913
+ lookahead == ' ') ADVANCE(118);
748
- if (lookahead != 0) ADVANCE(103);
914
+ if (lookahead != 0) ADVANCE(119);
749
915
  END_STATE();
750
916
  case 3:
751
- if (lookahead == '"') ADVANCE(97);
917
+ if (lookahead == '"') ADVANCE(113);
752
- if (lookahead == '\'') ADVANCE(91);
918
+ if (lookahead == '\'') ADVANCE(107);
919
+ if (lookahead == ')') ADVANCE(65);
920
+ if (lookahead == ',') ADVANCE(64);
753
- if (lookahead == '.') ADVANCE(46);
921
+ if (lookahead == '.') ADVANCE(54);
754
- if (lookahead == '0') ADVANCE(79);
922
+ if (lookahead == '0') ADVANCE(95);
755
- if (lookahead == '`') ADVANCE(98);
923
+ if (lookahead == '`') ADVANCE(114);
756
- if (lookahead == 'f') ADVANCE(15);
924
+ if (lookahead == 'f') ADVANCE(18);
757
- if (lookahead == 'n') ADVANCE(39);
925
+ if (lookahead == 'n') ADVANCE(47);
758
- if (lookahead == 't') ADVANCE(33);
926
+ if (lookahead == 't') ADVANCE(40);
927
+ if (lookahead == '{') ADVANCE(68);
759
928
  if (lookahead == '\t' ||
760
929
  lookahead == '\n' ||
761
930
  lookahead == '\r' ||
762
931
  lookahead == ' ') SKIP(3)
763
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80);
932
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(96);
764
- if (('A' <= lookahead && lookahead <= 'Z') ||
933
+ if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(86);
765
- lookahead == '_') ADVANCE(76);
766
934
  END_STATE();
767
935
  case 4:
768
- if (lookahead == '?') ADVANCE(57);
936
+ if (lookahead == ')') ADVANCE(65);
769
937
  if (lookahead == '\t' ||
770
938
  lookahead == '\n' ||
771
939
  lookahead == '\r' ||
772
940
  lookahead == ' ') SKIP(4)
773
- if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(70);
774
- if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(72);
941
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(88);
942
+ if (('A' <= lookahead && lookahead <= 'Z') ||
943
+ lookahead == '_') ADVANCE(92);
775
944
  END_STATE();
776
945
  case 5:
946
+ if (lookahead == '>') ADVANCE(71);
947
+ END_STATE();
948
+ case 6:
777
- if (lookahead == '\\') ADVANCE(38);
949
+ if (lookahead == '\\') ADVANCE(46);
778
950
  if (lookahead == '\t' ||
779
- lookahead == ' ') ADVANCE(93);
951
+ lookahead == ' ') ADVANCE(109);
780
952
  if (lookahead == '\n' ||
781
- lookahead == '\r') SKIP(5)
953
+ lookahead == '\r') SKIP(6)
782
954
  if (lookahead != 0 &&
783
- lookahead != '\'') ADVANCE(92);
955
+ lookahead != '\'') ADVANCE(108);
784
- END_STATE();
785
- case 6:
786
- if (lookahead == '_') ADVANCE(6);
787
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(82);
788
956
  END_STATE();
789
957
  case 7:
790
958
  if (lookahead == '_') ADVANCE(7);
791
- if (lookahead == '0' ||
792
- lookahead == '1') ADVANCE(87);
959
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(98);
793
960
  END_STATE();
794
961
  case 8:
795
962
  if (lookahead == '_') ADVANCE(8);
796
- if (('0' <= lookahead && lookahead <= '9') ||
963
+ if (lookahead == '0' ||
797
- ('A' <= lookahead && lookahead <= 'F') ||
798
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(86);
964
+ lookahead == '1') ADVANCE(103);
799
965
  END_STATE();
800
966
  case 9:
801
967
  if (lookahead == '_') ADVANCE(9);
968
+ if (('0' <= lookahead && lookahead <= '9') ||
969
+ ('A' <= lookahead && lookahead <= 'F') ||
802
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80);
970
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(102);
803
971
  END_STATE();
804
972
  case 10:
805
973
  if (lookahead == '_') ADVANCE(10);
806
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(90);
974
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(96);
807
975
  END_STATE();
808
976
  case 11:
809
- if (lookahead == 'a') ADVANCE(16);
977
+ if (lookahead == '_') ADVANCE(11);
978
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(106);
810
979
  END_STATE();
811
980
  case 12:
812
- if (lookahead == 'a') ADVANCE(36);
981
+ if (lookahead == 'a') ADVANCE(19);
813
982
  END_STATE();
814
983
  case 13:
815
- if (lookahead == 'a') ADVANCE(20);
984
+ if (lookahead == 'a') ADVANCE(43);
816
985
  END_STATE();
817
986
  case 14:
818
- if (lookahead == 'a') ADVANCE(26);
987
+ if (lookahead == 'a') ADVANCE(24);
819
- if (('0' <= lookahead && lookahead <= '9') ||
820
- ('A' <= lookahead && lookahead <= 'F') ||
821
- ('b' <= lookahead && lookahead <= 'f')) ADVANCE(49);
988
+ if (lookahead == 'u') ADVANCE(20);
822
989
  END_STATE();
823
990
  case 15:
824
- if (lookahead == 'a') ADVANCE(25);
991
+ if (lookahead == 'a') ADVANCE(23);
825
992
  END_STATE();
826
993
  case 16:
827
- if (lookahead == 'c') ADVANCE(21);
994
+ if (lookahead == 'a') ADVANCE(29);
995
+ if (lookahead == 'u') ADVANCE(34);
996
+ if (('0' <= lookahead && lookahead <= '9') ||
997
+ ('A' <= lookahead && lookahead <= 'F') ||
998
+ ('b' <= lookahead && lookahead <= 'f')) ADVANCE(57);
828
999
  END_STATE();
829
1000
  case 17:
830
- if (lookahead == 'e') ADVANCE(77);
1001
+ if (lookahead == 'a') ADVANCE(26);
831
1002
  END_STATE();
832
1003
  case 18:
833
- if (lookahead == 'e') ADVANCE(78);
1004
+ if (lookahead == 'a') ADVANCE(28);
834
1005
  END_STATE();
835
1006
  case 19:
836
- if (lookahead == 'e') ADVANCE(52);
1007
+ if (lookahead == 'c') ADVANCE(25);
837
1008
  END_STATE();
838
1009
  case 20:
839
- if (lookahead == 'g') ADVANCE(19);
1010
+ if (lookahead == 'e') ADVANCE(93);
840
1011
  END_STATE();
841
1012
  case 21:
842
- if (lookahead == 'k') ADVANCE(13);
1013
+ if (lookahead == 'e') ADVANCE(94);
843
1014
  END_STATE();
844
1015
  case 22:
845
- if (lookahead == 'l') ADVANCE(105);
1016
+ if (lookahead == 'e') ADVANCE(60);
846
1017
  END_STATE();
847
1018
  case 23:
848
- if (lookahead == 'l') ADVANCE(12);
1019
+ if (lookahead == 'g') ADVANCE(22);
849
- if (('0' <= lookahead && lookahead <= '9') ||
850
- ('A' <= lookahead && lookahead <= 'F') ||
851
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(49);
852
1020
  END_STATE();
853
1021
  case 24:
854
- if (lookahead == 'l') ADVANCE(22);
1022
+ if (lookahead == 'i') ADVANCE(44);
855
1023
  END_STATE();
856
1024
  case 25:
857
- if (lookahead == 'l') ADVANCE(35);
1025
+ if (lookahead == 'k') ADVANCE(15);
858
1026
  END_STATE();
859
1027
  case 26:
860
- if (lookahead == 'l') ADVANCE(35);
1028
+ if (lookahead == 'l') ADVANCE(77);
861
- if (('0' <= lookahead && lookahead <= '9') ||
862
- ('A' <= lookahead && lookahead <= 'F') ||
863
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(48);
864
1029
  END_STATE();
865
1030
  case 27:
866
- if (lookahead == 'm') ADVANCE(31);
1031
+ if (lookahead == 'l') ADVANCE(121);
867
1032
  END_STATE();
868
1033
  case 28:
869
- if (lookahead == 'm') ADVANCE(56);
1034
+ if (lookahead == 'l') ADVANCE(42);
870
1035
  END_STATE();
871
1036
  case 29:
872
- if (lookahead == 'n') ADVANCE(41);
1037
+ if (lookahead == 'l') ADVANCE(42);
873
1038
  if (('0' <= lookahead && lookahead <= '9') ||
874
1039
  ('A' <= lookahead && lookahead <= 'F') ||
875
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(49);
1040
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(56);
876
1041
  END_STATE();
877
1042
  case 30:
878
- if (lookahead == 'o') ADVANCE(32);
1043
+ if (lookahead == 'l') ADVANCE(13);
1044
+ if (('0' <= lookahead && lookahead <= '9') ||
1045
+ ('A' <= lookahead && lookahead <= 'F') ||
1046
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(57);
879
1047
  END_STATE();
880
1048
  case 31:
881
- if (lookahead == 'p') ADVANCE(30);
1049
+ if (lookahead == 'l') ADVANCE(27);
882
1050
  END_STATE();
883
1051
  case 32:
884
- if (lookahead == 'r') ADVANCE(37);
1052
+ if (lookahead == 'm') ADVANCE(37);
885
1053
  END_STATE();
886
1054
  case 33:
887
- if (lookahead == 'r') ADVANCE(40);
1055
+ if (lookahead == 'm') ADVANCE(67);
888
1056
  END_STATE();
889
1057
  case 34:
890
- if (lookahead == 's') ADVANCE(54);
1058
+ if (lookahead == 'n') ADVANCE(70);
891
1059
  END_STATE();
892
1060
  case 35:
893
- if (lookahead == 's') ADVANCE(18);
1061
+ if (lookahead == 'n') ADVANCE(49);
1062
+ if (('0' <= lookahead && lookahead <= '9') ||
1063
+ ('A' <= lookahead && lookahead <= 'F') ||
1064
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(57);
894
1065
  END_STATE();
895
1066
  case 36:
896
- if (lookahead == 's') ADVANCE(34);
1067
+ if (lookahead == 'o') ADVANCE(39);
897
1068
  END_STATE();
898
1069
  case 37:
899
- if (lookahead == 't') ADVANCE(53);
1070
+ if (lookahead == 'p') ADVANCE(36);
900
1071
  END_STATE();
901
1072
  case 38:
902
- if (lookahead == 'u') ADVANCE(94);
1073
+ if (lookahead == 'r') ADVANCE(14);
903
- if (lookahead == '"' ||
904
- lookahead == '$' ||
905
- lookahead == '\'' ||
906
- lookahead == '\\' ||
907
- lookahead == 'b' ||
908
- lookahead == 'n' ||
909
- lookahead == 'r' ||
910
- lookahead == 't') ADVANCE(96);
911
1074
  END_STATE();
912
1075
  case 39:
913
- if (lookahead == 'u') ADVANCE(24);
1076
+ if (lookahead == 'r') ADVANCE(45);
914
1077
  END_STATE();
915
1078
  case 40:
916
- if (lookahead == 'u') ADVANCE(17);
1079
+ if (lookahead == 'r') ADVANCE(48);
917
1080
  END_STATE();
918
1081
  case 41:
919
- if (lookahead == 'u') ADVANCE(28);
1082
+ if (lookahead == 's') ADVANCE(62);
920
1083
  END_STATE();
921
1084
  case 42:
922
- if (lookahead == '0' ||
923
- lookahead == '1') ADVANCE(88);
1085
+ if (lookahead == 's') ADVANCE(21);
924
- if (('2' <= lookahead && lookahead <= '9') ||
925
- ('A' <= lookahead && lookahead <= 'F') ||
926
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(48);
927
1086
  END_STATE();
928
1087
  case 43:
929
- if (lookahead == '0' ||
930
- lookahead == '1') ADVANCE(87);
1088
+ if (lookahead == 's') ADVANCE(41);
931
1089
  END_STATE();
932
1090
  case 44:
933
- if (lookahead == '\t' ||
1091
+ if (lookahead == 't') ADVANCE(66);
934
- lookahead == '\n' ||
935
- lookahead == '\r' ||
936
- lookahead == ' ') SKIP(44)
937
- if (('A' <= lookahead && lookahead <= 'Z') ||
938
- lookahead == '_' ||
939
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(63);
940
1092
  END_STATE();
941
1093
  case 45:
942
- if (lookahead == '\t' ||
1094
+ if (lookahead == 't') ADVANCE(61);
943
- lookahead == '\n' ||
944
- lookahead == '\r' ||
945
- lookahead == ' ') SKIP(45)
946
- if (('0' <= lookahead && lookahead <= '9') ||
947
- ('A' <= lookahead && lookahead <= 'F') ||
948
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(50);
949
1095
  END_STATE();
950
1096
  case 46:
951
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(90);
1097
+ if (lookahead == 'u') ADVANCE(110);
1098
+ if (lookahead == '"' ||
1099
+ lookahead == '$' ||
1100
+ lookahead == '\'' ||
1101
+ lookahead == '\\' ||
1102
+ lookahead == 'b' ||
1103
+ lookahead == 'n' ||
1104
+ lookahead == 'r' ||
1105
+ lookahead == 't') ADVANCE(112);
952
1106
  END_STATE();
953
1107
  case 47:
954
- if (('0' <= lookahead && lookahead <= '9') ||
955
- ('A' <= lookahead && lookahead <= 'F') ||
956
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(86);
1108
+ if (lookahead == 'u') ADVANCE(31);
957
1109
  END_STATE();
958
1110
  case 48:
959
- if (('0' <= lookahead && lookahead <= '9') ||
960
- ('A' <= lookahead && lookahead <= 'F') ||
961
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(95);
1111
+ if (lookahead == 'u') ADVANCE(20);
962
1112
  END_STATE();
963
1113
  case 49:
964
- if (('0' <= lookahead && lookahead <= '9') ||
965
- ('A' <= lookahead && lookahead <= 'F') ||
966
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(48);
1114
+ if (lookahead == 'u') ADVANCE(33);
967
1115
  END_STATE();
968
1116
  case 50:
1117
+ if (lookahead == '0' ||
1118
+ lookahead == '1') ADVANCE(104);
969
- if (('0' <= lookahead && lookahead <= '9') ||
1119
+ if (('2' <= lookahead && lookahead <= '9') ||
970
1120
  ('A' <= lookahead && lookahead <= 'F') ||
971
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(49);
1121
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(56);
972
1122
  END_STATE();
973
1123
  case 51:
974
- ACCEPT_TOKEN(ts_builtin_sym_end);
1124
+ if (lookahead == '0' ||
1125
+ lookahead == '1') ADVANCE(103);
975
1126
  END_STATE();
976
1127
  case 52:
1128
+ if (lookahead == '\t' ||
1129
+ lookahead == '\n' ||
1130
+ lookahead == '\r' ||
1131
+ lookahead == ' ') SKIP(52)
1132
+ if (('A' <= lookahead && lookahead <= 'Z') ||
977
- ACCEPT_TOKEN(anon_sym_package);
1133
+ lookahead == '_' ||
1134
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(79);
978
1135
  END_STATE();
979
1136
  case 53:
1137
+ if (lookahead == '\t' ||
980
- ACCEPT_TOKEN(anon_sym_import);
1138
+ lookahead == '\n' ||
1139
+ lookahead == '\r' ||
1140
+ lookahead == ' ') SKIP(53)
1141
+ if (('0' <= lookahead && lookahead <= '9') ||
1142
+ ('A' <= lookahead && lookahead <= 'F') ||
1143
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(58);
981
1144
  END_STATE();
982
1145
  case 54:
983
- ACCEPT_TOKEN(anon_sym_class);
1146
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(106);
984
1147
  END_STATE();
985
1148
  case 55:
1149
+ if (('0' <= lookahead && lookahead <= '9') ||
986
- ACCEPT_TOKEN(anon_sym_COLON);
1150
+ ('A' <= lookahead && lookahead <= 'F') ||
1151
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(102);
987
1152
  END_STATE();
988
1153
  case 56:
1154
+ if (('0' <= lookahead && lookahead <= '9') ||
989
- ACCEPT_TOKEN(anon_sym_enum);
1155
+ ('A' <= lookahead && lookahead <= 'F') ||
1156
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(111);
990
1157
  END_STATE();
991
1158
  case 57:
1159
+ if (('0' <= lookahead && lookahead <= '9') ||
992
- ACCEPT_TOKEN(anon_sym_QMARK);
1160
+ ('A' <= lookahead && lookahead <= 'F') ||
1161
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(56);
993
1162
  END_STATE();
994
1163
  case 58:
1164
+ if (('0' <= lookahead && lookahead <= '9') ||
995
- ACCEPT_TOKEN(anon_sym_LPAREN);
1165
+ ('A' <= lookahead && lookahead <= 'F') ||
1166
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(57);
996
1167
  END_STATE();
997
1168
  case 59:
998
- ACCEPT_TOKEN(anon_sym_COMMA);
1169
+ ACCEPT_TOKEN(ts_builtin_sym_end);
999
1170
  END_STATE();
1000
1171
  case 60:
1001
- ACCEPT_TOKEN(anon_sym_RPAREN);
1172
+ ACCEPT_TOKEN(anon_sym_package);
1002
1173
  END_STATE();
1003
1174
  case 61:
1004
- ACCEPT_TOKEN(anon_sym_LT);
1175
+ ACCEPT_TOKEN(anon_sym_import);
1005
1176
  END_STATE();
1006
1177
  case 62:
1007
- ACCEPT_TOKEN(anon_sym_GT);
1178
+ ACCEPT_TOKEN(anon_sym_class);
1008
1179
  END_STATE();
1009
1180
  case 63:
1010
- ACCEPT_TOKEN(aux_sym_url_token1);
1181
+ ACCEPT_TOKEN(anon_sym_LPAREN);
1011
- if (('0' <= lookahead && lookahead <= '9') ||
1012
- ('A' <= lookahead && lookahead <= 'Z') ||
1013
- lookahead == '_' ||
1014
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(63);
1015
1182
  END_STATE();
1016
1183
  case 64:
1017
- ACCEPT_TOKEN(anon_sym_SLASH);
1184
+ ACCEPT_TOKEN(anon_sym_COMMA);
1018
1185
  END_STATE();
1019
1186
  case 65:
1020
- ACCEPT_TOKEN(sym_definition_name);
1187
+ ACCEPT_TOKEN(anon_sym_RPAREN);
1021
- if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(68);
1022
- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(66);
1023
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48);
1024
- if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(70);
1025
- if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(69);
1026
1188
  END_STATE();
1027
1189
  case 66:
1028
- ACCEPT_TOKEN(sym_definition_name);
1190
+ ACCEPT_TOKEN(anon_sym_trait);
1029
- if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(70);
1030
- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(69);
1031
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95);
1032
- if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(70);
1033
- if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(69);
1034
1191
  END_STATE();
1035
1192
  case 67:
1036
- ACCEPT_TOKEN(sym_definition_name);
1193
+ ACCEPT_TOKEN(anon_sym_enum);
1037
- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(65);
1038
- if (('0' <= lookahead && lookahead <= '9') ||
1039
- ('A' <= lookahead && lookahead <= 'F')) ADVANCE(75);
1040
- if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(69);
1041
- if (('G' <= lookahead && lookahead <= 'Z') ||
1042
- lookahead == '_') ADVANCE(76);
1043
1194
  END_STATE();
1044
1195
  case 68:
1045
- ACCEPT_TOKEN(sym_definition_name);
1196
+ ACCEPT_TOKEN(anon_sym_LBRACE);
1046
- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(69);
1047
- if (('0' <= lookahead && lookahead <= '9') ||
1048
- ('A' <= lookahead && lookahead <= 'F')) ADVANCE(95);
1049
- if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(69);
1050
1197
  END_STATE();
1051
1198
  case 69:
1052
- ACCEPT_TOKEN(sym_definition_name);
1199
+ ACCEPT_TOKEN(anon_sym_RBRACE);
1053
- if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(70);
1054
- if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(69);
1055
1200
  END_STATE();
1056
1201
  case 70:
1057
- ACCEPT_TOKEN(sym_definition_name);
1202
+ ACCEPT_TOKEN(anon_sym_fun);
1058
- if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(69);
1059
1203
  END_STATE();
1060
1204
  case 71:
1205
+ ACCEPT_TOKEN(anon_sym_EQ_GT);
1206
+ END_STATE();
1207
+ case 72:
1208
+ ACCEPT_TOKEN(anon_sym_AT);
1209
+ END_STATE();
1210
+ case 73:
1211
+ ACCEPT_TOKEN(anon_sym_LT);
1212
+ END_STATE();
1213
+ case 74:
1214
+ ACCEPT_TOKEN(anon_sym_GT);
1215
+ END_STATE();
1216
+ case 75:
1217
+ ACCEPT_TOKEN(anon_sym_QMARK);
1218
+ END_STATE();
1219
+ case 76:
1220
+ ACCEPT_TOKEN(anon_sym_COLON);
1221
+ END_STATE();
1222
+ case 77:
1223
+ ACCEPT_TOKEN(anon_sym_val);
1224
+ END_STATE();
1225
+ case 78:
1226
+ ACCEPT_TOKEN(anon_sym_DOT);
1227
+ END_STATE();
1228
+ case 79:
1229
+ ACCEPT_TOKEN(aux_sym_url_token1);
1230
+ if (('0' <= lookahead && lookahead <= '9') ||
1231
+ ('A' <= lookahead && lookahead <= 'Z') ||
1232
+ lookahead == '_' ||
1233
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(79);
1234
+ END_STATE();
1235
+ case 80:
1236
+ ACCEPT_TOKEN(anon_sym_SLASH);
1237
+ END_STATE();
1238
+ case 81:
1239
+ ACCEPT_TOKEN(sym_definition_name);
1240
+ if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(84);
1241
+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(82);
1242
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(56);
1243
+ if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(86);
1244
+ if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(85);
1245
+ END_STATE();
1246
+ case 82:
1061
1247
  ACCEPT_TOKEN(sym_definition_name);
1248
+ if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(86);
1249
+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(85);
1250
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(111);
1251
+ if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(86);
1252
+ if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(85);
1253
+ END_STATE();
1254
+ case 83:
1255
+ ACCEPT_TOKEN(sym_definition_name);
1256
+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(81);
1257
+ if (('0' <= lookahead && lookahead <= '9') ||
1258
+ ('A' <= lookahead && lookahead <= 'F')) ADVANCE(91);
1259
+ if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(85);
1260
+ if (('G' <= lookahead && lookahead <= 'Z') ||
1261
+ lookahead == '_') ADVANCE(92);
1262
+ END_STATE();
1263
+ case 84:
1264
+ ACCEPT_TOKEN(sym_definition_name);
1265
+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(85);
1266
+ if (('0' <= lookahead && lookahead <= '9') ||
1267
+ ('A' <= lookahead && lookahead <= 'F')) ADVANCE(111);
1268
+ if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(85);
1269
+ END_STATE();
1270
+ case 85:
1271
+ ACCEPT_TOKEN(sym_definition_name);
1272
+ if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(86);
1062
- if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(69);
1273
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(85);
1274
+ END_STATE();
1275
+ case 86:
1276
+ ACCEPT_TOKEN(sym_definition_name);
1277
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(85);
1278
+ END_STATE();
1279
+ case 87:
1280
+ ACCEPT_TOKEN(sym_definition_name);
1281
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(85);
1063
1282
  if (('0' <= lookahead && lookahead <= '9') ||
1064
1283
  ('A' <= lookahead && lookahead <= 'Z') ||
1065
- lookahead == '_') ADVANCE(76);
1284
+ lookahead == '_') ADVANCE(92);
1066
1285
  END_STATE();
1067
- case 72:
1286
+ case 88:
1068
1287
  ACCEPT_TOKEN(sym_variable_name);
1069
- if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(73);
1288
+ if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(89);
1070
- if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(72);
1289
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(88);
1071
1290
  END_STATE();
1072
- case 73:
1291
+ case 89:
1073
1292
  ACCEPT_TOKEN(sym_variable_name);
1074
- if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(72);
1293
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(88);
1075
1294
  END_STATE();
1076
- case 74:
1295
+ case 90:
1077
1296
  ACCEPT_TOKEN(sym_enum_field_name);
1078
- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(95);
1297
+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(111);
1079
1298
  if (('0' <= lookahead && lookahead <= '9') ||
1080
- ('A' <= lookahead && lookahead <= 'F')) ADVANCE(76);
1299
+ ('A' <= lookahead && lookahead <= 'F')) ADVANCE(92);
1081
1300
  if (('G' <= lookahead && lookahead <= 'Z') ||
1082
- lookahead == '_') ADVANCE(76);
1301
+ lookahead == '_') ADVANCE(92);
1083
1302
  END_STATE();
1084
- case 75:
1303
+ case 91:
1085
1304
  ACCEPT_TOKEN(sym_enum_field_name);
1086
- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(48);
1305
+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(56);
1087
1306
  if (('0' <= lookahead && lookahead <= '9') ||
1088
- ('A' <= lookahead && lookahead <= 'F')) ADVANCE(74);
1307
+ ('A' <= lookahead && lookahead <= 'F')) ADVANCE(90);
1089
1308
  if (('G' <= lookahead && lookahead <= 'Z') ||
1090
- lookahead == '_') ADVANCE(76);
1309
+ lookahead == '_') ADVANCE(92);
1091
1310
  END_STATE();
1092
- case 76:
1311
+ case 92:
1093
1312
  ACCEPT_TOKEN(sym_enum_field_name);
1094
1313
  if (('0' <= lookahead && lookahead <= '9') ||
1095
1314
  ('A' <= lookahead && lookahead <= 'Z') ||
1096
- lookahead == '_') ADVANCE(76);
1315
+ lookahead == '_') ADVANCE(92);
1097
1316
  END_STATE();
1098
- case 77:
1317
+ case 93:
1099
1318
  ACCEPT_TOKEN(anon_sym_true);
1100
1319
  END_STATE();
1101
- case 78:
1320
+ case 94:
1102
1321
  ACCEPT_TOKEN(anon_sym_false);
1103
1322
  END_STATE();
1104
- case 79:
1323
+ case 95:
1105
1324
  ACCEPT_TOKEN(sym_integer_literal);
1106
- if (lookahead == '.') ADVANCE(46);
1325
+ if (lookahead == '.') ADVANCE(54);
1107
- if (lookahead == '_') ADVANCE(9);
1326
+ if (lookahead == '_') ADVANCE(10);
1108
1327
  if (lookahead == 'B' ||
1109
- lookahead == 'b') ADVANCE(43);
1328
+ lookahead == 'b') ADVANCE(51);
1110
1329
  if (lookahead == 'F' ||
1111
- lookahead == 'f') ADVANCE(89);
1330
+ lookahead == 'f') ADVANCE(105);
1112
1331
  if (lookahead == 'X' ||
1113
- lookahead == 'x') ADVANCE(47);
1332
+ lookahead == 'x') ADVANCE(55);
1114
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80);
1333
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(96);
1115
1334
  END_STATE();
1116
- case 80:
1335
+ case 96:
1117
1336
  ACCEPT_TOKEN(sym_integer_literal);
1118
- if (lookahead == '.') ADVANCE(46);
1337
+ if (lookahead == '.') ADVANCE(54);
1119
- if (lookahead == '_') ADVANCE(9);
1338
+ if (lookahead == '_') ADVANCE(10);
1120
1339
  if (lookahead == 'F' ||
1121
- lookahead == 'f') ADVANCE(89);
1340
+ lookahead == 'f') ADVANCE(105);
1122
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80);
1341
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(96);
1123
1342
  END_STATE();
1124
- case 81:
1343
+ case 97:
1125
1344
  ACCEPT_TOKEN(sym_integer_literal);
1126
- if (lookahead == '_') ADVANCE(6);
1345
+ if (lookahead == '_') ADVANCE(7);
1127
1346
  if (lookahead == 'B' ||
1128
- lookahead == 'b') ADVANCE(42);
1347
+ lookahead == 'b') ADVANCE(50);
1129
1348
  if (lookahead == 'X' ||
1130
- lookahead == 'x') ADVANCE(47);
1349
+ lookahead == 'x') ADVANCE(55);
1131
1350
  if (('A' <= lookahead && lookahead <= 'F') ||
1132
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(49);
1351
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(57);
1133
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(85);
1352
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(101);
1134
1353
  END_STATE();
1135
- case 82:
1354
+ case 98:
1136
1355
  ACCEPT_TOKEN(sym_integer_literal);
1137
- if (lookahead == '_') ADVANCE(6);
1356
+ if (lookahead == '_') ADVANCE(7);
1138
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(82);
1357
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(98);
1139
1358
  END_STATE();
1140
- case 83:
1359
+ case 99:
1141
1360
  ACCEPT_TOKEN(sym_integer_literal);
1142
- if (lookahead == '_') ADVANCE(6);
1361
+ if (lookahead == '_') ADVANCE(7);
1143
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(82);
1362
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(98);
1144
1363
  if (('A' <= lookahead && lookahead <= 'F') ||
1145
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(95);
1364
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(111);
1146
1365
  END_STATE();
1147
- case 84:
1366
+ case 100:
1148
1367
  ACCEPT_TOKEN(sym_integer_literal);
1149
- if (lookahead == '_') ADVANCE(6);
1368
+ if (lookahead == '_') ADVANCE(7);
1150
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(85);
1369
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(101);
1151
1370
  if (('A' <= lookahead && lookahead <= 'F') ||
1152
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(49);
1371
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(57);
1153
1372
  END_STATE();
1154
- case 85:
1373
+ case 101:
1155
1374
  ACCEPT_TOKEN(sym_integer_literal);
1156
- if (lookahead == '_') ADVANCE(6);
1375
+ if (lookahead == '_') ADVANCE(7);
1157
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(83);
1376
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(99);
1158
1377
  if (('A' <= lookahead && lookahead <= 'F') ||
1159
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(48);
1378
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(56);
1160
1379
  END_STATE();
1161
- case 86:
1380
+ case 102:
1162
1381
  ACCEPT_TOKEN(sym_hex_literal);
1163
- if (lookahead == '_') ADVANCE(8);
1382
+ if (lookahead == '_') ADVANCE(9);
1164
1383
  if (('0' <= lookahead && lookahead <= '9') ||
1165
1384
  ('A' <= lookahead && lookahead <= 'F') ||
1166
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(86);
1385
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(102);
1167
1386
  END_STATE();
1168
- case 87:
1387
+ case 103:
1169
1388
  ACCEPT_TOKEN(sym_bin_literal);
1170
- if (lookahead == '_') ADVANCE(7);
1389
+ if (lookahead == '_') ADVANCE(8);
1171
1390
  END_STATE();
1172
- case 88:
1391
+ case 104:
1173
1392
  ACCEPT_TOKEN(sym_bin_literal);
1174
- if (lookahead == '_') ADVANCE(7);
1393
+ if (lookahead == '_') ADVANCE(8);
1175
1394
  if (('0' <= lookahead && lookahead <= '9') ||
1176
1395
  ('A' <= lookahead && lookahead <= 'F') ||
1177
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(95);
1396
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(111);
1178
1397
  END_STATE();
1179
- case 89:
1398
+ case 105:
1180
1399
  ACCEPT_TOKEN(sym_float_literal);
1181
1400
  END_STATE();
1182
- case 90:
1401
+ case 106:
1183
1402
  ACCEPT_TOKEN(sym_float_literal);
1184
- if (lookahead == '_') ADVANCE(10);
1403
+ if (lookahead == '_') ADVANCE(11);
1185
1404
  if (lookahead == 'F' ||
1186
- lookahead == 'f') ADVANCE(89);
1405
+ lookahead == 'f') ADVANCE(105);
1187
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(90);
1406
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(106);
1188
1407
  END_STATE();
1189
- case 91:
1408
+ case 107:
1190
1409
  ACCEPT_TOKEN(anon_sym_SQUOTE);
1191
1410
  END_STATE();
1192
- case 92:
1411
+ case 108:
1193
1412
  ACCEPT_TOKEN(aux_sym_character_literal_token1);
1194
1413
  END_STATE();
1195
- case 93:
1414
+ case 109:
1196
1415
  ACCEPT_TOKEN(aux_sym_character_literal_token1);
1197
1416
  if (lookahead == '\t' ||
1198
- lookahead == ' ') ADVANCE(93);
1417
+ lookahead == ' ') ADVANCE(109);
1199
1418
  if (lookahead != 0 &&
1200
1419
  lookahead != '\n' &&
1201
1420
  lookahead != '\r' &&
1202
1421
  lookahead != '\'' &&
1203
- lookahead != '\\') ADVANCE(92);
1422
+ lookahead != '\\') ADVANCE(108);
1204
1423
  END_STATE();
1205
- case 94:
1424
+ case 110:
1206
1425
  ACCEPT_TOKEN(anon_sym_BSLASHu);
1207
1426
  END_STATE();
1208
- case 95:
1427
+ case 111:
1209
1428
  ACCEPT_TOKEN(aux_sym__uni_character_literal_token1);
1210
1429
  END_STATE();
1211
- case 96:
1430
+ case 112:
1212
1431
  ACCEPT_TOKEN(sym__escaped_identifier);
1213
1432
  END_STATE();
1214
- case 97:
1433
+ case 113:
1215
1434
  ACCEPT_TOKEN(anon_sym_DQUOTE);
1216
1435
  END_STATE();
1217
- case 98:
1436
+ case 114:
1218
1437
  ACCEPT_TOKEN(anon_sym_BQUOTE);
1219
1438
  END_STATE();
1220
- case 99:
1439
+ case 115:
1221
1440
  ACCEPT_TOKEN(anon_sym_BQUOTE);
1222
1441
  if (lookahead != 0 &&
1223
1442
  lookahead != '"' &&
1224
- lookahead != '$') ADVANCE(103);
1443
+ lookahead != '$') ADVANCE(119);
1225
1444
  END_STATE();
1226
- case 100:
1445
+ case 116:
1227
1446
  ACCEPT_TOKEN(sym__line_str_text);
1228
1447
  if (lookahead == '\t' ||
1229
1448
  lookahead == '\n' ||
1230
1449
  lookahead == '\r' ||
1231
- lookahead == ' ') ADVANCE(100);
1450
+ lookahead == ' ') ADVANCE(116);
1232
1451
  if (lookahead != 0 &&
1233
1452
  lookahead != '"' &&
1234
1453
  lookahead != '$' &&
1235
- lookahead != '\\') ADVANCE(101);
1454
+ lookahead != '\\') ADVANCE(117);
1236
1455
  END_STATE();
1237
- case 101:
1456
+ case 117:
1238
1457
  ACCEPT_TOKEN(sym__line_str_text);
1239
1458
  if (lookahead != 0 &&
1240
1459
  lookahead != '"' &&
1241
1460
  lookahead != '$' &&
1242
- lookahead != '\\') ADVANCE(101);
1461
+ lookahead != '\\') ADVANCE(117);
1243
1462
  END_STATE();
1244
- case 102:
1463
+ case 118:
1245
1464
  ACCEPT_TOKEN(sym__multi_line_str_text);
1246
- if (lookahead == '`') ADVANCE(99);
1465
+ if (lookahead == '`') ADVANCE(115);
1247
1466
  if (lookahead == '\t' ||
1248
1467
  lookahead == '\n' ||
1249
1468
  lookahead == '\r' ||
1250
- lookahead == ' ') ADVANCE(102);
1469
+ lookahead == ' ') ADVANCE(118);
1251
1470
  if (lookahead != 0 &&
1252
1471
  lookahead != '"' &&
1253
- lookahead != '$') ADVANCE(103);
1472
+ lookahead != '$') ADVANCE(119);
1254
1473
  END_STATE();
1255
- case 103:
1474
+ case 119:
1256
1475
  ACCEPT_TOKEN(sym__multi_line_str_text);
1257
1476
  if (lookahead != 0 &&
1258
1477
  lookahead != '"' &&
1259
- lookahead != '$') ADVANCE(103);
1478
+ lookahead != '$') ADVANCE(119);
1260
1479
  END_STATE();
1261
- case 104:
1480
+ case 120:
1262
1481
  ACCEPT_TOKEN(anon_sym_DOLLAR);
1263
1482
  END_STATE();
1264
- case 105:
1483
+ case 121:
1265
1484
  ACCEPT_TOKEN(anon_sym_null);
1266
1485
  END_STATE();
1267
- case 106:
1268
- ACCEPT_TOKEN(anon_sym_RBRACK);
1269
- END_STATE();
1270
- case 107:
1271
- ACCEPT_TOKEN(anon_sym_RBRACE);
1272
- END_STATE();
1273
1486
  default:
1274
1487
  return false;
1275
1488
  }
1276
1489
  }
1277
1490
 
1278
1491
  static const TSLexMode ts_lex_modes[STATE_COUNT] = {
1279
- [0] = {.lex_state = 0, .external_lex_state = 1},
1492
+ [0] = {.lex_state = 0},
1280
1493
  [1] = {.lex_state = 0},
1281
- [2] = {.lex_state = 3},
1494
+ [2] = {.lex_state = 0},
1282
1495
  [3] = {.lex_state = 3},
1283
- [4] = {.lex_state = 1},
1496
+ [4] = {.lex_state = 3},
1284
- [5] = {.lex_state = 1},
1497
+ [5] = {.lex_state = 0},
1285
1498
  [6] = {.lex_state = 0},
1286
1499
  [7] = {.lex_state = 0},
1287
- [8] = {.lex_state = 1},
1500
+ [8] = {.lex_state = 0},
1288
1501
  [9] = {.lex_state = 0},
1289
- [10] = {.lex_state = 0},
1502
+ [10] = {.lex_state = 1},
1290
- [11] = {.lex_state = 2},
1503
+ [11] = {.lex_state = 1},
1291
- [12] = {.lex_state = 2},
1504
+ [12] = {.lex_state = 1},
1292
- [13] = {.lex_state = 2},
1505
+ [13] = {.lex_state = 0},
1293
1506
  [14] = {.lex_state = 0},
1294
1507
  [15] = {.lex_state = 0},
1295
1508
  [16] = {.lex_state = 0},
1296
1509
  [17] = {.lex_state = 0},
1297
- [18] = {.lex_state = 0},
1510
+ [18] = {.lex_state = 2},
1298
- [19] = {.lex_state = 1},
1511
+ [19] = {.lex_state = 2},
1299
- [20] = {.lex_state = 1},
1512
+ [20] = {.lex_state = 0},
1300
1513
  [21] = {.lex_state = 0},
1301
- [22] = {.lex_state = 1},
1514
+ [22] = {.lex_state = 2},
1302
- [23] = {.lex_state = 1},
1515
+ [23] = {.lex_state = 0},
1303
1516
  [24] = {.lex_state = 0},
1304
1517
  [25] = {.lex_state = 0},
1305
- [26] = {.lex_state = 5},
1518
+ [26] = {.lex_state = 0},
1306
- [27] = {.lex_state = 4, .external_lex_state = 2},
1519
+ [27] = {.lex_state = 0},
1307
- [28] = {.lex_state = 3, .external_lex_state = 2},
1520
+ [28] = {.lex_state = 0},
1308
- [29] = {.lex_state = 3, .external_lex_state = 2},
1521
+ [29] = {.lex_state = 0},
1309
- [30] = {.lex_state = 4, .external_lex_state = 2},
1522
+ [30] = {.lex_state = 0},
1310
1523
  [31] = {.lex_state = 0},
1311
- [32] = {.lex_state = 4, .external_lex_state = 2},
1524
+ [32] = {.lex_state = 0},
1312
- [33] = {.lex_state = 4, .external_lex_state = 2},
1525
+ [33] = {.lex_state = 0},
1313
- [34] = {.lex_state = 2},
1526
+ [34] = {.lex_state = 0},
1314
- [35] = {.lex_state = 4, .external_lex_state = 2},
1527
+ [35] = {.lex_state = 0},
1315
- [36] = {.lex_state = 3, .external_lex_state = 2},
1528
+ [36] = {.lex_state = 0},
1316
1529
  [37] = {.lex_state = 0},
1317
1530
  [38] = {.lex_state = 0},
1318
- [39] = {.lex_state = 4, .external_lex_state = 2},
1531
+ [39] = {.lex_state = 0},
1319
1532
  [40] = {.lex_state = 0},
1320
1533
  [41] = {.lex_state = 0},
1321
- [42] = {.lex_state = 4, .external_lex_state = 2},
1534
+ [42] = {.lex_state = 0},
1322
1535
  [43] = {.lex_state = 0},
1323
- [44] = {.lex_state = 4, .external_lex_state = 2},
1536
+ [44] = {.lex_state = 0},
1324
- [45] = {.lex_state = 2},
1537
+ [45] = {.lex_state = 0},
1325
- [46] = {.lex_state = 4, .external_lex_state = 2},
1538
+ [46] = {.lex_state = 0},
1326
1539
  [47] = {.lex_state = 0},
1327
- [48] = {.lex_state = 0, .external_lex_state = 3},
1540
+ [48] = {.lex_state = 0},
1328
- [49] = {.lex_state = 0, .external_lex_state = 3},
1541
+ [49] = {.lex_state = 1},
1329
1542
  [50] = {.lex_state = 0},
1330
- [51] = {.lex_state = 0},
1543
+ [51] = {.lex_state = 1},
1331
- [52] = {.lex_state = 0, .external_lex_state = 3},
1544
+ [52] = {.lex_state = 1},
1332
- [53] = {.lex_state = 0, .external_lex_state = 3},
1545
+ [53] = {.lex_state = 6},
1333
- [54] = {.lex_state = 0, .external_lex_state = 3},
1546
+ [54] = {.lex_state = 0},
1334
1547
  [55] = {.lex_state = 0},
1335
- [56] = {.lex_state = 0},
1548
+ [56] = {.lex_state = 1},
1336
- [57] = {.lex_state = 0},
1549
+ [57] = {.lex_state = 2},
1337
- [58] = {.lex_state = 0, .external_lex_state = 3},
1550
+ [58] = {.lex_state = 3},
1338
- [59] = {.lex_state = 4, .external_lex_state = 2},
1551
+ [59] = {.lex_state = 0},
1339
- [60] = {.lex_state = 0, .external_lex_state = 3},
1552
+ [60] = {.lex_state = 3},
1340
1553
  [61] = {.lex_state = 0},
1341
- [62] = {.lex_state = 0},
1554
+ [62] = {.lex_state = 3},
1342
1555
  [63] = {.lex_state = 0},
1343
- [64] = {.lex_state = 44},
1556
+ [64] = {.lex_state = 0},
1344
- [65] = {.lex_state = 0, .external_lex_state = 3},
1557
+ [65] = {.lex_state = 2},
1345
1558
  [66] = {.lex_state = 0},
1346
1559
  [67] = {.lex_state = 0},
1347
1560
  [68] = {.lex_state = 0},
1348
- [69] = {.lex_state = 0, .external_lex_state = 3},
1561
+ [69] = {.lex_state = 0},
1349
- [70] = {.lex_state = 0, .external_lex_state = 3},
1562
+ [70] = {.lex_state = 52},
1350
1563
  [71] = {.lex_state = 0},
1351
- [72] = {.lex_state = 44},
1564
+ [72] = {.lex_state = 0},
1352
- [73] = {.lex_state = 4, .external_lex_state = 2},
1565
+ [73] = {.lex_state = 0},
1353
- [74] = {.lex_state = 44},
1566
+ [74] = {.lex_state = 0},
1354
1567
  [75] = {.lex_state = 0},
1355
1568
  [76] = {.lex_state = 0},
1356
- [77] = {.lex_state = 4},
1569
+ [77] = {.lex_state = 0},
1357
- [78] = {.lex_state = 0},
1570
+ [78] = {.lex_state = 3},
1358
1571
  [79] = {.lex_state = 0},
1359
- [80] = {.lex_state = 44},
1572
+ [80] = {.lex_state = 0},
1360
- [81] = {.lex_state = 4, .external_lex_state = 2},
1573
+ [81] = {.lex_state = 0},
1361
1574
  [82] = {.lex_state = 0},
1362
- [83] = {.lex_state = 0, .external_lex_state = 3},
1575
+ [83] = {.lex_state = 0},
1363
- [84] = {.lex_state = 0, .external_lex_state = 3},
1576
+ [84] = {.lex_state = 0},
1364
- [85] = {.lex_state = 44},
1577
+ [85] = {.lex_state = 0},
1365
- [86] = {.lex_state = 44},
1578
+ [86] = {.lex_state = 0},
1366
- [87] = {.lex_state = 3, .external_lex_state = 2},
1579
+ [87] = {.lex_state = 0},
1367
- [88] = {.lex_state = 44},
1580
+ [88] = {.lex_state = 0},
1368
- [89] = {.lex_state = 0, .external_lex_state = 3},
1581
+ [89] = {.lex_state = 0},
1369
- [90] = {.lex_state = 0, .external_lex_state = 3},
1582
+ [90] = {.lex_state = 0},
1370
- [91] = {.lex_state = 0, .external_lex_state = 3},
1583
+ [91] = {.lex_state = 0},
1371
- [92] = {.lex_state = 44},
1584
+ [92] = {.lex_state = 4},
1372
- [93] = {.lex_state = 44},
1585
+ [93] = {.lex_state = 0},
1373
- [94] = {.lex_state = 0, .external_lex_state = 3},
1586
+ [94] = {.lex_state = 0},
1374
- [95] = {.lex_state = 0, .external_lex_state = 3},
1587
+ [95] = {.lex_state = 0},
1375
- [96] = {.lex_state = 3, .external_lex_state = 2},
1588
+ [96] = {.lex_state = 4},
1376
- [97] = {.lex_state = 0, .external_lex_state = 4},
1589
+ [97] = {.lex_state = 0},
1377
1590
  [98] = {.lex_state = 0},
1378
- [99] = {.lex_state = 0, .external_lex_state = 4},
1591
+ [99] = {.lex_state = 0},
1379
1592
  [100] = {.lex_state = 0},
1380
1593
  [101] = {.lex_state = 0},
1381
- [102] = {.lex_state = 0},
1594
+ [102] = {.lex_state = 3},
1382
1595
  [103] = {.lex_state = 0},
1383
- [104] = {.lex_state = 45},
1384
- [105] = {.lex_state = 0},
1596
+ [104] = {.lex_state = 0},
1597
+ [105] = {.lex_state = 52},
1385
1598
  [106] = {.lex_state = 0},
1386
- [107] = {.lex_state = 0, .external_lex_state = 4},
1599
+ [107] = {.lex_state = 0},
1387
1600
  [108] = {.lex_state = 0},
1388
1601
  [109] = {.lex_state = 0},
1389
- [110] = {.lex_state = 0, .external_lex_state = 4},
1602
+ [110] = {.lex_state = 0},
1390
1603
  [111] = {.lex_state = 0},
1391
- [112] = {.lex_state = 0, .external_lex_state = 4},
1604
+ [112] = {.lex_state = 0},
1392
- [113] = {.lex_state = 44},
1605
+ [113] = {.lex_state = 0},
1393
1606
  [114] = {.lex_state = 0},
1394
- [115] = {.lex_state = 4},
1607
+ [115] = {.lex_state = 0},
1395
- [116] = {.lex_state = 4},
1608
+ [116] = {.lex_state = 3},
1396
1609
  [117] = {.lex_state = 0},
1397
- [118] = {.lex_state = 45},
1610
+ [118] = {.lex_state = 0},
1398
1611
  [119] = {.lex_state = 0},
1399
- };
1400
-
1401
- enum {
1402
- ts_external_token__newline = 0,
1403
- ts_external_token__indent = 1,
1404
- ts_external_token__dedent = 2,
1405
- ts_external_token__string_start = 3,
1406
- ts_external_token__string_content = 4,
1407
- ts_external_token__string_end = 5,
1408
- ts_external_token_comment = 6,
1409
- ts_external_token_RBRACK = 7,
1410
- ts_external_token_RPAREN = 8,
1411
- ts_external_token_RBRACE = 9,
1412
- };
1413
-
1414
- static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
1415
- [ts_external_token__newline] = sym__newline,
1416
- [ts_external_token__indent] = sym__indent,
1417
- [ts_external_token__dedent] = sym__dedent,
1418
- [ts_external_token__string_start] = sym__string_start,
1419
- [ts_external_token__string_content] = sym__string_content,
1420
- [ts_external_token__string_end] = sym__string_end,
1421
- [ts_external_token_comment] = sym_comment,
1422
- [ts_external_token_RBRACK] = anon_sym_RBRACK,
1423
- [ts_external_token_RPAREN] = anon_sym_RPAREN,
1424
- [ts_external_token_RBRACE] = anon_sym_RBRACE,
1425
- };
1426
-
1427
- static const bool ts_external_scanner_states[5][EXTERNAL_TOKEN_COUNT] = {
1428
- [1] = {
1429
- [ts_external_token__newline] = true,
1430
- [ts_external_token__indent] = true,
1431
- [ts_external_token__dedent] = true,
1432
- [ts_external_token__string_start] = true,
1433
- [ts_external_token__string_content] = true,
1434
- [ts_external_token__string_end] = true,
1435
- [ts_external_token_comment] = true,
1436
- [ts_external_token_RBRACK] = true,
1437
- [ts_external_token_RPAREN] = true,
1438
- [ts_external_token_RBRACE] = true,
1439
- },
1440
- [2] = {
1441
- [ts_external_token__dedent] = true,
1442
- },
1443
- [3] = {
1444
- [ts_external_token_RPAREN] = true,
1445
- },
1446
- [4] = {
1447
- [ts_external_token__indent] = true,
1448
- },
1612
+ [120] = {.lex_state = 0},
1613
+ [121] = {.lex_state = 0},
1614
+ [122] = {.lex_state = 0},
1615
+ [123] = {.lex_state = 52},
1616
+ [124] = {.lex_state = 3},
1617
+ [125] = {.lex_state = 52},
1618
+ [126] = {.lex_state = 52},
1619
+ [127] = {.lex_state = 0},
1620
+ [128] = {.lex_state = 0},
1621
+ [129] = {.lex_state = 0},
1622
+ [130] = {.lex_state = 3},
1623
+ [131] = {.lex_state = 4},
1624
+ [132] = {.lex_state = 52},
1625
+ [133] = {.lex_state = 4},
1626
+ [134] = {.lex_state = 0},
1627
+ [135] = {.lex_state = 4},
1628
+ [136] = {.lex_state = 0},
1629
+ [137] = {.lex_state = 0},
1630
+ [138] = {.lex_state = 52},
1631
+ [139] = {.lex_state = 0},
1632
+ [140] = {.lex_state = 0},
1633
+ [141] = {.lex_state = 0},
1634
+ [142] = {.lex_state = 0},
1635
+ [143] = {.lex_state = 3},
1636
+ [144] = {.lex_state = 0},
1637
+ [145] = {.lex_state = 0},
1638
+ [146] = {.lex_state = 0},
1639
+ [147] = {.lex_state = 0},
1640
+ [148] = {.lex_state = 0},
1641
+ [149] = {.lex_state = 0},
1642
+ [150] = {.lex_state = 0},
1643
+ [151] = {.lex_state = 52},
1644
+ [152] = {.lex_state = 52},
1645
+ [153] = {.lex_state = 0},
1646
+ [154] = {.lex_state = 0},
1647
+ [155] = {.lex_state = 4},
1648
+ [156] = {.lex_state = 0},
1649
+ [157] = {.lex_state = 0},
1650
+ [158] = {.lex_state = 0},
1651
+ [159] = {.lex_state = 0},
1652
+ [160] = {.lex_state = 0},
1653
+ [161] = {.lex_state = 0},
1654
+ [162] = {.lex_state = 0},
1655
+ [163] = {.lex_state = 0},
1656
+ [164] = {.lex_state = 0},
1657
+ [165] = {.lex_state = 0},
1658
+ [166] = {.lex_state = 0},
1659
+ [167] = {.lex_state = 0},
1660
+ [168] = {.lex_state = 53},
1661
+ [169] = {.lex_state = 0},
1662
+ [170] = {.lex_state = 0},
1663
+ [171] = {.lex_state = 0},
1664
+ [172] = {.lex_state = 52},
1665
+ [173] = {.lex_state = 0},
1666
+ [174] = {.lex_state = 3},
1667
+ [175] = {.lex_state = 4},
1668
+ [176] = {.lex_state = 0},
1669
+ [177] = {.lex_state = 0},
1670
+ [178] = {.lex_state = 0},
1671
+ [179] = {.lex_state = 0},
1672
+ [180] = {.lex_state = 0},
1673
+ [181] = {.lex_state = 0},
1674
+ [182] = {.lex_state = 0},
1675
+ [183] = {.lex_state = 0},
1676
+ [184] = {.lex_state = 0},
1677
+ [185] = {.lex_state = 0},
1678
+ [186] = {.lex_state = 0},
1679
+ [187] = {.lex_state = 0},
1680
+ [188] = {.lex_state = 0},
1681
+ [189] = {.lex_state = 0},
1682
+ [190] = {.lex_state = 3},
1683
+ [191] = {.lex_state = 0},
1684
+ [192] = {.lex_state = 0},
1685
+ [193] = {.lex_state = 0},
1686
+ [194] = {.lex_state = 0},
1687
+ [195] = {.lex_state = 0},
1688
+ [196] = {.lex_state = 3},
1689
+ [197] = {.lex_state = 3},
1690
+ [198] = {.lex_state = 3},
1691
+ [199] = {.lex_state = 0},
1692
+ [200] = {.lex_state = 0},
1693
+ [201] = {.lex_state = 53},
1694
+ [202] = {.lex_state = 0},
1449
1695
  };
1450
1696
 
1451
1697
  static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
@@ -1454,14 +1700,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
1454
1700
  [anon_sym_package] = ACTIONS(1),
1455
1701
  [anon_sym_import] = ACTIONS(1),
1456
1702
  [anon_sym_class] = ACTIONS(1),
1457
- [anon_sym_COLON] = ACTIONS(1),
1458
- [anon_sym_enum] = ACTIONS(1),
1459
- [anon_sym_QMARK] = ACTIONS(1),
1460
1703
  [anon_sym_LPAREN] = ACTIONS(1),
1461
1704
  [anon_sym_COMMA] = ACTIONS(1),
1462
1705
  [anon_sym_RPAREN] = ACTIONS(1),
1706
+ [anon_sym_trait] = ACTIONS(1),
1707
+ [anon_sym_enum] = ACTIONS(1),
1708
+ [anon_sym_LBRACE] = ACTIONS(1),
1709
+ [anon_sym_RBRACE] = ACTIONS(1),
1710
+ [anon_sym_fun] = ACTIONS(1),
1711
+ [anon_sym_EQ_GT] = ACTIONS(1),
1712
+ [anon_sym_AT] = ACTIONS(1),
1463
1713
  [anon_sym_LT] = ACTIONS(1),
1464
1714
  [anon_sym_GT] = ACTIONS(1),
1715
+ [anon_sym_QMARK] = ACTIONS(1),
1716
+ [anon_sym_COLON] = ACTIONS(1),
1717
+ [anon_sym_val] = ACTIONS(1),
1718
+ [anon_sym_DOT] = ACTIONS(1),
1465
1719
  [anon_sym_SLASH] = ACTIONS(1),
1466
1720
  [sym_definition_name] = ACTIONS(1),
1467
1721
  [sym_enum_field_name] = ACTIONS(1),
@@ -1478,41 +1732,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
1478
1732
  [anon_sym_BQUOTE] = ACTIONS(1),
1479
1733
  [anon_sym_DOLLAR] = ACTIONS(1),
1480
1734
  [anon_sym_null] = ACTIONS(1),
1481
- [anon_sym_RBRACK] = ACTIONS(1),
1482
- [anon_sym_RBRACE] = ACTIONS(1),
1483
- [sym__newline] = ACTIONS(1),
1484
- [sym__indent] = ACTIONS(1),
1485
- [sym__dedent] = ACTIONS(1),
1486
- [sym__string_start] = ACTIONS(1),
1487
- [sym__string_content] = ACTIONS(1),
1488
- [sym__string_end] = ACTIONS(1),
1489
- [sym_comment] = ACTIONS(1),
1490
1735
  },
1491
1736
  [1] = {
1492
- [sym_source_file] = STATE(114),
1737
+ [sym_source_file] = STATE(200),
1493
1738
  [anon_sym_package] = ACTIONS(3),
1494
1739
  },
1495
1740
  };
1496
1741
 
1497
1742
  static const uint16_t ts_small_parse_table[] = {
1498
- [0] = 7,
1743
+ [0] = 11,
1744
+ ACTIONS(5), 1,
1745
+ ts_builtin_sym_end,
1499
1746
  ACTIONS(7), 1,
1500
- sym_integer_literal,
1747
+ anon_sym_import,
1748
+ ACTIONS(9), 1,
1749
+ anon_sym_class,
1501
1750
  ACTIONS(11), 1,
1502
- anon_sym_SQUOTE,
1751
+ anon_sym_trait,
1503
1752
  ACTIONS(13), 1,
1504
- anon_sym_DQUOTE,
1753
+ anon_sym_enum,
1505
1754
  ACTIONS(15), 1,
1755
+ anon_sym_fun,
1756
+ ACTIONS(17), 1,
1757
+ anon_sym_AT,
1758
+ STATE(8), 2,
1759
+ sym_definitions,
1760
+ aux_sym_source_file_repeat2,
1761
+ STATE(16), 2,
1762
+ sym_import_statement,
1763
+ aux_sym_source_file_repeat1,
1764
+ STATE(61), 2,
1765
+ sym_trait_name,
1766
+ aux_sym_class_definition_repeat1,
1767
+ STATE(38), 4,
1768
+ sym_class_definition,
1769
+ sym_trait_definition,
1770
+ sym_enum_definition,
1771
+ sym_fun_definition,
1772
+ [40] = 7,
1773
+ ACTIONS(21), 1,
1774
+ sym_integer_literal,
1775
+ ACTIONS(25), 1,
1776
+ anon_sym_SQUOTE,
1777
+ ACTIONS(27), 1,
1778
+ anon_sym_DQUOTE,
1779
+ ACTIONS(29), 1,
1506
1780
  anon_sym_BQUOTE,
1507
- ACTIONS(5), 2,
1781
+ ACTIONS(19), 2,
1508
1782
  anon_sym_true,
1509
1783
  anon_sym_false,
1510
- ACTIONS(9), 4,
1784
+ ACTIONS(23), 4,
1511
1785
  sym_hex_literal,
1512
1786
  sym_bin_literal,
1513
1787
  sym_float_literal,
1514
1788
  anon_sym_null,
1515
- STATE(53), 7,
1789
+ STATE(97), 7,
1516
1790
  sym__primary_expression,
1517
1791
  sym_boolean_literal,
1518
1792
  sym_character_literal,
@@ -1520,24 +1794,24 @@ static const uint16_t ts_small_parse_table[] = {
1520
1794
  sym_line_string_literal,
1521
1795
  sym_multi_line_string_literal,
1522
1796
  sym__literal_constant,
1523
- [32] = 7,
1797
+ [72] = 7,
1524
- ACTIONS(11), 1,
1798
+ ACTIONS(25), 1,
1525
1799
  anon_sym_SQUOTE,
1526
- ACTIONS(13), 1,
1800
+ ACTIONS(27), 1,
1527
1801
  anon_sym_DQUOTE,
1528
- ACTIONS(15), 1,
1802
+ ACTIONS(29), 1,
1529
1803
  anon_sym_BQUOTE,
1530
- ACTIONS(17), 1,
1804
+ ACTIONS(31), 1,
1531
1805
  sym_integer_literal,
1532
- ACTIONS(5), 2,
1806
+ ACTIONS(19), 2,
1533
1807
  anon_sym_true,
1534
1808
  anon_sym_false,
1535
- ACTIONS(19), 4,
1809
+ ACTIONS(33), 4,
1536
1810
  sym_hex_literal,
1537
1811
  sym_bin_literal,
1538
1812
  sym_float_literal,
1539
1813
  anon_sym_null,
1540
- STATE(70), 7,
1814
+ STATE(128), 7,
1541
1815
  sym__primary_expression,
1542
1816
  sym_boolean_literal,
1543
1817
  sym_character_literal,
@@ -1545,1041 +1819,1778 @@ static const uint16_t ts_small_parse_table[] = {
1545
1819
  sym_line_string_literal,
1546
1820
  sym_multi_line_string_literal,
1547
1821
  sym__literal_constant,
1548
- [64] = 7,
1822
+ [104] = 11,
1823
+ ACTIONS(7), 1,
1824
+ anon_sym_import,
1825
+ ACTIONS(9), 1,
1826
+ anon_sym_class,
1549
- ACTIONS(21), 1,
1827
+ ACTIONS(11), 1,
1828
+ anon_sym_trait,
1829
+ ACTIONS(13), 1,
1830
+ anon_sym_enum,
1831
+ ACTIONS(15), 1,
1832
+ anon_sym_fun,
1833
+ ACTIONS(17), 1,
1834
+ anon_sym_AT,
1835
+ ACTIONS(35), 1,
1836
+ ts_builtin_sym_end,
1837
+ STATE(2), 2,
1838
+ sym_import_statement,
1839
+ aux_sym_source_file_repeat1,
1840
+ STATE(6), 2,
1841
+ sym_definitions,
1842
+ aux_sym_source_file_repeat2,
1843
+ STATE(61), 2,
1844
+ sym_trait_name,
1845
+ aux_sym_class_definition_repeat1,
1846
+ STATE(38), 4,
1847
+ sym_class_definition,
1848
+ sym_trait_definition,
1849
+ sym_enum_definition,
1850
+ sym_fun_definition,
1851
+ [144] = 9,
1852
+ ACTIONS(5), 1,
1853
+ ts_builtin_sym_end,
1854
+ ACTIONS(9), 1,
1855
+ anon_sym_class,
1856
+ ACTIONS(11), 1,
1857
+ anon_sym_trait,
1858
+ ACTIONS(13), 1,
1859
+ anon_sym_enum,
1860
+ ACTIONS(15), 1,
1861
+ anon_sym_fun,
1862
+ ACTIONS(17), 1,
1863
+ anon_sym_AT,
1864
+ STATE(7), 2,
1865
+ sym_definitions,
1866
+ aux_sym_source_file_repeat2,
1867
+ STATE(61), 2,
1868
+ sym_trait_name,
1869
+ aux_sym_class_definition_repeat1,
1870
+ STATE(38), 4,
1871
+ sym_class_definition,
1872
+ sym_trait_definition,
1873
+ sym_enum_definition,
1874
+ sym_fun_definition,
1875
+ [177] = 9,
1876
+ ACTIONS(37), 1,
1877
+ ts_builtin_sym_end,
1878
+ ACTIONS(39), 1,
1879
+ anon_sym_class,
1880
+ ACTIONS(42), 1,
1881
+ anon_sym_trait,
1882
+ ACTIONS(45), 1,
1883
+ anon_sym_enum,
1884
+ ACTIONS(48), 1,
1885
+ anon_sym_fun,
1886
+ ACTIONS(51), 1,
1887
+ anon_sym_AT,
1888
+ STATE(7), 2,
1889
+ sym_definitions,
1890
+ aux_sym_source_file_repeat2,
1891
+ STATE(61), 2,
1892
+ sym_trait_name,
1893
+ aux_sym_class_definition_repeat1,
1894
+ STATE(38), 4,
1895
+ sym_class_definition,
1896
+ sym_trait_definition,
1897
+ sym_enum_definition,
1898
+ sym_fun_definition,
1899
+ [210] = 9,
1900
+ ACTIONS(9), 1,
1901
+ anon_sym_class,
1902
+ ACTIONS(11), 1,
1903
+ anon_sym_trait,
1904
+ ACTIONS(13), 1,
1905
+ anon_sym_enum,
1906
+ ACTIONS(15), 1,
1907
+ anon_sym_fun,
1908
+ ACTIONS(17), 1,
1909
+ anon_sym_AT,
1910
+ ACTIONS(54), 1,
1911
+ ts_builtin_sym_end,
1912
+ STATE(7), 2,
1913
+ sym_definitions,
1914
+ aux_sym_source_file_repeat2,
1915
+ STATE(61), 2,
1916
+ sym_trait_name,
1917
+ aux_sym_class_definition_repeat1,
1918
+ STATE(38), 4,
1919
+ sym_class_definition,
1920
+ sym_trait_definition,
1921
+ sym_enum_definition,
1922
+ sym_fun_definition,
1923
+ [243] = 1,
1924
+ ACTIONS(56), 11,
1925
+ ts_builtin_sym_end,
1926
+ anon_sym_import,
1927
+ anon_sym_class,
1928
+ anon_sym_LPAREN,
1929
+ anon_sym_COMMA,
1930
+ anon_sym_trait,
1931
+ anon_sym_enum,
1932
+ anon_sym_fun,
1933
+ anon_sym_AT,
1934
+ anon_sym_GT,
1935
+ anon_sym_DOT,
1936
+ [257] = 7,
1937
+ ACTIONS(58), 1,
1550
1938
  anon_sym_BSLASHu,
1551
- ACTIONS(23), 1,
1939
+ ACTIONS(60), 1,
1552
1940
  sym__escaped_identifier,
1553
- ACTIONS(25), 1,
1941
+ ACTIONS(62), 1,
1554
1942
  anon_sym_DQUOTE,
1555
- ACTIONS(27), 1,
1943
+ ACTIONS(64), 1,
1556
1944
  sym__line_str_text,
1557
- ACTIONS(29), 1,
1945
+ ACTIONS(66), 1,
1558
1946
  anon_sym_DOLLAR,
1559
- STATE(22), 1,
1947
+ STATE(51), 1,
1560
1948
  sym__uni_character_literal,
1561
- STATE(5), 4,
1949
+ STATE(12), 4,
1562
1950
  sym_character_escape_seq,
1563
1951
  sym__line_string_content,
1564
1952
  sym__interpolation,
1565
1953
  aux_sym_line_string_literal_repeat1,
1566
- [89] = 7,
1954
+ [282] = 7,
1567
- ACTIONS(31), 1,
1955
+ ACTIONS(68), 1,
1568
1956
  anon_sym_BSLASHu,
1569
- ACTIONS(34), 1,
1957
+ ACTIONS(71), 1,
1570
1958
  sym__escaped_identifier,
1571
- ACTIONS(37), 1,
1959
+ ACTIONS(74), 1,
1572
1960
  anon_sym_DQUOTE,
1573
- ACTIONS(39), 1,
1961
+ ACTIONS(76), 1,
1574
1962
  sym__line_str_text,
1575
- ACTIONS(42), 1,
1963
+ ACTIONS(79), 1,
1576
1964
  anon_sym_DOLLAR,
1577
- STATE(22), 1,
1965
+ STATE(51), 1,
1578
1966
  sym__uni_character_literal,
1579
- STATE(5), 4,
1967
+ STATE(11), 4,
1580
1968
  sym_character_escape_seq,
1581
1969
  sym__line_string_content,
1582
1970
  sym__interpolation,
1583
1971
  aux_sym_line_string_literal_repeat1,
1584
- [114] = 7,
1972
+ [307] = 7,
1585
- ACTIONS(45), 1,
1973
+ ACTIONS(58), 1,
1974
+ anon_sym_BSLASHu,
1975
+ ACTIONS(60), 1,
1976
+ sym__escaped_identifier,
1977
+ ACTIONS(66), 1,
1978
+ anon_sym_DOLLAR,
1979
+ ACTIONS(82), 1,
1980
+ anon_sym_DQUOTE,
1981
+ ACTIONS(84), 1,
1982
+ sym__line_str_text,
1983
+ STATE(51), 1,
1984
+ sym__uni_character_literal,
1985
+ STATE(11), 4,
1986
+ sym_character_escape_seq,
1987
+ sym__line_string_content,
1988
+ sym__interpolation,
1989
+ aux_sym_line_string_literal_repeat1,
1990
+ [332] = 3,
1991
+ ACTIONS(88), 1,
1992
+ anon_sym_SLASH,
1993
+ STATE(13), 1,
1994
+ aux_sym_url_repeat1,
1995
+ ACTIONS(86), 7,
1586
1996
  ts_builtin_sym_end,
1587
- ACTIONS(47), 1,
1588
1997
  anon_sym_import,
1589
- ACTIONS(49), 1,
1590
1998
  anon_sym_class,
1591
- ACTIONS(51), 1,
1999
+ anon_sym_trait,
1592
2000
  anon_sym_enum,
1593
- STATE(7), 2,
1594
- sym_import_statement,
1595
- aux_sym_source_file_repeat1,
1596
- STATE(10), 2,
1597
- sym_class_definition,
1598
- aux_sym_source_file_repeat2,
1599
- STATE(43), 2,
1600
- sym_enum_definition,
2001
+ anon_sym_fun,
1601
- aux_sym_source_file_repeat3,
2002
+ anon_sym_AT,
1602
- [139] = 7,
2003
+ [348] = 3,
1603
- ACTIONS(47), 1,
2004
+ ACTIONS(93), 1,
2005
+ anon_sym_SLASH,
2006
+ STATE(13), 1,
2007
+ aux_sym_url_repeat1,
2008
+ ACTIONS(91), 7,
2009
+ ts_builtin_sym_end,
1604
2010
  anon_sym_import,
1605
- ACTIONS(49), 1,
1606
2011
  anon_sym_class,
1607
- ACTIONS(51), 1,
2012
+ anon_sym_trait,
1608
2013
  anon_sym_enum,
2014
+ anon_sym_fun,
2015
+ anon_sym_AT,
2016
+ [364] = 3,
1609
- ACTIONS(53), 1,
2017
+ ACTIONS(93), 1,
2018
+ anon_sym_SLASH,
2019
+ STATE(14), 1,
2020
+ aux_sym_url_repeat1,
2021
+ ACTIONS(95), 7,
1610
2022
  ts_builtin_sym_end,
2023
+ anon_sym_import,
2024
+ anon_sym_class,
2025
+ anon_sym_trait,
2026
+ anon_sym_enum,
2027
+ anon_sym_fun,
2028
+ anon_sym_AT,
2029
+ [380] = 3,
1611
- STATE(9), 2,
2030
+ ACTIONS(99), 1,
1612
- sym_class_definition,
1613
- aux_sym_source_file_repeat2,
2031
+ anon_sym_import,
1614
- STATE(15), 2,
2032
+ STATE(16), 2,
1615
2033
  sym_import_statement,
1616
2034
  aux_sym_source_file_repeat1,
1617
- STATE(38), 2,
1618
- sym_enum_definition,
1619
- aux_sym_source_file_repeat3,
1620
- [164] = 7,
1621
- ACTIONS(21), 1,
1622
- anon_sym_BSLASHu,
1623
- ACTIONS(23), 1,
1624
- sym__escaped_identifier,
1625
- ACTIONS(29), 1,
1626
- anon_sym_DOLLAR,
1627
- ACTIONS(55), 1,
1628
- anon_sym_DQUOTE,
1629
- ACTIONS(57), 1,
2035
+ ACTIONS(97), 6,
1630
- sym__line_str_text,
2036
+ ts_builtin_sym_end,
1631
- STATE(22), 1,
1632
- sym__uni_character_literal,
1633
- STATE(4), 4,
1634
- sym_character_escape_seq,
1635
- sym__line_string_content,
1636
- sym__interpolation,
1637
- aux_sym_line_string_literal_repeat1,
1638
- [189] = 5,
1639
- ACTIONS(49), 1,
1640
2037
  anon_sym_class,
1641
- ACTIONS(51), 1,
2038
+ anon_sym_trait,
1642
2039
  anon_sym_enum,
2040
+ anon_sym_fun,
2041
+ anon_sym_AT,
2042
+ [396] = 1,
1643
- ACTIONS(59), 1,
2043
+ ACTIONS(86), 8,
1644
2044
  ts_builtin_sym_end,
1645
- STATE(24), 2,
1646
- sym_class_definition,
1647
- aux_sym_source_file_repeat2,
2045
+ anon_sym_import,
1648
- STATE(31), 2,
1649
- sym_enum_definition,
1650
- aux_sym_source_file_repeat3,
1651
- [207] = 5,
1652
- ACTIONS(49), 1,
1653
2046
  anon_sym_class,
1654
- ACTIONS(51), 1,
2047
+ anon_sym_trait,
1655
2048
  anon_sym_enum,
2049
+ anon_sym_fun,
2050
+ anon_sym_AT,
2051
+ anon_sym_SLASH,
2052
+ [407] = 4,
1656
- ACTIONS(53), 1,
2053
+ ACTIONS(104), 1,
1657
- ts_builtin_sym_end,
1658
- STATE(24), 2,
1659
- sym_class_definition,
1660
- aux_sym_source_file_repeat2,
1661
- STATE(38), 2,
1662
- sym_enum_definition,
1663
- aux_sym_source_file_repeat3,
1664
- [225] = 4,
1665
- ACTIONS(63), 1,
1666
2054
  anon_sym_BQUOTE,
1667
- ACTIONS(65), 1,
2055
+ ACTIONS(106), 1,
1668
2056
  anon_sym_DOLLAR,
1669
- ACTIONS(61), 2,
2057
+ ACTIONS(102), 2,
1670
2058
  anon_sym_DQUOTE,
1671
2059
  sym__multi_line_str_text,
1672
- STATE(12), 3,
2060
+ STATE(22), 3,
1673
2061
  sym__multi_line_string_content,
1674
2062
  sym__interpolation,
1675
2063
  aux_sym_multi_line_string_literal_repeat1,
1676
- [241] = 4,
2064
+ [423] = 4,
1677
- ACTIONS(65), 1,
2065
+ ACTIONS(111), 1,
1678
- anon_sym_DOLLAR,
1679
- ACTIONS(69), 1,
1680
2066
  anon_sym_BQUOTE,
2067
+ ACTIONS(113), 1,
2068
+ anon_sym_DOLLAR,
1681
- ACTIONS(67), 2,
2069
+ ACTIONS(108), 2,
1682
2070
  anon_sym_DQUOTE,
1683
2071
  sym__multi_line_str_text,
1684
- STATE(13), 3,
2072
+ STATE(19), 3,
1685
2073
  sym__multi_line_string_content,
1686
2074
  sym__interpolation,
1687
2075
  aux_sym_multi_line_string_literal_repeat1,
2076
+ [439] = 1,
2077
+ ACTIONS(116), 7,
2078
+ ts_builtin_sym_end,
2079
+ anon_sym_import,
2080
+ anon_sym_class,
2081
+ anon_sym_trait,
2082
+ anon_sym_enum,
2083
+ anon_sym_fun,
2084
+ anon_sym_AT,
2085
+ [449] = 1,
2086
+ ACTIONS(118), 7,
2087
+ ts_builtin_sym_end,
2088
+ anon_sym_import,
2089
+ anon_sym_class,
2090
+ anon_sym_trait,
2091
+ anon_sym_enum,
2092
+ anon_sym_fun,
2093
+ anon_sym_AT,
1688
- [257] = 4,
2094
+ [459] = 4,
1689
- ACTIONS(74), 1,
1690
- anon_sym_BQUOTE,
1691
- ACTIONS(76), 1,
2095
+ ACTIONS(106), 1,
1692
2096
  anon_sym_DOLLAR,
2097
+ ACTIONS(122), 1,
2098
+ anon_sym_BQUOTE,
1693
- ACTIONS(71), 2,
2099
+ ACTIONS(120), 2,
1694
2100
  anon_sym_DQUOTE,
1695
2101
  sym__multi_line_str_text,
1696
- STATE(13), 3,
2102
+ STATE(19), 3,
1697
2103
  sym__multi_line_string_content,
1698
2104
  sym__interpolation,
1699
2105
  aux_sym_multi_line_string_literal_repeat1,
1700
- [273] = 3,
2106
+ [475] = 1,
1701
- ACTIONS(81), 1,
2107
+ ACTIONS(124), 6,
1702
- anon_sym_SLASH,
1703
- STATE(17), 1,
1704
- aux_sym_url_repeat1,
1705
- ACTIONS(79), 4,
1706
2108
  ts_builtin_sym_end,
1707
- anon_sym_import,
1708
2109
  anon_sym_class,
2110
+ anon_sym_trait,
1709
2111
  anon_sym_enum,
2112
+ anon_sym_fun,
2113
+ anon_sym_AT,
1710
- [286] = 3,
2114
+ [484] = 1,
1711
- ACTIONS(85), 1,
2115
+ ACTIONS(126), 6,
1712
- anon_sym_import,
1713
- STATE(15), 2,
1714
- sym_import_statement,
1715
- aux_sym_source_file_repeat1,
1716
- ACTIONS(83), 3,
1717
2116
  ts_builtin_sym_end,
1718
2117
  anon_sym_class,
2118
+ anon_sym_trait,
1719
2119
  anon_sym_enum,
1720
- [299] = 3,
1721
- ACTIONS(90), 1,
2120
+ anon_sym_fun,
1722
- anon_sym_SLASH,
2121
+ anon_sym_AT,
1723
- STATE(16), 1,
2122
+ [493] = 1,
1724
- aux_sym_url_repeat1,
1725
- ACTIONS(88), 4,
2123
+ ACTIONS(128), 6,
1726
2124
  ts_builtin_sym_end,
1727
- anon_sym_import,
1728
2125
  anon_sym_class,
2126
+ anon_sym_trait,
1729
2127
  anon_sym_enum,
1730
- [312] = 3,
1731
- ACTIONS(81), 1,
2128
+ anon_sym_fun,
1732
- anon_sym_SLASH,
2129
+ anon_sym_AT,
1733
- STATE(16), 1,
2130
+ [502] = 1,
1734
- aux_sym_url_repeat1,
1735
- ACTIONS(93), 4,
2131
+ ACTIONS(130), 6,
1736
2132
  ts_builtin_sym_end,
1737
- anon_sym_import,
1738
2133
  anon_sym_class,
2134
+ anon_sym_trait,
1739
2135
  anon_sym_enum,
2136
+ anon_sym_fun,
2137
+ anon_sym_AT,
1740
- [325] = 1,
2138
+ [511] = 1,
1741
- ACTIONS(95), 6,
2139
+ ACTIONS(132), 6,
1742
2140
  ts_builtin_sym_end,
1743
- anon_sym_import,
1744
2141
  anon_sym_class,
2142
+ anon_sym_trait,
1745
2143
  anon_sym_enum,
1746
- anon_sym_COMMA,
2144
+ anon_sym_fun,
1747
- anon_sym_GT,
2145
+ anon_sym_AT,
2146
+ [520] = 1,
2147
+ ACTIONS(134), 6,
2148
+ ts_builtin_sym_end,
2149
+ anon_sym_class,
2150
+ anon_sym_trait,
2151
+ anon_sym_enum,
2152
+ anon_sym_fun,
2153
+ anon_sym_AT,
2154
+ [529] = 1,
2155
+ ACTIONS(136), 6,
2156
+ ts_builtin_sym_end,
2157
+ anon_sym_class,
2158
+ anon_sym_trait,
2159
+ anon_sym_enum,
2160
+ anon_sym_fun,
2161
+ anon_sym_AT,
1748
- [334] = 2,
2162
+ [538] = 1,
2163
+ ACTIONS(138), 6,
2164
+ ts_builtin_sym_end,
2165
+ anon_sym_class,
2166
+ anon_sym_trait,
2167
+ anon_sym_enum,
2168
+ anon_sym_fun,
2169
+ anon_sym_AT,
2170
+ [547] = 1,
2171
+ ACTIONS(140), 6,
2172
+ ts_builtin_sym_end,
2173
+ anon_sym_class,
2174
+ anon_sym_trait,
2175
+ anon_sym_enum,
2176
+ anon_sym_fun,
2177
+ anon_sym_AT,
2178
+ [556] = 1,
2179
+ ACTIONS(142), 6,
2180
+ ts_builtin_sym_end,
2181
+ anon_sym_class,
2182
+ anon_sym_trait,
2183
+ anon_sym_enum,
2184
+ anon_sym_fun,
2185
+ anon_sym_AT,
2186
+ [565] = 1,
2187
+ ACTIONS(144), 6,
2188
+ ts_builtin_sym_end,
2189
+ anon_sym_class,
2190
+ anon_sym_trait,
2191
+ anon_sym_enum,
2192
+ anon_sym_fun,
2193
+ anon_sym_AT,
2194
+ [574] = 1,
2195
+ ACTIONS(146), 6,
2196
+ ts_builtin_sym_end,
2197
+ anon_sym_class,
2198
+ anon_sym_trait,
2199
+ anon_sym_enum,
2200
+ anon_sym_fun,
2201
+ anon_sym_AT,
2202
+ [583] = 1,
2203
+ ACTIONS(148), 6,
2204
+ ts_builtin_sym_end,
2205
+ anon_sym_class,
2206
+ anon_sym_trait,
2207
+ anon_sym_enum,
2208
+ anon_sym_fun,
2209
+ anon_sym_AT,
2210
+ [592] = 1,
1749
- ACTIONS(95), 1,
2211
+ ACTIONS(150), 6,
2212
+ ts_builtin_sym_end,
2213
+ anon_sym_class,
2214
+ anon_sym_trait,
2215
+ anon_sym_enum,
2216
+ anon_sym_fun,
2217
+ anon_sym_AT,
2218
+ [601] = 1,
2219
+ ACTIONS(152), 6,
2220
+ ts_builtin_sym_end,
2221
+ anon_sym_class,
2222
+ anon_sym_trait,
2223
+ anon_sym_enum,
2224
+ anon_sym_fun,
2225
+ anon_sym_AT,
2226
+ [610] = 1,
2227
+ ACTIONS(154), 6,
2228
+ ts_builtin_sym_end,
2229
+ anon_sym_class,
2230
+ anon_sym_trait,
2231
+ anon_sym_enum,
2232
+ anon_sym_fun,
2233
+ anon_sym_AT,
2234
+ [619] = 1,
2235
+ ACTIONS(156), 6,
2236
+ ts_builtin_sym_end,
2237
+ anon_sym_class,
2238
+ anon_sym_trait,
2239
+ anon_sym_enum,
2240
+ anon_sym_fun,
2241
+ anon_sym_AT,
2242
+ [628] = 1,
2243
+ ACTIONS(158), 6,
2244
+ ts_builtin_sym_end,
2245
+ anon_sym_class,
2246
+ anon_sym_trait,
2247
+ anon_sym_enum,
2248
+ anon_sym_fun,
2249
+ anon_sym_AT,
2250
+ [637] = 1,
2251
+ ACTIONS(160), 6,
2252
+ ts_builtin_sym_end,
2253
+ anon_sym_class,
2254
+ anon_sym_trait,
2255
+ anon_sym_enum,
2256
+ anon_sym_fun,
2257
+ anon_sym_AT,
2258
+ [646] = 1,
2259
+ ACTIONS(162), 6,
2260
+ ts_builtin_sym_end,
2261
+ anon_sym_class,
2262
+ anon_sym_trait,
2263
+ anon_sym_enum,
2264
+ anon_sym_fun,
2265
+ anon_sym_AT,
2266
+ [655] = 1,
2267
+ ACTIONS(164), 6,
2268
+ ts_builtin_sym_end,
2269
+ anon_sym_class,
2270
+ anon_sym_trait,
2271
+ anon_sym_enum,
2272
+ anon_sym_fun,
2273
+ anon_sym_AT,
2274
+ [664] = 1,
2275
+ ACTIONS(166), 6,
2276
+ ts_builtin_sym_end,
2277
+ anon_sym_class,
2278
+ anon_sym_trait,
2279
+ anon_sym_enum,
2280
+ anon_sym_fun,
2281
+ anon_sym_AT,
2282
+ [673] = 1,
2283
+ ACTIONS(168), 6,
2284
+ ts_builtin_sym_end,
2285
+ anon_sym_class,
2286
+ anon_sym_trait,
2287
+ anon_sym_enum,
2288
+ anon_sym_fun,
2289
+ anon_sym_AT,
2290
+ [682] = 1,
2291
+ ACTIONS(170), 6,
2292
+ ts_builtin_sym_end,
2293
+ anon_sym_class,
2294
+ anon_sym_trait,
2295
+ anon_sym_enum,
2296
+ anon_sym_fun,
2297
+ anon_sym_AT,
2298
+ [691] = 1,
2299
+ ACTIONS(172), 6,
2300
+ ts_builtin_sym_end,
2301
+ anon_sym_class,
2302
+ anon_sym_trait,
2303
+ anon_sym_enum,
2304
+ anon_sym_fun,
2305
+ anon_sym_AT,
2306
+ [700] = 1,
2307
+ ACTIONS(174), 6,
2308
+ ts_builtin_sym_end,
2309
+ anon_sym_class,
2310
+ anon_sym_trait,
2311
+ anon_sym_enum,
2312
+ anon_sym_fun,
2313
+ anon_sym_AT,
2314
+ [709] = 2,
2315
+ ACTIONS(178), 1,
1750
2316
  sym__line_str_text,
1751
- ACTIONS(97), 4,
2317
+ ACTIONS(176), 4,
1752
2318
  anon_sym_BSLASHu,
1753
2319
  sym__escaped_identifier,
1754
2320
  anon_sym_DQUOTE,
1755
2321
  anon_sym_DOLLAR,
1756
- [344] = 2,
2322
+ [719] = 4,
1757
- ACTIONS(101), 1,
2323
+ ACTIONS(180), 1,
2324
+ anon_sym_fun,
2325
+ ACTIONS(182), 1,
2326
+ anon_sym_val,
2327
+ STATE(75), 1,
2328
+ sym_trait_field,
2329
+ STATE(136), 2,
2330
+ sym_type_field,
2331
+ sym_fun_field,
2332
+ [733] = 2,
2333
+ ACTIONS(186), 1,
1758
2334
  sym__line_str_text,
1759
- ACTIONS(99), 4,
2335
+ ACTIONS(184), 4,
1760
2336
  anon_sym_BSLASHu,
1761
2337
  sym__escaped_identifier,
1762
2338
  anon_sym_DQUOTE,
1763
2339
  anon_sym_DOLLAR,
1764
- [354] = 5,
2340
+ [743] = 2,
1765
- ACTIONS(103), 1,
2341
+ ACTIONS(56), 1,
1766
- anon_sym_COLON,
1767
- ACTIONS(105), 1,
1768
- anon_sym_LPAREN,
1769
- ACTIONS(107), 1,
1770
- anon_sym_LT,
1771
- STATE(66), 1,
1772
- sym_generic_list,
1773
- STATE(103), 1,
1774
- sym_trait_list,
1775
- [370] = 2,
1776
- ACTIONS(111), 1,
1777
2342
  sym__line_str_text,
1778
- ACTIONS(109), 4,
2343
+ ACTIONS(188), 4,
1779
2344
  anon_sym_BSLASHu,
1780
2345
  sym__escaped_identifier,
1781
2346
  anon_sym_DQUOTE,
1782
2347
  anon_sym_DOLLAR,
1783
- [380] = 2,
2348
+ [753] = 5,
1784
- ACTIONS(115), 1,
2349
+ ACTIONS(190), 1,
2350
+ aux_sym_character_literal_token1,
2351
+ ACTIONS(192), 1,
2352
+ anon_sym_BSLASHu,
2353
+ ACTIONS(194), 1,
2354
+ sym__escaped_identifier,
2355
+ STATE(167), 1,
2356
+ sym_character_escape_seq,
2357
+ STATE(169), 1,
2358
+ sym__uni_character_literal,
2359
+ [769] = 4,
2360
+ ACTIONS(180), 1,
2361
+ anon_sym_fun,
2362
+ ACTIONS(182), 1,
2363
+ anon_sym_val,
2364
+ STATE(66), 1,
2365
+ sym_trait_field,
2366
+ STATE(136), 2,
2367
+ sym_type_field,
2368
+ sym_fun_field,
2369
+ [783] = 4,
2370
+ ACTIONS(180), 1,
2371
+ anon_sym_fun,
2372
+ ACTIONS(182), 1,
2373
+ anon_sym_val,
2374
+ STATE(157), 1,
2375
+ sym_trait_field,
2376
+ STATE(136), 2,
2377
+ sym_type_field,
2378
+ sym_fun_field,
2379
+ [797] = 2,
2380
+ ACTIONS(198), 1,
1785
2381
  sym__line_str_text,
1786
- ACTIONS(113), 4,
2382
+ ACTIONS(196), 4,
1787
2383
  anon_sym_BSLASHu,
1788
2384
  sym__escaped_identifier,
1789
2385
  anon_sym_DQUOTE,
1790
2386
  anon_sym_DOLLAR,
1791
- [390] = 3,
1792
- ACTIONS(119), 1,
1793
- anon_sym_class,
1794
- ACTIONS(117), 2,
1795
- ts_builtin_sym_end,
1796
- anon_sym_enum,
1797
- STATE(24), 2,
1798
- sym_class_definition,
1799
- aux_sym_source_file_repeat2,
1800
- [402] = 1,
2387
+ [807] = 1,
1801
- ACTIONS(88), 5,
1802
- ts_builtin_sym_end,
1803
- anon_sym_import,
1804
- anon_sym_class,
1805
- anon_sym_enum,
1806
- anon_sym_SLASH,
1807
- [410] = 5,
1808
- ACTIONS(122), 1,
1809
- aux_sym_character_literal_token1,
1810
- ACTIONS(124), 1,
1811
- anon_sym_BSLASHu,
1812
- ACTIONS(126), 1,
2388
+ ACTIONS(196), 4,
1813
- sym__escaped_identifier,
1814
- STATE(102), 1,
1815
- sym__uni_character_literal,
1816
- STATE(105), 1,
1817
- sym_character_escape_seq,
1818
- [426] = 3,
1819
- ACTIONS(128), 1,
1820
- sym_variable_name,
1821
- ACTIONS(130), 1,
1822
- sym__dedent,
1823
- STATE(44), 2,
1824
- sym_class_field,
1825
- aux_sym_class_definition_repeat1,
1826
- [437] = 3,
1827
- ACTIONS(132), 1,
1828
- sym_enum_field_name,
1829
- ACTIONS(135), 1,
1830
- sym__dedent,
1831
- STATE(28), 2,
1832
- sym_enum_field,
1833
- aux_sym_enum_definition_repeat1,
1834
- [448] = 3,
1835
- ACTIONS(137), 1,
1836
- sym_enum_field_name,
1837
- ACTIONS(139), 1,
1838
- sym__dedent,
1839
- STATE(28), 2,
1840
- sym_enum_field,
1841
- aux_sym_enum_definition_repeat1,
1842
- [459] = 3,
1843
- ACTIONS(128), 1,
1844
- sym_variable_name,
1845
- ACTIONS(141), 1,
1846
- sym__dedent,
1847
- STATE(39), 2,
1848
- sym_class_field,
1849
- aux_sym_class_definition_repeat1,
1850
- [470] = 3,
1851
- ACTIONS(51), 1,
1852
- anon_sym_enum,
1853
- ACTIONS(143), 1,
1854
- ts_builtin_sym_end,
1855
- STATE(37), 2,
1856
- sym_enum_definition,
1857
- aux_sym_source_file_repeat3,
1858
- [481] = 3,
1859
- ACTIONS(128), 1,
1860
- sym_variable_name,
1861
- ACTIONS(145), 1,
1862
- sym__dedent,
1863
- STATE(35), 2,
1864
- sym_class_field,
1865
- aux_sym_class_definition_repeat1,
1866
- [492] = 3,
1867
- ACTIONS(128), 1,
1868
- sym_variable_name,
1869
- ACTIONS(147), 1,
1870
- sym__dedent,
1871
- STATE(35), 2,
1872
- sym_class_field,
1873
- aux_sym_class_definition_repeat1,
1874
- [503] = 1,
1875
- ACTIONS(97), 4,
1876
2389
  anon_sym_DQUOTE,
1877
2390
  anon_sym_BQUOTE,
1878
2391
  sym__multi_line_str_text,
1879
2392
  anon_sym_DOLLAR,
1880
- [510] = 3,
2393
+ [814] = 3,
1881
- ACTIONS(149), 1,
1882
- sym_variable_name,
1883
- ACTIONS(152), 1,
2394
+ ACTIONS(202), 1,
2395
+ sym_definition_name,
2396
+ STATE(101), 1,
1884
- sym__dedent,
2397
+ sym_type,
2398
+ ACTIONS(200), 2,
2399
+ anon_sym_COMMA,
2400
+ anon_sym_RPAREN,
2401
+ [825] = 3,
2402
+ ACTIONS(204), 1,
2403
+ anon_sym_COMMA,
2404
+ STATE(59), 1,
2405
+ aux_sym_fun_definition_repeat2,
2406
+ ACTIONS(207), 2,
2407
+ anon_sym_RPAREN,
2408
+ anon_sym_LBRACE,
2409
+ [836] = 3,
2410
+ ACTIONS(202), 1,
2411
+ sym_definition_name,
1885
- STATE(35), 2,
2412
+ STATE(85), 1,
1886
- sym_class_field,
2413
+ sym_type,
2414
+ ACTIONS(209), 2,
2415
+ anon_sym_COMMA,
1887
- aux_sym_class_definition_repeat1,
2416
+ anon_sym_RPAREN,
1888
- [521] = 3,
2417
+ [847] = 3,
1889
- ACTIONS(137), 1,
2418
+ ACTIONS(17), 1,
1890
- sym_enum_field_name,
1891
- ACTIONS(154), 1,
1892
- sym__dedent,
1893
- STATE(29), 2,
1894
- sym_enum_field,
1895
- aux_sym_enum_definition_repeat1,
1896
- [532] = 3,
1897
- ACTIONS(156), 1,
1898
- ts_builtin_sym_end,
1899
- ACTIONS(158), 1,
1900
- anon_sym_enum,
2419
+ anon_sym_AT,
1901
- STATE(37), 2,
1902
- sym_enum_definition,
1903
- aux_sym_source_file_repeat3,
1904
- [543] = 3,
1905
- ACTIONS(51), 1,
1906
- anon_sym_enum,
1907
- ACTIONS(59), 1,
1908
- ts_builtin_sym_end,
1909
- STATE(37), 2,
1910
- sym_enum_definition,
1911
- aux_sym_source_file_repeat3,
1912
- [554] = 3,
1913
- ACTIONS(128), 1,
1914
- sym_variable_name,
1915
- ACTIONS(161), 1,
2420
+ ACTIONS(211), 1,
1916
- sym__dedent,
1917
- STATE(35), 2,
1918
- sym_class_field,
1919
- aux_sym_class_definition_repeat1,
1920
- [565] = 1,
1921
- ACTIONS(163), 4,
1922
- ts_builtin_sym_end,
1923
- anon_sym_import,
1924
- anon_sym_class,
1925
- anon_sym_enum,
1926
- [572] = 1,
1927
- ACTIONS(165), 4,
1928
- ts_builtin_sym_end,
1929
- anon_sym_import,
1930
2421
  anon_sym_class,
1931
- anon_sym_enum,
1932
- [579] = 3,
1933
- ACTIONS(128), 1,
1934
- sym_variable_name,
1935
- ACTIONS(167), 1,
1936
- sym__dedent,
1937
- STATE(32), 2,
2422
+ STATE(63), 2,
1938
- sym_class_field,
2423
+ sym_trait_name,
1939
2424
  aux_sym_class_definition_repeat1,
1940
- [590] = 3,
2425
+ [858] = 3,
2426
+ ACTIONS(202), 1,
2427
+ sym_definition_name,
2428
+ STATE(80), 1,
2429
+ sym_type,
2430
+ ACTIONS(213), 2,
2431
+ anon_sym_COMMA,
2432
+ anon_sym_RPAREN,
2433
+ [869] = 3,
1941
- ACTIONS(51), 1,
2434
+ ACTIONS(215), 1,
1942
- anon_sym_enum,
2435
+ anon_sym_class,
1943
- ACTIONS(53), 1,
2436
+ ACTIONS(217), 1,
1944
- ts_builtin_sym_end,
2437
+ anon_sym_AT,
1945
- STATE(37), 2,
2438
+ STATE(63), 2,
1946
- sym_enum_definition,
1947
- aux_sym_source_file_repeat3,
1948
- [601] = 3,
1949
- ACTIONS(128), 1,
1950
- sym_variable_name,
2439
+ sym_trait_name,
1951
- ACTIONS(169), 1,
1952
- sym__dedent,
1953
- STATE(35), 2,
1954
- sym_class_field,
1955
2440
  aux_sym_class_definition_repeat1,
2441
+ [880] = 2,
2442
+ ACTIONS(222), 1,
2443
+ anon_sym_QMARK,
2444
+ ACTIONS(220), 3,
2445
+ anon_sym_COMMA,
2446
+ anon_sym_RPAREN,
2447
+ anon_sym_LBRACE,
1956
- [612] = 1,
2448
+ [889] = 1,
1957
- ACTIONS(113), 4,
2449
+ ACTIONS(188), 4,
1958
2450
  anon_sym_DQUOTE,
1959
2451
  anon_sym_BQUOTE,
1960
2452
  sym__multi_line_str_text,
1961
2453
  anon_sym_DOLLAR,
1962
- [619] = 3,
2454
+ [896] = 3,
1963
- ACTIONS(128), 1,
2455
+ ACTIONS(224), 1,
1964
- sym_variable_name,
1965
- ACTIONS(171), 1,
1966
- sym__dedent,
1967
- STATE(33), 2,
1968
- sym_class_field,
1969
- aux_sym_class_definition_repeat1,
1970
- [630] = 1,
1971
- ACTIONS(173), 3,
1972
- ts_builtin_sym_end,
1973
- anon_sym_class,
1974
- anon_sym_enum,
1975
- [636] = 3,
1976
- ACTIONS(175), 1,
1977
2456
  anon_sym_COMMA,
1978
- ACTIONS(177), 1,
2457
+ ACTIONS(226), 1,
1979
2458
  anon_sym_RPAREN,
1980
- STATE(54), 1,
2459
+ STATE(74), 1,
1981
- aux_sym_type_list_repeat1,
2460
+ aux_sym_trait_definition_repeat1,
1982
- [646] = 3,
2461
+ [906] = 3,
1983
- ACTIONS(175), 1,
2462
+ ACTIONS(228), 1,
2463
+ anon_sym_COMMA,
2464
+ ACTIONS(230), 1,
2465
+ anon_sym_LBRACE,
2466
+ STATE(109), 1,
2467
+ aux_sym_fun_definition_repeat2,
2468
+ [916] = 3,
2469
+ ACTIONS(232), 1,
1984
2470
  anon_sym_COMMA,
1985
- ACTIONS(179), 1,
2471
+ ACTIONS(234), 1,
1986
2472
  anon_sym_RPAREN,
2473
+ STATE(87), 1,
2474
+ aux_sym_class_definition_repeat2,
2475
+ [926] = 3,
2476
+ ACTIONS(236), 1,
2477
+ anon_sym_COMMA,
2478
+ ACTIONS(239), 1,
2479
+ anon_sym_RPAREN,
2480
+ STATE(59), 1,
2481
+ aux_sym_fun_definition_repeat2,
2482
+ [936] = 3,
2483
+ ACTIONS(241), 1,
2484
+ aux_sym_url_token1,
2485
+ STATE(141), 1,
2486
+ sym_identifier,
2487
+ STATE(179), 1,
2488
+ sym__extension,
2489
+ [946] = 3,
2490
+ ACTIONS(243), 1,
2491
+ anon_sym_COMMA,
2492
+ ACTIONS(245), 1,
2493
+ anon_sym_GT,
1987
- STATE(60), 1,
2494
+ STATE(90), 1,
1988
- aux_sym_type_list_repeat1,
2495
+ aux_sym_trait_list_repeat1,
1989
- [656] = 1,
2496
+ [956] = 3,
1990
- ACTIONS(181), 3,
1991
- ts_builtin_sym_end,
1992
- anon_sym_class,
1993
- anon_sym_enum,
1994
- [662] = 1,
1995
- ACTIONS(183), 3,
1996
- ts_builtin_sym_end,
1997
- anon_sym_class,
1998
- anon_sym_enum,
1999
- [668] = 3,
2000
- ACTIONS(175), 1,
2497
+ ACTIONS(232), 1,
2001
2498
  anon_sym_COMMA,
2002
- ACTIONS(185), 1,
2499
+ ACTIONS(247), 1,
2003
2500
  anon_sym_RPAREN,
2004
- STATE(49), 1,
2501
+ STATE(91), 1,
2005
- aux_sym_type_list_repeat1,
2502
+ aux_sym_class_definition_repeat2,
2006
- [678] = 3,
2503
+ [966] = 3,
2007
- ACTIONS(187), 1,
2504
+ ACTIONS(249), 1,
2008
2505
  anon_sym_COMMA,
2009
- ACTIONS(189), 1,
2506
+ ACTIONS(252), 1,
2010
2507
  anon_sym_RPAREN,
2011
- STATE(65), 1,
2508
+ STATE(73), 1,
2012
2509
  aux_sym_enum_field_repeat1,
2013
- [688] = 3,
2510
+ [976] = 3,
2014
- ACTIONS(175), 1,
2511
+ ACTIONS(224), 1,
2015
2512
  anon_sym_COMMA,
2016
- ACTIONS(191), 1,
2513
+ ACTIONS(254), 1,
2017
2514
  anon_sym_RPAREN,
2018
- STATE(60), 1,
2515
+ STATE(94), 1,
2019
- aux_sym_type_list_repeat1,
2516
+ aux_sym_trait_definition_repeat1,
2020
- [698] = 3,
2517
+ [986] = 3,
2021
- ACTIONS(193), 1,
2518
+ ACTIONS(224), 1,
2022
2519
  anon_sym_COMMA,
2023
- ACTIONS(195), 1,
2520
+ ACTIONS(256), 1,
2521
+ anon_sym_RPAREN,
2522
+ STATE(95), 1,
2523
+ aux_sym_trait_definition_repeat1,
2524
+ [996] = 3,
2525
+ ACTIONS(258), 1,
2526
+ anon_sym_LPAREN,
2527
+ ACTIONS(260), 1,
2024
- anon_sym_GT,
2528
+ anon_sym_LT,
2025
- STATE(57), 1,
2529
+ STATE(166), 1,
2026
- aux_sym_type_list_repeat1,
2530
+ sym_generic_list,
2027
- [708] = 1,
2531
+ [1006] = 3,
2028
- ACTIONS(197), 3,
2029
- ts_builtin_sym_end,
2030
- anon_sym_class,
2031
- anon_sym_enum,
2032
- [714] = 3,
2033
- ACTIONS(193), 1,
2532
+ ACTIONS(232), 1,
2034
2533
  anon_sym_COMMA,
2035
- ACTIONS(199), 1,
2534
+ ACTIONS(262), 1,
2036
- anon_sym_GT,
2535
+ anon_sym_RPAREN,
2037
- STATE(62), 1,
2536
+ STATE(87), 1,
2038
- aux_sym_type_list_repeat1,
2537
+ aux_sym_class_definition_repeat2,
2039
- [724] = 3,
2538
+ [1016] = 3,
2040
- ACTIONS(201), 1,
2539
+ ACTIONS(202), 1,
2540
+ sym_definition_name,
2541
+ ACTIONS(264), 1,
2542
+ anon_sym_LBRACE,
2543
+ STATE(99), 1,
2544
+ sym_type,
2545
+ [1026] = 3,
2546
+ ACTIONS(260), 1,
2547
+ anon_sym_LT,
2548
+ ACTIONS(266), 1,
2549
+ anon_sym_LPAREN,
2550
+ STATE(170), 1,
2551
+ sym_generic_list,
2552
+ [1036] = 3,
2553
+ ACTIONS(268), 1,
2041
2554
  anon_sym_COMMA,
2555
+ ACTIONS(271), 1,
2556
+ anon_sym_RPAREN,
2557
+ STATE(69), 1,
2558
+ aux_sym_fun_definition_repeat2,
2559
+ [1046] = 3,
2560
+ ACTIONS(273), 1,
2561
+ anon_sym_COMMA,
2562
+ ACTIONS(276), 1,
2563
+ anon_sym_RPAREN,
2564
+ STATE(59), 1,
2565
+ aux_sym_fun_definition_repeat2,
2566
+ [1056] = 3,
2567
+ ACTIONS(278), 1,
2568
+ anon_sym_COMMA,
2569
+ ACTIONS(280), 1,
2570
+ anon_sym_RPAREN,
2571
+ STATE(104), 1,
2572
+ aux_sym_fun_definition_repeat1,
2573
+ [1066] = 3,
2574
+ ACTIONS(232), 1,
2575
+ anon_sym_COMMA,
2576
+ ACTIONS(282), 1,
2577
+ anon_sym_RPAREN,
2578
+ STATE(106), 1,
2579
+ aux_sym_class_definition_repeat2,
2580
+ [1076] = 3,
2042
- ACTIONS(204), 1,
2581
+ ACTIONS(284), 1,
2582
+ anon_sym_COMMA,
2583
+ ACTIONS(286), 1,
2043
2584
  anon_sym_RPAREN,
2044
- STATE(58), 1,
2585
+ STATE(73), 1,
2045
2586
  aux_sym_enum_field_repeat1,
2046
- [734] = 2,
2587
+ [1086] = 3,
2047
- ACTIONS(206), 1,
2588
+ ACTIONS(288), 1,
2048
- anon_sym_QMARK,
2049
- ACTIONS(208), 2,
2050
- sym__dedent,
2051
- sym_variable_name,
2052
- [742] = 3,
2053
- ACTIONS(210), 1,
2054
2589
  anon_sym_COMMA,
2055
- ACTIONS(213), 1,
2590
+ ACTIONS(291), 1,
2056
2591
  anon_sym_RPAREN,
2057
- STATE(60), 1,
2592
+ STATE(81), 1,
2058
- aux_sym_type_list_repeat1,
2593
+ aux_sym_fun_definition_repeat2,
2059
- [752] = 1,
2060
- ACTIONS(215), 3,
2061
- ts_builtin_sym_end,
2062
- anon_sym_class,
2063
- anon_sym_enum,
2064
- [758] = 3,
2594
+ [1096] = 3,
2065
- ACTIONS(213), 1,
2595
+ ACTIONS(293), 1,
2596
+ anon_sym_COMMA,
2597
+ ACTIONS(296), 1,
2598
+ anon_sym_RPAREN,
2599
+ STATE(59), 1,
2600
+ aux_sym_fun_definition_repeat2,
2601
+ [1106] = 3,
2602
+ ACTIONS(298), 1,
2603
+ anon_sym_COMMA,
2604
+ ACTIONS(301), 1,
2605
+ anon_sym_RPAREN,
2606
+ STATE(87), 1,
2607
+ aux_sym_class_definition_repeat2,
2608
+ [1116] = 3,
2609
+ ACTIONS(228), 1,
2610
+ anon_sym_COMMA,
2611
+ ACTIONS(303), 1,
2612
+ anon_sym_LBRACE,
2613
+ STATE(59), 1,
2614
+ aux_sym_fun_definition_repeat2,
2615
+ [1126] = 3,
2616
+ ACTIONS(305), 1,
2617
+ anon_sym_COMMA,
2618
+ ACTIONS(307), 1,
2619
+ anon_sym_RBRACE,
2620
+ STATE(93), 1,
2621
+ aux_sym_enum_definition_repeat1,
2622
+ [1136] = 3,
2623
+ ACTIONS(309), 1,
2624
+ anon_sym_COMMA,
2625
+ ACTIONS(312), 1,
2066
2626
  anon_sym_GT,
2627
+ STATE(90), 1,
2628
+ aux_sym_trait_list_repeat1,
2629
+ [1146] = 3,
2067
- ACTIONS(217), 1,
2630
+ ACTIONS(232), 1,
2068
2631
  anon_sym_COMMA,
2632
+ ACTIONS(314), 1,
2633
+ anon_sym_RPAREN,
2069
- STATE(62), 1,
2634
+ STATE(87), 1,
2070
- aux_sym_type_list_repeat1,
2635
+ aux_sym_class_definition_repeat2,
2636
+ [1156] = 3,
2637
+ ACTIONS(316), 1,
2638
+ anon_sym_RPAREN,
2639
+ ACTIONS(318), 1,
2640
+ sym_variable_name,
2641
+ STATE(111), 1,
2642
+ sym_param,
2071
- [768] = 1,
2643
+ [1166] = 3,
2072
- ACTIONS(220), 3,
2644
+ ACTIONS(320), 1,
2073
- ts_builtin_sym_end,
2074
- anon_sym_class,
2645
+ anon_sym_COMMA,
2075
- anon_sym_enum,
2076
- [774] = 3,
2077
- ACTIONS(222), 1,
2646
+ ACTIONS(323), 1,
2078
- aux_sym_url_token1,
2647
+ anon_sym_RBRACE,
2079
- STATE(6), 1,
2080
- sym_package,
2081
- STATE(40), 1,
2648
+ STATE(93), 1,
2082
- sym_identifier,
2649
+ aux_sym_enum_definition_repeat1,
2083
- [784] = 3,
2650
+ [1176] = 3,
2084
- ACTIONS(187), 1,
2651
+ ACTIONS(325), 1,
2085
2652
  anon_sym_COMMA,
2653
+ ACTIONS(328), 1,
2654
+ anon_sym_RPAREN,
2655
+ STATE(94), 1,
2656
+ aux_sym_trait_definition_repeat1,
2657
+ [1186] = 3,
2086
2658
  ACTIONS(224), 1,
2659
+ anon_sym_COMMA,
2660
+ ACTIONS(330), 1,
2661
+ anon_sym_RPAREN,
2662
+ STATE(94), 1,
2663
+ aux_sym_trait_definition_repeat1,
2664
+ [1196] = 3,
2665
+ ACTIONS(318), 1,
2666
+ sym_variable_name,
2667
+ ACTIONS(332), 1,
2668
+ anon_sym_RPAREN,
2669
+ STATE(119), 1,
2670
+ sym_param,
2671
+ [1206] = 3,
2672
+ ACTIONS(284), 1,
2673
+ anon_sym_COMMA,
2674
+ ACTIONS(334), 1,
2087
2675
  anon_sym_RPAREN,
2088
- STATE(58), 1,
2676
+ STATE(84), 1,
2089
2677
  aux_sym_enum_field_repeat1,
2090
- [794] = 3,
2678
+ [1216] = 3,
2091
- ACTIONS(105), 1,
2679
+ ACTIONS(260), 1,
2680
+ anon_sym_LT,
2681
+ ACTIONS(336), 1,
2092
2682
  anon_sym_LPAREN,
2683
+ STATE(187), 1,
2684
+ sym_generic_list,
2685
+ [1226] = 3,
2093
- ACTIONS(226), 1,
2686
+ ACTIONS(228), 1,
2094
- anon_sym_COLON,
2095
- STATE(101), 1,
2096
- sym_trait_list,
2097
- [804] = 1,
2098
- ACTIONS(228), 3,
2099
- ts_builtin_sym_end,
2100
- anon_sym_class,
2101
- anon_sym_enum,
2102
- [810] = 1,
2103
- ACTIONS(230), 3,
2104
- ts_builtin_sym_end,
2105
- anon_sym_class,
2106
- anon_sym_enum,
2107
- [816] = 1,
2108
- ACTIONS(213), 2,
2109
2687
  anon_sym_COMMA,
2688
+ ACTIONS(338), 1,
2689
+ anon_sym_LBRACE,
2690
+ STATE(120), 1,
2691
+ aux_sym_fun_definition_repeat2,
2692
+ [1236] = 3,
2693
+ ACTIONS(232), 1,
2694
+ anon_sym_COMMA,
2695
+ ACTIONS(340), 1,
2110
2696
  anon_sym_RPAREN,
2697
+ STATE(68), 1,
2698
+ aux_sym_class_definition_repeat2,
2111
- [821] = 1,
2699
+ [1246] = 3,
2112
- ACTIONS(204), 2,
2700
+ ACTIONS(342), 1,
2113
2701
  anon_sym_COMMA,
2702
+ ACTIONS(345), 1,
2114
2703
  anon_sym_RPAREN,
2115
- [826] = 1,
2116
- ACTIONS(232), 2,
2117
- anon_sym_COLON,
2118
- anon_sym_LPAREN,
2119
- [831] = 2,
2120
- ACTIONS(234), 1,
2121
- aux_sym_url_token1,
2122
- STATE(45), 1,
2704
+ STATE(86), 1,
2123
- sym_identifier,
2124
- [838] = 1,
2125
- ACTIONS(236), 2,
2126
- sym__dedent,
2127
- sym_variable_name,
2128
- [843] = 2,
2129
- ACTIONS(238), 1,
2130
- aux_sym_url_token1,
2705
+ aux_sym_fun_definition_repeat2,
2131
- STATE(41), 1,
2132
- sym_url,
2133
- [850] = 1,
2706
+ [1256] = 3,
2134
- ACTIONS(240), 2,
2135
- ts_builtin_sym_end,
2136
- anon_sym_enum,
2137
- [855] = 2,
2138
- ACTIONS(242), 1,
2707
+ ACTIONS(202), 1,
2139
- anon_sym_LPAREN,
2140
- STATE(98), 1,
2141
- sym_type_list,
2142
- [862] = 2,
2143
- ACTIONS(244), 1,
2144
2708
  sym_definition_name,
2709
+ ACTIONS(347), 1,
2710
+ anon_sym_LBRACE,
2145
- STATE(73), 1,
2711
+ STATE(67), 1,
2146
2712
  sym_type,
2147
- [869] = 1,
2713
+ [1266] = 3,
2148
- ACTIONS(213), 2,
2714
+ ACTIONS(243), 1,
2149
2715
  anon_sym_COMMA,
2716
+ ACTIONS(349), 1,
2150
2717
  anon_sym_GT,
2718
+ STATE(71), 1,
2719
+ aux_sym_trait_list_repeat1,
2151
- [874] = 1,
2720
+ [1276] = 3,
2721
+ ACTIONS(351), 1,
2722
+ anon_sym_COMMA,
2723
+ ACTIONS(354), 1,
2724
+ anon_sym_RPAREN,
2725
+ STATE(104), 1,
2726
+ aux_sym_fun_definition_repeat1,
2727
+ [1286] = 3,
2152
- ACTIONS(246), 2,
2728
+ ACTIONS(241), 1,
2153
- ts_builtin_sym_end,
2154
- anon_sym_enum,
2155
- [879] = 2,
2156
- ACTIONS(222), 1,
2157
2729
  aux_sym_url_token1,
2730
+ STATE(5), 1,
2731
+ sym_package,
2158
- STATE(78), 1,
2732
+ STATE(20), 1,
2159
2733
  sym_identifier,
2160
- [886] = 1,
2161
- ACTIONS(248), 2,
2162
- sym__dedent,
2163
- sym_variable_name,
2164
- [891] = 1,
2165
- ACTIONS(250), 2,
2166
- anon_sym_COLON,
2167
- anon_sym_LPAREN,
2168
- [896] = 1,
2734
+ [1296] = 3,
2169
- ACTIONS(252), 2,
2735
+ ACTIONS(232), 1,
2170
2736
  anon_sym_COMMA,
2737
+ ACTIONS(356), 1,
2171
2738
  anon_sym_RPAREN,
2739
+ STATE(87), 1,
2740
+ aux_sym_class_definition_repeat2,
2172
- [901] = 1,
2741
+ [1306] = 3,
2173
- ACTIONS(95), 2,
2742
+ ACTIONS(232), 1,
2174
2743
  anon_sym_COMMA,
2744
+ ACTIONS(358), 1,
2175
2745
  anon_sym_RPAREN,
2746
+ STATE(121), 1,
2747
+ aux_sym_class_definition_repeat2,
2176
- [906] = 2,
2748
+ [1316] = 3,
2177
- ACTIONS(254), 1,
2749
+ ACTIONS(228), 1,
2750
+ anon_sym_COMMA,
2751
+ ACTIONS(360), 1,
2752
+ anon_sym_LBRACE,
2753
+ STATE(88), 1,
2754
+ aux_sym_fun_definition_repeat2,
2755
+ [1326] = 3,
2756
+ ACTIONS(228), 1,
2757
+ anon_sym_COMMA,
2758
+ ACTIONS(362), 1,
2759
+ anon_sym_LBRACE,
2760
+ STATE(59), 1,
2761
+ aux_sym_fun_definition_repeat2,
2762
+ [1336] = 1,
2763
+ ACTIONS(207), 3,
2764
+ anon_sym_COMMA,
2765
+ anon_sym_RPAREN,
2766
+ anon_sym_LBRACE,
2767
+ [1342] = 3,
2768
+ ACTIONS(278), 1,
2769
+ anon_sym_COMMA,
2770
+ ACTIONS(364), 1,
2771
+ anon_sym_RPAREN,
2772
+ STATE(118), 1,
2773
+ aux_sym_fun_definition_repeat1,
2774
+ [1352] = 3,
2775
+ ACTIONS(305), 1,
2776
+ anon_sym_COMMA,
2777
+ ACTIONS(366), 1,
2778
+ anon_sym_RBRACE,
2779
+ STATE(89), 1,
2780
+ aux_sym_enum_definition_repeat1,
2781
+ [1362] = 3,
2782
+ ACTIONS(305), 1,
2783
+ anon_sym_COMMA,
2784
+ ACTIONS(368), 1,
2785
+ anon_sym_RBRACE,
2786
+ STATE(93), 1,
2787
+ aux_sym_enum_definition_repeat1,
2788
+ [1372] = 3,
2789
+ ACTIONS(305), 1,
2790
+ anon_sym_COMMA,
2791
+ ACTIONS(370), 1,
2792
+ anon_sym_RBRACE,
2793
+ STATE(113), 1,
2794
+ aux_sym_enum_definition_repeat1,
2795
+ [1382] = 3,
2796
+ ACTIONS(232), 1,
2797
+ anon_sym_COMMA,
2798
+ ACTIONS(372), 1,
2799
+ anon_sym_RPAREN,
2800
+ STATE(77), 1,
2801
+ aux_sym_class_definition_repeat2,
2802
+ [1392] = 3,
2803
+ ACTIONS(202), 1,
2804
+ sym_definition_name,
2805
+ ACTIONS(374), 1,
2806
+ anon_sym_LBRACE,
2807
+ STATE(108), 1,
2808
+ sym_type,
2809
+ [1402] = 1,
2810
+ ACTIONS(376), 3,
2811
+ anon_sym_COMMA,
2812
+ anon_sym_RPAREN,
2813
+ anon_sym_LBRACE,
2814
+ [1408] = 3,
2815
+ ACTIONS(278), 1,
2816
+ anon_sym_COMMA,
2817
+ ACTIONS(378), 1,
2818
+ anon_sym_RPAREN,
2819
+ STATE(104), 1,
2820
+ aux_sym_fun_definition_repeat1,
2821
+ [1418] = 3,
2822
+ ACTIONS(278), 1,
2823
+ anon_sym_COMMA,
2824
+ ACTIONS(380), 1,
2825
+ anon_sym_RPAREN,
2826
+ STATE(82), 1,
2827
+ aux_sym_fun_definition_repeat1,
2828
+ [1428] = 3,
2829
+ ACTIONS(228), 1,
2830
+ anon_sym_COMMA,
2831
+ ACTIONS(382), 1,
2832
+ anon_sym_LBRACE,
2833
+ STATE(59), 1,
2834
+ aux_sym_fun_definition_repeat2,
2835
+ [1438] = 3,
2836
+ ACTIONS(232), 1,
2837
+ anon_sym_COMMA,
2838
+ ACTIONS(384), 1,
2839
+ anon_sym_RPAREN,
2840
+ STATE(87), 1,
2841
+ aux_sym_class_definition_repeat2,
2842
+ [1448] = 1,
2843
+ ACTIONS(386), 2,
2844
+ anon_sym_COMMA,
2845
+ anon_sym_RPAREN,
2846
+ [1453] = 2,
2847
+ ACTIONS(241), 1,
2178
2848
  aux_sym_url_token1,
2179
- STATE(69), 1,
2849
+ STATE(103), 1,
2180
2850
  sym_identifier,
2181
- [913] = 2,
2851
+ [1460] = 2,
2182
- ACTIONS(254), 1,
2852
+ ACTIONS(202), 1,
2853
+ sym_definition_name,
2854
+ STATE(110), 1,
2855
+ sym_type,
2856
+ [1467] = 2,
2857
+ ACTIONS(388), 1,
2183
2858
  aux_sym_url_token1,
2184
- STATE(52), 1,
2859
+ STATE(57), 1,
2185
2860
  sym_identifier,
2861
+ [1474] = 2,
2862
+ ACTIONS(390), 1,
2863
+ aux_sym_url_token1,
2864
+ STATE(21), 1,
2865
+ sym_url,
2186
- [920] = 1,
2866
+ [1481] = 1,
2867
+ ACTIONS(392), 2,
2868
+ anon_sym_COMMA,
2869
+ anon_sym_RBRACE,
2870
+ [1486] = 1,
2187
- ACTIONS(256), 2,
2871
+ ACTIONS(252), 2,
2872
+ anon_sym_COMMA,
2873
+ anon_sym_RPAREN,
2874
+ [1491] = 1,
2875
+ ACTIONS(394), 2,
2876
+ anon_sym_COMMA,
2877
+ anon_sym_RPAREN,
2878
+ [1496] = 2,
2879
+ ACTIONS(202), 1,
2880
+ sym_definition_name,
2881
+ STATE(122), 1,
2188
- sym__dedent,
2882
+ sym_type,
2883
+ [1503] = 2,
2884
+ ACTIONS(396), 1,
2189
2885
  sym_enum_field_name,
2886
+ STATE(153), 1,
2887
+ sym_enum_field,
2190
- [925] = 2,
2888
+ [1510] = 2,
2191
- ACTIONS(222), 1,
2889
+ ACTIONS(241), 1,
2192
2890
  aux_sym_url_token1,
2193
- STATE(55), 1,
2891
+ STATE(160), 1,
2194
2892
  sym_identifier,
2893
+ [1517] = 2,
2894
+ ACTIONS(396), 1,
2895
+ sym_enum_field_name,
2896
+ STATE(112), 1,
2897
+ sym_enum_field,
2195
- [932] = 1,
2898
+ [1524] = 1,
2196
- ACTIONS(258), 2,
2899
+ ACTIONS(398), 2,
2197
2900
  anon_sym_COMMA,
2198
2901
  anon_sym_RPAREN,
2902
+ [1529] = 2,
2903
+ ACTIONS(318), 1,
2904
+ sym_variable_name,
2905
+ STATE(146), 1,
2906
+ sym_param,
2199
- [937] = 1,
2907
+ [1536] = 1,
2200
- ACTIONS(260), 2,
2908
+ ACTIONS(400), 2,
2201
2909
  anon_sym_COMMA,
2202
2910
  anon_sym_RPAREN,
2203
- [942] = 1,
2911
+ [1541] = 1,
2204
- ACTIONS(262), 2,
2912
+ ACTIONS(402), 2,
2205
2913
  anon_sym_COMMA,
2206
2914
  anon_sym_RPAREN,
2207
- [947] = 2,
2915
+ [1546] = 2,
2208
- ACTIONS(264), 1,
2916
+ ACTIONS(241), 1,
2209
2917
  aux_sym_url_token1,
2210
- STATE(23), 1,
2918
+ STATE(194), 1,
2211
2919
  sym_identifier,
2212
- [954] = 2,
2920
+ [1553] = 2,
2921
+ ACTIONS(182), 1,
2922
+ anon_sym_val,
2923
+ STATE(72), 1,
2924
+ sym_type_field,
2925
+ [1560] = 2,
2926
+ ACTIONS(182), 1,
2927
+ anon_sym_val,
2928
+ STATE(107), 1,
2929
+ sym_type_field,
2930
+ [1567] = 2,
2213
- ACTIONS(254), 1,
2931
+ ACTIONS(404), 1,
2932
+ anon_sym_LPAREN,
2933
+ ACTIONS(406), 1,
2934
+ anon_sym_DOT,
2935
+ [1574] = 2,
2936
+ ACTIONS(182), 1,
2937
+ anon_sym_val,
2938
+ STATE(83), 1,
2939
+ sym_type_field,
2940
+ [1581] = 2,
2941
+ ACTIONS(202), 1,
2942
+ sym_definition_name,
2943
+ STATE(144), 1,
2944
+ sym_type,
2945
+ [1588] = 1,
2946
+ ACTIONS(408), 2,
2947
+ anon_sym_COMMA,
2948
+ anon_sym_RPAREN,
2949
+ [1593] = 1,
2950
+ ACTIONS(410), 2,
2951
+ anon_sym_COMMA,
2952
+ anon_sym_RBRACE,
2953
+ [1598] = 1,
2954
+ ACTIONS(354), 2,
2955
+ anon_sym_COMMA,
2956
+ anon_sym_RPAREN,
2957
+ [1603] = 1,
2958
+ ACTIONS(412), 2,
2959
+ anon_sym_class,
2960
+ anon_sym_AT,
2961
+ [1608] = 1,
2962
+ ACTIONS(414), 2,
2963
+ anon_sym_COMMA,
2964
+ anon_sym_RPAREN,
2965
+ [1613] = 1,
2966
+ ACTIONS(416), 2,
2967
+ anon_sym_COMMA,
2968
+ anon_sym_RPAREN,
2969
+ [1618] = 2,
2970
+ ACTIONS(182), 1,
2971
+ anon_sym_val,
2972
+ STATE(159), 1,
2973
+ sym_type_field,
2974
+ [1625] = 2,
2975
+ ACTIONS(241), 1,
2976
+ aux_sym_url_token1,
2977
+ STATE(199), 1,
2978
+ sym_identifier,
2979
+ [1632] = 2,
2980
+ ACTIONS(418), 1,
2214
2981
  aux_sym_url_token1,
2215
- STATE(48), 1,
2982
+ STATE(56), 1,
2216
2983
  sym_identifier,
2217
- [961] = 1,
2984
+ [1639] = 1,
2218
- ACTIONS(266), 2,
2985
+ ACTIONS(323), 2,
2219
2986
  anon_sym_COMMA,
2220
- anon_sym_RPAREN,
2987
+ anon_sym_RBRACE,
2221
- [966] = 1,
2988
+ [1644] = 1,
2222
- ACTIONS(268), 2,
2989
+ ACTIONS(420), 2,
2223
2990
  anon_sym_COMMA,
2224
2991
  anon_sym_RPAREN,
2225
- [971] = 1,
2992
+ [1649] = 2,
2226
- ACTIONS(270), 2,
2993
+ ACTIONS(396), 1,
2227
- sym__dedent,
2228
2994
  sym_enum_field_name,
2995
+ STATE(114), 1,
2996
+ sym_enum_field,
2229
- [976] = 1,
2997
+ [1656] = 2,
2230
- ACTIONS(272), 1,
2998
+ ACTIONS(182), 1,
2999
+ anon_sym_val,
3000
+ STATE(115), 1,
2231
- sym__indent,
3001
+ sym_type_field,
3002
+ [1663] = 1,
3003
+ ACTIONS(328), 2,
3004
+ anon_sym_COMMA,
3005
+ anon_sym_RPAREN,
3006
+ [1668] = 2,
3007
+ ACTIONS(182), 1,
3008
+ anon_sym_val,
3009
+ STATE(100), 1,
3010
+ sym_type_field,
3011
+ [1675] = 1,
3012
+ ACTIONS(301), 2,
3013
+ anon_sym_COMMA,
3014
+ anon_sym_RPAREN,
2232
- [980] = 1,
3015
+ [1680] = 1,
3016
+ ACTIONS(312), 2,
3017
+ anon_sym_COMMA,
3018
+ anon_sym_GT,
3019
+ [1685] = 1,
3020
+ ACTIONS(422), 1,
3021
+ anon_sym_RBRACE,
3022
+ [1689] = 1,
2233
- ACTIONS(274), 1,
3023
+ ACTIONS(424), 1,
2234
- anon_sym_COLON,
3024
+ anon_sym_EQ_GT,
2235
- [984] = 1,
3025
+ [1693] = 1,
2236
- ACTIONS(276), 1,
3026
+ ACTIONS(426), 1,
2237
- sym__indent,
2238
- [988] = 1,
2239
- ACTIONS(101), 1,
2240
- anon_sym_SQUOTE,
3027
+ anon_sym_LPAREN,
2241
- [992] = 1,
3028
+ [1697] = 1,
2242
- ACTIONS(278), 1,
3029
+ ACTIONS(428), 1,
2243
- anon_sym_COLON,
3030
+ anon_sym_RBRACE,
2244
- [996] = 1,
3031
+ [1701] = 1,
2245
- ACTIONS(111), 1,
3032
+ ACTIONS(430), 1,
3033
+ anon_sym_RBRACE,
3034
+ [1705] = 1,
3035
+ ACTIONS(432), 1,
3036
+ anon_sym_LPAREN,
3037
+ [1709] = 1,
3038
+ ACTIONS(434), 1,
2246
3039
  anon_sym_SQUOTE,
2247
- [1000] = 1,
3040
+ [1713] = 1,
2248
- ACTIONS(280), 1,
3041
+ ACTIONS(436), 1,
2249
- anon_sym_COLON,
2250
- [1004] = 1,
2251
- ACTIONS(282), 1,
2252
3042
  aux_sym__uni_character_literal_token1,
2253
- [1008] = 1,
3043
+ [1717] = 1,
2254
- ACTIONS(284), 1,
3044
+ ACTIONS(186), 1,
2255
3045
  anon_sym_SQUOTE,
2256
- [1012] = 1,
3046
+ [1721] = 1,
2257
- ACTIONS(286), 1,
3047
+ ACTIONS(438), 1,
2258
3048
  anon_sym_LPAREN,
2259
- [1016] = 1,
2260
- ACTIONS(288), 1,
2261
- sym__indent,
2262
- [1020] = 1,
3049
+ [1725] = 1,
2263
- ACTIONS(290), 1,
3050
+ ACTIONS(440), 1,
2264
- anon_sym_COLON,
3051
+ anon_sym_LBRACE,
2265
- [1024] = 1,
3052
+ [1729] = 1,
2266
- ACTIONS(292), 1,
3053
+ ACTIONS(442), 1,
2267
- anon_sym_COLON,
2268
- [1028] = 1,
2269
- ACTIONS(294), 1,
2270
- sym__indent,
2271
- [1032] = 1,
2272
- ACTIONS(296), 1,
2273
- anon_sym_COLON,
2274
- [1036] = 1,
2275
- ACTIONS(298), 1,
2276
- sym__indent,
2277
- [1040] = 1,
2278
- ACTIONS(300), 1,
2279
3054
  aux_sym_url_token1,
2280
- [1044] = 1,
3055
+ [1733] = 1,
2281
- ACTIONS(302), 1,
2282
- ts_builtin_sym_end,
2283
- [1048] = 1,
2284
- ACTIONS(304), 1,
3056
+ ACTIONS(444), 1,
3057
+ anon_sym_RBRACE,
3058
+ [1737] = 1,
3059
+ ACTIONS(446), 1,
2285
3060
  sym_definition_name,
3061
+ [1741] = 1,
3062
+ ACTIONS(448), 1,
3063
+ sym_variable_name,
3064
+ [1745] = 1,
3065
+ ACTIONS(450), 1,
3066
+ anon_sym_EQ_GT,
3067
+ [1749] = 1,
3068
+ ACTIONS(452), 1,
3069
+ anon_sym_EQ_GT,
2286
- [1052] = 1,
3070
+ [1753] = 1,
3071
+ ACTIONS(454), 1,
3072
+ anon_sym_COLON,
3073
+ [1757] = 1,
2287
- ACTIONS(306), 1,
3074
+ ACTIONS(404), 1,
3075
+ anon_sym_LPAREN,
3076
+ [1761] = 1,
3077
+ ACTIONS(456), 1,
3078
+ anon_sym_LPAREN,
3079
+ [1765] = 1,
3080
+ ACTIONS(458), 1,
3081
+ anon_sym_RBRACE,
3082
+ [1769] = 1,
3083
+ ACTIONS(460), 1,
3084
+ anon_sym_RBRACE,
3085
+ [1773] = 1,
3086
+ ACTIONS(462), 1,
3087
+ anon_sym_EQ_GT,
3088
+ [1777] = 1,
3089
+ ACTIONS(464), 1,
3090
+ anon_sym_RBRACE,
3091
+ [1781] = 1,
3092
+ ACTIONS(178), 1,
3093
+ anon_sym_SQUOTE,
3094
+ [1785] = 1,
3095
+ ACTIONS(466), 1,
3096
+ anon_sym_RBRACE,
3097
+ [1789] = 1,
3098
+ ACTIONS(468), 1,
3099
+ anon_sym_LPAREN,
3100
+ [1793] = 1,
3101
+ ACTIONS(470), 1,
3102
+ anon_sym_LPAREN,
3103
+ [1797] = 1,
3104
+ ACTIONS(472), 1,
3105
+ anon_sym_EQ_GT,
3106
+ [1801] = 1,
3107
+ ACTIONS(474), 1,
2288
3108
  sym_definition_name,
2289
- [1056] = 1,
3109
+ [1805] = 1,
3110
+ ACTIONS(476), 1,
3111
+ anon_sym_EQ_GT,
3112
+ [1809] = 1,
2290
- ACTIONS(308), 1,
3113
+ ACTIONS(478), 1,
2291
3114
  anon_sym_COLON,
2292
- [1060] = 1,
3115
+ [1813] = 1,
2293
- ACTIONS(310), 1,
3116
+ ACTIONS(480), 1,
3117
+ anon_sym_LBRACE,
3118
+ [1817] = 1,
3119
+ ACTIONS(482), 1,
3120
+ anon_sym_LPAREN,
3121
+ [1821] = 1,
3122
+ ACTIONS(484), 1,
3123
+ anon_sym_LPAREN,
3124
+ [1825] = 1,
3125
+ ACTIONS(486), 1,
3126
+ sym_definition_name,
3127
+ [1829] = 1,
3128
+ ACTIONS(488), 1,
3129
+ sym_definition_name,
3130
+ [1833] = 1,
3131
+ ACTIONS(490), 1,
3132
+ sym_definition_name,
3133
+ [1837] = 1,
3134
+ ACTIONS(492), 1,
3135
+ anon_sym_LPAREN,
3136
+ [1841] = 1,
3137
+ ACTIONS(494), 1,
3138
+ ts_builtin_sym_end,
3139
+ [1845] = 1,
3140
+ ACTIONS(496), 1,
2294
3141
  aux_sym__uni_character_literal_token1,
2295
- [1064] = 1,
3142
+ [1849] = 1,
2296
- ACTIONS(312), 1,
3143
+ ACTIONS(498), 1,
2297
- anon_sym_COLON,
3144
+ anon_sym_RBRACE,
2298
3145
  };
2299
3146
 
2300
3147
  static const uint32_t ts_small_parse_table_map[] = {
2301
3148
  [SMALL_STATE(2)] = 0,
2302
- [SMALL_STATE(3)] = 32,
2303
- [SMALL_STATE(4)] = 64,
2304
- [SMALL_STATE(5)] = 89,
2305
- [SMALL_STATE(6)] = 114,
2306
- [SMALL_STATE(7)] = 139,
2307
- [SMALL_STATE(8)] = 164,
2308
- [SMALL_STATE(9)] = 189,
2309
- [SMALL_STATE(10)] = 207,
2310
- [SMALL_STATE(11)] = 225,
2311
- [SMALL_STATE(12)] = 241,
2312
- [SMALL_STATE(13)] = 257,
2313
- [SMALL_STATE(14)] = 273,
2314
- [SMALL_STATE(15)] = 286,
2315
- [SMALL_STATE(16)] = 299,
2316
- [SMALL_STATE(17)] = 312,
2317
- [SMALL_STATE(18)] = 325,
2318
- [SMALL_STATE(19)] = 334,
2319
- [SMALL_STATE(20)] = 344,
2320
- [SMALL_STATE(21)] = 354,
2321
- [SMALL_STATE(22)] = 370,
2322
- [SMALL_STATE(23)] = 380,
2323
- [SMALL_STATE(24)] = 390,
2324
- [SMALL_STATE(25)] = 402,
2325
- [SMALL_STATE(26)] = 410,
2326
- [SMALL_STATE(27)] = 426,
2327
- [SMALL_STATE(28)] = 437,
2328
- [SMALL_STATE(29)] = 448,
2329
- [SMALL_STATE(30)] = 459,
2330
- [SMALL_STATE(31)] = 470,
2331
- [SMALL_STATE(32)] = 481,
2332
- [SMALL_STATE(33)] = 492,
2333
- [SMALL_STATE(34)] = 503,
2334
- [SMALL_STATE(35)] = 510,
2335
- [SMALL_STATE(36)] = 521,
2336
- [SMALL_STATE(37)] = 532,
2337
- [SMALL_STATE(38)] = 543,
2338
- [SMALL_STATE(39)] = 554,
2339
- [SMALL_STATE(40)] = 565,
2340
- [SMALL_STATE(41)] = 572,
2341
- [SMALL_STATE(42)] = 579,
2342
- [SMALL_STATE(43)] = 590,
2343
- [SMALL_STATE(44)] = 601,
2344
- [SMALL_STATE(45)] = 612,
2345
- [SMALL_STATE(46)] = 619,
2346
- [SMALL_STATE(47)] = 630,
2347
- [SMALL_STATE(48)] = 636,
2348
- [SMALL_STATE(49)] = 646,
2349
- [SMALL_STATE(50)] = 656,
2350
- [SMALL_STATE(51)] = 662,
2351
- [SMALL_STATE(52)] = 668,
2352
- [SMALL_STATE(53)] = 678,
2353
- [SMALL_STATE(54)] = 688,
2354
- [SMALL_STATE(55)] = 698,
2355
- [SMALL_STATE(56)] = 708,
2356
- [SMALL_STATE(57)] = 714,
2357
- [SMALL_STATE(58)] = 724,
2358
- [SMALL_STATE(59)] = 734,
2359
- [SMALL_STATE(60)] = 742,
2360
- [SMALL_STATE(61)] = 752,
2361
- [SMALL_STATE(62)] = 758,
2362
- [SMALL_STATE(63)] = 768,
2363
- [SMALL_STATE(64)] = 774,
2364
- [SMALL_STATE(65)] = 784,
2365
- [SMALL_STATE(66)] = 794,
2366
- [SMALL_STATE(67)] = 804,
2367
- [SMALL_STATE(68)] = 810,
2368
- [SMALL_STATE(69)] = 816,
2369
- [SMALL_STATE(70)] = 821,
2370
- [SMALL_STATE(71)] = 826,
2371
- [SMALL_STATE(72)] = 831,
2372
- [SMALL_STATE(73)] = 838,
2373
- [SMALL_STATE(74)] = 843,
2374
- [SMALL_STATE(75)] = 850,
2375
- [SMALL_STATE(76)] = 855,
2376
- [SMALL_STATE(77)] = 862,
2377
- [SMALL_STATE(78)] = 869,
2378
- [SMALL_STATE(79)] = 874,
2379
- [SMALL_STATE(80)] = 879,
2380
- [SMALL_STATE(81)] = 886,
2381
- [SMALL_STATE(82)] = 891,
2382
- [SMALL_STATE(83)] = 896,
2383
- [SMALL_STATE(84)] = 901,
2384
- [SMALL_STATE(85)] = 906,
2385
- [SMALL_STATE(86)] = 913,
2386
- [SMALL_STATE(87)] = 920,
2387
- [SMALL_STATE(88)] = 925,
2388
- [SMALL_STATE(89)] = 932,
2389
- [SMALL_STATE(90)] = 937,
2390
- [SMALL_STATE(91)] = 942,
2391
- [SMALL_STATE(92)] = 947,
2392
- [SMALL_STATE(93)] = 954,
2393
- [SMALL_STATE(94)] = 961,
2394
- [SMALL_STATE(95)] = 966,
2395
- [SMALL_STATE(96)] = 971,
2396
- [SMALL_STATE(97)] = 976,
2397
- [SMALL_STATE(98)] = 980,
2398
- [SMALL_STATE(99)] = 984,
2399
- [SMALL_STATE(100)] = 988,
2400
- [SMALL_STATE(101)] = 992,
2401
- [SMALL_STATE(102)] = 996,
2402
- [SMALL_STATE(103)] = 1000,
2403
- [SMALL_STATE(104)] = 1004,
2404
- [SMALL_STATE(105)] = 1008,
2405
- [SMALL_STATE(106)] = 1012,
2406
- [SMALL_STATE(107)] = 1016,
2407
- [SMALL_STATE(108)] = 1020,
2408
- [SMALL_STATE(109)] = 1024,
2409
- [SMALL_STATE(110)] = 1028,
2410
- [SMALL_STATE(111)] = 1032,
2411
- [SMALL_STATE(112)] = 1036,
2412
- [SMALL_STATE(113)] = 1040,
2413
- [SMALL_STATE(114)] = 1044,
2414
- [SMALL_STATE(115)] = 1048,
2415
- [SMALL_STATE(116)] = 1052,
2416
- [SMALL_STATE(117)] = 1056,
2417
- [SMALL_STATE(118)] = 1060,
2418
- [SMALL_STATE(119)] = 1064,
3149
+ [SMALL_STATE(3)] = 40,
3150
+ [SMALL_STATE(4)] = 72,
3151
+ [SMALL_STATE(5)] = 104,
3152
+ [SMALL_STATE(6)] = 144,
3153
+ [SMALL_STATE(7)] = 177,
3154
+ [SMALL_STATE(8)] = 210,
3155
+ [SMALL_STATE(9)] = 243,
3156
+ [SMALL_STATE(10)] = 257,
3157
+ [SMALL_STATE(11)] = 282,
3158
+ [SMALL_STATE(12)] = 307,
3159
+ [SMALL_STATE(13)] = 332,
3160
+ [SMALL_STATE(14)] = 348,
3161
+ [SMALL_STATE(15)] = 364,
3162
+ [SMALL_STATE(16)] = 380,
3163
+ [SMALL_STATE(17)] = 396,
3164
+ [SMALL_STATE(18)] = 407,
3165
+ [SMALL_STATE(19)] = 423,
3166
+ [SMALL_STATE(20)] = 439,
3167
+ [SMALL_STATE(21)] = 449,
3168
+ [SMALL_STATE(22)] = 459,
3169
+ [SMALL_STATE(23)] = 475,
3170
+ [SMALL_STATE(24)] = 484,
3171
+ [SMALL_STATE(25)] = 493,
3172
+ [SMALL_STATE(26)] = 502,
3173
+ [SMALL_STATE(27)] = 511,
3174
+ [SMALL_STATE(28)] = 520,
3175
+ [SMALL_STATE(29)] = 529,
3176
+ [SMALL_STATE(30)] = 538,
3177
+ [SMALL_STATE(31)] = 547,
3178
+ [SMALL_STATE(32)] = 556,
3179
+ [SMALL_STATE(33)] = 565,
3180
+ [SMALL_STATE(34)] = 574,
3181
+ [SMALL_STATE(35)] = 583,
3182
+ [SMALL_STATE(36)] = 592,
3183
+ [SMALL_STATE(37)] = 601,
3184
+ [SMALL_STATE(38)] = 610,
3185
+ [SMALL_STATE(39)] = 619,
3186
+ [SMALL_STATE(40)] = 628,
3187
+ [SMALL_STATE(41)] = 637,
3188
+ [SMALL_STATE(42)] = 646,
3189
+ [SMALL_STATE(43)] = 655,
3190
+ [SMALL_STATE(44)] = 664,
3191
+ [SMALL_STATE(45)] = 673,
3192
+ [SMALL_STATE(46)] = 682,
3193
+ [SMALL_STATE(47)] = 691,
3194
+ [SMALL_STATE(48)] = 700,
3195
+ [SMALL_STATE(49)] = 709,
3196
+ [SMALL_STATE(50)] = 719,
3197
+ [SMALL_STATE(51)] = 733,
3198
+ [SMALL_STATE(52)] = 743,
3199
+ [SMALL_STATE(53)] = 753,
3200
+ [SMALL_STATE(54)] = 769,
3201
+ [SMALL_STATE(55)] = 783,
3202
+ [SMALL_STATE(56)] = 797,
3203
+ [SMALL_STATE(57)] = 807,
3204
+ [SMALL_STATE(58)] = 814,
3205
+ [SMALL_STATE(59)] = 825,
3206
+ [SMALL_STATE(60)] = 836,
3207
+ [SMALL_STATE(61)] = 847,
3208
+ [SMALL_STATE(62)] = 858,
3209
+ [SMALL_STATE(63)] = 869,
3210
+ [SMALL_STATE(64)] = 880,
3211
+ [SMALL_STATE(65)] = 889,
3212
+ [SMALL_STATE(66)] = 896,
3213
+ [SMALL_STATE(67)] = 906,
3214
+ [SMALL_STATE(68)] = 916,
3215
+ [SMALL_STATE(69)] = 926,
3216
+ [SMALL_STATE(70)] = 936,
3217
+ [SMALL_STATE(71)] = 946,
3218
+ [SMALL_STATE(72)] = 956,
3219
+ [SMALL_STATE(73)] = 966,
3220
+ [SMALL_STATE(74)] = 976,
3221
+ [SMALL_STATE(75)] = 986,
3222
+ [SMALL_STATE(76)] = 996,
3223
+ [SMALL_STATE(77)] = 1006,
3224
+ [SMALL_STATE(78)] = 1016,
3225
+ [SMALL_STATE(79)] = 1026,
3226
+ [SMALL_STATE(80)] = 1036,
3227
+ [SMALL_STATE(81)] = 1046,
3228
+ [SMALL_STATE(82)] = 1056,
3229
+ [SMALL_STATE(83)] = 1066,
3230
+ [SMALL_STATE(84)] = 1076,
3231
+ [SMALL_STATE(85)] = 1086,
3232
+ [SMALL_STATE(86)] = 1096,
3233
+ [SMALL_STATE(87)] = 1106,
3234
+ [SMALL_STATE(88)] = 1116,
3235
+ [SMALL_STATE(89)] = 1126,
3236
+ [SMALL_STATE(90)] = 1136,
3237
+ [SMALL_STATE(91)] = 1146,
3238
+ [SMALL_STATE(92)] = 1156,
3239
+ [SMALL_STATE(93)] = 1166,
3240
+ [SMALL_STATE(94)] = 1176,
3241
+ [SMALL_STATE(95)] = 1186,
3242
+ [SMALL_STATE(96)] = 1196,
3243
+ [SMALL_STATE(97)] = 1206,
3244
+ [SMALL_STATE(98)] = 1216,
3245
+ [SMALL_STATE(99)] = 1226,
3246
+ [SMALL_STATE(100)] = 1236,
3247
+ [SMALL_STATE(101)] = 1246,
3248
+ [SMALL_STATE(102)] = 1256,
3249
+ [SMALL_STATE(103)] = 1266,
3250
+ [SMALL_STATE(104)] = 1276,
3251
+ [SMALL_STATE(105)] = 1286,
3252
+ [SMALL_STATE(106)] = 1296,
3253
+ [SMALL_STATE(107)] = 1306,
3254
+ [SMALL_STATE(108)] = 1316,
3255
+ [SMALL_STATE(109)] = 1326,
3256
+ [SMALL_STATE(110)] = 1336,
3257
+ [SMALL_STATE(111)] = 1342,
3258
+ [SMALL_STATE(112)] = 1352,
3259
+ [SMALL_STATE(113)] = 1362,
3260
+ [SMALL_STATE(114)] = 1372,
3261
+ [SMALL_STATE(115)] = 1382,
3262
+ [SMALL_STATE(116)] = 1392,
3263
+ [SMALL_STATE(117)] = 1402,
3264
+ [SMALL_STATE(118)] = 1408,
3265
+ [SMALL_STATE(119)] = 1418,
3266
+ [SMALL_STATE(120)] = 1428,
3267
+ [SMALL_STATE(121)] = 1438,
3268
+ [SMALL_STATE(122)] = 1448,
3269
+ [SMALL_STATE(123)] = 1453,
3270
+ [SMALL_STATE(124)] = 1460,
3271
+ [SMALL_STATE(125)] = 1467,
3272
+ [SMALL_STATE(126)] = 1474,
3273
+ [SMALL_STATE(127)] = 1481,
3274
+ [SMALL_STATE(128)] = 1486,
3275
+ [SMALL_STATE(129)] = 1491,
3276
+ [SMALL_STATE(130)] = 1496,
3277
+ [SMALL_STATE(131)] = 1503,
3278
+ [SMALL_STATE(132)] = 1510,
3279
+ [SMALL_STATE(133)] = 1517,
3280
+ [SMALL_STATE(134)] = 1524,
3281
+ [SMALL_STATE(135)] = 1529,
3282
+ [SMALL_STATE(136)] = 1536,
3283
+ [SMALL_STATE(137)] = 1541,
3284
+ [SMALL_STATE(138)] = 1546,
3285
+ [SMALL_STATE(139)] = 1553,
3286
+ [SMALL_STATE(140)] = 1560,
3287
+ [SMALL_STATE(141)] = 1567,
3288
+ [SMALL_STATE(142)] = 1574,
3289
+ [SMALL_STATE(143)] = 1581,
3290
+ [SMALL_STATE(144)] = 1588,
3291
+ [SMALL_STATE(145)] = 1593,
3292
+ [SMALL_STATE(146)] = 1598,
3293
+ [SMALL_STATE(147)] = 1603,
3294
+ [SMALL_STATE(148)] = 1608,
3295
+ [SMALL_STATE(149)] = 1613,
3296
+ [SMALL_STATE(150)] = 1618,
3297
+ [SMALL_STATE(151)] = 1625,
3298
+ [SMALL_STATE(152)] = 1632,
3299
+ [SMALL_STATE(153)] = 1639,
3300
+ [SMALL_STATE(154)] = 1644,
3301
+ [SMALL_STATE(155)] = 1649,
3302
+ [SMALL_STATE(156)] = 1656,
3303
+ [SMALL_STATE(157)] = 1663,
3304
+ [SMALL_STATE(158)] = 1668,
3305
+ [SMALL_STATE(159)] = 1675,
3306
+ [SMALL_STATE(160)] = 1680,
3307
+ [SMALL_STATE(161)] = 1685,
3308
+ [SMALL_STATE(162)] = 1689,
3309
+ [SMALL_STATE(163)] = 1693,
3310
+ [SMALL_STATE(164)] = 1697,
3311
+ [SMALL_STATE(165)] = 1701,
3312
+ [SMALL_STATE(166)] = 1705,
3313
+ [SMALL_STATE(167)] = 1709,
3314
+ [SMALL_STATE(168)] = 1713,
3315
+ [SMALL_STATE(169)] = 1717,
3316
+ [SMALL_STATE(170)] = 1721,
3317
+ [SMALL_STATE(171)] = 1725,
3318
+ [SMALL_STATE(172)] = 1729,
3319
+ [SMALL_STATE(173)] = 1733,
3320
+ [SMALL_STATE(174)] = 1737,
3321
+ [SMALL_STATE(175)] = 1741,
3322
+ [SMALL_STATE(176)] = 1745,
3323
+ [SMALL_STATE(177)] = 1749,
3324
+ [SMALL_STATE(178)] = 1753,
3325
+ [SMALL_STATE(179)] = 1757,
3326
+ [SMALL_STATE(180)] = 1761,
3327
+ [SMALL_STATE(181)] = 1765,
3328
+ [SMALL_STATE(182)] = 1769,
3329
+ [SMALL_STATE(183)] = 1773,
3330
+ [SMALL_STATE(184)] = 1777,
3331
+ [SMALL_STATE(185)] = 1781,
3332
+ [SMALL_STATE(186)] = 1785,
3333
+ [SMALL_STATE(187)] = 1789,
3334
+ [SMALL_STATE(188)] = 1793,
3335
+ [SMALL_STATE(189)] = 1797,
3336
+ [SMALL_STATE(190)] = 1801,
3337
+ [SMALL_STATE(191)] = 1805,
3338
+ [SMALL_STATE(192)] = 1809,
3339
+ [SMALL_STATE(193)] = 1813,
3340
+ [SMALL_STATE(194)] = 1817,
3341
+ [SMALL_STATE(195)] = 1821,
3342
+ [SMALL_STATE(196)] = 1825,
3343
+ [SMALL_STATE(197)] = 1829,
3344
+ [SMALL_STATE(198)] = 1833,
3345
+ [SMALL_STATE(199)] = 1837,
3346
+ [SMALL_STATE(200)] = 1841,
3347
+ [SMALL_STATE(201)] = 1845,
3348
+ [SMALL_STATE(202)] = 1849,
2419
3349
  };
2420
3350
 
2421
3351
  static const TSParseActionEntry ts_parse_actions[] = {
2422
3352
  [0] = {.entry = {.count = 0, .reusable = false}},
2423
3353
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
2424
- [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
2425
- [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
2426
- [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
2427
- [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
2428
- [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
2429
- [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
2430
- [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
2431
- [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70),
2432
- [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
2433
- [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118),
2434
- [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22),
2435
- [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90),
2436
- [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
2437
- [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92),
2438
- [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_line_string_literal_repeat1, 2), SHIFT_REPEAT(118),
2439
- [34] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_line_string_literal_repeat1, 2), SHIFT_REPEAT(22),
2440
- [37] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_line_string_literal_repeat1, 2),
2441
- [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_line_string_literal_repeat1, 2), SHIFT_REPEAT(5),
2442
- [42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_line_string_literal_repeat1, 2), SHIFT_REPEAT(92),
2443
- [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2),
2444
- [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
2445
- [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
2446
- [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
2447
- [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3),
2448
- [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91),
2449
- [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
2450
- [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4),
2451
- [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
2452
- [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94),
2453
- [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72),
2454
- [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
2455
- [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89),
2456
- [71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_multi_line_string_literal_repeat1, 2), SHIFT_REPEAT(13),
2457
- [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_multi_line_string_literal_repeat1, 2),
2458
- [76] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_multi_line_string_literal_repeat1, 2), SHIFT_REPEAT(72),
2459
- [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_url, 1),
2460
- [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113),
2461
- [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2),
2462
- [85] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(74),
2463
- [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_url_repeat1, 2),
2464
- [90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_url_repeat1, 2), SHIFT_REPEAT(113),
2465
- [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_url, 2),
2466
- [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1),
2467
- [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1),
2468
- [99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__uni_character_literal, 2),
2469
- [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__uni_character_literal, 2),
2470
- [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112),
2471
- [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
2472
- [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
2473
- [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_escape_seq, 1),
2474
- [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_escape_seq, 1),
2475
- [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__interpolation, 2, .production_id = 12),
2476
- [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interpolation, 2, .production_id = 12),
2477
- [117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2),
2478
- [119] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(116),
2479
- [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
2480
- [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104),
2481
- [126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102),
2482
- [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
2483
- [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
2484
- [132] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2), SHIFT_REPEAT(106),
2485
- [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2),
2486
- [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
2487
- [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
2488
- [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
2489
- [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 5),
2490
- [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
2491
- [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
2492
- [149] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat1, 2), SHIFT_REPEAT(108),
2493
- [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat1, 2),
2494
- [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
2495
- [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat3, 2),
2496
- [158] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat3, 2), SHIFT_REPEAT(115),
2497
- [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
2498
- [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_package, 1),
2499
- [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2),
2500
- [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
2501
- [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
2502
- [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
2503
- [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 2),
2504
- [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
2505
- [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111),
2506
- [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
2507
- [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 8, .production_id = 11),
2508
- [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 1),
2509
- [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
2510
- [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
2511
- [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
2512
- [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
2513
- [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
2514
- [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
2515
- [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 9),
2516
- [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
2517
- [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_field_repeat1, 2), SHIFT_REPEAT(3),
2518
- [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_field_repeat1, 2),
2519
- [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
2520
- [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1),
2521
- [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_list_repeat1, 2), SHIFT_REPEAT(85),
2522
- [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_list_repeat1, 2),
2523
- [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 3),
2524
- [217] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_list_repeat1, 2), SHIFT_REPEAT(80),
2525
- [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 4),
2526
- [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
2527
- [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
2528
- [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
2529
- [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 8),
2530
- [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 7),
2531
- [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_list, 4),
2532
- [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
2533
- [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 3, .production_id = 6),
2534
- [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
2535
- [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 6, .production_id = 5),
2536
- [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
2537
- [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
2538
- [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 7, .production_id = 10),
2539
- [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2),
2540
- [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_list, 3),
2541
- [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_literal, 1),
2542
- [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
2543
- [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_field, 5),
2544
- [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_multi_line_string_literal, 3),
2545
- [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_string_literal, 3),
2546
- [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_string_literal, 2),
2547
- [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
2548
- [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_multi_line_string_literal, 2),
2549
- [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_literal, 3),
2550
- [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_field, 4),
2551
- [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
2552
- [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
2553
- [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
2554
- [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110),
2555
- [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
2556
- [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
2557
- [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
2558
- [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
2559
- [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
2560
- [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
2561
- [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_list, 3),
2562
- [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
2563
- [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_list, 3),
2564
- [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
2565
- [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
2566
- [302] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
2567
- [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
2568
- [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
2569
- [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_list, 4),
2570
- [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
2571
- [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_list, 4),
3354
+ [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
3355
+ [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3),
3356
+ [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126),
3357
+ [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198),
3358
+ [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197),
3359
+ [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196),
3360
+ [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
3361
+ [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190),
3362
+ [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
3363
+ [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97),
3364
+ [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
3365
+ [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
3366
+ [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
3367
+ [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
3368
+ [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128),
3369
+ [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
3370
+ [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2),
3371
+ [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2),
3372
+ [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(198),
3373
+ [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(197),
3374
+ [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(196),
3375
+ [48] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(70),
3376
+ [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(190),
3377
+ [54] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4),
3378
+ [56] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1),
3379
+ [58] = {.entry = {.count = 1, .reusable = false}}, SHIFT(201),
3380
+ [60] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51),
3381
+ [62] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154),
3382
+ [64] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
3383
+ [66] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152),
3384
+ [68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_line_string_literal_repeat1, 2), SHIFT_REPEAT(201),
3385
+ [71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_line_string_literal_repeat1, 2), SHIFT_REPEAT(51),
3386
+ [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_line_string_literal_repeat1, 2),
3387
+ [76] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_line_string_literal_repeat1, 2), SHIFT_REPEAT(11),
3388
+ [79] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_line_string_literal_repeat1, 2), SHIFT_REPEAT(152),
3389
+ [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134),
3390
+ [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
3391
+ [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_url_repeat1, 2),
3392
+ [88] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_url_repeat1, 2), SHIFT_REPEAT(172),
3393
+ [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_url, 2),
3394
+ [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
3395
+ [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_url, 1),
3396
+ [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2),
3397
+ [99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(126),
3398
+ [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22),
3399
+ [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149),
3400
+ [106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125),
3401
+ [108] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_multi_line_string_literal_repeat1, 2), SHIFT_REPEAT(19),
3402
+ [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_multi_line_string_literal_repeat1, 2),
3403
+ [113] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_multi_line_string_literal_repeat1, 2), SHIFT_REPEAT(125),
3404
+ [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_package, 1),
3405
+ [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2),
3406
+ [120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19),
3407
+ [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129),
3408
+ [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_definition, 9, .production_id = 19),
3409
+ [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 8, .production_id = 14),
3410
+ [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_definition, 10, .production_id = 21),
3411
+ [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 10, .production_id = 20),
3412
+ [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 2),
3413
+ [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_definition, 6, .production_id = 3),
3414
+ [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_definition, 6, .production_id = 2),
3415
+ [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_definition, 5, .production_id = 1),
3416
+ [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 1),
3417
+ [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 3),
3418
+ [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_definition, 9, .production_id = 18),
3419
+ [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_definition, 9, .production_id = 17),
3420
+ [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 5),
3421
+ [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 9, .production_id = 16),
3422
+ [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 9, .production_id = 15),
3423
+ [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definitions, 1),
3424
+ [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_definition, 11, .production_id = 24),
3425
+ [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 7),
3426
+ [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_definition, 7, .production_id = 7),
3427
+ [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_definition, 7, .production_id = 8),
3428
+ [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 9),
3429
+ [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_definition, 10, .production_id = 22),
3430
+ [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_definition, 8, .production_id = 13),
3431
+ [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 10),
3432
+ [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_definition, 8, .production_id = 12),
3433
+ [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 8, .production_id = 11),
3434
+ [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__uni_character_literal, 2),
3435
+ [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__uni_character_literal, 2),
3436
+ [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138),
3437
+ [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
3438
+ [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_escape_seq, 1),
3439
+ [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_escape_seq, 1),
3440
+ [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1),
3441
+ [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167),
3442
+ [192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168),
3443
+ [194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169),
3444
+ [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__interpolation, 2, .production_id = 23),
3445
+ [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interpolation, 2, .production_id = 23),
3446
+ [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_field, 5, .production_id = 8),
3447
+ [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
3448
+ [204] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_fun_definition_repeat2, 2), SHIFT_REPEAT(124),
3449
+ [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_fun_definition_repeat2, 2),
3450
+ [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_field, 6, .production_id = 13),
3451
+ [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174),
3452
+ [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_field, 7, .production_id = 19),
3453
+ [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat1, 2),
3454
+ [217] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat1, 2), SHIFT_REPEAT(190),
3455
+ [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1),
3456
+ [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
3457
+ [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
3458
+ [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
3459
+ [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
3460
+ [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
3461
+ [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
3462
+ [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
3463
+ [236] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_fun_field, 9, .production_id = 24), SHIFT(124),
3464
+ [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_field, 9, .production_id = 24),
3465
+ [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
3466
+ [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132),
3467
+ [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
3468
+ [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
3469
+ [249] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_field_repeat1, 2), SHIFT_REPEAT(4),
3470
+ [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_field_repeat1, 2),
3471
+ [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
3472
+ [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
3473
+ [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158),
3474
+ [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123),
3475
+ [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
3476
+ [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173),
3477
+ [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
3478
+ [268] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_fun_field, 8, .production_id = 22), SHIFT(124),
3479
+ [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_field, 8, .production_id = 22),
3480
+ [273] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_fun_field, 8, .production_id = 21), SHIFT(124),
3481
+ [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_field, 8, .production_id = 21),
3482
+ [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
3483
+ [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
3484
+ [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
3485
+ [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
3486
+ [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
3487
+ [288] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_fun_field, 7, .production_id = 18), SHIFT(124),
3488
+ [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_field, 7, .production_id = 18),
3489
+ [293] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_fun_field, 7, .production_id = 17), SHIFT(124),
3490
+ [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_field, 7, .production_id = 17),
3491
+ [298] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat2, 2), SHIFT_REPEAT(150),
3492
+ [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat2, 2),
3493
+ [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181),
3494
+ [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
3495
+ [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
3496
+ [309] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_trait_list_repeat1, 2), SHIFT_REPEAT(132),
3497
+ [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_trait_list_repeat1, 2),
3498
+ [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
3499
+ [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
3500
+ [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192),
3501
+ [320] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2), SHIFT_REPEAT(131),
3502
+ [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2),
3503
+ [325] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_trait_definition_repeat1, 2), SHIFT_REPEAT(55),
3504
+ [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_trait_definition_repeat1, 2),
3505
+ [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
3506
+ [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189),
3507
+ [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145),
3508
+ [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
3509
+ [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
3510
+ [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
3511
+ [342] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_fun_field, 6, .production_id = 12), SHIFT(124),
3512
+ [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fun_field, 6, .production_id = 12),
3513
+ [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202),
3514
+ [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
3515
+ [351] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_fun_definition_repeat1, 2), SHIFT_REPEAT(135),
3516
+ [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_fun_definition_repeat1, 2),
3517
+ [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
3518
+ [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
3519
+ [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182),
3520
+ [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
3521
+ [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191),
3522
+ [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
3523
+ [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
3524
+ [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
3525
+ [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193),
3526
+ [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
3527
+ [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2),
3528
+ [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176),
3529
+ [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183),
3530
+ [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
3531
+ [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
3532
+ [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_param, 3, .production_id = 4),
3533
+ [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
3534
+ [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
3535
+ [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_field, 5),
3536
+ [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_multi_line_string_literal, 3),
3537
+ [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
3538
+ [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_string_literal, 3),
3539
+ [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_field, 1),
3540
+ [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_literal, 3),
3541
+ [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
3542
+ [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151),
3543
+ [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_field, 4, .production_id = 6),
3544
+ [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_field, 4),
3545
+ [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_name, 2),
3546
+ [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_literal, 1),
3547
+ [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_multi_line_string_literal, 2),
3548
+ [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
3549
+ [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_string_literal, 2),
3550
+ [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
3551
+ [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
3552
+ [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_list, 4),
3553
+ [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
3554
+ [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
3555
+ [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
3556
+ [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
3557
+ [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185),
3558
+ [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
3559
+ [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
3560
+ [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
3561
+ [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
3562
+ [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
3563
+ [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178),
3564
+ [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
3565
+ [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
3566
+ [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
3567
+ [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
3568
+ [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
3569
+ [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
3570
+ [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
3571
+ [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
3572
+ [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
3573
+ [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140),
3574
+ [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
3575
+ [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
3576
+ [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
3577
+ [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
3578
+ [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
3579
+ [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155),
3580
+ [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
3581
+ [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_list, 3),
3582
+ [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180),
3583
+ [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
3584
+ [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
3585
+ [492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__extension, 3),
3586
+ [494] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
3587
+ [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
3588
+ [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
2572
3589
  };
2573
3590
 
2574
3591
  #ifdef __cplusplus
2575
3592
  extern "C" {
2576
3593
  #endif
2577
- void *tree_sitter_pine_external_scanner_create(void);
2578
- void tree_sitter_pine_external_scanner_destroy(void *);
2579
- bool tree_sitter_pine_external_scanner_scan(void *, TSLexer *, const bool *);
2580
- unsigned tree_sitter_pine_external_scanner_serialize(void *, char *);
2581
- void tree_sitter_pine_external_scanner_deserialize(void *, const char *, unsigned);
2582
-
2583
3594
  #ifdef _WIN32
2584
3595
  #define extern __declspec(dllexport)
2585
3596
  #endif
@@ -2610,15 +3621,6 @@ extern const TSLanguage *tree_sitter_pine(void) {
2610
3621
  .alias_sequences = &ts_alias_sequences[0][0],
2611
3622
  .lex_modes = ts_lex_modes,
2612
3623
  .lex_fn = ts_lex,
2613
- .external_scanner = {
2614
- &ts_external_scanner_states[0][0],
2615
- ts_external_scanner_symbol_map,
2616
- tree_sitter_pine_external_scanner_create,
2617
- tree_sitter_pine_external_scanner_destroy,
2618
- tree_sitter_pine_external_scanner_scan,
2619
- tree_sitter_pine_external_scanner_serialize,
2620
- tree_sitter_pine_external_scanner_deserialize,
2621
- },
2622
3624
  };
2623
3625
  return &language;
2624
3626
  }
src/scanner.cc DELETED
@@ -1,408 +0,0 @@
1
- #include <tree_sitter/parser.h>
2
- #include <vector>
3
- #include <cwctype>
4
- #include <cstring>
5
- #include <cassert>
6
- #include <stdio.h>
7
- namespace {
8
-
9
- using std::vector;
10
- using std::iswspace;
11
- using std::memcpy;
12
-
13
- enum TokenType {
14
- NEWLINE,
15
- INDENT,
16
- DEDENT,
17
- STRING_START,
18
- STRING_CONTENT,
19
- STRING_END,
20
- COMMENT,
21
- CLOSE_PAREN,
22
- CLOSE_BRACKET,
23
- CLOSE_BRACE,
24
- };
25
-
26
- struct Delimiter {
27
- enum {
28
- SingleQuote = 1 << 0,
29
- DoubleQuote = 1 << 1,
30
- BackQuote = 1 << 2,
31
- Raw = 1 << 3,
32
- Format = 1 << 4,
33
- Triple = 1 << 5,
34
- Bytes = 1 << 6,
35
- };
36
-
37
- Delimiter() : flags(0) {}
38
-
39
- bool is_format() const {
40
- return flags & Format;
41
- }
42
-
43
- bool is_raw() const {
44
- return flags & Raw;
45
- }
46
-
47
- bool is_triple() const {
48
- return flags & Triple;
49
- }
50
-
51
- bool is_bytes() const {
52
- return flags & Bytes;
53
- }
54
-
55
- int32_t end_character() const {
56
- if (flags & SingleQuote) return '\'';
57
- if (flags & DoubleQuote) return '"';
58
- if (flags & BackQuote) return '`';
59
- return 0;
60
- }
61
-
62
- void set_format() {
63
- flags |= Format;
64
- }
65
-
66
- void set_raw() {
67
- flags |= Raw;
68
- }
69
-
70
- void set_triple() {
71
- flags |= Triple;
72
- }
73
-
74
- void set_bytes() {
75
- flags |= Bytes;
76
- }
77
-
78
- void set_end_character(int32_t character) {
79
- switch (character) {
80
- case '\'':
81
- flags |= SingleQuote;
82
- break;
83
- case '"':
84
- flags |= DoubleQuote;
85
- break;
86
- case '`':
87
- flags |= BackQuote;
88
- break;
89
- default:
90
- assert(false);
91
- }
92
- }
93
-
94
- char flags;
95
- };
96
-
97
- struct Scanner {
98
- Scanner() {
99
- assert(sizeof(Delimiter) == sizeof(char));
100
- deserialize(NULL, 0);
101
- }
102
-
103
- unsigned serialize(char *buffer) {
104
- size_t i = 0;
105
-
106
- size_t delimiter_count = delimiter_stack.size();
107
- if (delimiter_count > UINT8_MAX) delimiter_count = UINT8_MAX;
108
- buffer[i++] = delimiter_count;
109
-
110
- if (delimiter_count > 0) {
111
- memcpy(&buffer[i], delimiter_stack.data(), delimiter_count);
112
- }
113
- i += delimiter_count;
114
-
115
- vector<uint16_t>::iterator
116
- iter = indent_length_stack.begin() + 1,
117
- end = indent_length_stack.end();
118
-
119
- for (; iter != end && i < TREE_SITTER_SERIALIZATION_BUFFER_SIZE; ++iter) {
120
- buffer[i++] = *iter;
121
- }
122
-
123
- return i;
124
- }
125
-
126
- void deserialize(const char *buffer, unsigned length) {
127
- delimiter_stack.clear();
128
- indent_length_stack.clear();
129
- indent_length_stack.push_back(0);
130
-
131
- if (length > 0) {
132
- size_t i = 0;
133
-
134
- size_t delimiter_count = (uint8_t)buffer[i++];
135
- delimiter_stack.resize(delimiter_count);
136
- if (delimiter_count > 0) {
137
- memcpy(delimiter_stack.data(), &buffer[i], delimiter_count);
138
- }
139
- i += delimiter_count;
140
-
141
- for (; i < length; i++) {
142
- indent_length_stack.push_back(buffer[i]);
143
- }
144
- }
145
- }
146
-
147
- void advance(TSLexer *lexer) {
148
- lexer->advance(lexer, false);
149
- }
150
-
151
- void skip(TSLexer *lexer) {
152
- lexer->advance(lexer, true);
153
- }
154
-
155
- bool scan(TSLexer *lexer, const bool *valid_symbols) {
156
- bool error_recovery_mode = valid_symbols[STRING_CONTENT] && valid_symbols[INDENT];
157
- bool within_brackets = valid_symbols[CLOSE_BRACE] || valid_symbols[CLOSE_PAREN] || valid_symbols[CLOSE_BRACKET];
158
-
159
- if (valid_symbols[STRING_CONTENT] && !delimiter_stack.empty() && !error_recovery_mode) {
160
- Delimiter delimiter = delimiter_stack.back();
161
- int32_t end_character = delimiter.end_character();
162
- bool has_content = false;
163
- while (lexer->lookahead) {
164
- if ((lexer->lookahead == '{' || lexer->lookahead == '}') && delimiter.is_format()) {
165
- lexer->mark_end(lexer);
166
- lexer->result_symbol = STRING_CONTENT;
167
- return has_content;
168
- } else if (lexer->lookahead == '\\') {
169
- if (delimiter.is_raw()) {
170
- lexer->advance(lexer, false);
171
- } else if (delimiter.is_bytes()) {
172
- lexer->mark_end(lexer);
173
- lexer->advance(lexer, false);
174
- if (lexer->lookahead == 'N' || lexer->lookahead == 'u' || lexer->lookahead == 'U') {
175
- // In bytes string, \N{...}, \uXXXX and \UXXXXXXXX are not escape sequences
176
- // https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals
177
- lexer->advance(lexer, false);
178
- } else {
179
- lexer->result_symbol = STRING_CONTENT;
180
- return has_content;
181
- }
182
- } else {
183
- lexer->mark_end(lexer);
184
- lexer->result_symbol = STRING_CONTENT;
185
- return has_content;
186
- }
187
- } else if (lexer->lookahead == end_character) {
188
- if (delimiter.is_triple()) {
189
- lexer->mark_end(lexer);
190
- lexer->advance(lexer, false);
191
- if (lexer->lookahead == end_character) {
192
- lexer->advance(lexer, false);
193
- if (lexer->lookahead == end_character) {
194
- if (has_content) {
195
- lexer->result_symbol = STRING_CONTENT;
196
- } else {
197
- lexer->advance(lexer, false);
198
- lexer->mark_end(lexer);
199
- delimiter_stack.pop_back();
200
- lexer->result_symbol = STRING_END;
201
- }
202
- return true;
203
- } else {
204
- lexer->mark_end(lexer);
205
- lexer->result_symbol = STRING_CONTENT;
206
- return true;
207
- }
208
- } else {
209
- lexer->mark_end(lexer);
210
- lexer->result_symbol = STRING_CONTENT;
211
- return true;
212
- }
213
- } else {
214
- if (has_content) {
215
- lexer->result_symbol = STRING_CONTENT;
216
- } else {
217
- lexer->advance(lexer, false);
218
- delimiter_stack.pop_back();
219
- lexer->result_symbol = STRING_END;
220
- }
221
- lexer->mark_end(lexer);
222
- return true;
223
- }
224
- } else if (lexer->lookahead == '\n' && has_content && !delimiter.is_triple()) {
225
- return false;
226
- }
227
- advance(lexer);
228
- has_content = true;
229
- }
230
- }
231
-
232
- lexer->mark_end(lexer);
233
-
234
- bool found_end_of_line = false;
235
- uint32_t indent_length = 0;
236
- int32_t first_comment_indent_length = -1;
237
- for (;;) {
238
- if (lexer->lookahead == '\n') {
239
- found_end_of_line = true;
240
- indent_length = 0;
241
- skip(lexer);
242
- } else if (lexer->lookahead == ' ') {
243
- indent_length++;
244
- skip(lexer);
245
- } else if (lexer->lookahead == '\r') {
246
- indent_length = 0;
247
- skip(lexer);
248
- } else if (lexer->lookahead == '\t') {
249
- indent_length += 8;
250
- skip(lexer);
251
- } else if (lexer->lookahead == '#') {
252
- if (first_comment_indent_length == -1) {
253
- first_comment_indent_length = (int32_t)indent_length;
254
- }
255
- while (lexer->lookahead && lexer->lookahead != '\n') {
256
- skip(lexer);
257
- }
258
- skip(lexer);
259
- indent_length = 0;
260
- } else if (lexer->lookahead == '\\') {
261
- skip(lexer);
262
- if (lexer->lookahead == '\r') {
263
- skip(lexer);
264
- }
265
- if (lexer->lookahead == '\n') {
266
- skip(lexer);
267
- } else {
268
- return false;
269
- }
270
- } else if (lexer->lookahead == '\f') {
271
- indent_length = 0;
272
- skip(lexer);
273
- } else if (lexer->lookahead == 0) {
274
- indent_length = 0;
275
- found_end_of_line = true;
276
- break;
277
- } else {
278
- break;
279
- }
280
- }
281
-
282
- if (found_end_of_line) {
283
- if (!indent_length_stack.empty()) {
284
- uint16_t current_indent_length = indent_length_stack.back();
285
-
286
- if (
287
- valid_symbols[INDENT] &&
288
- indent_length > current_indent_length
289
- ) {
290
- indent_length_stack.push_back(indent_length);
291
- lexer->result_symbol = INDENT;
292
- return true;
293
- }
294
-
295
- if (
296
- (valid_symbols[DEDENT] || (!valid_symbols[NEWLINE] && !within_brackets)) &&
297
- indent_length < current_indent_length &&
298
-
299
- // Wait to create a dedent token until we've consumed any comments
300
- // whose indentation matches the current block.
301
- first_comment_indent_length < (int32_t)current_indent_length
302
- ) {
303
- indent_length_stack.pop_back();
304
- lexer->result_symbol = DEDENT;
305
- return true;
306
- }
307
- }
308
-
309
- if (valid_symbols[NEWLINE] && !error_recovery_mode) {
310
- lexer->result_symbol = NEWLINE;
311
- return true;
312
- }
313
- }
314
-
315
- if (first_comment_indent_length == -1 && valid_symbols[STRING_START]) {
316
- Delimiter delimiter;
317
-
318
- bool has_flags = false;
319
- while (lexer->lookahead) {
320
- if (lexer->lookahead == 'f' || lexer->lookahead == 'F') {
321
- delimiter.set_format();
322
- } else if (lexer->lookahead == 'r' || lexer->lookahead == 'R') {
323
- delimiter.set_raw();
324
- } else if (lexer->lookahead == 'b' || lexer->lookahead == 'B') {
325
- delimiter.set_bytes();
326
- } else if (lexer->lookahead != 'u' && lexer->lookahead != 'U') {
327
- break;
328
- }
329
- has_flags = true;
330
- advance(lexer);
331
- }
332
-
333
- if (lexer->lookahead == '`') {
334
- delimiter.set_end_character('`');
335
- advance(lexer);
336
- lexer->mark_end(lexer);
337
- } else if (lexer->lookahead == '\'') {
338
- delimiter.set_end_character('\'');
339
- advance(lexer);
340
- lexer->mark_end(lexer);
341
- if (lexer->lookahead == '\'') {
342
- advance(lexer);
343
- if (lexer->lookahead == '\'') {
344
- advance(lexer);
345
- lexer->mark_end(lexer);
346
- delimiter.set_triple();
347
- }
348
- }
349
- } else if (lexer->lookahead == '"') {
350
- delimiter.set_end_character('"');
351
- advance(lexer);
352
- lexer->mark_end(lexer);
353
- if (lexer->lookahead == '"') {
354
- advance(lexer);
355
- if (lexer->lookahead == '"') {
356
- advance(lexer);
357
- lexer->mark_end(lexer);
358
- delimiter.set_triple();
359
- }
360
- }
361
- }
362
-
363
- if (delimiter.end_character()) {
364
- delimiter_stack.push_back(delimiter);
365
- lexer->result_symbol = STRING_START;
366
- return true;
367
- } else if (has_flags) {
368
- return false;
369
- }
370
- }
371
-
372
- return false;
373
- }
374
-
375
- vector<uint16_t> indent_length_stack;
376
- vector<Delimiter> delimiter_stack;
377
- };
378
-
379
- }
380
-
381
- extern "C" {
382
-
383
- void *tree_sitter_pine_external_scanner_create() {
384
- return new Scanner();
385
- }
386
-
387
- bool tree_sitter_pine_external_scanner_scan(void *payload, TSLexer *lexer,
388
- const bool *valid_symbols) {
389
- Scanner *scanner = static_cast<Scanner *>(payload);
390
- return scanner->scan(lexer, valid_symbols);
391
- }
392
-
393
- unsigned tree_sitter_pine_external_scanner_serialize(void *payload, char *buffer) {
394
- Scanner *scanner = static_cast<Scanner *>(payload);
395
- return scanner->serialize(buffer);
396
- }
397
-
398
- void tree_sitter_pine_external_scanner_deserialize(void *payload, const char *buffer, unsigned length) {
399
- Scanner *scanner = static_cast<Scanner *>(payload);
400
- scanner->deserialize(buffer, length);
401
- }
402
-
403
- void tree_sitter_pine_external_scanner_destroy(void *payload) {
404
- Scanner *scanner = static_cast<Scanner *>(payload);
405
- delete scanner;
406
- }
407
-
408
- }
test/corpus/class_definitions.txt CHANGED
@@ -4,30 +4,32 @@ Class definitions - Simple
4
4
 
5
5
  package definitions
6
6
 
7
- class AnimalStrong:
7
+ class AnimalStrong(
8
- count: String
8
+ val count: String,
9
- userName: Int
9
+ val userName: Int,
10
- currentAddress: Address
10
+ val currentAddress: Address
11
+ )
11
12
 
12
13
  --------------------------------------------------------------------------------
13
14
 
14
15
  (source_file
15
16
  (package
16
17
  (identifier))
18
+ (definitions
17
- (class_definition
19
+ (class_definition
18
- (definition_name)
20
+ (definition_name)
19
- (class_field
21
+ (type_field
20
- (variable_name)
22
+ (variable_name)
21
- (type
23
+ (type
22
- (definition_name)))
24
+ (definition_name)))
23
- (class_field
25
+ (type_field
24
- (variable_name)
26
+ (variable_name)
25
- (type
27
+ (type
26
- (definition_name)))
28
+ (definition_name)))
27
- (class_field
29
+ (type_field
28
- (variable_name)
30
+ (variable_name)
29
- (type
31
+ (type
30
- (definition_name)))))
32
+ (definition_name))))))
31
33
 
32
34
  ================================================================================
33
35
  Class definitions - Generic
@@ -35,28 +37,30 @@ Class definitions - Generic
35
37
 
36
38
  package definitions
37
39
 
38
- class Bat<S, T>:
40
+ class Bat<S, T>(
39
- a: S
41
+ val a: S,
40
- b: T
42
+ val b: T
43
+ )
41
44
 
42
45
  --------------------------------------------------------------------------------
43
46
 
44
47
  (source_file
45
48
  (package
46
49
  (identifier))
50
+ (definitions
47
- (class_definition
51
+ (class_definition
48
- (definition_name)
52
+ (definition_name)
49
- (generic_list
53
+ (generic_list
50
- (identifier)
54
+ (identifier)
51
- (identifier))
55
+ (identifier))
52
- (class_field
56
+ (type_field
53
- (variable_name)
57
+ (variable_name)
54
- (type
58
+ (type
55
- (definition_name)))
59
+ (definition_name)))
56
- (class_field
60
+ (type_field
57
- (variable_name)
61
+ (variable_name)
58
- (type
62
+ (type
59
- (definition_name)))))
63
+ (definition_name))))))
60
64
 
61
65
  ================================================================================
62
66
  Class definitions - Traits
@@ -64,28 +68,32 @@ Class definitions - Traits
64
68
 
65
69
  package definitions
66
70
 
71
+ @B @C
67
- class AnimalSubSpecies(B, C):
72
+ class AnimalSubSpecies (
68
- a: String
73
+ val a: String,
69
- b: Float
74
+ val b: Float
75
+ )
70
76
 
71
77
  --------------------------------------------------------------------------------
72
78
 
73
79
  (source_file
74
80
  (package
75
81
  (identifier))
82
+ (definitions
76
- (class_definition
83
+ (class_definition
84
+ (trait_name
85
+ (definition_name))
86
+ (trait_name
87
+ (definition_name))
77
- (definition_name)
88
+ (definition_name)
78
- (trait_list
79
- (identifier)
80
- (identifier))
81
- (class_field
89
+ (type_field
82
- (variable_name)
90
+ (variable_name)
83
- (type
91
+ (type
84
- (definition_name)))
92
+ (definition_name)))
85
- (class_field
93
+ (type_field
86
- (variable_name)
94
+ (variable_name)
87
- (type
95
+ (type
88
- (definition_name)))))
96
+ (definition_name))))))
89
97
 
90
98
  ================================================================================
91
99
  Class definitions - Genrics + Traits
@@ -93,28 +101,32 @@ Class definitions - Genrics + Traits
93
101
 
94
102
  package definitions
95
103
 
104
+ @B @C
96
- class A<S, T>(B, C):
105
+ class A<S, T>(
97
- a: S
106
+ val a: S,
98
- b: T
107
+ val b: T
108
+ )
99
109
 
100
110
  --------------------------------------------------------------------------------
101
111
 
102
112
  (source_file
103
113
  (package
104
114
  (identifier))
115
+ (definitions
105
- (class_definition
116
+ (class_definition
117
+ (trait_name
118
+ (definition_name))
119
+ (trait_name
120
+ (definition_name))
106
- (definition_name)
121
+ (definition_name)
107
- (generic_list
122
+ (generic_list
108
- (identifier)
123
+ (identifier)
109
- (identifier))
124
+ (identifier))
110
- (trait_list
111
- (identifier)
112
- (identifier))
113
- (class_field
125
+ (type_field
114
- (variable_name)
126
+ (variable_name)
115
- (type
127
+ (type
116
- (definition_name)))
128
+ (definition_name)))
117
- (class_field
129
+ (type_field
118
- (variable_name)
130
+ (variable_name)
119
- (type
131
+ (type
120
- (definition_name)))))
132
+ (definition_name))))))
test/corpus/enum_definitions.txt CHANGED
@@ -4,29 +4,33 @@ Enum definitions - Int
4
4
 
5
5
  package definitions
6
6
 
7
- enum Colors(Int):
7
+ enum Colors(val rgb: Int) {
8
- RED(0xFF0000)
8
+ RED(0xFF0000),
9
- GREEN(0x00FF00)
9
+ GREEN(0x00FF00),
10
10
  BLUE(0x0000FF)
11
+ }
11
12
 
12
13
  --------------------------------------------------------------------------------
13
14
 
14
15
  (source_file
15
16
  (package
16
17
  (identifier))
18
+ (definitions
17
- (enum_definition
19
+ (enum_definition
18
- (definition_name)
20
+ (definition_name)
19
- (type_list
21
+ (type_field
22
+ (variable_name)
23
+ (type
20
- (identifier))
24
+ (definition_name)))
21
- (enum_field
25
+ (enum_field
22
- (enum_field_name)
26
+ (enum_field_name)
23
- (hex_literal))
27
+ (hex_literal))
24
- (enum_field
28
+ (enum_field
25
- (enum_field_name)
29
+ (enum_field_name)
26
- (hex_literal))
30
+ (hex_literal))
27
- (enum_field
31
+ (enum_field
28
- (enum_field_name)
32
+ (enum_field_name)
29
- (hex_literal))))
33
+ (hex_literal)))))
30
34
 
31
35
  ================================================================================
32
36
  Enum definitions - Float
@@ -34,33 +38,40 @@ Enum definitions - Float
34
38
 
35
39
  package definitions
36
40
 
37
- enum ColorsAlpha(Int, Float):
41
+ enum ColorsAlpha(val a: Int, val b: Float) {
38
- RED(1, 0.1)
42
+ RED(1, 0.1),
39
- GREEN(2, 0.2)
43
+ GREEN(2, 0.2),
40
44
  BLUE(3, 0.3)
45
+ }
41
46
 
42
47
  --------------------------------------------------------------------------------
43
48
 
44
49
  (source_file
45
50
  (package
46
51
  (identifier))
52
+ (definitions
47
- (enum_definition
53
+ (enum_definition
48
- (definition_name)
54
+ (definition_name)
49
- (type_list
55
+ (type_field
50
- (identifier)
56
+ (variable_name)
57
+ (type
51
- (identifier))
58
+ (definition_name)))
59
+ (type_field
60
+ (variable_name)
61
+ (type
62
+ (definition_name)))
52
- (enum_field
63
+ (enum_field
53
- (enum_field_name)
64
+ (enum_field_name)
54
- (integer_literal)
65
+ (integer_literal)
55
- (float_literal))
66
+ (float_literal))
56
- (enum_field
67
+ (enum_field
57
- (enum_field_name)
68
+ (enum_field_name)
58
- (integer_literal)
69
+ (integer_literal)
59
- (float_literal))
70
+ (float_literal))
60
- (enum_field
71
+ (enum_field
61
- (enum_field_name)
72
+ (enum_field_name)
62
- (integer_literal)
73
+ (integer_literal)
63
- (float_literal))))
74
+ (float_literal)))))
64
75
 
65
76
  ================================================================================
66
77
  Enum definitions - String
@@ -68,30 +79,37 @@ Enum definitions - String
68
79
 
69
80
  package definitions
70
81
 
71
- enum ColorsAlpha(Int, String):
82
+ enum ColorsAlpha(val a: Int, val b: String) {
72
- RED(1, "1")
83
+ RED(1, "1"),
73
- GREEN(2, "2")
84
+ GREEN(2, "2"),
74
85
  BLUE(3, "3")
86
+ }
75
87
 
76
88
  --------------------------------------------------------------------------------
77
89
 
78
90
  (source_file
79
91
  (package
80
92
  (identifier))
93
+ (definitions
81
- (enum_definition
94
+ (enum_definition
82
- (definition_name)
95
+ (definition_name)
83
- (type_list
96
+ (type_field
84
- (identifier)
97
+ (variable_name)
98
+ (type
85
- (identifier))
99
+ (definition_name)))
100
+ (type_field
101
+ (variable_name)
102
+ (type
103
+ (definition_name)))
86
- (enum_field
104
+ (enum_field
87
- (enum_field_name)
105
+ (enum_field_name)
88
- (integer_literal)
106
+ (integer_literal)
89
- (line_string_literal))
107
+ (line_string_literal))
90
- (enum_field
108
+ (enum_field
91
- (enum_field_name)
109
+ (enum_field_name)
92
- (integer_literal)
110
+ (integer_literal)
93
- (line_string_literal))
111
+ (line_string_literal))
94
- (enum_field
112
+ (enum_field
95
- (enum_field_name)
113
+ (enum_field_name)
96
- (integer_literal)
114
+ (integer_literal)
97
- (line_string_literal))))
115
+ (line_string_literal)))))
test/corpus/functions.txt ADDED
@@ -0,0 +1,100 @@
1
+ ================================================================================
2
+ Functions - Simple
3
+ ================================================================================
4
+
5
+ package definitions
6
+
7
+ fun main() => {
8
+ }
9
+
10
+ --------------------------------------------------------------------------------
11
+
12
+ (source_file
13
+ (package
14
+ (identifier))
15
+ (definitions
16
+ (fun_definition
17
+ (identifier))))
18
+
19
+ ================================================================================
20
+ Functions - Extension
21
+ ================================================================================
22
+
23
+ package definitions
24
+
25
+ fun User.main() => {
26
+ }
27
+
28
+ --------------------------------------------------------------------------------
29
+
30
+ (source_file
31
+ (package
32
+ (identifier))
33
+ (definitions
34
+ (fun_definition
35
+ (identifier)
36
+ (identifier))))
37
+
38
+
39
+ ================================================================================
40
+ Functions - Return
41
+ ================================================================================
42
+
43
+ package definitions
44
+
45
+ fun add(a: Int, b: Int) => Int {
46
+ }
47
+
48
+ --------------------------------------------------------------------------------
49
+
50
+ (source_file
51
+ (package
52
+ (identifier))
53
+ (definitions
54
+ (fun_definition
55
+ (identifier)
56
+ (param
57
+ (variable_name)
58
+ (type
59
+ (definition_name)))
60
+ (param
61
+ (variable_name)
62
+ (type
63
+ (definition_name)))
64
+ (type
65
+ (definition_name)))))
66
+
67
+ ================================================================================
68
+ Functions - High Order 1
69
+ ================================================================================
70
+
71
+ package definitions
72
+
73
+ fun add(a: Int, b: Int): () -> Unit
74
+ return {
75
+ println("A + B")
76
+ }
77
+
78
+ --------------------------------------------------------------------------------
79
+
80
+ (source_file
81
+ (package
82
+ (identifier))
83
+
84
+ ================================================================================
85
+ Functions - High Order 2
86
+ ================================================================================
87
+
88
+ package definitions
89
+
90
+ fun add(a: Int, b: () -> Unit): () -> Unit =>
91
+ return {
92
+ b()
93
+ println("A + B")
94
+ }
95
+
96
+ --------------------------------------------------------------------------------
97
+
98
+ (source_file
99
+ (package
100
+ (identifier))
test/corpus/traits.txt ADDED
@@ -0,0 +1,65 @@
1
+ ================================================================================
2
+ Traits - Simple
3
+ ================================================================================
4
+
5
+ package definitions
6
+
7
+ trait Animal(
8
+ val name: String,
9
+ fun legs() => Int
10
+ )
11
+
12
+ --------------------------------------------------------------------------------
13
+
14
+ (source_file
15
+ (package
16
+ (identifier))
17
+ (definitions
18
+ (trait_definition
19
+ (definition_name)
20
+ (trait_field
21
+ (type_field
22
+ (variable_name)
23
+ (type
24
+ (definition_name))))
25
+ (trait_field
26
+ (fun_field
27
+ (identifier)
28
+ (type
29
+ (definition_name)))))))
30
+
31
+
32
+ ================================================================================
33
+ Traits - Generics
34
+ ================================================================================
35
+
36
+ package definitions
37
+
38
+ trait Shape<T>(
39
+ val name: T,
40
+ fun area(size: Float) => T
41
+ )
42
+ --------------------------------------------------------------------------------
43
+
44
+ (source_file
45
+ (package
46
+ (identifier))
47
+ (definitions
48
+ (trait_definition
49
+ (definition_name)
50
+ (generic_list
51
+ (identifier))
52
+ (trait_field
53
+ (type_field
54
+ (variable_name)
55
+ (type
56
+ (definition_name))))
57
+ (trait_field
58
+ (fun_field
59
+ (identifier)
60
+ (param
61
+ (variable_name)
62
+ (type
63
+ (definition_name)))
64
+ (type
65
+ (definition_name)))))))