tree-sitter-compact 0.0.0-stage → 0.3.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,4613 @@
1
+ {
2
+ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
3
+ "name": "compact",
4
+ "rules": {
5
+ "source_file": {
6
+ "type": "REPEAT",
7
+ "content": {
8
+ "type": "SYMBOL",
9
+ "name": "_pelt"
10
+ }
11
+ },
12
+ "comment": {
13
+ "type": "CHOICE",
14
+ "members": [
15
+ {
16
+ "type": "TOKEN",
17
+ "content": {
18
+ "type": "SEQ",
19
+ "members": [
20
+ {
21
+ "type": "STRING",
22
+ "value": "//"
23
+ },
24
+ {
25
+ "type": "PATTERN",
26
+ "value": "[^\\n]*"
27
+ }
28
+ ]
29
+ }
30
+ },
31
+ {
32
+ "type": "TOKEN",
33
+ "content": {
34
+ "type": "PATTERN",
35
+ "value": "\\/\\*([^*]|\\*[^\\/])*\\*\\/"
36
+ }
37
+ }
38
+ ]
39
+ },
40
+ "_pelt": {
41
+ "type": "CHOICE",
42
+ "members": [
43
+ {
44
+ "type": "SYMBOL",
45
+ "name": "pragma"
46
+ },
47
+ {
48
+ "type": "SYMBOL",
49
+ "name": "incld"
50
+ },
51
+ {
52
+ "type": "SYMBOL",
53
+ "name": "mdefn"
54
+ },
55
+ {
56
+ "type": "SYMBOL",
57
+ "name": "idecl"
58
+ },
59
+ {
60
+ "type": "SYMBOL",
61
+ "name": "xdecl"
62
+ },
63
+ {
64
+ "type": "SYMBOL",
65
+ "name": "ldecl"
66
+ },
67
+ {
68
+ "type": "SYMBOL",
69
+ "name": "lconstructor"
70
+ },
71
+ {
72
+ "type": "SYMBOL",
73
+ "name": "cdefn"
74
+ },
75
+ {
76
+ "type": "SYMBOL",
77
+ "name": "wdecl"
78
+ },
79
+ {
80
+ "type": "SYMBOL",
81
+ "name": "ecdecl"
82
+ },
83
+ {
84
+ "type": "SYMBOL",
85
+ "name": "struct"
86
+ },
87
+ {
88
+ "type": "SYMBOL",
89
+ "name": "enumdef"
90
+ },
91
+ {
92
+ "type": "SYMBOL",
93
+ "name": "contract_implements_declaration"
94
+ },
95
+ {
96
+ "type": "SYMBOL",
97
+ "name": "type_alias_declaration"
98
+ }
99
+ ]
100
+ },
101
+ "pragma": {
102
+ "type": "SEQ",
103
+ "members": [
104
+ {
105
+ "type": "STRING",
106
+ "value": "pragma"
107
+ },
108
+ {
109
+ "type": "FIELD",
110
+ "name": "id",
111
+ "content": {
112
+ "type": "SYMBOL",
113
+ "name": "id"
114
+ }
115
+ },
116
+ {
117
+ "type": "SYMBOL",
118
+ "name": "_version_expr"
119
+ },
120
+ {
121
+ "type": "STRING",
122
+ "value": ";"
123
+ }
124
+ ]
125
+ },
126
+ "_version_expr": {
127
+ "type": "PREC_LEFT",
128
+ "value": 1,
129
+ "content": {
130
+ "type": "CHOICE",
131
+ "members": [
132
+ {
133
+ "type": "SEQ",
134
+ "members": [
135
+ {
136
+ "type": "SYMBOL",
137
+ "name": "_version_expr"
138
+ },
139
+ {
140
+ "type": "SYMBOL",
141
+ "name": "or"
142
+ },
143
+ {
144
+ "type": "SYMBOL",
145
+ "name": "_version_expr0"
146
+ }
147
+ ]
148
+ },
149
+ {
150
+ "type": "SYMBOL",
151
+ "name": "_version_expr0"
152
+ }
153
+ ]
154
+ }
155
+ },
156
+ "_version_expr0": {
157
+ "type": "PREC_LEFT",
158
+ "value": 2,
159
+ "content": {
160
+ "type": "CHOICE",
161
+ "members": [
162
+ {
163
+ "type": "SEQ",
164
+ "members": [
165
+ {
166
+ "type": "SYMBOL",
167
+ "name": "_version_expr0"
168
+ },
169
+ {
170
+ "type": "SYMBOL",
171
+ "name": "and"
172
+ },
173
+ {
174
+ "type": "SYMBOL",
175
+ "name": "_version_term"
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "type": "SYMBOL",
181
+ "name": "_version_term"
182
+ }
183
+ ]
184
+ }
185
+ },
186
+ "_version_term": {
187
+ "type": "CHOICE",
188
+ "members": [
189
+ {
190
+ "type": "SYMBOL",
191
+ "name": "_version_atom"
192
+ },
193
+ {
194
+ "type": "FIELD",
195
+ "name": "version_expression",
196
+ "content": {
197
+ "type": "SEQ",
198
+ "members": [
199
+ {
200
+ "type": "SYMBOL",
201
+ "name": "_version_op"
202
+ },
203
+ {
204
+ "type": "SYMBOL",
205
+ "name": "_version_atom"
206
+ }
207
+ ]
208
+ }
209
+ },
210
+ {
211
+ "type": "SEQ",
212
+ "members": [
213
+ {
214
+ "type": "STRING",
215
+ "value": "("
216
+ },
217
+ {
218
+ "type": "SYMBOL",
219
+ "name": "_version_expr"
220
+ },
221
+ {
222
+ "type": "STRING",
223
+ "value": ")"
224
+ }
225
+ ]
226
+ }
227
+ ]
228
+ },
229
+ "_version_atom": {
230
+ "type": "CHOICE",
231
+ "members": [
232
+ {
233
+ "type": "SYMBOL",
234
+ "name": "nat"
235
+ },
236
+ {
237
+ "type": "SYMBOL",
238
+ "name": "version"
239
+ }
240
+ ]
241
+ },
242
+ "_version_op": {
243
+ "type": "CHOICE",
244
+ "members": [
245
+ {
246
+ "type": "SYMBOL",
247
+ "name": "not"
248
+ },
249
+ {
250
+ "type": "SYMBOL",
251
+ "name": "greater_than"
252
+ },
253
+ {
254
+ "type": "SYMBOL",
255
+ "name": "less_than"
256
+ },
257
+ {
258
+ "type": "SYMBOL",
259
+ "name": "greater_than_or_equal"
260
+ },
261
+ {
262
+ "type": "SYMBOL",
263
+ "name": "less_than_or_equal"
264
+ }
265
+ ]
266
+ },
267
+ "type_alias_declaration": {
268
+ "type": "SEQ",
269
+ "members": [
270
+ {
271
+ "type": "CHOICE",
272
+ "members": [
273
+ {
274
+ "type": "FIELD",
275
+ "name": "export",
276
+ "content": {
277
+ "type": "SYMBOL",
278
+ "name": "export"
279
+ }
280
+ },
281
+ {
282
+ "type": "BLANK"
283
+ }
284
+ ]
285
+ },
286
+ {
287
+ "type": "CHOICE",
288
+ "members": [
289
+ {
290
+ "type": "STRING",
291
+ "value": "new"
292
+ },
293
+ {
294
+ "type": "BLANK"
295
+ }
296
+ ]
297
+ },
298
+ {
299
+ "type": "STRING",
300
+ "value": "type"
301
+ },
302
+ {
303
+ "type": "FIELD",
304
+ "name": "name",
305
+ "content": {
306
+ "type": "SYMBOL",
307
+ "name": "type_name"
308
+ }
309
+ },
310
+ {
311
+ "type": "CHOICE",
312
+ "members": [
313
+ {
314
+ "type": "FIELD",
315
+ "name": "gparams",
316
+ "content": {
317
+ "type": "SYMBOL",
318
+ "name": "gparams"
319
+ }
320
+ },
321
+ {
322
+ "type": "BLANK"
323
+ }
324
+ ]
325
+ },
326
+ {
327
+ "type": "STRING",
328
+ "value": "="
329
+ },
330
+ {
331
+ "type": "FIELD",
332
+ "name": "type",
333
+ "content": {
334
+ "type": "SYMBOL",
335
+ "name": "type"
336
+ }
337
+ },
338
+ {
339
+ "type": "STRING",
340
+ "value": ";"
341
+ }
342
+ ]
343
+ },
344
+ "incld": {
345
+ "type": "SEQ",
346
+ "members": [
347
+ {
348
+ "type": "STRING",
349
+ "value": "include"
350
+ },
351
+ {
352
+ "type": "FIELD",
353
+ "name": "file",
354
+ "content": {
355
+ "type": "SYMBOL",
356
+ "name": "file"
357
+ }
358
+ },
359
+ {
360
+ "type": "STRING",
361
+ "value": ";"
362
+ }
363
+ ]
364
+ },
365
+ "mdefn": {
366
+ "type": "SEQ",
367
+ "members": [
368
+ {
369
+ "type": "CHOICE",
370
+ "members": [
371
+ {
372
+ "type": "FIELD",
373
+ "name": "export",
374
+ "content": {
375
+ "type": "SYMBOL",
376
+ "name": "export"
377
+ }
378
+ },
379
+ {
380
+ "type": "BLANK"
381
+ }
382
+ ]
383
+ },
384
+ {
385
+ "type": "STRING",
386
+ "value": "module"
387
+ },
388
+ {
389
+ "type": "FIELD",
390
+ "name": "name",
391
+ "content": {
392
+ "type": "SYMBOL",
393
+ "name": "module_name"
394
+ }
395
+ },
396
+ {
397
+ "type": "CHOICE",
398
+ "members": [
399
+ {
400
+ "type": "FIELD",
401
+ "name": "gparams",
402
+ "content": {
403
+ "type": "SYMBOL",
404
+ "name": "gparams"
405
+ }
406
+ },
407
+ {
408
+ "type": "BLANK"
409
+ }
410
+ ]
411
+ },
412
+ {
413
+ "type": "STRING",
414
+ "value": "{"
415
+ },
416
+ {
417
+ "type": "REPEAT",
418
+ "content": {
419
+ "type": "FIELD",
420
+ "name": "module_element",
421
+ "content": {
422
+ "type": "SYMBOL",
423
+ "name": "_pelt"
424
+ }
425
+ }
426
+ },
427
+ {
428
+ "type": "STRING",
429
+ "value": "}"
430
+ }
431
+ ]
432
+ },
433
+ "gparams": {
434
+ "type": "SEQ",
435
+ "members": [
436
+ {
437
+ "type": "STRING",
438
+ "value": "<"
439
+ },
440
+ {
441
+ "type": "SEQ",
442
+ "members": [
443
+ {
444
+ "type": "FIELD",
445
+ "name": "gparam",
446
+ "content": {
447
+ "type": "SYMBOL",
448
+ "name": "generic_param"
449
+ }
450
+ },
451
+ {
452
+ "type": "REPEAT",
453
+ "content": {
454
+ "type": "SEQ",
455
+ "members": [
456
+ {
457
+ "type": "STRING",
458
+ "value": ","
459
+ },
460
+ {
461
+ "type": "FIELD",
462
+ "name": "gparam",
463
+ "content": {
464
+ "type": "SYMBOL",
465
+ "name": "generic_param"
466
+ }
467
+ }
468
+ ]
469
+ }
470
+ },
471
+ {
472
+ "type": "CHOICE",
473
+ "members": [
474
+ {
475
+ "type": "STRING",
476
+ "value": ","
477
+ },
478
+ {
479
+ "type": "BLANK"
480
+ }
481
+ ]
482
+ }
483
+ ]
484
+ },
485
+ {
486
+ "type": "STRING",
487
+ "value": ">"
488
+ }
489
+ ]
490
+ },
491
+ "generic_param": {
492
+ "type": "CHOICE",
493
+ "members": [
494
+ {
495
+ "type": "SEQ",
496
+ "members": [
497
+ {
498
+ "type": "STRING",
499
+ "value": "#"
500
+ },
501
+ {
502
+ "type": "SYMBOL",
503
+ "name": "tvar_name"
504
+ }
505
+ ]
506
+ },
507
+ {
508
+ "type": "SYMBOL",
509
+ "name": "tvar_name"
510
+ }
511
+ ]
512
+ },
513
+ "idecl": {
514
+ "type": "SEQ",
515
+ "members": [
516
+ {
517
+ "type": "STRING",
518
+ "value": "import"
519
+ },
520
+ {
521
+ "type": "CHOICE",
522
+ "members": [
523
+ {
524
+ "type": "FIELD",
525
+ "name": "selection",
526
+ "content": {
527
+ "type": "SYMBOL",
528
+ "name": "import_selection"
529
+ }
530
+ },
531
+ {
532
+ "type": "BLANK"
533
+ }
534
+ ]
535
+ },
536
+ {
537
+ "type": "FIELD",
538
+ "name": "id",
539
+ "content": {
540
+ "type": "SYMBOL",
541
+ "name": "import_name"
542
+ }
543
+ },
544
+ {
545
+ "type": "CHOICE",
546
+ "members": [
547
+ {
548
+ "type": "FIELD",
549
+ "name": "gargs",
550
+ "content": {
551
+ "type": "SYMBOL",
552
+ "name": "gargs"
553
+ }
554
+ },
555
+ {
556
+ "type": "BLANK"
557
+ }
558
+ ]
559
+ },
560
+ {
561
+ "type": "CHOICE",
562
+ "members": [
563
+ {
564
+ "type": "FIELD",
565
+ "name": "prefix",
566
+ "content": {
567
+ "type": "SYMBOL",
568
+ "name": "prefix"
569
+ }
570
+ },
571
+ {
572
+ "type": "BLANK"
573
+ }
574
+ ]
575
+ },
576
+ {
577
+ "type": "STRING",
578
+ "value": ";"
579
+ }
580
+ ]
581
+ },
582
+ "import_selection": {
583
+ "type": "SEQ",
584
+ "members": [
585
+ {
586
+ "type": "STRING",
587
+ "value": "{"
588
+ },
589
+ {
590
+ "type": "CHOICE",
591
+ "members": [
592
+ {
593
+ "type": "SEQ",
594
+ "members": [
595
+ {
596
+ "type": "FIELD",
597
+ "name": "element",
598
+ "content": {
599
+ "type": "SYMBOL",
600
+ "name": "import_element"
601
+ }
602
+ },
603
+ {
604
+ "type": "REPEAT",
605
+ "content": {
606
+ "type": "SEQ",
607
+ "members": [
608
+ {
609
+ "type": "STRING",
610
+ "value": ","
611
+ },
612
+ {
613
+ "type": "FIELD",
614
+ "name": "element",
615
+ "content": {
616
+ "type": "SYMBOL",
617
+ "name": "import_element"
618
+ }
619
+ }
620
+ ]
621
+ }
622
+ },
623
+ {
624
+ "type": "CHOICE",
625
+ "members": [
626
+ {
627
+ "type": "STRING",
628
+ "value": ","
629
+ },
630
+ {
631
+ "type": "BLANK"
632
+ }
633
+ ]
634
+ }
635
+ ]
636
+ },
637
+ {
638
+ "type": "BLANK"
639
+ }
640
+ ]
641
+ },
642
+ {
643
+ "type": "STRING",
644
+ "value": "}"
645
+ },
646
+ {
647
+ "type": "STRING",
648
+ "value": "from"
649
+ }
650
+ ]
651
+ },
652
+ "import_element": {
653
+ "type": "SEQ",
654
+ "members": [
655
+ {
656
+ "type": "FIELD",
657
+ "name": "id",
658
+ "content": {
659
+ "type": "SYMBOL",
660
+ "name": "id"
661
+ }
662
+ },
663
+ {
664
+ "type": "CHOICE",
665
+ "members": [
666
+ {
667
+ "type": "SEQ",
668
+ "members": [
669
+ {
670
+ "type": "STRING",
671
+ "value": "as"
672
+ },
673
+ {
674
+ "type": "FIELD",
675
+ "name": "alias",
676
+ "content": {
677
+ "type": "SYMBOL",
678
+ "name": "id"
679
+ }
680
+ }
681
+ ]
682
+ },
683
+ {
684
+ "type": "BLANK"
685
+ }
686
+ ]
687
+ }
688
+ ]
689
+ },
690
+ "import_name": {
691
+ "type": "CHOICE",
692
+ "members": [
693
+ {
694
+ "type": "SYMBOL",
695
+ "name": "id"
696
+ },
697
+ {
698
+ "type": "SYMBOL",
699
+ "name": "file"
700
+ }
701
+ ]
702
+ },
703
+ "gargs": {
704
+ "type": "SEQ",
705
+ "members": [
706
+ {
707
+ "type": "STRING",
708
+ "value": "<"
709
+ },
710
+ {
711
+ "type": "SEQ",
712
+ "members": [
713
+ {
714
+ "type": "FIELD",
715
+ "name": "garg",
716
+ "content": {
717
+ "type": "SYMBOL",
718
+ "name": "garg"
719
+ }
720
+ },
721
+ {
722
+ "type": "REPEAT",
723
+ "content": {
724
+ "type": "SEQ",
725
+ "members": [
726
+ {
727
+ "type": "STRING",
728
+ "value": ","
729
+ },
730
+ {
731
+ "type": "FIELD",
732
+ "name": "garg",
733
+ "content": {
734
+ "type": "SYMBOL",
735
+ "name": "garg"
736
+ }
737
+ }
738
+ ]
739
+ }
740
+ },
741
+ {
742
+ "type": "CHOICE",
743
+ "members": [
744
+ {
745
+ "type": "STRING",
746
+ "value": ","
747
+ },
748
+ {
749
+ "type": "BLANK"
750
+ }
751
+ ]
752
+ }
753
+ ]
754
+ },
755
+ {
756
+ "type": "STRING",
757
+ "value": ">"
758
+ }
759
+ ]
760
+ },
761
+ "prefix": {
762
+ "type": "SEQ",
763
+ "members": [
764
+ {
765
+ "type": "STRING",
766
+ "value": "prefix"
767
+ },
768
+ {
769
+ "type": "FIELD",
770
+ "name": "id",
771
+ "content": {
772
+ "type": "SYMBOL",
773
+ "name": "id"
774
+ }
775
+ }
776
+ ]
777
+ },
778
+ "export": {
779
+ "type": "STRING",
780
+ "value": "export"
781
+ },
782
+ "sealed": {
783
+ "type": "STRING",
784
+ "value": "sealed"
785
+ },
786
+ "pure": {
787
+ "type": "STRING",
788
+ "value": "pure"
789
+ },
790
+ "xdecl": {
791
+ "type": "SEQ",
792
+ "members": [
793
+ {
794
+ "type": "STRING",
795
+ "value": "export"
796
+ },
797
+ {
798
+ "type": "STRING",
799
+ "value": "{"
800
+ },
801
+ {
802
+ "type": "SEQ",
803
+ "members": [
804
+ {
805
+ "type": "FIELD",
806
+ "name": "id",
807
+ "content": {
808
+ "type": "SYMBOL",
809
+ "name": "id"
810
+ }
811
+ },
812
+ {
813
+ "type": "REPEAT",
814
+ "content": {
815
+ "type": "SEQ",
816
+ "members": [
817
+ {
818
+ "type": "STRING",
819
+ "value": ","
820
+ },
821
+ {
822
+ "type": "FIELD",
823
+ "name": "id",
824
+ "content": {
825
+ "type": "SYMBOL",
826
+ "name": "id"
827
+ }
828
+ }
829
+ ]
830
+ }
831
+ },
832
+ {
833
+ "type": "CHOICE",
834
+ "members": [
835
+ {
836
+ "type": "STRING",
837
+ "value": ","
838
+ },
839
+ {
840
+ "type": "BLANK"
841
+ }
842
+ ]
843
+ }
844
+ ]
845
+ },
846
+ {
847
+ "type": "STRING",
848
+ "value": "}"
849
+ },
850
+ {
851
+ "type": "CHOICE",
852
+ "members": [
853
+ {
854
+ "type": "STRING",
855
+ "value": ";"
856
+ },
857
+ {
858
+ "type": "BLANK"
859
+ }
860
+ ]
861
+ }
862
+ ]
863
+ },
864
+ "ldecl": {
865
+ "type": "SEQ",
866
+ "members": [
867
+ {
868
+ "type": "CHOICE",
869
+ "members": [
870
+ {
871
+ "type": "FIELD",
872
+ "name": "export",
873
+ "content": {
874
+ "type": "SYMBOL",
875
+ "name": "export"
876
+ }
877
+ },
878
+ {
879
+ "type": "BLANK"
880
+ }
881
+ ]
882
+ },
883
+ {
884
+ "type": "CHOICE",
885
+ "members": [
886
+ {
887
+ "type": "FIELD",
888
+ "name": "sealed",
889
+ "content": {
890
+ "type": "SYMBOL",
891
+ "name": "sealed"
892
+ }
893
+ },
894
+ {
895
+ "type": "BLANK"
896
+ }
897
+ ]
898
+ },
899
+ {
900
+ "type": "STRING",
901
+ "value": "ledger"
902
+ },
903
+ {
904
+ "type": "FIELD",
905
+ "name": "name",
906
+ "content": {
907
+ "type": "SYMBOL",
908
+ "name": "id"
909
+ }
910
+ },
911
+ {
912
+ "type": "STRING",
913
+ "value": ":"
914
+ },
915
+ {
916
+ "type": "FIELD",
917
+ "name": "type",
918
+ "content": {
919
+ "type": "SYMBOL",
920
+ "name": "type"
921
+ }
922
+ },
923
+ {
924
+ "type": "STRING",
925
+ "value": ";"
926
+ }
927
+ ]
928
+ },
929
+ "lconstructor": {
930
+ "type": "SEQ",
931
+ "members": [
932
+ {
933
+ "type": "STRING",
934
+ "value": "constructor"
935
+ },
936
+ {
937
+ "type": "STRING",
938
+ "value": "("
939
+ },
940
+ {
941
+ "type": "CHOICE",
942
+ "members": [
943
+ {
944
+ "type": "SEQ",
945
+ "members": [
946
+ {
947
+ "type": "FIELD",
948
+ "name": "parg",
949
+ "content": {
950
+ "type": "SYMBOL",
951
+ "name": "parg"
952
+ }
953
+ },
954
+ {
955
+ "type": "REPEAT",
956
+ "content": {
957
+ "type": "SEQ",
958
+ "members": [
959
+ {
960
+ "type": "STRING",
961
+ "value": ","
962
+ },
963
+ {
964
+ "type": "FIELD",
965
+ "name": "parg",
966
+ "content": {
967
+ "type": "SYMBOL",
968
+ "name": "parg"
969
+ }
970
+ }
971
+ ]
972
+ }
973
+ },
974
+ {
975
+ "type": "CHOICE",
976
+ "members": [
977
+ {
978
+ "type": "STRING",
979
+ "value": ","
980
+ },
981
+ {
982
+ "type": "BLANK"
983
+ }
984
+ ]
985
+ }
986
+ ]
987
+ },
988
+ {
989
+ "type": "BLANK"
990
+ }
991
+ ]
992
+ },
993
+ {
994
+ "type": "STRING",
995
+ "value": ")"
996
+ },
997
+ {
998
+ "type": "FIELD",
999
+ "name": "body",
1000
+ "content": {
1001
+ "type": "SYMBOL",
1002
+ "name": "block"
1003
+ }
1004
+ },
1005
+ {
1006
+ "type": "CHOICE",
1007
+ "members": [
1008
+ {
1009
+ "type": "STRING",
1010
+ "value": ";"
1011
+ },
1012
+ {
1013
+ "type": "BLANK"
1014
+ }
1015
+ ]
1016
+ }
1017
+ ]
1018
+ },
1019
+ "cdefn": {
1020
+ "type": "SEQ",
1021
+ "members": [
1022
+ {
1023
+ "type": "CHOICE",
1024
+ "members": [
1025
+ {
1026
+ "type": "FIELD",
1027
+ "name": "export",
1028
+ "content": {
1029
+ "type": "SYMBOL",
1030
+ "name": "export"
1031
+ }
1032
+ },
1033
+ {
1034
+ "type": "BLANK"
1035
+ }
1036
+ ]
1037
+ },
1038
+ {
1039
+ "type": "CHOICE",
1040
+ "members": [
1041
+ {
1042
+ "type": "FIELD",
1043
+ "name": "pure",
1044
+ "content": {
1045
+ "type": "SYMBOL",
1046
+ "name": "pure"
1047
+ }
1048
+ },
1049
+ {
1050
+ "type": "BLANK"
1051
+ }
1052
+ ]
1053
+ },
1054
+ {
1055
+ "type": "STRING",
1056
+ "value": "circuit"
1057
+ },
1058
+ {
1059
+ "type": "FIELD",
1060
+ "name": "id",
1061
+ "content": {
1062
+ "type": "SYMBOL",
1063
+ "name": "function_name"
1064
+ }
1065
+ },
1066
+ {
1067
+ "type": "CHOICE",
1068
+ "members": [
1069
+ {
1070
+ "type": "FIELD",
1071
+ "name": "gparams",
1072
+ "content": {
1073
+ "type": "SYMBOL",
1074
+ "name": "gparams"
1075
+ }
1076
+ },
1077
+ {
1078
+ "type": "BLANK"
1079
+ }
1080
+ ]
1081
+ },
1082
+ {
1083
+ "type": "STRING",
1084
+ "value": "("
1085
+ },
1086
+ {
1087
+ "type": "CHOICE",
1088
+ "members": [
1089
+ {
1090
+ "type": "SEQ",
1091
+ "members": [
1092
+ {
1093
+ "type": "FIELD",
1094
+ "name": "parg",
1095
+ "content": {
1096
+ "type": "SYMBOL",
1097
+ "name": "parg"
1098
+ }
1099
+ },
1100
+ {
1101
+ "type": "REPEAT",
1102
+ "content": {
1103
+ "type": "SEQ",
1104
+ "members": [
1105
+ {
1106
+ "type": "STRING",
1107
+ "value": ","
1108
+ },
1109
+ {
1110
+ "type": "FIELD",
1111
+ "name": "parg",
1112
+ "content": {
1113
+ "type": "SYMBOL",
1114
+ "name": "parg"
1115
+ }
1116
+ }
1117
+ ]
1118
+ }
1119
+ },
1120
+ {
1121
+ "type": "CHOICE",
1122
+ "members": [
1123
+ {
1124
+ "type": "STRING",
1125
+ "value": ","
1126
+ },
1127
+ {
1128
+ "type": "BLANK"
1129
+ }
1130
+ ]
1131
+ }
1132
+ ]
1133
+ },
1134
+ {
1135
+ "type": "BLANK"
1136
+ }
1137
+ ]
1138
+ },
1139
+ {
1140
+ "type": "STRING",
1141
+ "value": ")"
1142
+ },
1143
+ {
1144
+ "type": "STRING",
1145
+ "value": ":"
1146
+ },
1147
+ {
1148
+ "type": "FIELD",
1149
+ "name": "type",
1150
+ "content": {
1151
+ "type": "SYMBOL",
1152
+ "name": "type"
1153
+ }
1154
+ },
1155
+ {
1156
+ "type": "FIELD",
1157
+ "name": "body",
1158
+ "content": {
1159
+ "type": "SYMBOL",
1160
+ "name": "block"
1161
+ }
1162
+ }
1163
+ ]
1164
+ },
1165
+ "wdecl": {
1166
+ "type": "SEQ",
1167
+ "members": [
1168
+ {
1169
+ "type": "CHOICE",
1170
+ "members": [
1171
+ {
1172
+ "type": "FIELD",
1173
+ "name": "export",
1174
+ "content": {
1175
+ "type": "SYMBOL",
1176
+ "name": "export"
1177
+ }
1178
+ },
1179
+ {
1180
+ "type": "BLANK"
1181
+ }
1182
+ ]
1183
+ },
1184
+ {
1185
+ "type": "STRING",
1186
+ "value": "witness"
1187
+ },
1188
+ {
1189
+ "type": "FIELD",
1190
+ "name": "id",
1191
+ "content": {
1192
+ "type": "SYMBOL",
1193
+ "name": "function_name"
1194
+ }
1195
+ },
1196
+ {
1197
+ "type": "CHOICE",
1198
+ "members": [
1199
+ {
1200
+ "type": "FIELD",
1201
+ "name": "gparams",
1202
+ "content": {
1203
+ "type": "SYMBOL",
1204
+ "name": "gparams"
1205
+ }
1206
+ },
1207
+ {
1208
+ "type": "BLANK"
1209
+ }
1210
+ ]
1211
+ },
1212
+ {
1213
+ "type": "STRING",
1214
+ "value": "("
1215
+ },
1216
+ {
1217
+ "type": "FIELD",
1218
+ "name": "args",
1219
+ "content": {
1220
+ "type": "CHOICE",
1221
+ "members": [
1222
+ {
1223
+ "type": "SEQ",
1224
+ "members": [
1225
+ {
1226
+ "type": "FIELD",
1227
+ "name": "arg",
1228
+ "content": {
1229
+ "type": "SYMBOL",
1230
+ "name": "arg"
1231
+ }
1232
+ },
1233
+ {
1234
+ "type": "REPEAT",
1235
+ "content": {
1236
+ "type": "SEQ",
1237
+ "members": [
1238
+ {
1239
+ "type": "STRING",
1240
+ "value": ","
1241
+ },
1242
+ {
1243
+ "type": "FIELD",
1244
+ "name": "arg",
1245
+ "content": {
1246
+ "type": "SYMBOL",
1247
+ "name": "arg"
1248
+ }
1249
+ }
1250
+ ]
1251
+ }
1252
+ },
1253
+ {
1254
+ "type": "CHOICE",
1255
+ "members": [
1256
+ {
1257
+ "type": "STRING",
1258
+ "value": ","
1259
+ },
1260
+ {
1261
+ "type": "BLANK"
1262
+ }
1263
+ ]
1264
+ }
1265
+ ]
1266
+ },
1267
+ {
1268
+ "type": "BLANK"
1269
+ }
1270
+ ]
1271
+ }
1272
+ },
1273
+ {
1274
+ "type": "STRING",
1275
+ "value": ")"
1276
+ },
1277
+ {
1278
+ "type": "STRING",
1279
+ "value": ":"
1280
+ },
1281
+ {
1282
+ "type": "FIELD",
1283
+ "name": "type",
1284
+ "content": {
1285
+ "type": "SYMBOL",
1286
+ "name": "type"
1287
+ }
1288
+ },
1289
+ {
1290
+ "type": "STRING",
1291
+ "value": ";"
1292
+ }
1293
+ ]
1294
+ },
1295
+ "ecdecl": {
1296
+ "type": "SEQ",
1297
+ "members": [
1298
+ {
1299
+ "type": "CHOICE",
1300
+ "members": [
1301
+ {
1302
+ "type": "FIELD",
1303
+ "name": "export",
1304
+ "content": {
1305
+ "type": "SYMBOL",
1306
+ "name": "export"
1307
+ }
1308
+ },
1309
+ {
1310
+ "type": "BLANK"
1311
+ }
1312
+ ]
1313
+ },
1314
+ {
1315
+ "type": "STRING",
1316
+ "value": "contract"
1317
+ },
1318
+ {
1319
+ "type": "FIELD",
1320
+ "name": "name",
1321
+ "content": {
1322
+ "type": "SYMBOL",
1323
+ "name": "contract_name"
1324
+ }
1325
+ },
1326
+ {
1327
+ "type": "STRING",
1328
+ "value": "{"
1329
+ },
1330
+ {
1331
+ "type": "CHOICE",
1332
+ "members": [
1333
+ {
1334
+ "type": "SYMBOL",
1335
+ "name": "_ecdecl_circuits"
1336
+ },
1337
+ {
1338
+ "type": "BLANK"
1339
+ }
1340
+ ]
1341
+ },
1342
+ {
1343
+ "type": "STRING",
1344
+ "value": "}"
1345
+ },
1346
+ {
1347
+ "type": "CHOICE",
1348
+ "members": [
1349
+ {
1350
+ "type": "STRING",
1351
+ "value": ";"
1352
+ },
1353
+ {
1354
+ "type": "BLANK"
1355
+ }
1356
+ ]
1357
+ }
1358
+ ]
1359
+ },
1360
+ "_ecdecl_circuits": {
1361
+ "type": "SEQ",
1362
+ "members": [
1363
+ {
1364
+ "type": "FIELD",
1365
+ "name": "contract_circuit",
1366
+ "content": {
1367
+ "type": "SYMBOL",
1368
+ "name": "ecdecl_circuit"
1369
+ }
1370
+ },
1371
+ {
1372
+ "type": "REPEAT",
1373
+ "content": {
1374
+ "type": "SEQ",
1375
+ "members": [
1376
+ {
1377
+ "type": "CHOICE",
1378
+ "members": [
1379
+ {
1380
+ "type": "STRING",
1381
+ "value": ";"
1382
+ },
1383
+ {
1384
+ "type": "STRING",
1385
+ "value": ","
1386
+ }
1387
+ ]
1388
+ },
1389
+ {
1390
+ "type": "FIELD",
1391
+ "name": "contract_circuit",
1392
+ "content": {
1393
+ "type": "SYMBOL",
1394
+ "name": "ecdecl_circuit"
1395
+ }
1396
+ }
1397
+ ]
1398
+ }
1399
+ },
1400
+ {
1401
+ "type": "CHOICE",
1402
+ "members": [
1403
+ {
1404
+ "type": "CHOICE",
1405
+ "members": [
1406
+ {
1407
+ "type": "STRING",
1408
+ "value": ";"
1409
+ },
1410
+ {
1411
+ "type": "STRING",
1412
+ "value": ","
1413
+ }
1414
+ ]
1415
+ },
1416
+ {
1417
+ "type": "BLANK"
1418
+ }
1419
+ ]
1420
+ }
1421
+ ]
1422
+ },
1423
+ "ecdecl_circuit": {
1424
+ "type": "SEQ",
1425
+ "members": [
1426
+ {
1427
+ "type": "CHOICE",
1428
+ "members": [
1429
+ {
1430
+ "type": "FIELD",
1431
+ "name": "pure",
1432
+ "content": {
1433
+ "type": "SYMBOL",
1434
+ "name": "pure"
1435
+ }
1436
+ },
1437
+ {
1438
+ "type": "BLANK"
1439
+ }
1440
+ ]
1441
+ },
1442
+ {
1443
+ "type": "STRING",
1444
+ "value": "circuit"
1445
+ },
1446
+ {
1447
+ "type": "FIELD",
1448
+ "name": "id",
1449
+ "content": {
1450
+ "type": "SYMBOL",
1451
+ "name": "id"
1452
+ }
1453
+ },
1454
+ {
1455
+ "type": "STRING",
1456
+ "value": "("
1457
+ },
1458
+ {
1459
+ "type": "CHOICE",
1460
+ "members": [
1461
+ {
1462
+ "type": "SEQ",
1463
+ "members": [
1464
+ {
1465
+ "type": "FIELD",
1466
+ "name": "arg",
1467
+ "content": {
1468
+ "type": "SYMBOL",
1469
+ "name": "arg"
1470
+ }
1471
+ },
1472
+ {
1473
+ "type": "REPEAT",
1474
+ "content": {
1475
+ "type": "SEQ",
1476
+ "members": [
1477
+ {
1478
+ "type": "STRING",
1479
+ "value": ","
1480
+ },
1481
+ {
1482
+ "type": "FIELD",
1483
+ "name": "arg",
1484
+ "content": {
1485
+ "type": "SYMBOL",
1486
+ "name": "arg"
1487
+ }
1488
+ }
1489
+ ]
1490
+ }
1491
+ },
1492
+ {
1493
+ "type": "CHOICE",
1494
+ "members": [
1495
+ {
1496
+ "type": "STRING",
1497
+ "value": ","
1498
+ },
1499
+ {
1500
+ "type": "BLANK"
1501
+ }
1502
+ ]
1503
+ }
1504
+ ]
1505
+ },
1506
+ {
1507
+ "type": "BLANK"
1508
+ }
1509
+ ]
1510
+ },
1511
+ {
1512
+ "type": "STRING",
1513
+ "value": ")"
1514
+ },
1515
+ {
1516
+ "type": "STRING",
1517
+ "value": ":"
1518
+ },
1519
+ {
1520
+ "type": "FIELD",
1521
+ "name": "type",
1522
+ "content": {
1523
+ "type": "SYMBOL",
1524
+ "name": "type"
1525
+ }
1526
+ }
1527
+ ]
1528
+ },
1529
+ "contract_implements_declaration": {
1530
+ "type": "SEQ",
1531
+ "members": [
1532
+ {
1533
+ "type": "STRING",
1534
+ "value": "contract"
1535
+ },
1536
+ {
1537
+ "type": "STRING",
1538
+ "value": "implements"
1539
+ },
1540
+ {
1541
+ "type": "FIELD",
1542
+ "name": "type",
1543
+ "content": {
1544
+ "type": "SYMBOL",
1545
+ "name": "type"
1546
+ }
1547
+ },
1548
+ {
1549
+ "type": "STRING",
1550
+ "value": ";"
1551
+ }
1552
+ ]
1553
+ },
1554
+ "struct": {
1555
+ "type": "SEQ",
1556
+ "members": [
1557
+ {
1558
+ "type": "CHOICE",
1559
+ "members": [
1560
+ {
1561
+ "type": "FIELD",
1562
+ "name": "export",
1563
+ "content": {
1564
+ "type": "SYMBOL",
1565
+ "name": "export"
1566
+ }
1567
+ },
1568
+ {
1569
+ "type": "BLANK"
1570
+ }
1571
+ ]
1572
+ },
1573
+ {
1574
+ "type": "STRING",
1575
+ "value": "struct"
1576
+ },
1577
+ {
1578
+ "type": "FIELD",
1579
+ "name": "name",
1580
+ "content": {
1581
+ "type": "SYMBOL",
1582
+ "name": "struct_name"
1583
+ }
1584
+ },
1585
+ {
1586
+ "type": "CHOICE",
1587
+ "members": [
1588
+ {
1589
+ "type": "FIELD",
1590
+ "name": "gparams",
1591
+ "content": {
1592
+ "type": "SYMBOL",
1593
+ "name": "gparams"
1594
+ }
1595
+ },
1596
+ {
1597
+ "type": "BLANK"
1598
+ }
1599
+ ]
1600
+ },
1601
+ {
1602
+ "type": "CHOICE",
1603
+ "members": [
1604
+ {
1605
+ "type": "SYMBOL",
1606
+ "name": "_struct_body_semicolon"
1607
+ },
1608
+ {
1609
+ "type": "SYMBOL",
1610
+ "name": "_struct_body_comma"
1611
+ }
1612
+ ]
1613
+ },
1614
+ {
1615
+ "type": "CHOICE",
1616
+ "members": [
1617
+ {
1618
+ "type": "STRING",
1619
+ "value": ";"
1620
+ },
1621
+ {
1622
+ "type": "BLANK"
1623
+ }
1624
+ ]
1625
+ }
1626
+ ]
1627
+ },
1628
+ "_struct_body_semicolon": {
1629
+ "type": "SEQ",
1630
+ "members": [
1631
+ {
1632
+ "type": "STRING",
1633
+ "value": "{"
1634
+ },
1635
+ {
1636
+ "type": "CHOICE",
1637
+ "members": [
1638
+ {
1639
+ "type": "SEQ",
1640
+ "members": [
1641
+ {
1642
+ "type": "FIELD",
1643
+ "name": "arg",
1644
+ "content": {
1645
+ "type": "SYMBOL",
1646
+ "name": "arg"
1647
+ }
1648
+ },
1649
+ {
1650
+ "type": "REPEAT",
1651
+ "content": {
1652
+ "type": "SEQ",
1653
+ "members": [
1654
+ {
1655
+ "type": "STRING",
1656
+ "value": ";"
1657
+ },
1658
+ {
1659
+ "type": "FIELD",
1660
+ "name": "arg",
1661
+ "content": {
1662
+ "type": "SYMBOL",
1663
+ "name": "arg"
1664
+ }
1665
+ }
1666
+ ]
1667
+ }
1668
+ }
1669
+ ]
1670
+ },
1671
+ {
1672
+ "type": "BLANK"
1673
+ }
1674
+ ]
1675
+ },
1676
+ {
1677
+ "type": "CHOICE",
1678
+ "members": [
1679
+ {
1680
+ "type": "STRING",
1681
+ "value": ";"
1682
+ },
1683
+ {
1684
+ "type": "BLANK"
1685
+ }
1686
+ ]
1687
+ },
1688
+ {
1689
+ "type": "STRING",
1690
+ "value": "}"
1691
+ }
1692
+ ]
1693
+ },
1694
+ "_struct_body_comma": {
1695
+ "type": "PREC",
1696
+ "value": 1,
1697
+ "content": {
1698
+ "type": "SEQ",
1699
+ "members": [
1700
+ {
1701
+ "type": "STRING",
1702
+ "value": "{"
1703
+ },
1704
+ {
1705
+ "type": "CHOICE",
1706
+ "members": [
1707
+ {
1708
+ "type": "SEQ",
1709
+ "members": [
1710
+ {
1711
+ "type": "FIELD",
1712
+ "name": "arg",
1713
+ "content": {
1714
+ "type": "SYMBOL",
1715
+ "name": "arg"
1716
+ }
1717
+ },
1718
+ {
1719
+ "type": "REPEAT",
1720
+ "content": {
1721
+ "type": "SEQ",
1722
+ "members": [
1723
+ {
1724
+ "type": "STRING",
1725
+ "value": ","
1726
+ },
1727
+ {
1728
+ "type": "FIELD",
1729
+ "name": "arg",
1730
+ "content": {
1731
+ "type": "SYMBOL",
1732
+ "name": "arg"
1733
+ }
1734
+ }
1735
+ ]
1736
+ }
1737
+ }
1738
+ ]
1739
+ },
1740
+ {
1741
+ "type": "BLANK"
1742
+ }
1743
+ ]
1744
+ },
1745
+ {
1746
+ "type": "CHOICE",
1747
+ "members": [
1748
+ {
1749
+ "type": "STRING",
1750
+ "value": ","
1751
+ },
1752
+ {
1753
+ "type": "BLANK"
1754
+ }
1755
+ ]
1756
+ },
1757
+ {
1758
+ "type": "STRING",
1759
+ "value": "}"
1760
+ }
1761
+ ]
1762
+ }
1763
+ },
1764
+ "enumdef": {
1765
+ "type": "SEQ",
1766
+ "members": [
1767
+ {
1768
+ "type": "CHOICE",
1769
+ "members": [
1770
+ {
1771
+ "type": "FIELD",
1772
+ "name": "export",
1773
+ "content": {
1774
+ "type": "SYMBOL",
1775
+ "name": "export"
1776
+ }
1777
+ },
1778
+ {
1779
+ "type": "BLANK"
1780
+ }
1781
+ ]
1782
+ },
1783
+ {
1784
+ "type": "STRING",
1785
+ "value": "enum"
1786
+ },
1787
+ {
1788
+ "type": "FIELD",
1789
+ "name": "name",
1790
+ "content": {
1791
+ "type": "SYMBOL",
1792
+ "name": "enum_name"
1793
+ }
1794
+ },
1795
+ {
1796
+ "type": "STRING",
1797
+ "value": "{"
1798
+ },
1799
+ {
1800
+ "type": "SEQ",
1801
+ "members": [
1802
+ {
1803
+ "type": "FIELD",
1804
+ "name": "id",
1805
+ "content": {
1806
+ "type": "SYMBOL",
1807
+ "name": "id"
1808
+ }
1809
+ },
1810
+ {
1811
+ "type": "REPEAT",
1812
+ "content": {
1813
+ "type": "SEQ",
1814
+ "members": [
1815
+ {
1816
+ "type": "STRING",
1817
+ "value": ","
1818
+ },
1819
+ {
1820
+ "type": "FIELD",
1821
+ "name": "id",
1822
+ "content": {
1823
+ "type": "SYMBOL",
1824
+ "name": "id"
1825
+ }
1826
+ }
1827
+ ]
1828
+ }
1829
+ },
1830
+ {
1831
+ "type": "CHOICE",
1832
+ "members": [
1833
+ {
1834
+ "type": "STRING",
1835
+ "value": ","
1836
+ },
1837
+ {
1838
+ "type": "BLANK"
1839
+ }
1840
+ ]
1841
+ }
1842
+ ]
1843
+ },
1844
+ {
1845
+ "type": "CHOICE",
1846
+ "members": [
1847
+ {
1848
+ "type": "STRING",
1849
+ "value": ","
1850
+ },
1851
+ {
1852
+ "type": "BLANK"
1853
+ }
1854
+ ]
1855
+ },
1856
+ {
1857
+ "type": "STRING",
1858
+ "value": "}"
1859
+ },
1860
+ {
1861
+ "type": "CHOICE",
1862
+ "members": [
1863
+ {
1864
+ "type": "STRING",
1865
+ "value": ";"
1866
+ },
1867
+ {
1868
+ "type": "BLANK"
1869
+ }
1870
+ ]
1871
+ }
1872
+ ]
1873
+ },
1874
+ "arg": {
1875
+ "type": "SEQ",
1876
+ "members": [
1877
+ {
1878
+ "type": "FIELD",
1879
+ "name": "id",
1880
+ "content": {
1881
+ "type": "SYMBOL",
1882
+ "name": "id"
1883
+ }
1884
+ },
1885
+ {
1886
+ "type": "STRING",
1887
+ "value": ":"
1888
+ },
1889
+ {
1890
+ "type": "FIELD",
1891
+ "name": "type",
1892
+ "content": {
1893
+ "type": "SYMBOL",
1894
+ "name": "type"
1895
+ }
1896
+ }
1897
+ ]
1898
+ },
1899
+ "parg": {
1900
+ "type": "SEQ",
1901
+ "members": [
1902
+ {
1903
+ "type": "FIELD",
1904
+ "name": "pattern",
1905
+ "content": {
1906
+ "type": "SYMBOL",
1907
+ "name": "pattern"
1908
+ }
1909
+ },
1910
+ {
1911
+ "type": "STRING",
1912
+ "value": ":"
1913
+ },
1914
+ {
1915
+ "type": "FIELD",
1916
+ "name": "type",
1917
+ "content": {
1918
+ "type": "SYMBOL",
1919
+ "name": "type"
1920
+ }
1921
+ }
1922
+ ]
1923
+ },
1924
+ "type": {
1925
+ "type": "CHOICE",
1926
+ "members": [
1927
+ {
1928
+ "type": "SYMBOL",
1929
+ "name": "tref"
1930
+ },
1931
+ {
1932
+ "type": "STRING",
1933
+ "value": "Boolean"
1934
+ },
1935
+ {
1936
+ "type": "STRING",
1937
+ "value": "Field"
1938
+ },
1939
+ {
1940
+ "type": "SYMBOL",
1941
+ "name": "uint_type"
1942
+ },
1943
+ {
1944
+ "type": "SYMBOL",
1945
+ "name": "bytes_type"
1946
+ },
1947
+ {
1948
+ "type": "SYMBOL",
1949
+ "name": "opaque_type"
1950
+ },
1951
+ {
1952
+ "type": "SYMBOL",
1953
+ "name": "vector_type"
1954
+ },
1955
+ {
1956
+ "type": "SEQ",
1957
+ "members": [
1958
+ {
1959
+ "type": "STRING",
1960
+ "value": "["
1961
+ },
1962
+ {
1963
+ "type": "CHOICE",
1964
+ "members": [
1965
+ {
1966
+ "type": "SEQ",
1967
+ "members": [
1968
+ {
1969
+ "type": "SYMBOL",
1970
+ "name": "type"
1971
+ },
1972
+ {
1973
+ "type": "REPEAT",
1974
+ "content": {
1975
+ "type": "SEQ",
1976
+ "members": [
1977
+ {
1978
+ "type": "STRING",
1979
+ "value": ","
1980
+ },
1981
+ {
1982
+ "type": "SYMBOL",
1983
+ "name": "type"
1984
+ }
1985
+ ]
1986
+ }
1987
+ },
1988
+ {
1989
+ "type": "CHOICE",
1990
+ "members": [
1991
+ {
1992
+ "type": "STRING",
1993
+ "value": ","
1994
+ },
1995
+ {
1996
+ "type": "BLANK"
1997
+ }
1998
+ ]
1999
+ }
2000
+ ]
2001
+ },
2002
+ {
2003
+ "type": "BLANK"
2004
+ }
2005
+ ]
2006
+ },
2007
+ {
2008
+ "type": "STRING",
2009
+ "value": "]"
2010
+ }
2011
+ ]
2012
+ }
2013
+ ]
2014
+ },
2015
+ "uint_type": {
2016
+ "type": "SEQ",
2017
+ "members": [
2018
+ {
2019
+ "type": "STRING",
2020
+ "value": "Uint"
2021
+ },
2022
+ {
2023
+ "type": "STRING",
2024
+ "value": "<"
2025
+ },
2026
+ {
2027
+ "type": "FIELD",
2028
+ "name": "tsize",
2029
+ "content": {
2030
+ "type": "SYMBOL",
2031
+ "name": "tsize"
2032
+ }
2033
+ },
2034
+ {
2035
+ "type": "CHOICE",
2036
+ "members": [
2037
+ {
2038
+ "type": "SEQ",
2039
+ "members": [
2040
+ {
2041
+ "type": "STRING",
2042
+ "value": ".."
2043
+ },
2044
+ {
2045
+ "type": "FIELD",
2046
+ "name": "tsize",
2047
+ "content": {
2048
+ "type": "SYMBOL",
2049
+ "name": "tsize"
2050
+ }
2051
+ }
2052
+ ]
2053
+ },
2054
+ {
2055
+ "type": "BLANK"
2056
+ }
2057
+ ]
2058
+ },
2059
+ {
2060
+ "type": "STRING",
2061
+ "value": ">"
2062
+ }
2063
+ ]
2064
+ },
2065
+ "bytes_type": {
2066
+ "type": "SEQ",
2067
+ "members": [
2068
+ {
2069
+ "type": "STRING",
2070
+ "value": "Bytes"
2071
+ },
2072
+ {
2073
+ "type": "STRING",
2074
+ "value": "<"
2075
+ },
2076
+ {
2077
+ "type": "FIELD",
2078
+ "name": "tsize",
2079
+ "content": {
2080
+ "type": "SYMBOL",
2081
+ "name": "tsize"
2082
+ }
2083
+ },
2084
+ {
2085
+ "type": "STRING",
2086
+ "value": ">"
2087
+ }
2088
+ ]
2089
+ },
2090
+ "opaque_type": {
2091
+ "type": "SEQ",
2092
+ "members": [
2093
+ {
2094
+ "type": "STRING",
2095
+ "value": "Opaque"
2096
+ },
2097
+ {
2098
+ "type": "STRING",
2099
+ "value": "<"
2100
+ },
2101
+ {
2102
+ "type": "SYMBOL",
2103
+ "name": "str"
2104
+ },
2105
+ {
2106
+ "type": "STRING",
2107
+ "value": ">"
2108
+ }
2109
+ ]
2110
+ },
2111
+ "vector_type": {
2112
+ "type": "SEQ",
2113
+ "members": [
2114
+ {
2115
+ "type": "STRING",
2116
+ "value": "Vector"
2117
+ },
2118
+ {
2119
+ "type": "STRING",
2120
+ "value": "<"
2121
+ },
2122
+ {
2123
+ "type": "FIELD",
2124
+ "name": "tsize",
2125
+ "content": {
2126
+ "type": "SYMBOL",
2127
+ "name": "tsize"
2128
+ }
2129
+ },
2130
+ {
2131
+ "type": "STRING",
2132
+ "value": ","
2133
+ },
2134
+ {
2135
+ "type": "FIELD",
2136
+ "name": "type",
2137
+ "content": {
2138
+ "type": "SYMBOL",
2139
+ "name": "type"
2140
+ }
2141
+ },
2142
+ {
2143
+ "type": "STRING",
2144
+ "value": ">"
2145
+ }
2146
+ ]
2147
+ },
2148
+ "tref": {
2149
+ "type": "PREC_LEFT",
2150
+ "value": 0,
2151
+ "content": {
2152
+ "type": "SEQ",
2153
+ "members": [
2154
+ {
2155
+ "type": "FIELD",
2156
+ "name": "id",
2157
+ "content": {
2158
+ "type": "SYMBOL",
2159
+ "name": "id"
2160
+ }
2161
+ },
2162
+ {
2163
+ "type": "CHOICE",
2164
+ "members": [
2165
+ {
2166
+ "type": "FIELD",
2167
+ "name": "gargs",
2168
+ "content": {
2169
+ "type": "SYMBOL",
2170
+ "name": "gargs"
2171
+ }
2172
+ },
2173
+ {
2174
+ "type": "BLANK"
2175
+ }
2176
+ ]
2177
+ }
2178
+ ]
2179
+ }
2180
+ },
2181
+ "tsize": {
2182
+ "type": "CHOICE",
2183
+ "members": [
2184
+ {
2185
+ "type": "SYMBOL",
2186
+ "name": "nat"
2187
+ },
2188
+ {
2189
+ "type": "SYMBOL",
2190
+ "name": "id"
2191
+ }
2192
+ ]
2193
+ },
2194
+ "garg": {
2195
+ "type": "CHOICE",
2196
+ "members": [
2197
+ {
2198
+ "type": "SYMBOL",
2199
+ "name": "nat"
2200
+ },
2201
+ {
2202
+ "type": "SYMBOL",
2203
+ "name": "type"
2204
+ }
2205
+ ]
2206
+ },
2207
+ "block": {
2208
+ "type": "SEQ",
2209
+ "members": [
2210
+ {
2211
+ "type": "STRING",
2212
+ "value": "{"
2213
+ },
2214
+ {
2215
+ "type": "REPEAT",
2216
+ "content": {
2217
+ "type": "FIELD",
2218
+ "name": "stmt",
2219
+ "content": {
2220
+ "type": "SYMBOL",
2221
+ "name": "stmt"
2222
+ }
2223
+ }
2224
+ },
2225
+ {
2226
+ "type": "STRING",
2227
+ "value": "}"
2228
+ }
2229
+ ]
2230
+ },
2231
+ "stmt": {
2232
+ "type": "PREC_RIGHT",
2233
+ "value": 0,
2234
+ "content": {
2235
+ "type": "CHOICE",
2236
+ "members": [
2237
+ {
2238
+ "type": "SYMBOL",
2239
+ "name": "expression_sequence_stmt"
2240
+ },
2241
+ {
2242
+ "type": "SYMBOL",
2243
+ "name": "return_stmt"
2244
+ },
2245
+ {
2246
+ "type": "SYMBOL",
2247
+ "name": "if_stmt"
2248
+ },
2249
+ {
2250
+ "type": "SYMBOL",
2251
+ "name": "for_stmt"
2252
+ },
2253
+ {
2254
+ "type": "SYMBOL",
2255
+ "name": "const_stmt"
2256
+ },
2257
+ {
2258
+ "type": "SYMBOL",
2259
+ "name": "block"
2260
+ }
2261
+ ]
2262
+ }
2263
+ },
2264
+ "return_stmt": {
2265
+ "type": "SEQ",
2266
+ "members": [
2267
+ {
2268
+ "type": "STRING",
2269
+ "value": "return"
2270
+ },
2271
+ {
2272
+ "type": "CHOICE",
2273
+ "members": [
2274
+ {
2275
+ "type": "FIELD",
2276
+ "name": "value",
2277
+ "content": {
2278
+ "type": "SYMBOL",
2279
+ "name": "expr_seq"
2280
+ }
2281
+ },
2282
+ {
2283
+ "type": "BLANK"
2284
+ }
2285
+ ]
2286
+ },
2287
+ {
2288
+ "type": "STRING",
2289
+ "value": ";"
2290
+ }
2291
+ ]
2292
+ },
2293
+ "if_stmt": {
2294
+ "type": "PREC_RIGHT",
2295
+ "value": 0,
2296
+ "content": {
2297
+ "type": "SEQ",
2298
+ "members": [
2299
+ {
2300
+ "type": "STRING",
2301
+ "value": "if"
2302
+ },
2303
+ {
2304
+ "type": "STRING",
2305
+ "value": "("
2306
+ },
2307
+ {
2308
+ "type": "FIELD",
2309
+ "name": "condition",
2310
+ "content": {
2311
+ "type": "SYMBOL",
2312
+ "name": "expr_seq"
2313
+ }
2314
+ },
2315
+ {
2316
+ "type": "STRING",
2317
+ "value": ")"
2318
+ },
2319
+ {
2320
+ "type": "FIELD",
2321
+ "name": "then_branch",
2322
+ "content": {
2323
+ "type": "SYMBOL",
2324
+ "name": "stmt"
2325
+ }
2326
+ },
2327
+ {
2328
+ "type": "CHOICE",
2329
+ "members": [
2330
+ {
2331
+ "type": "SEQ",
2332
+ "members": [
2333
+ {
2334
+ "type": "STRING",
2335
+ "value": "else"
2336
+ },
2337
+ {
2338
+ "type": "FIELD",
2339
+ "name": "else_branch",
2340
+ "content": {
2341
+ "type": "SYMBOL",
2342
+ "name": "stmt"
2343
+ }
2344
+ }
2345
+ ]
2346
+ },
2347
+ {
2348
+ "type": "BLANK"
2349
+ }
2350
+ ]
2351
+ }
2352
+ ]
2353
+ }
2354
+ },
2355
+ "for_stmt": {
2356
+ "type": "SEQ",
2357
+ "members": [
2358
+ {
2359
+ "type": "STRING",
2360
+ "value": "for"
2361
+ },
2362
+ {
2363
+ "type": "STRING",
2364
+ "value": "("
2365
+ },
2366
+ {
2367
+ "type": "STRING",
2368
+ "value": "const"
2369
+ },
2370
+ {
2371
+ "type": "FIELD",
2372
+ "name": "counter",
2373
+ "content": {
2374
+ "type": "SYMBOL",
2375
+ "name": "id"
2376
+ }
2377
+ },
2378
+ {
2379
+ "type": "STRING",
2380
+ "value": "of"
2381
+ },
2382
+ {
2383
+ "type": "CHOICE",
2384
+ "members": [
2385
+ {
2386
+ "type": "SEQ",
2387
+ "members": [
2388
+ {
2389
+ "type": "FIELD",
2390
+ "name": "range_start",
2391
+ "content": {
2392
+ "type": "SYMBOL",
2393
+ "name": "tsize"
2394
+ }
2395
+ },
2396
+ {
2397
+ "type": "STRING",
2398
+ "value": ".."
2399
+ },
2400
+ {
2401
+ "type": "FIELD",
2402
+ "name": "range_end",
2403
+ "content": {
2404
+ "type": "SYMBOL",
2405
+ "name": "tsize"
2406
+ }
2407
+ }
2408
+ ]
2409
+ },
2410
+ {
2411
+ "type": "FIELD",
2412
+ "name": "limit",
2413
+ "content": {
2414
+ "type": "SYMBOL",
2415
+ "name": "expr_seq"
2416
+ }
2417
+ }
2418
+ ]
2419
+ },
2420
+ {
2421
+ "type": "STRING",
2422
+ "value": ")"
2423
+ },
2424
+ {
2425
+ "type": "FIELD",
2426
+ "name": "body",
2427
+ "content": {
2428
+ "type": "SYMBOL",
2429
+ "name": "stmt"
2430
+ }
2431
+ }
2432
+ ]
2433
+ },
2434
+ "expression_sequence_stmt": {
2435
+ "type": "SEQ",
2436
+ "members": [
2437
+ {
2438
+ "type": "SYMBOL",
2439
+ "name": "expr_seq"
2440
+ },
2441
+ {
2442
+ "type": "STRING",
2443
+ "value": ";"
2444
+ }
2445
+ ]
2446
+ },
2447
+ "const_stmt": {
2448
+ "type": "SEQ",
2449
+ "members": [
2450
+ {
2451
+ "type": "STRING",
2452
+ "value": "const"
2453
+ },
2454
+ {
2455
+ "type": "SEQ",
2456
+ "members": [
2457
+ {
2458
+ "type": "FIELD",
2459
+ "name": "binding",
2460
+ "content": {
2461
+ "type": "SYMBOL",
2462
+ "name": "const_binding"
2463
+ }
2464
+ },
2465
+ {
2466
+ "type": "REPEAT",
2467
+ "content": {
2468
+ "type": "SEQ",
2469
+ "members": [
2470
+ {
2471
+ "type": "STRING",
2472
+ "value": ","
2473
+ },
2474
+ {
2475
+ "type": "FIELD",
2476
+ "name": "binding",
2477
+ "content": {
2478
+ "type": "SYMBOL",
2479
+ "name": "const_binding"
2480
+ }
2481
+ }
2482
+ ]
2483
+ }
2484
+ },
2485
+ {
2486
+ "type": "CHOICE",
2487
+ "members": [
2488
+ {
2489
+ "type": "STRING",
2490
+ "value": ","
2491
+ },
2492
+ {
2493
+ "type": "BLANK"
2494
+ }
2495
+ ]
2496
+ }
2497
+ ]
2498
+ },
2499
+ {
2500
+ "type": "STRING",
2501
+ "value": ";"
2502
+ }
2503
+ ]
2504
+ },
2505
+ "const_binding": {
2506
+ "type": "SEQ",
2507
+ "members": [
2508
+ {
2509
+ "type": "FIELD",
2510
+ "name": "pattern",
2511
+ "content": {
2512
+ "type": "SYMBOL",
2513
+ "name": "pattern"
2514
+ }
2515
+ },
2516
+ {
2517
+ "type": "CHOICE",
2518
+ "members": [
2519
+ {
2520
+ "type": "SEQ",
2521
+ "members": [
2522
+ {
2523
+ "type": "STRING",
2524
+ "value": ":"
2525
+ },
2526
+ {
2527
+ "type": "FIELD",
2528
+ "name": "type",
2529
+ "content": {
2530
+ "type": "SYMBOL",
2531
+ "name": "type"
2532
+ }
2533
+ }
2534
+ ]
2535
+ },
2536
+ {
2537
+ "type": "BLANK"
2538
+ }
2539
+ ]
2540
+ },
2541
+ {
2542
+ "type": "STRING",
2543
+ "value": "="
2544
+ },
2545
+ {
2546
+ "type": "FIELD",
2547
+ "name": "value",
2548
+ "content": {
2549
+ "type": "SYMBOL",
2550
+ "name": "expr"
2551
+ }
2552
+ }
2553
+ ]
2554
+ },
2555
+ "pattern": {
2556
+ "type": "CHOICE",
2557
+ "members": [
2558
+ {
2559
+ "type": "FIELD",
2560
+ "name": "id",
2561
+ "content": {
2562
+ "type": "SYMBOL",
2563
+ "name": "id"
2564
+ }
2565
+ },
2566
+ {
2567
+ "type": "FIELD",
2568
+ "name": "pattern_tuple",
2569
+ "content": {
2570
+ "type": "SEQ",
2571
+ "members": [
2572
+ {
2573
+ "type": "STRING",
2574
+ "value": "["
2575
+ },
2576
+ {
2577
+ "type": "CHOICE",
2578
+ "members": [
2579
+ {
2580
+ "type": "CHOICE",
2581
+ "members": [
2582
+ {
2583
+ "type": "SEQ",
2584
+ "members": [
2585
+ {
2586
+ "type": "FIELD",
2587
+ "name": "pattern_tuple_elt",
2588
+ "content": {
2589
+ "type": "SYMBOL",
2590
+ "name": "pattern_tuple_elt"
2591
+ }
2592
+ },
2593
+ {
2594
+ "type": "REPEAT",
2595
+ "content": {
2596
+ "type": "SEQ",
2597
+ "members": [
2598
+ {
2599
+ "type": "STRING",
2600
+ "value": ","
2601
+ },
2602
+ {
2603
+ "type": "FIELD",
2604
+ "name": "pattern_tuple_elt",
2605
+ "content": {
2606
+ "type": "SYMBOL",
2607
+ "name": "pattern_tuple_elt"
2608
+ }
2609
+ }
2610
+ ]
2611
+ }
2612
+ },
2613
+ {
2614
+ "type": "CHOICE",
2615
+ "members": [
2616
+ {
2617
+ "type": "STRING",
2618
+ "value": ","
2619
+ },
2620
+ {
2621
+ "type": "BLANK"
2622
+ }
2623
+ ]
2624
+ }
2625
+ ]
2626
+ },
2627
+ {
2628
+ "type": "BLANK"
2629
+ }
2630
+ ]
2631
+ },
2632
+ {
2633
+ "type": "BLANK"
2634
+ }
2635
+ ]
2636
+ },
2637
+ {
2638
+ "type": "STRING",
2639
+ "value": "]"
2640
+ }
2641
+ ]
2642
+ }
2643
+ },
2644
+ {
2645
+ "type": "FIELD",
2646
+ "name": "pattern_struct",
2647
+ "content": {
2648
+ "type": "SEQ",
2649
+ "members": [
2650
+ {
2651
+ "type": "STRING",
2652
+ "value": "{"
2653
+ },
2654
+ {
2655
+ "type": "SEQ",
2656
+ "members": [
2657
+ {
2658
+ "type": "FIELD",
2659
+ "name": "pattern_struct_elt",
2660
+ "content": {
2661
+ "type": "SYMBOL",
2662
+ "name": "pattern_struct_elt"
2663
+ }
2664
+ },
2665
+ {
2666
+ "type": "REPEAT",
2667
+ "content": {
2668
+ "type": "SEQ",
2669
+ "members": [
2670
+ {
2671
+ "type": "STRING",
2672
+ "value": ","
2673
+ },
2674
+ {
2675
+ "type": "FIELD",
2676
+ "name": "pattern_struct_elt",
2677
+ "content": {
2678
+ "type": "SYMBOL",
2679
+ "name": "pattern_struct_elt"
2680
+ }
2681
+ }
2682
+ ]
2683
+ }
2684
+ },
2685
+ {
2686
+ "type": "CHOICE",
2687
+ "members": [
2688
+ {
2689
+ "type": "STRING",
2690
+ "value": ","
2691
+ },
2692
+ {
2693
+ "type": "BLANK"
2694
+ }
2695
+ ]
2696
+ }
2697
+ ]
2698
+ },
2699
+ {
2700
+ "type": "STRING",
2701
+ "value": "}"
2702
+ }
2703
+ ]
2704
+ }
2705
+ }
2706
+ ]
2707
+ },
2708
+ "pattern_tuple_elt": {
2709
+ "type": "SYMBOL",
2710
+ "name": "pattern"
2711
+ },
2712
+ "pattern_struct_elt": {
2713
+ "type": "CHOICE",
2714
+ "members": [
2715
+ {
2716
+ "type": "FIELD",
2717
+ "name": "id",
2718
+ "content": {
2719
+ "type": "SYMBOL",
2720
+ "name": "id"
2721
+ }
2722
+ },
2723
+ {
2724
+ "type": "SEQ",
2725
+ "members": [
2726
+ {
2727
+ "type": "FIELD",
2728
+ "name": "id",
2729
+ "content": {
2730
+ "type": "SYMBOL",
2731
+ "name": "id"
2732
+ }
2733
+ },
2734
+ {
2735
+ "type": "STRING",
2736
+ "value": ":"
2737
+ },
2738
+ {
2739
+ "type": "FIELD",
2740
+ "name": "pattern",
2741
+ "content": {
2742
+ "type": "SYMBOL",
2743
+ "name": "pattern"
2744
+ }
2745
+ }
2746
+ ]
2747
+ }
2748
+ ]
2749
+ },
2750
+ "expr_seq": {
2751
+ "type": "SEQ",
2752
+ "members": [
2753
+ {
2754
+ "type": "FIELD",
2755
+ "name": "expr",
2756
+ "content": {
2757
+ "type": "SYMBOL",
2758
+ "name": "expr"
2759
+ }
2760
+ },
2761
+ {
2762
+ "type": "REPEAT",
2763
+ "content": {
2764
+ "type": "SEQ",
2765
+ "members": [
2766
+ {
2767
+ "type": "STRING",
2768
+ "value": ","
2769
+ },
2770
+ {
2771
+ "type": "FIELD",
2772
+ "name": "expr",
2773
+ "content": {
2774
+ "type": "SYMBOL",
2775
+ "name": "expr"
2776
+ }
2777
+ }
2778
+ ]
2779
+ }
2780
+ },
2781
+ {
2782
+ "type": "CHOICE",
2783
+ "members": [
2784
+ {
2785
+ "type": "STRING",
2786
+ "value": ","
2787
+ },
2788
+ {
2789
+ "type": "BLANK"
2790
+ }
2791
+ ]
2792
+ }
2793
+ ]
2794
+ },
2795
+ "conditional_expr": {
2796
+ "type": "SEQ",
2797
+ "members": [
2798
+ {
2799
+ "type": "FIELD",
2800
+ "name": "condition",
2801
+ "content": {
2802
+ "type": "SYMBOL",
2803
+ "name": "_expr0"
2804
+ }
2805
+ },
2806
+ {
2807
+ "type": "STRING",
2808
+ "value": "?"
2809
+ },
2810
+ {
2811
+ "type": "FIELD",
2812
+ "name": "then_branch",
2813
+ "content": {
2814
+ "type": "SYMBOL",
2815
+ "name": "expr"
2816
+ }
2817
+ },
2818
+ {
2819
+ "type": "STRING",
2820
+ "value": ":"
2821
+ },
2822
+ {
2823
+ "type": "FIELD",
2824
+ "name": "else_branch",
2825
+ "content": {
2826
+ "type": "SYMBOL",
2827
+ "name": "expr"
2828
+ }
2829
+ }
2830
+ ]
2831
+ },
2832
+ "expr": {
2833
+ "type": "CHOICE",
2834
+ "members": [
2835
+ {
2836
+ "type": "SYMBOL",
2837
+ "name": "conditional_expr"
2838
+ },
2839
+ {
2840
+ "type": "SYMBOL",
2841
+ "name": "assign_expr"
2842
+ },
2843
+ {
2844
+ "type": "SYMBOL",
2845
+ "name": "_expr0"
2846
+ }
2847
+ ]
2848
+ },
2849
+ "assign_expr": {
2850
+ "type": "PREC_RIGHT",
2851
+ "value": 0,
2852
+ "content": {
2853
+ "type": "SEQ",
2854
+ "members": [
2855
+ {
2856
+ "type": "FIELD",
2857
+ "name": "left",
2858
+ "content": {
2859
+ "type": "SYMBOL",
2860
+ "name": "_expr0"
2861
+ }
2862
+ },
2863
+ {
2864
+ "type": "FIELD",
2865
+ "name": "operator",
2866
+ "content": {
2867
+ "type": "CHOICE",
2868
+ "members": [
2869
+ {
2870
+ "type": "STRING",
2871
+ "value": "="
2872
+ },
2873
+ {
2874
+ "type": "STRING",
2875
+ "value": "+="
2876
+ },
2877
+ {
2878
+ "type": "STRING",
2879
+ "value": "-="
2880
+ }
2881
+ ]
2882
+ }
2883
+ },
2884
+ {
2885
+ "type": "FIELD",
2886
+ "name": "right",
2887
+ "content": {
2888
+ "type": "SYMBOL",
2889
+ "name": "expr"
2890
+ }
2891
+ }
2892
+ ]
2893
+ }
2894
+ },
2895
+ "or_expr": {
2896
+ "type": "SEQ",
2897
+ "members": [
2898
+ {
2899
+ "type": "FIELD",
2900
+ "name": "left",
2901
+ "content": {
2902
+ "type": "SYMBOL",
2903
+ "name": "_expr0"
2904
+ }
2905
+ },
2906
+ {
2907
+ "type": "SYMBOL",
2908
+ "name": "or"
2909
+ },
2910
+ {
2911
+ "type": "FIELD",
2912
+ "name": "right",
2913
+ "content": {
2914
+ "type": "SYMBOL",
2915
+ "name": "_expr1"
2916
+ }
2917
+ }
2918
+ ]
2919
+ },
2920
+ "_expr0": {
2921
+ "type": "PREC_LEFT",
2922
+ "value": 0,
2923
+ "content": {
2924
+ "type": "CHOICE",
2925
+ "members": [
2926
+ {
2927
+ "type": "SYMBOL",
2928
+ "name": "or_expr"
2929
+ },
2930
+ {
2931
+ "type": "SYMBOL",
2932
+ "name": "_expr1"
2933
+ }
2934
+ ]
2935
+ }
2936
+ },
2937
+ "and_expr": {
2938
+ "type": "SEQ",
2939
+ "members": [
2940
+ {
2941
+ "type": "FIELD",
2942
+ "name": "left",
2943
+ "content": {
2944
+ "type": "SYMBOL",
2945
+ "name": "_expr1"
2946
+ }
2947
+ },
2948
+ {
2949
+ "type": "SYMBOL",
2950
+ "name": "and"
2951
+ },
2952
+ {
2953
+ "type": "FIELD",
2954
+ "name": "right",
2955
+ "content": {
2956
+ "type": "SYMBOL",
2957
+ "name": "_expr2"
2958
+ }
2959
+ }
2960
+ ]
2961
+ },
2962
+ "_expr1": {
2963
+ "type": "PREC_LEFT",
2964
+ "value": 0,
2965
+ "content": {
2966
+ "type": "CHOICE",
2967
+ "members": [
2968
+ {
2969
+ "type": "SYMBOL",
2970
+ "name": "and_expr"
2971
+ },
2972
+ {
2973
+ "type": "SYMBOL",
2974
+ "name": "_expr2"
2975
+ }
2976
+ ]
2977
+ }
2978
+ },
2979
+ "comparison_expr": {
2980
+ "type": "SEQ",
2981
+ "members": [
2982
+ {
2983
+ "type": "FIELD",
2984
+ "name": "left",
2985
+ "content": {
2986
+ "type": "SYMBOL",
2987
+ "name": "_expr2"
2988
+ }
2989
+ },
2990
+ {
2991
+ "type": "FIELD",
2992
+ "name": "operator",
2993
+ "content": {
2994
+ "type": "CHOICE",
2995
+ "members": [
2996
+ {
2997
+ "type": "SYMBOL",
2998
+ "name": "equals"
2999
+ },
3000
+ {
3001
+ "type": "SYMBOL",
3002
+ "name": "not_equals"
3003
+ }
3004
+ ]
3005
+ }
3006
+ },
3007
+ {
3008
+ "type": "FIELD",
3009
+ "name": "right",
3010
+ "content": {
3011
+ "type": "SYMBOL",
3012
+ "name": "_expr3"
3013
+ }
3014
+ }
3015
+ ]
3016
+ },
3017
+ "_expr2": {
3018
+ "type": "PREC_LEFT",
3019
+ "value": 0,
3020
+ "content": {
3021
+ "type": "CHOICE",
3022
+ "members": [
3023
+ {
3024
+ "type": "SYMBOL",
3025
+ "name": "comparison_expr"
3026
+ },
3027
+ {
3028
+ "type": "SYMBOL",
3029
+ "name": "_expr3"
3030
+ }
3031
+ ]
3032
+ }
3033
+ },
3034
+ "rel_comparison_expr": {
3035
+ "type": "SEQ",
3036
+ "members": [
3037
+ {
3038
+ "type": "FIELD",
3039
+ "name": "left",
3040
+ "content": {
3041
+ "type": "SYMBOL",
3042
+ "name": "_expr3"
3043
+ }
3044
+ },
3045
+ {
3046
+ "type": "FIELD",
3047
+ "name": "operator",
3048
+ "content": {
3049
+ "type": "CHOICE",
3050
+ "members": [
3051
+ {
3052
+ "type": "SYMBOL",
3053
+ "name": "less_than"
3054
+ },
3055
+ {
3056
+ "type": "SYMBOL",
3057
+ "name": "less_than_or_equal"
3058
+ },
3059
+ {
3060
+ "type": "SYMBOL",
3061
+ "name": "greater_than_or_equal"
3062
+ },
3063
+ {
3064
+ "type": "SYMBOL",
3065
+ "name": "greater_than"
3066
+ }
3067
+ ]
3068
+ }
3069
+ },
3070
+ {
3071
+ "type": "FIELD",
3072
+ "name": "right",
3073
+ "content": {
3074
+ "type": "SYMBOL",
3075
+ "name": "_expr4"
3076
+ }
3077
+ }
3078
+ ]
3079
+ },
3080
+ "_expr3": {
3081
+ "type": "PREC_LEFT",
3082
+ "value": 0,
3083
+ "content": {
3084
+ "type": "CHOICE",
3085
+ "members": [
3086
+ {
3087
+ "type": "SYMBOL",
3088
+ "name": "rel_comparison_expr"
3089
+ },
3090
+ {
3091
+ "type": "SYMBOL",
3092
+ "name": "_expr4"
3093
+ }
3094
+ ]
3095
+ }
3096
+ },
3097
+ "cast_expr": {
3098
+ "type": "SEQ",
3099
+ "members": [
3100
+ {
3101
+ "type": "FIELD",
3102
+ "name": "expr",
3103
+ "content": {
3104
+ "type": "SYMBOL",
3105
+ "name": "_expr4"
3106
+ }
3107
+ },
3108
+ {
3109
+ "type": "STRING",
3110
+ "value": "as"
3111
+ },
3112
+ {
3113
+ "type": "FIELD",
3114
+ "name": "type",
3115
+ "content": {
3116
+ "type": "SYMBOL",
3117
+ "name": "type"
3118
+ }
3119
+ }
3120
+ ]
3121
+ },
3122
+ "_expr4": {
3123
+ "type": "PREC_LEFT",
3124
+ "value": 4,
3125
+ "content": {
3126
+ "type": "CHOICE",
3127
+ "members": [
3128
+ {
3129
+ "type": "SYMBOL",
3130
+ "name": "cast_expr"
3131
+ },
3132
+ {
3133
+ "type": "SYMBOL",
3134
+ "name": "_expr5"
3135
+ }
3136
+ ]
3137
+ }
3138
+ },
3139
+ "bin_sum_expr": {
3140
+ "type": "SEQ",
3141
+ "members": [
3142
+ {
3143
+ "type": "FIELD",
3144
+ "name": "left",
3145
+ "content": {
3146
+ "type": "SYMBOL",
3147
+ "name": "_expr5"
3148
+ }
3149
+ },
3150
+ {
3151
+ "type": "FIELD",
3152
+ "name": "operator",
3153
+ "content": {
3154
+ "type": "CHOICE",
3155
+ "members": [
3156
+ {
3157
+ "type": "STRING",
3158
+ "value": "+"
3159
+ },
3160
+ {
3161
+ "type": "STRING",
3162
+ "value": "-"
3163
+ }
3164
+ ]
3165
+ }
3166
+ },
3167
+ {
3168
+ "type": "FIELD",
3169
+ "name": "right",
3170
+ "content": {
3171
+ "type": "SYMBOL",
3172
+ "name": "_expr6"
3173
+ }
3174
+ }
3175
+ ]
3176
+ },
3177
+ "_expr5": {
3178
+ "type": "PREC_LEFT",
3179
+ "value": 0,
3180
+ "content": {
3181
+ "type": "CHOICE",
3182
+ "members": [
3183
+ {
3184
+ "type": "SYMBOL",
3185
+ "name": "bin_sum_expr"
3186
+ },
3187
+ {
3188
+ "type": "SYMBOL",
3189
+ "name": "_expr6"
3190
+ }
3191
+ ]
3192
+ }
3193
+ },
3194
+ "bin_mul_expr": {
3195
+ "type": "PREC_LEFT",
3196
+ "value": 0,
3197
+ "content": {
3198
+ "type": "SEQ",
3199
+ "members": [
3200
+ {
3201
+ "type": "FIELD",
3202
+ "name": "left",
3203
+ "content": {
3204
+ "type": "SYMBOL",
3205
+ "name": "_expr6"
3206
+ }
3207
+ },
3208
+ {
3209
+ "type": "FIELD",
3210
+ "name": "operator",
3211
+ "content": {
3212
+ "type": "STRING",
3213
+ "value": "*"
3214
+ }
3215
+ },
3216
+ {
3217
+ "type": "FIELD",
3218
+ "name": "right",
3219
+ "content": {
3220
+ "type": "SYMBOL",
3221
+ "name": "_expr7"
3222
+ }
3223
+ }
3224
+ ]
3225
+ }
3226
+ },
3227
+ "_expr6": {
3228
+ "type": "CHOICE",
3229
+ "members": [
3230
+ {
3231
+ "type": "SYMBOL",
3232
+ "name": "bin_mul_expr"
3233
+ },
3234
+ {
3235
+ "type": "SYMBOL",
3236
+ "name": "_expr7"
3237
+ }
3238
+ ]
3239
+ },
3240
+ "not_expr": {
3241
+ "type": "SEQ",
3242
+ "members": [
3243
+ {
3244
+ "type": "SYMBOL",
3245
+ "name": "not"
3246
+ },
3247
+ {
3248
+ "type": "FIELD",
3249
+ "name": "expr",
3250
+ "content": {
3251
+ "type": "SYMBOL",
3252
+ "name": "_expr7"
3253
+ }
3254
+ }
3255
+ ]
3256
+ },
3257
+ "_expr7": {
3258
+ "type": "CHOICE",
3259
+ "members": [
3260
+ {
3261
+ "type": "SYMBOL",
3262
+ "name": "not_expr"
3263
+ },
3264
+ {
3265
+ "type": "SYMBOL",
3266
+ "name": "_expr8"
3267
+ }
3268
+ ]
3269
+ },
3270
+ "index_access_expr": {
3271
+ "type": "PREC_LEFT",
3272
+ "value": 0,
3273
+ "content": {
3274
+ "type": "SEQ",
3275
+ "members": [
3276
+ {
3277
+ "type": "FIELD",
3278
+ "name": "base",
3279
+ "content": {
3280
+ "type": "SYMBOL",
3281
+ "name": "_expr8"
3282
+ }
3283
+ },
3284
+ {
3285
+ "type": "STRING",
3286
+ "value": "["
3287
+ },
3288
+ {
3289
+ "type": "FIELD",
3290
+ "name": "index",
3291
+ "content": {
3292
+ "type": "SYMBOL",
3293
+ "name": "expr"
3294
+ }
3295
+ },
3296
+ {
3297
+ "type": "STRING",
3298
+ "value": "]"
3299
+ }
3300
+ ]
3301
+ }
3302
+ },
3303
+ "member_access_expr": {
3304
+ "type": "PREC_LEFT",
3305
+ "value": 0,
3306
+ "content": {
3307
+ "type": "SEQ",
3308
+ "members": [
3309
+ {
3310
+ "type": "FIELD",
3311
+ "name": "base",
3312
+ "content": {
3313
+ "type": "SYMBOL",
3314
+ "name": "_expr8"
3315
+ }
3316
+ },
3317
+ {
3318
+ "type": "STRING",
3319
+ "value": "."
3320
+ },
3321
+ {
3322
+ "type": "FIELD",
3323
+ "name": "member",
3324
+ "content": {
3325
+ "type": "SYMBOL",
3326
+ "name": "id"
3327
+ }
3328
+ },
3329
+ {
3330
+ "type": "CHOICE",
3331
+ "members": [
3332
+ {
3333
+ "type": "FIELD",
3334
+ "name": "arguments",
3335
+ "content": {
3336
+ "type": "SEQ",
3337
+ "members": [
3338
+ {
3339
+ "type": "STRING",
3340
+ "value": "("
3341
+ },
3342
+ {
3343
+ "type": "CHOICE",
3344
+ "members": [
3345
+ {
3346
+ "type": "SEQ",
3347
+ "members": [
3348
+ {
3349
+ "type": "FIELD",
3350
+ "name": "expr",
3351
+ "content": {
3352
+ "type": "SYMBOL",
3353
+ "name": "expr"
3354
+ }
3355
+ },
3356
+ {
3357
+ "type": "REPEAT",
3358
+ "content": {
3359
+ "type": "SEQ",
3360
+ "members": [
3361
+ {
3362
+ "type": "STRING",
3363
+ "value": ","
3364
+ },
3365
+ {
3366
+ "type": "FIELD",
3367
+ "name": "expr",
3368
+ "content": {
3369
+ "type": "SYMBOL",
3370
+ "name": "expr"
3371
+ }
3372
+ }
3373
+ ]
3374
+ }
3375
+ },
3376
+ {
3377
+ "type": "CHOICE",
3378
+ "members": [
3379
+ {
3380
+ "type": "STRING",
3381
+ "value": ","
3382
+ },
3383
+ {
3384
+ "type": "BLANK"
3385
+ }
3386
+ ]
3387
+ }
3388
+ ]
3389
+ },
3390
+ {
3391
+ "type": "BLANK"
3392
+ }
3393
+ ]
3394
+ },
3395
+ {
3396
+ "type": "STRING",
3397
+ "value": ")"
3398
+ }
3399
+ ]
3400
+ }
3401
+ },
3402
+ {
3403
+ "type": "BLANK"
3404
+ }
3405
+ ]
3406
+ }
3407
+ ]
3408
+ }
3409
+ },
3410
+ "_expr8": {
3411
+ "type": "PREC_LEFT",
3412
+ "value": 0,
3413
+ "content": {
3414
+ "type": "CHOICE",
3415
+ "members": [
3416
+ {
3417
+ "type": "SYMBOL",
3418
+ "name": "index_access_expr"
3419
+ },
3420
+ {
3421
+ "type": "SYMBOL",
3422
+ "name": "member_access_expr"
3423
+ },
3424
+ {
3425
+ "type": "SYMBOL",
3426
+ "name": "term"
3427
+ }
3428
+ ]
3429
+ }
3430
+ },
3431
+ "term": {
3432
+ "type": "CHOICE",
3433
+ "members": [
3434
+ {
3435
+ "type": "SYMBOL",
3436
+ "name": "lit"
3437
+ },
3438
+ {
3439
+ "type": "SYMBOL",
3440
+ "name": "default_term"
3441
+ },
3442
+ {
3443
+ "type": "SYMBOL",
3444
+ "name": "map_term"
3445
+ },
3446
+ {
3447
+ "type": "SYMBOL",
3448
+ "name": "fold_term"
3449
+ },
3450
+ {
3451
+ "type": "SYMBOL",
3452
+ "name": "function_call_term"
3453
+ },
3454
+ {
3455
+ "type": "SYMBOL",
3456
+ "name": "slice_term"
3457
+ },
3458
+ {
3459
+ "type": "SYMBOL",
3460
+ "name": "disclose_term"
3461
+ },
3462
+ {
3463
+ "type": "SYMBOL",
3464
+ "name": "assert_term"
3465
+ },
3466
+ {
3467
+ "type": "SYMBOL",
3468
+ "name": "emit_term"
3469
+ },
3470
+ {
3471
+ "type": "SYMBOL",
3472
+ "name": "bytes_literal"
3473
+ },
3474
+ {
3475
+ "type": "SYMBOL",
3476
+ "name": "struct_term"
3477
+ },
3478
+ {
3479
+ "type": "SYMBOL",
3480
+ "name": "array_literal"
3481
+ },
3482
+ {
3483
+ "type": "SYMBOL",
3484
+ "name": "id"
3485
+ },
3486
+ {
3487
+ "type": "SYMBOL",
3488
+ "name": "expr_seq_term"
3489
+ }
3490
+ ]
3491
+ },
3492
+ "default_term": {
3493
+ "type": "SEQ",
3494
+ "members": [
3495
+ {
3496
+ "type": "STRING",
3497
+ "value": "default"
3498
+ },
3499
+ {
3500
+ "type": "STRING",
3501
+ "value": "<"
3502
+ },
3503
+ {
3504
+ "type": "FIELD",
3505
+ "name": "type",
3506
+ "content": {
3507
+ "type": "SYMBOL",
3508
+ "name": "type"
3509
+ }
3510
+ },
3511
+ {
3512
+ "type": "STRING",
3513
+ "value": ">"
3514
+ }
3515
+ ]
3516
+ },
3517
+ "map_term": {
3518
+ "type": "SEQ",
3519
+ "members": [
3520
+ {
3521
+ "type": "STRING",
3522
+ "value": "map"
3523
+ },
3524
+ {
3525
+ "type": "STRING",
3526
+ "value": "("
3527
+ },
3528
+ {
3529
+ "type": "FIELD",
3530
+ "name": "fun",
3531
+ "content": {
3532
+ "type": "SYMBOL",
3533
+ "name": "fun"
3534
+ }
3535
+ },
3536
+ {
3537
+ "type": "STRING",
3538
+ "value": ","
3539
+ },
3540
+ {
3541
+ "type": "SEQ",
3542
+ "members": [
3543
+ {
3544
+ "type": "FIELD",
3545
+ "name": "expr",
3546
+ "content": {
3547
+ "type": "SYMBOL",
3548
+ "name": "expr"
3549
+ }
3550
+ },
3551
+ {
3552
+ "type": "REPEAT",
3553
+ "content": {
3554
+ "type": "SEQ",
3555
+ "members": [
3556
+ {
3557
+ "type": "STRING",
3558
+ "value": ","
3559
+ },
3560
+ {
3561
+ "type": "FIELD",
3562
+ "name": "expr",
3563
+ "content": {
3564
+ "type": "SYMBOL",
3565
+ "name": "expr"
3566
+ }
3567
+ }
3568
+ ]
3569
+ }
3570
+ },
3571
+ {
3572
+ "type": "CHOICE",
3573
+ "members": [
3574
+ {
3575
+ "type": "STRING",
3576
+ "value": ","
3577
+ },
3578
+ {
3579
+ "type": "BLANK"
3580
+ }
3581
+ ]
3582
+ }
3583
+ ]
3584
+ },
3585
+ {
3586
+ "type": "STRING",
3587
+ "value": ")"
3588
+ }
3589
+ ]
3590
+ },
3591
+ "fold_term": {
3592
+ "type": "SEQ",
3593
+ "members": [
3594
+ {
3595
+ "type": "STRING",
3596
+ "value": "fold"
3597
+ },
3598
+ {
3599
+ "type": "STRING",
3600
+ "value": "("
3601
+ },
3602
+ {
3603
+ "type": "FIELD",
3604
+ "name": "fun",
3605
+ "content": {
3606
+ "type": "SYMBOL",
3607
+ "name": "fun"
3608
+ }
3609
+ },
3610
+ {
3611
+ "type": "STRING",
3612
+ "value": ","
3613
+ },
3614
+ {
3615
+ "type": "FIELD",
3616
+ "name": "init_value",
3617
+ "content": {
3618
+ "type": "SYMBOL",
3619
+ "name": "expr"
3620
+ }
3621
+ },
3622
+ {
3623
+ "type": "STRING",
3624
+ "value": ","
3625
+ },
3626
+ {
3627
+ "type": "SEQ",
3628
+ "members": [
3629
+ {
3630
+ "type": "FIELD",
3631
+ "name": "expr",
3632
+ "content": {
3633
+ "type": "SYMBOL",
3634
+ "name": "expr"
3635
+ }
3636
+ },
3637
+ {
3638
+ "type": "REPEAT",
3639
+ "content": {
3640
+ "type": "SEQ",
3641
+ "members": [
3642
+ {
3643
+ "type": "STRING",
3644
+ "value": ","
3645
+ },
3646
+ {
3647
+ "type": "FIELD",
3648
+ "name": "expr",
3649
+ "content": {
3650
+ "type": "SYMBOL",
3651
+ "name": "expr"
3652
+ }
3653
+ }
3654
+ ]
3655
+ }
3656
+ },
3657
+ {
3658
+ "type": "CHOICE",
3659
+ "members": [
3660
+ {
3661
+ "type": "STRING",
3662
+ "value": ","
3663
+ },
3664
+ {
3665
+ "type": "BLANK"
3666
+ }
3667
+ ]
3668
+ }
3669
+ ]
3670
+ },
3671
+ {
3672
+ "type": "STRING",
3673
+ "value": ")"
3674
+ }
3675
+ ]
3676
+ },
3677
+ "struct_term": {
3678
+ "type": "SEQ",
3679
+ "members": [
3680
+ {
3681
+ "type": "FIELD",
3682
+ "name": "tref",
3683
+ "content": {
3684
+ "type": "SYMBOL",
3685
+ "name": "tref"
3686
+ }
3687
+ },
3688
+ {
3689
+ "type": "STRING",
3690
+ "value": "{"
3691
+ },
3692
+ {
3693
+ "type": "CHOICE",
3694
+ "members": [
3695
+ {
3696
+ "type": "SEQ",
3697
+ "members": [
3698
+ {
3699
+ "type": "SYMBOL",
3700
+ "name": "struct_arg"
3701
+ },
3702
+ {
3703
+ "type": "REPEAT",
3704
+ "content": {
3705
+ "type": "SEQ",
3706
+ "members": [
3707
+ {
3708
+ "type": "STRING",
3709
+ "value": ","
3710
+ },
3711
+ {
3712
+ "type": "SYMBOL",
3713
+ "name": "struct_arg"
3714
+ }
3715
+ ]
3716
+ }
3717
+ },
3718
+ {
3719
+ "type": "CHOICE",
3720
+ "members": [
3721
+ {
3722
+ "type": "STRING",
3723
+ "value": ","
3724
+ },
3725
+ {
3726
+ "type": "BLANK"
3727
+ }
3728
+ ]
3729
+ }
3730
+ ]
3731
+ },
3732
+ {
3733
+ "type": "BLANK"
3734
+ }
3735
+ ]
3736
+ },
3737
+ {
3738
+ "type": "STRING",
3739
+ "value": "}"
3740
+ }
3741
+ ]
3742
+ },
3743
+ "function_call_term": {
3744
+ "type": "SEQ",
3745
+ "members": [
3746
+ {
3747
+ "type": "FIELD",
3748
+ "name": "fun",
3749
+ "content": {
3750
+ "type": "SYMBOL",
3751
+ "name": "fun"
3752
+ }
3753
+ },
3754
+ {
3755
+ "type": "STRING",
3756
+ "value": "("
3757
+ },
3758
+ {
3759
+ "type": "CHOICE",
3760
+ "members": [
3761
+ {
3762
+ "type": "SEQ",
3763
+ "members": [
3764
+ {
3765
+ "type": "FIELD",
3766
+ "name": "expr",
3767
+ "content": {
3768
+ "type": "SYMBOL",
3769
+ "name": "expr"
3770
+ }
3771
+ },
3772
+ {
3773
+ "type": "REPEAT",
3774
+ "content": {
3775
+ "type": "SEQ",
3776
+ "members": [
3777
+ {
3778
+ "type": "STRING",
3779
+ "value": ","
3780
+ },
3781
+ {
3782
+ "type": "FIELD",
3783
+ "name": "expr",
3784
+ "content": {
3785
+ "type": "SYMBOL",
3786
+ "name": "expr"
3787
+ }
3788
+ }
3789
+ ]
3790
+ }
3791
+ },
3792
+ {
3793
+ "type": "CHOICE",
3794
+ "members": [
3795
+ {
3796
+ "type": "STRING",
3797
+ "value": ","
3798
+ },
3799
+ {
3800
+ "type": "BLANK"
3801
+ }
3802
+ ]
3803
+ }
3804
+ ]
3805
+ },
3806
+ {
3807
+ "type": "BLANK"
3808
+ }
3809
+ ]
3810
+ },
3811
+ {
3812
+ "type": "STRING",
3813
+ "value": ")"
3814
+ }
3815
+ ]
3816
+ },
3817
+ "slice_term": {
3818
+ "type": "SEQ",
3819
+ "members": [
3820
+ {
3821
+ "type": "STRING",
3822
+ "value": "slice"
3823
+ },
3824
+ {
3825
+ "type": "STRING",
3826
+ "value": "<"
3827
+ },
3828
+ {
3829
+ "type": "FIELD",
3830
+ "name": "tsize",
3831
+ "content": {
3832
+ "type": "SYMBOL",
3833
+ "name": "tsize"
3834
+ }
3835
+ },
3836
+ {
3837
+ "type": "STRING",
3838
+ "value": ">"
3839
+ },
3840
+ {
3841
+ "type": "STRING",
3842
+ "value": "("
3843
+ },
3844
+ {
3845
+ "type": "FIELD",
3846
+ "name": "expr",
3847
+ "content": {
3848
+ "type": "SYMBOL",
3849
+ "name": "expr"
3850
+ }
3851
+ },
3852
+ {
3853
+ "type": "STRING",
3854
+ "value": ","
3855
+ },
3856
+ {
3857
+ "type": "FIELD",
3858
+ "name": "expr",
3859
+ "content": {
3860
+ "type": "SYMBOL",
3861
+ "name": "expr"
3862
+ }
3863
+ },
3864
+ {
3865
+ "type": "STRING",
3866
+ "value": ")"
3867
+ }
3868
+ ]
3869
+ },
3870
+ "disclose_term": {
3871
+ "type": "SEQ",
3872
+ "members": [
3873
+ {
3874
+ "type": "STRING",
3875
+ "value": "disclose"
3876
+ },
3877
+ {
3878
+ "type": "STRING",
3879
+ "value": "("
3880
+ },
3881
+ {
3882
+ "type": "FIELD",
3883
+ "name": "expr",
3884
+ "content": {
3885
+ "type": "SYMBOL",
3886
+ "name": "expr"
3887
+ }
3888
+ },
3889
+ {
3890
+ "type": "STRING",
3891
+ "value": ")"
3892
+ }
3893
+ ]
3894
+ },
3895
+ "assert_term": {
3896
+ "type": "PREC",
3897
+ "value": 2,
3898
+ "content": {
3899
+ "type": "SEQ",
3900
+ "members": [
3901
+ {
3902
+ "type": "STRING",
3903
+ "value": "assert"
3904
+ },
3905
+ {
3906
+ "type": "STRING",
3907
+ "value": "("
3908
+ },
3909
+ {
3910
+ "type": "FIELD",
3911
+ "name": "condition",
3912
+ "content": {
3913
+ "type": "SYMBOL",
3914
+ "name": "expr"
3915
+ }
3916
+ },
3917
+ {
3918
+ "type": "STRING",
3919
+ "value": ","
3920
+ },
3921
+ {
3922
+ "type": "FIELD",
3923
+ "name": "message",
3924
+ "content": {
3925
+ "type": "SYMBOL",
3926
+ "name": "str"
3927
+ }
3928
+ },
3929
+ {
3930
+ "type": "STRING",
3931
+ "value": ")"
3932
+ }
3933
+ ]
3934
+ }
3935
+ },
3936
+ "emit_term": {
3937
+ "type": "PREC",
3938
+ "value": 2,
3939
+ "content": {
3940
+ "type": "SEQ",
3941
+ "members": [
3942
+ {
3943
+ "type": "STRING",
3944
+ "value": "emit"
3945
+ },
3946
+ {
3947
+ "type": "STRING",
3948
+ "value": "("
3949
+ },
3950
+ {
3951
+ "type": "FIELD",
3952
+ "name": "value",
3953
+ "content": {
3954
+ "type": "SYMBOL",
3955
+ "name": "expr"
3956
+ }
3957
+ },
3958
+ {
3959
+ "type": "STRING",
3960
+ "value": ")"
3961
+ }
3962
+ ]
3963
+ }
3964
+ },
3965
+ "array_literal": {
3966
+ "type": "SEQ",
3967
+ "members": [
3968
+ {
3969
+ "type": "STRING",
3970
+ "value": "["
3971
+ },
3972
+ {
3973
+ "type": "CHOICE",
3974
+ "members": [
3975
+ {
3976
+ "type": "SEQ",
3977
+ "members": [
3978
+ {
3979
+ "type": "FIELD",
3980
+ "name": "element",
3981
+ "content": {
3982
+ "type": "SYMBOL",
3983
+ "name": "tuple_arg"
3984
+ }
3985
+ },
3986
+ {
3987
+ "type": "REPEAT",
3988
+ "content": {
3989
+ "type": "SEQ",
3990
+ "members": [
3991
+ {
3992
+ "type": "STRING",
3993
+ "value": ","
3994
+ },
3995
+ {
3996
+ "type": "FIELD",
3997
+ "name": "element",
3998
+ "content": {
3999
+ "type": "SYMBOL",
4000
+ "name": "tuple_arg"
4001
+ }
4002
+ }
4003
+ ]
4004
+ }
4005
+ },
4006
+ {
4007
+ "type": "CHOICE",
4008
+ "members": [
4009
+ {
4010
+ "type": "STRING",
4011
+ "value": ","
4012
+ },
4013
+ {
4014
+ "type": "BLANK"
4015
+ }
4016
+ ]
4017
+ }
4018
+ ]
4019
+ },
4020
+ {
4021
+ "type": "BLANK"
4022
+ }
4023
+ ]
4024
+ },
4025
+ {
4026
+ "type": "STRING",
4027
+ "value": "]"
4028
+ }
4029
+ ]
4030
+ },
4031
+ "bytes_literal": {
4032
+ "type": "SEQ",
4033
+ "members": [
4034
+ {
4035
+ "type": "STRING",
4036
+ "value": "Bytes"
4037
+ },
4038
+ {
4039
+ "type": "STRING",
4040
+ "value": "["
4041
+ },
4042
+ {
4043
+ "type": "CHOICE",
4044
+ "members": [
4045
+ {
4046
+ "type": "SEQ",
4047
+ "members": [
4048
+ {
4049
+ "type": "FIELD",
4050
+ "name": "element",
4051
+ "content": {
4052
+ "type": "SYMBOL",
4053
+ "name": "tuple_arg"
4054
+ }
4055
+ },
4056
+ {
4057
+ "type": "REPEAT",
4058
+ "content": {
4059
+ "type": "SEQ",
4060
+ "members": [
4061
+ {
4062
+ "type": "STRING",
4063
+ "value": ","
4064
+ },
4065
+ {
4066
+ "type": "FIELD",
4067
+ "name": "element",
4068
+ "content": {
4069
+ "type": "SYMBOL",
4070
+ "name": "tuple_arg"
4071
+ }
4072
+ }
4073
+ ]
4074
+ }
4075
+ },
4076
+ {
4077
+ "type": "CHOICE",
4078
+ "members": [
4079
+ {
4080
+ "type": "STRING",
4081
+ "value": ","
4082
+ },
4083
+ {
4084
+ "type": "BLANK"
4085
+ }
4086
+ ]
4087
+ }
4088
+ ]
4089
+ },
4090
+ {
4091
+ "type": "BLANK"
4092
+ }
4093
+ ]
4094
+ },
4095
+ {
4096
+ "type": "STRING",
4097
+ "value": "]"
4098
+ }
4099
+ ]
4100
+ },
4101
+ "tuple_arg": {
4102
+ "type": "CHOICE",
4103
+ "members": [
4104
+ {
4105
+ "type": "SYMBOL",
4106
+ "name": "spread_element"
4107
+ },
4108
+ {
4109
+ "type": "FIELD",
4110
+ "name": "expr",
4111
+ "content": {
4112
+ "type": "SYMBOL",
4113
+ "name": "expr"
4114
+ }
4115
+ }
4116
+ ]
4117
+ },
4118
+ "spread_element": {
4119
+ "type": "SEQ",
4120
+ "members": [
4121
+ {
4122
+ "type": "STRING",
4123
+ "value": "..."
4124
+ },
4125
+ {
4126
+ "type": "FIELD",
4127
+ "name": "expr",
4128
+ "content": {
4129
+ "type": "SYMBOL",
4130
+ "name": "expr"
4131
+ }
4132
+ }
4133
+ ]
4134
+ },
4135
+ "expr_seq_term": {
4136
+ "type": "SEQ",
4137
+ "members": [
4138
+ {
4139
+ "type": "STRING",
4140
+ "value": "("
4141
+ },
4142
+ {
4143
+ "type": "SYMBOL",
4144
+ "name": "expr_seq"
4145
+ },
4146
+ {
4147
+ "type": "STRING",
4148
+ "value": ")"
4149
+ }
4150
+ ]
4151
+ },
4152
+ "lit": {
4153
+ "type": "CHOICE",
4154
+ "members": [
4155
+ {
4156
+ "type": "STRING",
4157
+ "value": "true"
4158
+ },
4159
+ {
4160
+ "type": "STRING",
4161
+ "value": "false"
4162
+ },
4163
+ {
4164
+ "type": "SYMBOL",
4165
+ "name": "nat"
4166
+ },
4167
+ {
4168
+ "type": "SYMBOL",
4169
+ "name": "str"
4170
+ },
4171
+ {
4172
+ "type": "SYMBOL",
4173
+ "name": "pad"
4174
+ }
4175
+ ]
4176
+ },
4177
+ "pad": {
4178
+ "type": "SEQ",
4179
+ "members": [
4180
+ {
4181
+ "type": "STRING",
4182
+ "value": "pad"
4183
+ },
4184
+ {
4185
+ "type": "STRING",
4186
+ "value": "("
4187
+ },
4188
+ {
4189
+ "type": "FIELD",
4190
+ "name": "nat",
4191
+ "content": {
4192
+ "type": "SYMBOL",
4193
+ "name": "nat"
4194
+ }
4195
+ },
4196
+ {
4197
+ "type": "STRING",
4198
+ "value": ","
4199
+ },
4200
+ {
4201
+ "type": "FIELD",
4202
+ "name": "str",
4203
+ "content": {
4204
+ "type": "SYMBOL",
4205
+ "name": "str"
4206
+ }
4207
+ },
4208
+ {
4209
+ "type": "STRING",
4210
+ "value": ")"
4211
+ }
4212
+ ]
4213
+ },
4214
+ "struct_arg": {
4215
+ "type": "CHOICE",
4216
+ "members": [
4217
+ {
4218
+ "type": "SYMBOL",
4219
+ "name": "expr"
4220
+ },
4221
+ {
4222
+ "type": "SYMBOL",
4223
+ "name": "struct_named_field_initializer"
4224
+ },
4225
+ {
4226
+ "type": "SYMBOL",
4227
+ "name": "spread_element"
4228
+ }
4229
+ ]
4230
+ },
4231
+ "struct_named_field_initializer": {
4232
+ "type": "SEQ",
4233
+ "members": [
4234
+ {
4235
+ "type": "FIELD",
4236
+ "name": "id",
4237
+ "content": {
4238
+ "type": "SYMBOL",
4239
+ "name": "id"
4240
+ }
4241
+ },
4242
+ {
4243
+ "type": "STRING",
4244
+ "value": ":"
4245
+ },
4246
+ {
4247
+ "type": "FIELD",
4248
+ "name": "expr",
4249
+ "content": {
4250
+ "type": "SYMBOL",
4251
+ "name": "expr"
4252
+ }
4253
+ }
4254
+ ]
4255
+ },
4256
+ "fun": {
4257
+ "type": "CHOICE",
4258
+ "members": [
4259
+ {
4260
+ "type": "SEQ",
4261
+ "members": [
4262
+ {
4263
+ "type": "FIELD",
4264
+ "name": "id",
4265
+ "content": {
4266
+ "type": "SYMBOL",
4267
+ "name": "id"
4268
+ }
4269
+ },
4270
+ {
4271
+ "type": "CHOICE",
4272
+ "members": [
4273
+ {
4274
+ "type": "FIELD",
4275
+ "name": "gargs",
4276
+ "content": {
4277
+ "type": "SYMBOL",
4278
+ "name": "gargs"
4279
+ }
4280
+ },
4281
+ {
4282
+ "type": "BLANK"
4283
+ }
4284
+ ]
4285
+ }
4286
+ ]
4287
+ },
4288
+ {
4289
+ "type": "SEQ",
4290
+ "members": [
4291
+ {
4292
+ "type": "STRING",
4293
+ "value": "("
4294
+ },
4295
+ {
4296
+ "type": "CHOICE",
4297
+ "members": [
4298
+ {
4299
+ "type": "SEQ",
4300
+ "members": [
4301
+ {
4302
+ "type": "SYMBOL",
4303
+ "name": "_pattern_or_parg"
4304
+ },
4305
+ {
4306
+ "type": "REPEAT",
4307
+ "content": {
4308
+ "type": "SEQ",
4309
+ "members": [
4310
+ {
4311
+ "type": "STRING",
4312
+ "value": ","
4313
+ },
4314
+ {
4315
+ "type": "SYMBOL",
4316
+ "name": "_pattern_or_parg"
4317
+ }
4318
+ ]
4319
+ }
4320
+ },
4321
+ {
4322
+ "type": "CHOICE",
4323
+ "members": [
4324
+ {
4325
+ "type": "STRING",
4326
+ "value": ","
4327
+ },
4328
+ {
4329
+ "type": "BLANK"
4330
+ }
4331
+ ]
4332
+ }
4333
+ ]
4334
+ },
4335
+ {
4336
+ "type": "BLANK"
4337
+ }
4338
+ ]
4339
+ },
4340
+ {
4341
+ "type": "STRING",
4342
+ "value": ")"
4343
+ },
4344
+ {
4345
+ "type": "CHOICE",
4346
+ "members": [
4347
+ {
4348
+ "type": "FIELD",
4349
+ "name": "return",
4350
+ "content": {
4351
+ "type": "SYMBOL",
4352
+ "name": "_return_type_decl"
4353
+ }
4354
+ },
4355
+ {
4356
+ "type": "BLANK"
4357
+ }
4358
+ ]
4359
+ },
4360
+ {
4361
+ "type": "STRING",
4362
+ "value": "=>"
4363
+ },
4364
+ {
4365
+ "type": "CHOICE",
4366
+ "members": [
4367
+ {
4368
+ "type": "FIELD",
4369
+ "name": "block",
4370
+ "content": {
4371
+ "type": "SYMBOL",
4372
+ "name": "block"
4373
+ }
4374
+ },
4375
+ {
4376
+ "type": "FIELD",
4377
+ "name": "expr",
4378
+ "content": {
4379
+ "type": "SYMBOL",
4380
+ "name": "expr"
4381
+ }
4382
+ }
4383
+ ]
4384
+ }
4385
+ ]
4386
+ },
4387
+ {
4388
+ "type": "SEQ",
4389
+ "members": [
4390
+ {
4391
+ "type": "STRING",
4392
+ "value": "("
4393
+ },
4394
+ {
4395
+ "type": "SYMBOL",
4396
+ "name": "fun"
4397
+ },
4398
+ {
4399
+ "type": "STRING",
4400
+ "value": ")"
4401
+ }
4402
+ ]
4403
+ }
4404
+ ]
4405
+ },
4406
+ "_return_type_decl": {
4407
+ "type": "SEQ",
4408
+ "members": [
4409
+ {
4410
+ "type": "STRING",
4411
+ "value": ":"
4412
+ },
4413
+ {
4414
+ "type": "SYMBOL",
4415
+ "name": "type"
4416
+ }
4417
+ ]
4418
+ },
4419
+ "_pattern_or_parg": {
4420
+ "type": "CHOICE",
4421
+ "members": [
4422
+ {
4423
+ "type": "FIELD",
4424
+ "name": "pattern",
4425
+ "content": {
4426
+ "type": "SYMBOL",
4427
+ "name": "pattern"
4428
+ }
4429
+ },
4430
+ {
4431
+ "type": "FIELD",
4432
+ "name": "parg",
4433
+ "content": {
4434
+ "type": "SYMBOL",
4435
+ "name": "parg"
4436
+ }
4437
+ }
4438
+ ]
4439
+ },
4440
+ "equals": {
4441
+ "type": "STRING",
4442
+ "value": "=="
4443
+ },
4444
+ "not_equals": {
4445
+ "type": "STRING",
4446
+ "value": "!="
4447
+ },
4448
+ "greater_than": {
4449
+ "type": "STRING",
4450
+ "value": ">"
4451
+ },
4452
+ "less_than": {
4453
+ "type": "STRING",
4454
+ "value": "<"
4455
+ },
4456
+ "greater_than_or_equal": {
4457
+ "type": "STRING",
4458
+ "value": ">="
4459
+ },
4460
+ "less_than_or_equal": {
4461
+ "type": "STRING",
4462
+ "value": "<="
4463
+ },
4464
+ "not": {
4465
+ "type": "STRING",
4466
+ "value": "!"
4467
+ },
4468
+ "and": {
4469
+ "type": "STRING",
4470
+ "value": "&&"
4471
+ },
4472
+ "or": {
4473
+ "type": "STRING",
4474
+ "value": "||"
4475
+ },
4476
+ "id": {
4477
+ "type": "PATTERN",
4478
+ "value": "[\\p{L}\\p{Nl}_$][\\p{L}\\p{Nl}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}$]*"
4479
+ },
4480
+ "module_name": {
4481
+ "type": "PATTERN",
4482
+ "value": "[\\p{L}\\p{Nl}_$][\\p{L}\\p{Nl}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}$]*"
4483
+ },
4484
+ "function_name": {
4485
+ "type": "PATTERN",
4486
+ "value": "[\\p{L}\\p{Nl}_$][\\p{L}\\p{Nl}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}$]*"
4487
+ },
4488
+ "struct_name": {
4489
+ "type": "PATTERN",
4490
+ "value": "[\\p{L}\\p{Nl}_$][\\p{L}\\p{Nl}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}$]*"
4491
+ },
4492
+ "enum_name": {
4493
+ "type": "PATTERN",
4494
+ "value": "[\\p{L}\\p{Nl}_$][\\p{L}\\p{Nl}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}$]*"
4495
+ },
4496
+ "contract_name": {
4497
+ "type": "PATTERN",
4498
+ "value": "[\\p{L}\\p{Nl}_$][\\p{L}\\p{Nl}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}$]*"
4499
+ },
4500
+ "tvar_name": {
4501
+ "type": "PATTERN",
4502
+ "value": "[\\p{L}\\p{Nl}_$][\\p{L}\\p{Nl}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}$]*"
4503
+ },
4504
+ "type_name": {
4505
+ "type": "PATTERN",
4506
+ "value": "[\\p{L}\\p{Nl}_$][\\p{L}\\p{Nl}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}$]*"
4507
+ },
4508
+ "nat": {
4509
+ "type": "CHOICE",
4510
+ "members": [
4511
+ {
4512
+ "type": "STRING",
4513
+ "value": "0"
4514
+ },
4515
+ {
4516
+ "type": "PATTERN",
4517
+ "value": "[1-9][0-9]*"
4518
+ },
4519
+ {
4520
+ "type": "PATTERN",
4521
+ "value": "0[bB][01]+"
4522
+ },
4523
+ {
4524
+ "type": "PATTERN",
4525
+ "value": "0[oO][0-7]+"
4526
+ },
4527
+ {
4528
+ "type": "PATTERN",
4529
+ "value": "0[xX][0-9a-fA-F]+"
4530
+ }
4531
+ ]
4532
+ },
4533
+ "str": {
4534
+ "type": "TOKEN",
4535
+ "content": {
4536
+ "type": "CHOICE",
4537
+ "members": [
4538
+ {
4539
+ "type": "PATTERN",
4540
+ "value": "\"(?:[^\"\\\\]|\\\\[\\s\\S])*\""
4541
+ },
4542
+ {
4543
+ "type": "PATTERN",
4544
+ "value": "'(?:[^'\\\\]|\\\\[\\s\\S])*'"
4545
+ }
4546
+ ]
4547
+ }
4548
+ },
4549
+ "file": {
4550
+ "type": "TOKEN",
4551
+ "content": {
4552
+ "type": "CHOICE",
4553
+ "members": [
4554
+ {
4555
+ "type": "PATTERN",
4556
+ "value": "\"(?:[^\"\\\\]|\\\\[\\s\\S])*\""
4557
+ },
4558
+ {
4559
+ "type": "PATTERN",
4560
+ "value": "'(?:[^'\\\\]|\\\\[\\s\\S])*'"
4561
+ }
4562
+ ]
4563
+ }
4564
+ },
4565
+ "version": {
4566
+ "type": "PATTERN",
4567
+ "value": "[0-9]+(\\.[0-9]+){0,2}"
4568
+ }
4569
+ },
4570
+ "extras": [
4571
+ {
4572
+ "type": "PATTERN",
4573
+ "value": "[\\s\\n]+"
4574
+ },
4575
+ {
4576
+ "type": "SYMBOL",
4577
+ "name": "comment"
4578
+ }
4579
+ ],
4580
+ "conflicts": [
4581
+ [
4582
+ "fun",
4583
+ "term",
4584
+ "tref"
4585
+ ],
4586
+ [
4587
+ "fun",
4588
+ "pattern",
4589
+ "term"
4590
+ ],
4591
+ [
4592
+ "pattern",
4593
+ "term"
4594
+ ],
4595
+ [
4596
+ "fun",
4597
+ "term"
4598
+ ],
4599
+ [
4600
+ "fun",
4601
+ "pattern"
4602
+ ],
4603
+ [
4604
+ "pattern",
4605
+ "array_literal"
4606
+ ]
4607
+ ],
4608
+ "precedences": [],
4609
+ "externals": [],
4610
+ "inline": [],
4611
+ "supertypes": [],
4612
+ "reserved": {}
4613
+ }