@algosail/tree-sitter 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/grammar.js CHANGED
@@ -14,8 +14,6 @@ module.exports = grammar({
14
14
  // top-level construct. Cannot be resolved by LALR(1).
15
15
  [$.group],
16
16
  [$.tag],
17
- [$.map],
18
- [$.field],
19
17
 
20
18
  // After word_def + sig + optional(doc), a comment is ambiguous:
21
19
  // it could be the doc field OR an _expr in the body.
@@ -24,7 +22,7 @@ module.exports = grammar({
24
22
 
25
23
  rules: {
26
24
  source_file: ($) => repeat($._top_level),
27
- _top_level: ($) => choice($.comment, $.import, $.group, $.map, $.word),
25
+ _top_level: ($) => choice($.comment, $.import, $.group, $.word),
28
26
 
29
27
  // ~Module
30
28
  module_def: ($) => /\+[A-Z][a-zA-Z0-9_]*/,
@@ -42,14 +40,6 @@ module.exports = grammar({
42
40
  tag_pattern: ($) => /\_[A-Z][a-zA-Z0-9_]*/,
43
41
  // _
44
42
  default_pattern: ($) => token('_'),
45
- // $Map
46
- map_def: ($) => /\$[A-Z][a-zA-Z0-9_]*/,
47
- // $Map
48
- map_ref: ($) => /\$[A-Z][a-zA-Z0-9_]*/,
49
- // .field
50
- field_def: ($) => /\.[a-z][a-zA-Z0-9_]*/,
51
- // $Map.field
52
- field_ref: ($) => /\$[A-Z][a-zA-Z0-9_]*\.[a-z][a-zA-Z0-9_]*/,
53
43
  // @word
54
44
  word_def: ($) => /@[a-z][a-zA-Z0-9_]*/,
55
45
  // /word
@@ -61,10 +51,6 @@ module.exports = grammar({
61
51
  module_tag_ref: ($) => /~[A-Z][a-zA-Z0-9_]*#[A-Z][a-zA-Z0-9_]*/,
62
52
  // ~Module#Tag
63
53
  module_tag_pattern: ($) => /~[A-Z][a-zA-Z0-9_]*\_[A-Z][a-zA-Z0-9_]*/,
64
- // ~Module$Map
65
- module_map_ref: ($) => /~[A-Z][a-zA-Z0-9_]*\$[A-Z][a-zA-Z0-9_]*/,
66
- // ~Module$Map.field
67
- module_field_ref: ($) => /~[A-Z][a-zA-Z0-9_]*\$[A-Z][a-zA-Z0-9_]*\.[a-z][a-zA-Z0-9_]*/,
68
54
  // ~Module/word
69
55
  module_word_ref: ($) => /~[A-Z][a-zA-Z0-9_]*\/[a-z][a-zA-Z0-9_]*/,
70
56
 
@@ -72,8 +58,6 @@ module.exports = grammar({
72
58
  type: ($) => /[A-Z][a-zA-Z0-9_]*/,
73
59
  // Lowercase type variable: a, b, elem, etc.
74
60
  type_var: ($) => /[a-z][a-zA-Z0-9_]*/,
75
- // Lowercase type variable: a, b, elem, etc.
76
- spread: ($) => /\.\.[a-z][a-zA-Z0-9_]*/,
77
61
 
78
62
  // +Effect
79
63
  effect_add: ($) => /\+[A-Z][a-zA-Z0-9_]*/,
@@ -94,6 +78,7 @@ module.exports = grammar({
94
78
  // when there is a tie. Structural characters ( ) [ ] are excluded because
95
79
  // they are needed by the parser to delimit blocks and comments.
96
80
  raw_value: ($) => token(prec(-1, /[^\s\[\]()']+/)),
81
+ raw_ref: ($) => token('*'),
97
82
 
98
83
  // Comment / doc block: ( any text )
99
84
  // comment_content is recursive: it can contain plain text and/or nested
@@ -123,17 +108,7 @@ module.exports = grammar({
123
108
  group_type: ($) =>
124
109
  seq(field('group', choice($.group_ref, $.module_group_ref)), optional($._generic)),
125
110
  _generic: ($) => seq('{', field('params', repeat($._generic_content)), '}'),
126
- _generic_content: ($) => choice($.type, $.group_type, $.map_ref, $.module_map_ref),
127
-
128
- // Map definition: %Name (.field Type)*
129
- map: ($) => seq(field('def', $.map_def), optional(field('doc', $.comment)), repeat($.field)),
130
- field: ($) =>
131
- seq(
132
- field('key', $.field_def),
133
- field('type', $._field_types),
134
- optional(field('doc', $.comment)),
135
- ),
136
- _field_types: ($) => choice($.type, $.group_type, $.map_ref, $.module_map_ref),
111
+ _generic_content: ($) => choice($.type, $.group_type),
137
112
 
138
113
  // Word definition: @name ( sig ) expr*
139
114
  // Signature is required per the spec ("Word definition must have a signature").
@@ -157,14 +132,12 @@ module.exports = grammar({
157
132
  choice(
158
133
  $.effect_add,
159
134
  $.effect_remove,
160
- $.spread,
135
+ $.raw_ref,
161
136
  $.type,
162
137
  $.type_var,
163
138
  $.sig_list,
164
139
  $.sig_quotation,
165
140
  $.group_type,
166
- $.map_ref,
167
- $.module_map_ref,
168
141
  ),
169
142
 
170
143
  // [ Type Type ... ] — list / tuple type in a signature
@@ -186,8 +159,6 @@ module.exports = grammar({
186
159
  $.tag_pattern,
187
160
  $.module_tag_pattern,
188
161
  $.default_pattern,
189
- $.field_ref,
190
- $.module_field_ref,
191
162
  $.slot_write,
192
163
  $.slot_read,
193
164
  $.raw_string,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@algosail/tree-sitter",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Tree-sitter grammar for the Sail language",
5
5
  "main": "bindings/node",
6
6
  "types": "bindings/node",
package/src/grammar.json CHANGED
@@ -24,10 +24,6 @@
24
24
  "type": "SYMBOL",
25
25
  "name": "group"
26
26
  },
27
- {
28
- "type": "SYMBOL",
29
- "name": "map"
30
- },
31
27
  {
32
28
  "type": "SYMBOL",
33
29
  "name": "word"
@@ -69,22 +65,6 @@
69
65
  "value": "_"
70
66
  }
71
67
  },
72
- "map_def": {
73
- "type": "PATTERN",
74
- "value": "\\$[A-Z][a-zA-Z0-9_]*"
75
- },
76
- "map_ref": {
77
- "type": "PATTERN",
78
- "value": "\\$[A-Z][a-zA-Z0-9_]*"
79
- },
80
- "field_def": {
81
- "type": "PATTERN",
82
- "value": "\\.[a-z][a-zA-Z0-9_]*"
83
- },
84
- "field_ref": {
85
- "type": "PATTERN",
86
- "value": "\\$[A-Z][a-zA-Z0-9_]*\\.[a-z][a-zA-Z0-9_]*"
87
- },
88
68
  "word_def": {
89
69
  "type": "PATTERN",
90
70
  "value": "@[a-z][a-zA-Z0-9_]*"
@@ -105,14 +85,6 @@
105
85
  "type": "PATTERN",
106
86
  "value": "~[A-Z][a-zA-Z0-9_]*\\_[A-Z][a-zA-Z0-9_]*"
107
87
  },
108
- "module_map_ref": {
109
- "type": "PATTERN",
110
- "value": "~[A-Z][a-zA-Z0-9_]*\\$[A-Z][a-zA-Z0-9_]*"
111
- },
112
- "module_field_ref": {
113
- "type": "PATTERN",
114
- "value": "~[A-Z][a-zA-Z0-9_]*\\$[A-Z][a-zA-Z0-9_]*\\.[a-z][a-zA-Z0-9_]*"
115
- },
116
88
  "module_word_ref": {
117
89
  "type": "PATTERN",
118
90
  "value": "~[A-Z][a-zA-Z0-9_]*\\/[a-z][a-zA-Z0-9_]*"
@@ -125,10 +97,6 @@
125
97
  "type": "PATTERN",
126
98
  "value": "[a-z][a-zA-Z0-9_]*"
127
99
  },
128
- "spread": {
129
- "type": "PATTERN",
130
- "value": "\\.\\.[a-z][a-zA-Z0-9_]*"
131
- },
132
100
  "effect_add": {
133
101
  "type": "PATTERN",
134
102
  "value": "\\+[A-Z][a-zA-Z0-9_]*"
@@ -160,6 +128,13 @@
160
128
  }
161
129
  }
162
130
  },
131
+ "raw_ref": {
132
+ "type": "TOKEN",
133
+ "content": {
134
+ "type": "STRING",
135
+ "value": "*"
136
+ }
137
+ },
163
138
  "comment": {
164
139
  "type": "SEQ",
165
140
  "members": [
@@ -382,108 +357,6 @@
382
357
  {
383
358
  "type": "SYMBOL",
384
359
  "name": "group_type"
385
- },
386
- {
387
- "type": "SYMBOL",
388
- "name": "map_ref"
389
- },
390
- {
391
- "type": "SYMBOL",
392
- "name": "module_map_ref"
393
- }
394
- ]
395
- },
396
- "map": {
397
- "type": "SEQ",
398
- "members": [
399
- {
400
- "type": "FIELD",
401
- "name": "def",
402
- "content": {
403
- "type": "SYMBOL",
404
- "name": "map_def"
405
- }
406
- },
407
- {
408
- "type": "CHOICE",
409
- "members": [
410
- {
411
- "type": "FIELD",
412
- "name": "doc",
413
- "content": {
414
- "type": "SYMBOL",
415
- "name": "comment"
416
- }
417
- },
418
- {
419
- "type": "BLANK"
420
- }
421
- ]
422
- },
423
- {
424
- "type": "REPEAT",
425
- "content": {
426
- "type": "SYMBOL",
427
- "name": "field"
428
- }
429
- }
430
- ]
431
- },
432
- "field": {
433
- "type": "SEQ",
434
- "members": [
435
- {
436
- "type": "FIELD",
437
- "name": "key",
438
- "content": {
439
- "type": "SYMBOL",
440
- "name": "field_def"
441
- }
442
- },
443
- {
444
- "type": "FIELD",
445
- "name": "type",
446
- "content": {
447
- "type": "SYMBOL",
448
- "name": "_field_types"
449
- }
450
- },
451
- {
452
- "type": "CHOICE",
453
- "members": [
454
- {
455
- "type": "FIELD",
456
- "name": "doc",
457
- "content": {
458
- "type": "SYMBOL",
459
- "name": "comment"
460
- }
461
- },
462
- {
463
- "type": "BLANK"
464
- }
465
- ]
466
- }
467
- ]
468
- },
469
- "_field_types": {
470
- "type": "CHOICE",
471
- "members": [
472
- {
473
- "type": "SYMBOL",
474
- "name": "type"
475
- },
476
- {
477
- "type": "SYMBOL",
478
- "name": "group_type"
479
- },
480
- {
481
- "type": "SYMBOL",
482
- "name": "map_ref"
483
- },
484
- {
485
- "type": "SYMBOL",
486
- "name": "module_map_ref"
487
360
  }
488
361
  ]
489
362
  },
@@ -590,7 +463,7 @@
590
463
  },
591
464
  {
592
465
  "type": "SYMBOL",
593
- "name": "spread"
466
+ "name": "raw_ref"
594
467
  },
595
468
  {
596
469
  "type": "SYMBOL",
@@ -611,14 +484,6 @@
611
484
  {
612
485
  "type": "SYMBOL",
613
486
  "name": "group_type"
614
- },
615
- {
616
- "type": "SYMBOL",
617
- "name": "map_ref"
618
- },
619
- {
620
- "type": "SYMBOL",
621
- "name": "module_map_ref"
622
487
  }
623
488
  ]
624
489
  },
@@ -716,14 +581,6 @@
716
581
  "type": "SYMBOL",
717
582
  "name": "default_pattern"
718
583
  },
719
- {
720
- "type": "SYMBOL",
721
- "name": "field_ref"
722
- },
723
- {
724
- "type": "SYMBOL",
725
- "name": "module_field_ref"
726
- },
727
584
  {
728
585
  "type": "SYMBOL",
729
586
  "name": "slot_write"
@@ -840,12 +697,6 @@
840
697
  [
841
698
  "tag"
842
699
  ],
843
- [
844
- "map"
845
- ],
846
- [
847
- "field"
848
- ],
849
700
  [
850
701
  "word",
851
702
  "_expr"
@@ -34,54 +34,6 @@
34
34
  "named": true,
35
35
  "fields": {}
36
36
  },
37
- {
38
- "type": "field",
39
- "named": true,
40
- "fields": {
41
- "doc": {
42
- "multiple": false,
43
- "required": false,
44
- "types": [
45
- {
46
- "type": "comment",
47
- "named": true
48
- }
49
- ]
50
- },
51
- "key": {
52
- "multiple": false,
53
- "required": true,
54
- "types": [
55
- {
56
- "type": "field_def",
57
- "named": true
58
- }
59
- ]
60
- },
61
- "type": {
62
- "multiple": false,
63
- "required": true,
64
- "types": [
65
- {
66
- "type": "group_type",
67
- "named": true
68
- },
69
- {
70
- "type": "map_ref",
71
- "named": true
72
- },
73
- {
74
- "type": "module_map_ref",
75
- "named": true
76
- },
77
- {
78
- "type": "type",
79
- "named": true
80
- }
81
- ]
82
- }
83
- }
84
- },
85
37
  {
86
38
  "type": "group",
87
39
  "named": true,
@@ -158,14 +110,6 @@
158
110
  "type": "group_type",
159
111
  "named": true
160
112
  },
161
- {
162
- "type": "map_ref",
163
- "named": true
164
- },
165
- {
166
- "type": "module_map_ref",
167
- "named": true
168
- },
169
113
  {
170
114
  "type": "type",
171
115
  "named": true
@@ -200,52 +144,6 @@
200
144
  }
201
145
  }
202
146
  },
203
- {
204
- "type": "map",
205
- "named": true,
206
- "fields": {
207
- "def": {
208
- "multiple": false,
209
- "required": true,
210
- "types": [
211
- {
212
- "type": "map_def",
213
- "named": true
214
- }
215
- ]
216
- },
217
- "doc": {
218
- "multiple": false,
219
- "required": false,
220
- "types": [
221
- {
222
- "type": "comment",
223
- "named": true
224
- }
225
- ]
226
- }
227
- },
228
- "children": {
229
- "multiple": true,
230
- "required": false,
231
- "types": [
232
- {
233
- "type": "field",
234
- "named": true
235
- }
236
- ]
237
- }
238
- },
239
- {
240
- "type": "map_def",
241
- "named": true,
242
- "fields": {}
243
- },
244
- {
245
- "type": "map_ref",
246
- "named": true,
247
- "fields": {}
248
- },
249
147
  {
250
148
  "type": "module_def",
251
149
  "named": true,
@@ -271,14 +169,6 @@
271
169
  "type": "default_pattern",
272
170
  "named": true
273
171
  },
274
- {
275
- "type": "field_ref",
276
- "named": true
277
- },
278
- {
279
- "type": "module_field_ref",
280
- "named": true
281
- },
282
172
  {
283
173
  "type": "module_tag_pattern",
284
174
  "named": true
@@ -347,11 +237,7 @@
347
237
  "named": true
348
238
  },
349
239
  {
350
- "type": "map_ref",
351
- "named": true
352
- },
353
- {
354
- "type": "module_map_ref",
240
+ "type": "raw_ref",
355
241
  "named": true
356
242
  },
357
243
  {
@@ -362,10 +248,6 @@
362
248
  "type": "sig_quotation",
363
249
  "named": true
364
250
  },
365
- {
366
- "type": "spread",
367
- "named": true
368
- },
369
251
  {
370
252
  "type": "type",
371
253
  "named": true
@@ -398,11 +280,7 @@
398
280
  "named": true
399
281
  },
400
282
  {
401
- "type": "map_ref",
402
- "named": true
403
- },
404
- {
405
- "type": "module_map_ref",
283
+ "type": "raw_ref",
406
284
  "named": true
407
285
  },
408
286
  {
@@ -417,10 +295,6 @@
417
295
  "type": "sig_quotation",
418
296
  "named": true
419
297
  },
420
- {
421
- "type": "spread",
422
- "named": true
423
- },
424
298
  {
425
299
  "type": "type",
426
300
  "named": true
@@ -453,11 +327,7 @@
453
327
  "named": true
454
328
  },
455
329
  {
456
- "type": "map_ref",
457
- "named": true
458
- },
459
- {
460
- "type": "module_map_ref",
330
+ "type": "raw_ref",
461
331
  "named": true
462
332
  },
463
333
  {
@@ -472,10 +342,6 @@
472
342
  "type": "sig_quotation",
473
343
  "named": true
474
344
  },
475
- {
476
- "type": "spread",
477
- "named": true
478
- },
479
345
  {
480
346
  "type": "type",
481
347
  "named": true
@@ -508,10 +374,6 @@
508
374
  "type": "import",
509
375
  "named": true
510
376
  },
511
- {
512
- "type": "map",
513
- "named": true
514
- },
515
377
  {
516
378
  "type": "word",
517
379
  "named": true
@@ -585,14 +447,6 @@
585
447
  "type": "default_pattern",
586
448
  "named": true
587
449
  },
588
- {
589
- "type": "field_ref",
590
- "named": true
591
- },
592
- {
593
- "type": "module_field_ref",
594
- "named": true
595
- },
596
450
  {
597
451
  "type": "module_tag_pattern",
598
452
  "named": true
@@ -699,26 +553,10 @@
699
553
  "type": "effect_remove",
700
554
  "named": true
701
555
  },
702
- {
703
- "type": "field_def",
704
- "named": true
705
- },
706
- {
707
- "type": "field_ref",
708
- "named": true
709
- },
710
- {
711
- "type": "module_field_ref",
712
- "named": true
713
- },
714
556
  {
715
557
  "type": "module_group_ref",
716
558
  "named": true
717
559
  },
718
- {
719
- "type": "module_map_ref",
720
- "named": true
721
- },
722
560
  {
723
561
  "type": "module_tag_pattern",
724
562
  "named": true
@@ -735,6 +573,10 @@
735
573
  "type": "path",
736
574
  "named": true
737
575
  },
576
+ {
577
+ "type": "raw_ref",
578
+ "named": true
579
+ },
738
580
  {
739
581
  "type": "raw_string",
740
582
  "named": true
@@ -755,10 +597,6 @@
755
597
  "type": "slot_write",
756
598
  "named": true
757
599
  },
758
- {
759
- "type": "spread",
760
- "named": true
761
- },
762
600
  {
763
601
  "type": "tag_pattern",
764
602
  "named": true