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