tree-sitter-rake 0.4.0-beta

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