@cavelang/tree-sitter-cave 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,747 @@
1
+ {
2
+ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
3
+ "name": "cave",
4
+ "rules": {
5
+ "document": {
6
+ "type": "SEQ",
7
+ "members": [
8
+ {
9
+ "type": "CHOICE",
10
+ "members": [
11
+ {
12
+ "type": "SYMBOL",
13
+ "name": "_line"
14
+ },
15
+ {
16
+ "type": "BLANK"
17
+ }
18
+ ]
19
+ },
20
+ {
21
+ "type": "REPEAT",
22
+ "content": {
23
+ "type": "SEQ",
24
+ "members": [
25
+ {
26
+ "type": "PATTERN",
27
+ "value": "\\r?\\n"
28
+ },
29
+ {
30
+ "type": "CHOICE",
31
+ "members": [
32
+ {
33
+ "type": "SYMBOL",
34
+ "name": "_line"
35
+ },
36
+ {
37
+ "type": "BLANK"
38
+ }
39
+ ]
40
+ }
41
+ ]
42
+ }
43
+ }
44
+ ]
45
+ },
46
+ "_line": {
47
+ "type": "CHOICE",
48
+ "members": [
49
+ {
50
+ "type": "SYMBOL",
51
+ "name": "comment_line"
52
+ },
53
+ {
54
+ "type": "SYMBOL",
55
+ "name": "qualifier_line"
56
+ },
57
+ {
58
+ "type": "SYMBOL",
59
+ "name": "claim_line"
60
+ },
61
+ {
62
+ "type": "SYMBOL",
63
+ "name": "continuation_line"
64
+ }
65
+ ]
66
+ },
67
+ "comment_line": {
68
+ "type": "SYMBOL",
69
+ "name": "comment"
70
+ },
71
+ "claim_line": {
72
+ "type": "SEQ",
73
+ "members": [
74
+ {
75
+ "type": "FIELD",
76
+ "name": "subject",
77
+ "content": {
78
+ "type": "CHOICE",
79
+ "members": [
80
+ {
81
+ "type": "SYMBOL",
82
+ "name": "_term"
83
+ },
84
+ {
85
+ "type": "ALIAS",
86
+ "content": {
87
+ "type": "SYMBOL",
88
+ "name": "verb"
89
+ },
90
+ "named": true,
91
+ "value": "entity"
92
+ }
93
+ ]
94
+ }
95
+ },
96
+ {
97
+ "type": "SYMBOL",
98
+ "name": "_body"
99
+ }
100
+ ]
101
+ },
102
+ "continuation_line": {
103
+ "type": "PREC_DYNAMIC",
104
+ "value": -1,
105
+ "content": {
106
+ "type": "SYMBOL",
107
+ "name": "_body"
108
+ }
109
+ },
110
+ "_body": {
111
+ "type": "CHOICE",
112
+ "members": [
113
+ {
114
+ "type": "PREC_RIGHT",
115
+ "value": 0,
116
+ "content": {
117
+ "type": "SEQ",
118
+ "members": [
119
+ {
120
+ "type": "FIELD",
121
+ "name": "verb",
122
+ "content": {
123
+ "type": "SYMBOL",
124
+ "name": "verb"
125
+ }
126
+ },
127
+ {
128
+ "type": "CHOICE",
129
+ "members": [
130
+ {
131
+ "type": "SYMBOL",
132
+ "name": "negation"
133
+ },
134
+ {
135
+ "type": "BLANK"
136
+ }
137
+ ]
138
+ },
139
+ {
140
+ "type": "FIELD",
141
+ "name": "payload",
142
+ "content": {
143
+ "type": "SYMBOL",
144
+ "name": "_payload"
145
+ }
146
+ },
147
+ {
148
+ "type": "REPEAT",
149
+ "content": {
150
+ "type": "SYMBOL",
151
+ "name": "_meta"
152
+ }
153
+ },
154
+ {
155
+ "type": "CHOICE",
156
+ "members": [
157
+ {
158
+ "type": "SYMBOL",
159
+ "name": "comment"
160
+ },
161
+ {
162
+ "type": "BLANK"
163
+ }
164
+ ]
165
+ }
166
+ ]
167
+ }
168
+ },
169
+ {
170
+ "type": "PREC_RIGHT",
171
+ "value": 0,
172
+ "content": {
173
+ "type": "SEQ",
174
+ "members": [
175
+ {
176
+ "type": "FIELD",
177
+ "name": "verb",
178
+ "content": {
179
+ "type": "ALIAS",
180
+ "content": {
181
+ "type": "STRING",
182
+ "value": "EXISTS"
183
+ },
184
+ "named": true,
185
+ "value": "verb"
186
+ }
187
+ },
188
+ {
189
+ "type": "CHOICE",
190
+ "members": [
191
+ {
192
+ "type": "SYMBOL",
193
+ "name": "negation"
194
+ },
195
+ {
196
+ "type": "BLANK"
197
+ }
198
+ ]
199
+ },
200
+ {
201
+ "type": "REPEAT",
202
+ "content": {
203
+ "type": "SYMBOL",
204
+ "name": "_meta"
205
+ }
206
+ },
207
+ {
208
+ "type": "CHOICE",
209
+ "members": [
210
+ {
211
+ "type": "SYMBOL",
212
+ "name": "comment"
213
+ },
214
+ {
215
+ "type": "BLANK"
216
+ }
217
+ ]
218
+ }
219
+ ]
220
+ }
221
+ }
222
+ ]
223
+ },
224
+ "qualifier_line": {
225
+ "type": "SEQ",
226
+ "members": [
227
+ {
228
+ "type": "FIELD",
229
+ "name": "verb",
230
+ "content": {
231
+ "type": "SYMBOL",
232
+ "name": "qualifier_verb"
233
+ }
234
+ },
235
+ {
236
+ "type": "CHOICE",
237
+ "members": [
238
+ {
239
+ "type": "SYMBOL",
240
+ "name": "negation"
241
+ },
242
+ {
243
+ "type": "BLANK"
244
+ }
245
+ ]
246
+ },
247
+ {
248
+ "type": "FIELD",
249
+ "name": "payload",
250
+ "content": {
251
+ "type": "SYMBOL",
252
+ "name": "_qualifier_payload"
253
+ }
254
+ },
255
+ {
256
+ "type": "REPEAT",
257
+ "content": {
258
+ "type": "SYMBOL",
259
+ "name": "_meta"
260
+ }
261
+ },
262
+ {
263
+ "type": "CHOICE",
264
+ "members": [
265
+ {
266
+ "type": "SYMBOL",
267
+ "name": "comment"
268
+ },
269
+ {
270
+ "type": "BLANK"
271
+ }
272
+ ]
273
+ }
274
+ ]
275
+ },
276
+ "qualifier_verb": {
277
+ "type": "CHOICE",
278
+ "members": [
279
+ {
280
+ "type": "STRING",
281
+ "value": "WHEN"
282
+ },
283
+ {
284
+ "type": "STRING",
285
+ "value": "UNLESS"
286
+ },
287
+ {
288
+ "type": "STRING",
289
+ "value": "VIA"
290
+ },
291
+ {
292
+ "type": "STRING",
293
+ "value": "BECAUSE"
294
+ }
295
+ ]
296
+ },
297
+ "negation": {
298
+ "type": "STRING",
299
+ "value": "NOT"
300
+ },
301
+ "_payload": {
302
+ "type": "CHOICE",
303
+ "members": [
304
+ {
305
+ "type": "SYMBOL",
306
+ "name": "attr_value"
307
+ },
308
+ {
309
+ "type": "SYMBOL",
310
+ "name": "value"
311
+ },
312
+ {
313
+ "type": "SYMBOL",
314
+ "name": "object"
315
+ }
316
+ ]
317
+ },
318
+ "attr_value": {
319
+ "type": "SEQ",
320
+ "members": [
321
+ {
322
+ "type": "FIELD",
323
+ "name": "attribute",
324
+ "content": {
325
+ "type": "SYMBOL",
326
+ "name": "attribute"
327
+ }
328
+ },
329
+ {
330
+ "type": "FIELD",
331
+ "name": "value",
332
+ "content": {
333
+ "type": "CHOICE",
334
+ "members": [
335
+ {
336
+ "type": "SYMBOL",
337
+ "name": "value"
338
+ },
339
+ {
340
+ "type": "SYMBOL",
341
+ "name": "_term"
342
+ }
343
+ ]
344
+ }
345
+ }
346
+ ]
347
+ },
348
+ "value": {
349
+ "type": "SEQ",
350
+ "members": [
351
+ {
352
+ "type": "SYMBOL",
353
+ "name": "number"
354
+ },
355
+ {
356
+ "type": "CHOICE",
357
+ "members": [
358
+ {
359
+ "type": "ALIAS",
360
+ "content": {
361
+ "type": "SYMBOL",
362
+ "name": "entity"
363
+ },
364
+ "named": true,
365
+ "value": "unit"
366
+ },
367
+ {
368
+ "type": "BLANK"
369
+ }
370
+ ]
371
+ }
372
+ ]
373
+ },
374
+ "object": {
375
+ "type": "CHOICE",
376
+ "members": [
377
+ {
378
+ "type": "SYMBOL",
379
+ "name": "string"
380
+ },
381
+ {
382
+ "type": "SYMBOL",
383
+ "name": "code"
384
+ },
385
+ {
386
+ "type": "SEQ",
387
+ "members": [
388
+ {
389
+ "type": "SYMBOL",
390
+ "name": "entity"
391
+ },
392
+ {
393
+ "type": "REPEAT",
394
+ "content": {
395
+ "type": "CHOICE",
396
+ "members": [
397
+ {
398
+ "type": "SYMBOL",
399
+ "name": "entity"
400
+ },
401
+ {
402
+ "type": "ALIAS",
403
+ "content": {
404
+ "type": "SYMBOL",
405
+ "name": "verb"
406
+ },
407
+ "named": true,
408
+ "value": "entity"
409
+ }
410
+ ]
411
+ }
412
+ }
413
+ ]
414
+ },
415
+ {
416
+ "type": "ALIAS",
417
+ "content": {
418
+ "type": "SYMBOL",
419
+ "name": "verb"
420
+ },
421
+ "named": true,
422
+ "value": "entity"
423
+ }
424
+ ]
425
+ },
426
+ "_qualifier_payload": {
427
+ "type": "CHOICE",
428
+ "members": [
429
+ {
430
+ "type": "SYMBOL",
431
+ "name": "comparison"
432
+ },
433
+ {
434
+ "type": "SEQ",
435
+ "members": [
436
+ {
437
+ "type": "FIELD",
438
+ "name": "subject",
439
+ "content": {
440
+ "type": "SYMBOL",
441
+ "name": "_term"
442
+ }
443
+ },
444
+ {
445
+ "type": "SYMBOL",
446
+ "name": "_body"
447
+ }
448
+ ]
449
+ },
450
+ {
451
+ "type": "SYMBOL",
452
+ "name": "_term"
453
+ }
454
+ ]
455
+ },
456
+ "comparison": {
457
+ "type": "SEQ",
458
+ "members": [
459
+ {
460
+ "type": "FIELD",
461
+ "name": "left",
462
+ "content": {
463
+ "type": "SYMBOL",
464
+ "name": "_term"
465
+ }
466
+ },
467
+ {
468
+ "type": "FIELD",
469
+ "name": "operator",
470
+ "content": {
471
+ "type": "SYMBOL",
472
+ "name": "comparison_op"
473
+ }
474
+ },
475
+ {
476
+ "type": "FIELD",
477
+ "name": "right",
478
+ "content": {
479
+ "type": "CHOICE",
480
+ "members": [
481
+ {
482
+ "type": "SYMBOL",
483
+ "name": "value"
484
+ },
485
+ {
486
+ "type": "SYMBOL",
487
+ "name": "_term"
488
+ }
489
+ ]
490
+ }
491
+ }
492
+ ]
493
+ },
494
+ "comparison_op": {
495
+ "type": "CHOICE",
496
+ "members": [
497
+ {
498
+ "type": "STRING",
499
+ "value": ">"
500
+ },
501
+ {
502
+ "type": "STRING",
503
+ "value": "<"
504
+ },
505
+ {
506
+ "type": "STRING",
507
+ "value": ">="
508
+ },
509
+ {
510
+ "type": "STRING",
511
+ "value": "<="
512
+ },
513
+ {
514
+ "type": "STRING",
515
+ "value": "="
516
+ },
517
+ {
518
+ "type": "STRING",
519
+ "value": "!="
520
+ }
521
+ ]
522
+ },
523
+ "_term": {
524
+ "type": "CHOICE",
525
+ "members": [
526
+ {
527
+ "type": "SYMBOL",
528
+ "name": "entity"
529
+ },
530
+ {
531
+ "type": "SYMBOL",
532
+ "name": "string"
533
+ },
534
+ {
535
+ "type": "SYMBOL",
536
+ "name": "code"
537
+ }
538
+ ]
539
+ },
540
+ "_meta": {
541
+ "type": "CHOICE",
542
+ "members": [
543
+ {
544
+ "type": "SYMBOL",
545
+ "name": "context"
546
+ },
547
+ {
548
+ "type": "SYMBOL",
549
+ "name": "confidence"
550
+ },
551
+ {
552
+ "type": "SYMBOL",
553
+ "name": "tag"
554
+ },
555
+ {
556
+ "type": "SYMBOL",
557
+ "name": "uncertainty"
558
+ },
559
+ {
560
+ "type": "SYMBOL",
561
+ "name": "sigma"
562
+ },
563
+ {
564
+ "type": "SYMBOL",
565
+ "name": "importance"
566
+ }
567
+ ]
568
+ },
569
+ "uncertainty": {
570
+ "type": "SEQ",
571
+ "members": [
572
+ {
573
+ "type": "STRING",
574
+ "value": "+/-"
575
+ },
576
+ {
577
+ "type": "SYMBOL",
578
+ "name": "value"
579
+ }
580
+ ]
581
+ },
582
+ "tag": {
583
+ "type": "SEQ",
584
+ "members": [
585
+ {
586
+ "type": "STRING",
587
+ "value": "#"
588
+ },
589
+ {
590
+ "type": "FIELD",
591
+ "name": "key",
592
+ "content": {
593
+ "type": "ALIAS",
594
+ "content": {
595
+ "type": "IMMEDIATE_TOKEN",
596
+ "content": {
597
+ "type": "PATTERN",
598
+ "value": "[^ \\t\\r\\n;:]+"
599
+ }
600
+ },
601
+ "named": true,
602
+ "value": "tag_key"
603
+ }
604
+ },
605
+ {
606
+ "type": "CHOICE",
607
+ "members": [
608
+ {
609
+ "type": "SEQ",
610
+ "members": [
611
+ {
612
+ "type": "IMMEDIATE_TOKEN",
613
+ "content": {
614
+ "type": "STRING",
615
+ "value": ":"
616
+ }
617
+ },
618
+ {
619
+ "type": "FIELD",
620
+ "name": "value",
621
+ "content": {
622
+ "type": "ALIAS",
623
+ "content": {
624
+ "type": "IMMEDIATE_TOKEN",
625
+ "content": {
626
+ "type": "PATTERN",
627
+ "value": "[^ \\t\\r\\n;]+"
628
+ }
629
+ },
630
+ "named": true,
631
+ "value": "tag_value"
632
+ }
633
+ }
634
+ ]
635
+ },
636
+ {
637
+ "type": "BLANK"
638
+ }
639
+ ]
640
+ }
641
+ ]
642
+ },
643
+ "verb": {
644
+ "type": "PATTERN",
645
+ "value": "[A-Z][A-Z-]*"
646
+ },
647
+ "entity": {
648
+ "type": "PATTERN",
649
+ "value": "[A-Za-z_][A-Za-z0-9_./-]*"
650
+ },
651
+ "attribute": {
652
+ "type": "TOKEN",
653
+ "content": {
654
+ "type": "PATTERN",
655
+ "value": "[A-Za-z_][A-Za-z0-9_./-]*:"
656
+ }
657
+ },
658
+ "number": {
659
+ "type": "PATTERN",
660
+ "value": "~?[0-9][0-9A-Za-z.,%_-]*"
661
+ },
662
+ "string": {
663
+ "type": "TOKEN",
664
+ "content": {
665
+ "type": "SEQ",
666
+ "members": [
667
+ {
668
+ "type": "STRING",
669
+ "value": "\""
670
+ },
671
+ {
672
+ "type": "PATTERN",
673
+ "value": "[^\"\\r\\n]*"
674
+ },
675
+ {
676
+ "type": "STRING",
677
+ "value": "\""
678
+ }
679
+ ]
680
+ }
681
+ },
682
+ "code": {
683
+ "type": "TOKEN",
684
+ "content": {
685
+ "type": "SEQ",
686
+ "members": [
687
+ {
688
+ "type": "STRING",
689
+ "value": "`"
690
+ },
691
+ {
692
+ "type": "PATTERN",
693
+ "value": "[^`\\r\\n]*"
694
+ },
695
+ {
696
+ "type": "STRING",
697
+ "value": "`"
698
+ }
699
+ ]
700
+ }
701
+ },
702
+ "context": {
703
+ "type": "TOKEN",
704
+ "content": {
705
+ "type": "PATTERN",
706
+ "value": "@[^ \\t\\r\\n;]+"
707
+ }
708
+ },
709
+ "confidence": {
710
+ "type": "TOKEN",
711
+ "content": {
712
+ "type": "PATTERN",
713
+ "value": "@[ \\t]+[0-9]+(\\.[0-9]+)?%"
714
+ }
715
+ },
716
+ "sigma": {
717
+ "type": "TOKEN",
718
+ "content": {
719
+ "type": "PATTERN",
720
+ "value": "\\([0-9]+(\\.[0-9]+)?σ\\)"
721
+ }
722
+ },
723
+ "importance": {
724
+ "type": "STRING",
725
+ "value": "!"
726
+ },
727
+ "comment": {
728
+ "type": "TOKEN",
729
+ "content": {
730
+ "type": "PATTERN",
731
+ "value": ";[^\\r\\n]*"
732
+ }
733
+ }
734
+ },
735
+ "extras": [
736
+ {
737
+ "type": "PATTERN",
738
+ "value": "[ \\t]"
739
+ }
740
+ ],
741
+ "conflicts": [],
742
+ "precedences": [],
743
+ "externals": [],
744
+ "inline": [],
745
+ "supertypes": [],
746
+ "reserved": {}
747
+ }