1{
2 "name": "kotlin",
3 "word": "identifier",
4 "rules": {
5 "source_file": {
6 "type": "SEQ",
7 "members": [
8 {
9 "type": "CHOICE",
10 "members": [
11 {
12 "type": "SYMBOL",
13 "name": "shebang"
14 },
15 {
16 "type": "BLANK"
17 }
18 ]
19 },
20 {
21 "type": "REPEAT",
22 "content": {
23 "type": "SYMBOL",
24 "name": "file_annotation"
25 }
26 },
27 {
28 "type": "CHOICE",
29 "members": [
30 {
31 "type": "SYMBOL",
32 "name": "package_header"
33 },
34 {
35 "type": "BLANK"
36 }
37 ]
38 },
39 {
40 "type": "REPEAT",
41 "content": {
42 "type": "SYMBOL",
43 "name": "import"
44 }
45 },
46 {
47 "type": "REPEAT",
48 "content": {
49 "type": "SEQ",
50 "members": [
51 {
52 "type": "SYMBOL",
53 "name": "statement"
54 },
55 {
56 "type": "SYMBOL",
57 "name": "_semi"
58 }
59 ]
60 }
61 }
62 ]
63 },
64 "file_annotation": {
65 "type": "SEQ",
66 "members": [
67 {
68 "type": "STRING",
69 "value": "@"
70 },
71 {
72 "type": "STRING",
73 "value": "file"
74 },
75 {
76 "type": "STRING",
77 "value": ":"
78 },
79 {
80 "type": "CHOICE",
81 "members": [
82 {
83 "type": "SEQ",
84 "members": [
85 {
86 "type": "STRING",
87 "value": "["
88 },
89 {
90 "type": "REPEAT1",
91 "content": {
92 "type": "SYMBOL",
93 "name": "_unescaped_annotation"
94 }
95 },
96 {
97 "type": "STRING",
98 "value": "]"
99 }
100 ]
101 },
102 {
103 "type": "SYMBOL",
104 "name": "_unescaped_annotation"
105 }
106 ]
107 },
108 {
109 "type": "SYMBOL",
110 "name": "_semi"
111 }
112 ]
113 },
114 "package_header": {
115 "type": "SEQ",
116 "members": [
117 {
118 "type": "STRING",
119 "value": "package"
120 },
121 {
122 "type": "SYMBOL",
123 "name": "qualified_identifier"
124 },
125 {
126 "type": "CHOICE",
127 "members": [
128 {
129 "type": "STRING",
130 "value": ";"
131 },
132 {
133 "type": "BLANK"
134 }
135 ]
136 }
137 ]
138 },
139 "import": {
140 "type": "SEQ",
141 "members": [
142 {
143 "type": "STRING",
144 "value": "import"
145 },
146 {
147 "type": "SYMBOL",
148 "name": "qualified_identifier"
149 },
150 {
151 "type": "CHOICE",
152 "members": [
153 {
154 "type": "CHOICE",
155 "members": [
156 {
157 "type": "SEQ",
158 "members": [
159 {
160 "type": "STRING",
161 "value": "."
162 },
163 {
164 "type": "STRING",
165 "value": "*"
166 }
167 ]
168 },
169 {
170 "type": "SEQ",
171 "members": [
172 {
173 "type": "STRING",
174 "value": "as"
175 },
176 {
177 "type": "SYMBOL",
178 "name": "identifier"
179 }
180 ]
181 }
182 ]
183 },
184 {
185 "type": "BLANK"
186 }
187 ]
188 },
189 {
190 "type": "CHOICE",
191 "members": [
192 {
193 "type": "STRING",
194 "value": ";"
195 },
196 {
197 "type": "BLANK"
198 }
199 ]
200 }
201 ]
202 },
203 "declaration": {
204 "type": "CHOICE",
205 "members": [
206 {
207 "type": "SYMBOL",
208 "name": "class_declaration"
209 },
210 {
211 "type": "SYMBOL",
212 "name": "object_declaration"
213 },
214 {
215 "type": "SYMBOL",
216 "name": "function_declaration"
217 },
218 {
219 "type": "SYMBOL",
220 "name": "property_declaration"
221 },
222 {
223 "type": "SYMBOL",
224 "name": "type_alias"
225 }
226 ]
227 },
228 "class_declaration": {
229 "type": "PREC_RIGHT",
230 "value": 0,
231 "content": {
232 "type": "SEQ",
233 "members": [
234 {
235 "type": "CHOICE",
236 "members": [
237 {
238 "type": "SYMBOL",
239 "name": "modifiers"
240 },
241 {
242 "type": "BLANK"
243 }
244 ]
245 },
246 {
247 "type": "CHOICE",
248 "members": [
249 {
250 "type": "STRING",
251 "value": "class"
252 },
253 {
254 "type": "SEQ",
255 "members": [
256 {
257 "type": "CHOICE",
258 "members": [
259 {
260 "type": "STRING",
261 "value": "fun"
262 },
263 {
264 "type": "BLANK"
265 }
266 ]
267 },
268 {
269 "type": "STRING",
270 "value": "interface"
271 }
272 ]
273 }
274 ]
275 },
276 {
277 "type": "FIELD",
278 "name": "name",
279 "content": {
280 "type": "SYMBOL",
281 "name": "identifier"
282 }
283 },
284 {
285 "type": "CHOICE",
286 "members": [
287 {
288 "type": "SYMBOL",
289 "name": "type_parameters"
290 },
291 {
292 "type": "BLANK"
293 }
294 ]
295 },
296 {
297 "type": "CHOICE",
298 "members": [
299 {
300 "type": "SYMBOL",
301 "name": "primary_constructor"
302 },
303 {
304 "type": "BLANK"
305 }
306 ]
307 },
308 {
309 "type": "CHOICE",
310 "members": [
311 {
312 "type": "SEQ",
313 "members": [
314 {
315 "type": "STRING",
316 "value": ":"
317 },
318 {
319 "type": "SYMBOL",
320 "name": "delegation_specifiers"
321 }
322 ]
323 },
324 {
325 "type": "BLANK"
326 }
327 ]
328 },
329 {
330 "type": "CHOICE",
331 "members": [
332 {
333 "type": "SYMBOL",
334 "name": "type_constraints"
335 },
336 {
337 "type": "BLANK"
338 }
339 ]
340 },
341 {
342 "type": "CHOICE",
343 "members": [
344 {
345 "type": "CHOICE",
346 "members": [
347 {
348 "type": "SYMBOL",
349 "name": "class_body"
350 },
351 {
352 "type": "SYMBOL",
353 "name": "enum_class_body"
354 }
355 ]
356 },
357 {
358 "type": "BLANK"
359 }
360 ]
361 }
362 ]
363 }
364 },
365 "object_declaration": {
366 "type": "PREC_RIGHT",
367 "value": 0,
368 "content": {
369 "type": "SEQ",
370 "members": [
371 {
372 "type": "CHOICE",
373 "members": [
374 {
375 "type": "SYMBOL",
376 "name": "modifiers"
377 },
378 {
379 "type": "BLANK"
380 }
381 ]
382 },
383 {
384 "type": "STRING",
385 "value": "object"
386 },
387 {
388 "type": "FIELD",
389 "name": "name",
390 "content": {
391 "type": "SYMBOL",
392 "name": "identifier"
393 }
394 },
395 {
396 "type": "CHOICE",
397 "members": [
398 {
399 "type": "SEQ",
400 "members": [
401 {
402 "type": "STRING",
403 "value": ":"
404 },
405 {
406 "type": "SYMBOL",
407 "name": "delegation_specifiers"
408 }
409 ]
410 },
411 {
412 "type": "BLANK"
413 }
414 ]
415 },
416 {
417 "type": "CHOICE",
418 "members": [
419 {
420 "type": "SYMBOL",
421 "name": "class_body"
422 },
423 {
424 "type": "BLANK"
425 }
426 ]
427 }
428 ]
429 }
430 },
431 "property_declaration": {
432 "type": "PREC_RIGHT",
433 "value": 0,
434 "content": {
435 "type": "SEQ",
436 "members": [
437 {
438 "type": "CHOICE",
439 "members": [
440 {
441 "type": "SYMBOL",
442 "name": "modifiers"
443 },
444 {
445 "type": "BLANK"
446 }
447 ]
448 },
449 {
450 "type": "CHOICE",
451 "members": [
452 {
453 "type": "STRING",
454 "value": "val"
455 },
456 {
457 "type": "STRING",
458 "value": "var"
459 }
460 ]
461 },
462 {
463 "type": "CHOICE",
464 "members": [
465 {
466 "type": "SYMBOL",
467 "name": "type_parameters"
468 },
469 {
470 "type": "BLANK"
471 }
472 ]
473 },
474 {
475 "type": "CHOICE",
476 "members": [
477 {
478 "type": "SEQ",
479 "members": [
480 {
481 "type": "SYMBOL",
482 "name": "_receiver_type"
483 },
484 {
485 "type": "CHOICE",
486 "members": [
487 {
488 "type": "STRING",
489 "value": "."
490 },
491 {
492 "type": "BLANK"
493 }
494 ]
495 }
496 ]
497 },
498 {
499 "type": "BLANK"
500 }
501 ]
502 },
503 {
504 "type": "CHOICE",
505 "members": [
506 {
507 "type": "SYMBOL",
508 "name": "variable_declaration"
509 },
510 {
511 "type": "SYMBOL",
512 "name": "multi_variable_declaration"
513 }
514 ]
515 },
516 {
517 "type": "CHOICE",
518 "members": [
519 {
520 "type": "SYMBOL",
521 "name": "type_constraints"
522 },
523 {
524 "type": "BLANK"
525 }
526 ]
527 },
528 {
529 "type": "CHOICE",
530 "members": [
531 {
532 "type": "CHOICE",
533 "members": [
534 {
535 "type": "SEQ",
536 "members": [
537 {
538 "type": "STRING",
539 "value": "="
540 },
541 {
542 "type": "SYMBOL",
543 "name": "expression"
544 }
545 ]
546 },
547 {
548 "type": "SYMBOL",
549 "name": "property_delegate"
550 }
551 ]
552 },
553 {
554 "type": "BLANK"
555 }
556 ]
557 },
558 {
559 "type": "CHOICE",
560 "members": [
561 {
562 "type": "STRING",
563 "value": ";"
564 },
565 {
566 "type": "BLANK"
567 }
568 ]
569 },
570 {
571 "type": "CHOICE",
572 "members": [
573 {
574 "type": "CHOICE",
575 "members": [
576 {
577 "type": "SEQ",
578 "members": [
579 {
580 "type": "SYMBOL",
581 "name": "getter"
582 },
583 {
584 "type": "CHOICE",
585 "members": [
586 {
587 "type": "SYMBOL",
588 "name": "setter"
589 },
590 {
591 "type": "BLANK"
592 }
593 ]
594 }
595 ]
596 },
597 {
598 "type": "SEQ",
599 "members": [
600 {
601 "type": "SYMBOL",
602 "name": "setter"
603 },
604 {
605 "type": "CHOICE",
606 "members": [
607 {
608 "type": "SYMBOL",
609 "name": "getter"
610 },
611 {
612 "type": "BLANK"
613 }
614 ]
615 }
616 ]
617 }
618 ]
619 },
620 {
621 "type": "BLANK"
622 }
623 ]
624 }
625 ]
626 }
627 },
628 "type_alias": {
629 "type": "PREC_RIGHT",
630 "value": 0,
631 "content": {
632 "type": "SEQ",
633 "members": [
634 {
635 "type": "CHOICE",
636 "members": [
637 {
638 "type": "SYMBOL",
639 "name": "modifiers"
640 },
641 {
642 "type": "BLANK"
643 }
644 ]
645 },
646 {
647 "type": "STRING",
648 "value": "typealias"
649 },
650 {
651 "type": "FIELD",
652 "name": "type",
653 "content": {
654 "type": "SYMBOL",
655 "name": "identifier"
656 }
657 },
658 {
659 "type": "CHOICE",
660 "members": [
661 {
662 "type": "SYMBOL",
663 "name": "type_parameters"
664 },
665 {
666 "type": "BLANK"
667 }
668 ]
669 },
670 {
671 "type": "STRING",
672 "value": "="
673 },
674 {
675 "type": "SYMBOL",
676 "name": "type"
677 }
678 ]
679 }
680 },
681 "companion_object": {
682 "type": "SEQ",
683 "members": [
684 {
685 "type": "CHOICE",
686 "members": [
687 {
688 "type": "SYMBOL",
689 "name": "modifiers"
690 },
691 {
692 "type": "BLANK"
693 }
694 ]
695 },
696 {
697 "type": "STRING",
698 "value": "companion"
699 },
700 {
701 "type": "STRING",
702 "value": "object"
703 },
704 {
705 "type": "CHOICE",
706 "members": [
707 {
708 "type": "FIELD",
709 "name": "name",
710 "content": {
711 "type": "SYMBOL",
712 "name": "identifier"
713 }
714 },
715 {
716 "type": "BLANK"
717 }
718 ]
719 },
720 {
721 "type": "CHOICE",
722 "members": [
723 {
724 "type": "SEQ",
725 "members": [
726 {
727 "type": "STRING",
728 "value": ":"
729 },
730 {
731 "type": "SYMBOL",
732 "name": "delegation_specifiers"
733 }
734 ]
735 },
736 {
737 "type": "BLANK"
738 }
739 ]
740 },
741 {
742 "type": "CHOICE",
743 "members": [
744 {
745 "type": "SYMBOL",
746 "name": "class_body"
747 },
748 {
749 "type": "BLANK"
750 }
751 ]
752 }
753 ]
754 },
755 "anonymous_initializer": {
756 "type": "SEQ",
757 "members": [
758 {
759 "type": "STRING",
760 "value": "init"
761 },
762 {
763 "type": "SYMBOL",
764 "name": "block"
765 }
766 ]
767 },
768 "secondary_constructor": {
769 "type": "SEQ",
770 "members": [
771 {
772 "type": "CHOICE",
773 "members": [
774 {
775 "type": "SYMBOL",
776 "name": "modifiers"
777 },
778 {
779 "type": "BLANK"
780 }
781 ]
782 },
783 {
784 "type": "STRING",
785 "value": "constructor"
786 },
787 {
788 "type": "SYMBOL",
789 "name": "function_value_parameters"
790 },
791 {
792 "type": "CHOICE",
793 "members": [
794 {
795 "type": "SEQ",
796 "members": [
797 {
798 "type": "STRING",
799 "value": ":"
800 },
801 {
802 "type": "SYMBOL",
803 "name": "constructor_delegation_call"
804 }
805 ]
806 },
807 {
808 "type": "BLANK"
809 }
810 ]
811 },
812 {
813 "type": "CHOICE",
814 "members": [
815 {
816 "type": "SYMBOL",
817 "name": "block"
818 },
819 {
820 "type": "BLANK"
821 }
822 ]
823 }
824 ]
825 },
826 "constructor_delegation_call": {
827 "type": "SEQ",
828 "members": [
829 {
830 "type": "CHOICE",
831 "members": [
832 {
833 "type": "STRING",
834 "value": "this"
835 },
836 {
837 "type": "STRING",
838 "value": "super"
839 }
840 ]
841 },
842 {
843 "type": "SYMBOL",
844 "name": "value_arguments"
845 }
846 ]
847 },
848 "type_parameters": {
849 "type": "SEQ",
850 "members": [
851 {
852 "type": "STRING",
853 "value": "<"
854 },
855 {
856 "type": "SEQ",
857 "members": [
858 {
859 "type": "SYMBOL",
860 "name": "type_parameter"
861 },
862 {
863 "type": "REPEAT",
864 "content": {
865 "type": "SEQ",
866 "members": [
867 {
868 "type": "STRING",
869 "value": ","
870 },
871 {
872 "type": "SYMBOL",
873 "name": "type_parameter"
874 }
875 ]
876 }
877 }
878 ]
879 },
880 {
881 "type": "STRING",
882 "value": ">"
883 }
884 ]
885 },
886 "type_parameter": {
887 "type": "SEQ",
888 "members": [
889 {
890 "type": "CHOICE",
891 "members": [
892 {
893 "type": "SYMBOL",
894 "name": "type_parameter_modifiers"
895 },
896 {
897 "type": "BLANK"
898 }
899 ]
900 },
901 {
902 "type": "SYMBOL",
903 "name": "identifier"
904 },
905 {
906 "type": "CHOICE",
907 "members": [
908 {
909 "type": "SEQ",
910 "members": [
911 {
912 "type": "STRING",
913 "value": ":"
914 },
915 {
916 "type": "SYMBOL",
917 "name": "type"
918 }
919 ]
920 },
921 {
922 "type": "BLANK"
923 }
924 ]
925 }
926 ]
927 },
928 "primary_constructor": {
929 "type": "SEQ",
930 "members": [
931 {
932 "type": "CHOICE",
933 "members": [
934 {
935 "type": "SEQ",
936 "members": [
937 {
938 "type": "CHOICE",
939 "members": [
940 {
941 "type": "SYMBOL",
942 "name": "modifiers"
943 },
944 {
945 "type": "BLANK"
946 }
947 ]
948 },
949 {
950 "type": "STRING",
951 "value": "constructor"
952 }
953 ]
954 },
955 {
956 "type": "BLANK"
957 }
958 ]
959 },
960 {
961 "type": "SYMBOL",
962 "name": "class_parameters"
963 }
964 ]
965 },
966 "class_parameters": {
967 "type": "SEQ",
968 "members": [
969 {
970 "type": "STRING",
971 "value": "("
972 },
973 {
974 "type": "CHOICE",
975 "members": [
976 {
977 "type": "SEQ",
978 "members": [
979 {
980 "type": "SYMBOL",
981 "name": "class_parameter"
982 },
983 {
984 "type": "REPEAT",
985 "content": {
986 "type": "SEQ",
987 "members": [
988 {
989 "type": "STRING",
990 "value": ","
991 },
992 {
993 "type": "SYMBOL",
994 "name": "class_parameter"
995 }
996 ]
997 }
998 },
999 {
1000 "type": "CHOICE",
1001 "members": [
1002 {
1003 "type": "STRING",
1004 "value": ","
1005 },
1006 {
1007 "type": "BLANK"
1008 }
1009 ]
1010 }
1011 ]
1012 },
1013 {
1014 "type": "BLANK"
1015 }
1016 ]
1017 },
1018 {
1019 "type": "STRING",
1020 "value": ")"
1021 }
1022 ]
1023 },
1024 "class_parameter": {
1025 "type": "SEQ",
1026 "members": [
1027 {
1028 "type": "CHOICE",
1029 "members": [
1030 {
1031 "type": "SYMBOL",
1032 "name": "modifiers"
1033 },
1034 {
1035 "type": "BLANK"
1036 }
1037 ]
1038 },
1039 {
1040 "type": "CHOICE",
1041 "members": [
1042 {
1043 "type": "CHOICE",
1044 "members": [
1045 {
1046 "type": "STRING",
1047 "value": "val"
1048 },
1049 {
1050 "type": "STRING",
1051 "value": "var"
1052 }
1053 ]
1054 },
1055 {
1056 "type": "BLANK"
1057 }
1058 ]
1059 },
1060 {
1061 "type": "SYMBOL",
1062 "name": "_identifier"
1063 },
1064 {
1065 "type": "STRING",
1066 "value": ":"
1067 },
1068 {
1069 "type": "SYMBOL",
1070 "name": "type"
1071 },
1072 {
1073 "type": "CHOICE",
1074 "members": [
1075 {
1076 "type": "SEQ",
1077 "members": [
1078 {
1079 "type": "STRING",
1080 "value": "="
1081 },
1082 {
1083 "type": "SYMBOL",
1084 "name": "expression"
1085 }
1086 ]
1087 },
1088 {
1089 "type": "BLANK"
1090 }
1091 ]
1092 }
1093 ]
1094 },
1095 "type_constraints": {
1096 "type": "PREC_RIGHT",
1097 "value": 0,
1098 "content": {
1099 "type": "SEQ",
1100 "members": [
1101 {
1102 "type": "STRING",
1103 "value": "where"
1104 },
1105 {
1106 "type": "SEQ",
1107 "members": [
1108 {
1109 "type": "SYMBOL",
1110 "name": "type_constraint"
1111 },
1112 {
1113 "type": "REPEAT",
1114 "content": {
1115 "type": "SEQ",
1116 "members": [
1117 {
1118 "type": "STRING",
1119 "value": ","
1120 },
1121 {
1122 "type": "SYMBOL",
1123 "name": "type_constraint"
1124 }
1125 ]
1126 }
1127 }
1128 ]
1129 }
1130 ]
1131 }
1132 },
1133 "type_constraint": {
1134 "type": "PREC_RIGHT",
1135 "value": 0,
1136 "content": {
1137 "type": "SEQ",
1138 "members": [
1139 {
1140 "type": "SYMBOL",
1141 "name": "identifier"
1142 },
1143 {
1144 "type": "STRING",
1145 "value": ":"
1146 },
1147 {
1148 "type": "SYMBOL",
1149 "name": "type"
1150 }
1151 ]
1152 }
1153 },
1154 "constructor_invocation": {
1155 "type": "SEQ",
1156 "members": [
1157 {
1158 "type": "SYMBOL",
1159 "name": "type"
1160 },
1161 {
1162 "type": "SYMBOL",
1163 "name": "value_arguments"
1164 }
1165 ]
1166 },
1167 "function_declaration": {
1168 "type": "PREC_RIGHT",
1169 "value": 1,
1170 "content": {
1171 "type": "SEQ",
1172 "members": [
1173 {
1174 "type": "CHOICE",
1175 "members": [
1176 {
1177 "type": "SYMBOL",
1178 "name": "modifiers"
1179 },
1180 {
1181 "type": "BLANK"
1182 }
1183 ]
1184 },
1185 {
1186 "type": "STRING",
1187 "value": "fun"
1188 },
1189 {
1190 "type": "CHOICE",
1191 "members": [
1192 {
1193 "type": "SYMBOL",
1194 "name": "type_parameters"
1195 },
1196 {
1197 "type": "BLANK"
1198 }
1199 ]
1200 },
1201 {
1202 "type": "CHOICE",
1203 "members": [
1204 {
1205 "type": "SEQ",
1206 "members": [
1207 {
1208 "type": "SYMBOL",
1209 "name": "_receiver_type"
1210 },
1211 {
1212 "type": "CHOICE",
1213 "members": [
1214 {
1215 "type": "STRING",
1216 "value": "."
1217 },
1218 {
1219 "type": "BLANK"
1220 }
1221 ]
1222 }
1223 ]
1224 },
1225 {
1226 "type": "BLANK"
1227 }
1228 ]
1229 },
1230 {
1231 "type": "FIELD",
1232 "name": "name",
1233 "content": {
1234 "type": "SYMBOL",
1235 "name": "_identifier"
1236 }
1237 },
1238 {
1239 "type": "SYMBOL",
1240 "name": "function_value_parameters"
1241 },
1242 {
1243 "type": "CHOICE",
1244 "members": [
1245 {
1246 "type": "SEQ",
1247 "members": [
1248 {
1249 "type": "STRING",
1250 "value": ":"
1251 },
1252 {
1253 "type": "SYMBOL",
1254 "name": "type"
1255 }
1256 ]
1257 },
1258 {
1259 "type": "BLANK"
1260 }
1261 ]
1262 },
1263 {
1264 "type": "CHOICE",
1265 "members": [
1266 {
1267 "type": "SYMBOL",
1268 "name": "type_constraints"
1269 },
1270 {
1271 "type": "BLANK"
1272 }
1273 ]
1274 },
1275 {
1276 "type": "CHOICE",
1277 "members": [
1278 {
1279 "type": "SYMBOL",
1280 "name": "function_body"
1281 },
1282 {
1283 "type": "BLANK"
1284 }
1285 ]
1286 }
1287 ]
1288 }
1289 },
1290 "function_value_parameters": {
1291 "type": "SEQ",
1292 "members": [
1293 {
1294 "type": "STRING",
1295 "value": "("
1296 },
1297 {
1298 "type": "CHOICE",
1299 "members": [
1300 {
1301 "type": "SEQ",
1302 "members": [
1303 {
1304 "type": "SEQ",
1305 "members": [
1306 {
1307 "type": "CHOICE",
1308 "members": [
1309 {
1310 "type": "SYMBOL",
1311 "name": "parameter_modifiers"
1312 },
1313 {
1314 "type": "BLANK"
1315 }
1316 ]
1317 },
1318 {
1319 "type": "SYMBOL",
1320 "name": "parameter"
1321 },
1322 {
1323 "type": "CHOICE",
1324 "members": [
1325 {
1326 "type": "SEQ",
1327 "members": [
1328 {
1329 "type": "STRING",
1330 "value": "="
1331 },
1332 {
1333 "type": "SYMBOL",
1334 "name": "expression"
1335 }
1336 ]
1337 },
1338 {
1339 "type": "BLANK"
1340 }
1341 ]
1342 }
1343 ]
1344 },
1345 {
1346 "type": "REPEAT",
1347 "content": {
1348 "type": "SEQ",
1349 "members": [
1350 {
1351 "type": "STRING",
1352 "value": ","
1353 },
1354 {
1355 "type": "SEQ",
1356 "members": [
1357 {
1358 "type": "CHOICE",
1359 "members": [
1360 {
1361 "type": "SYMBOL",
1362 "name": "parameter_modifiers"
1363 },
1364 {
1365 "type": "BLANK"
1366 }
1367 ]
1368 },
1369 {
1370 "type": "SYMBOL",
1371 "name": "parameter"
1372 },
1373 {
1374 "type": "CHOICE",
1375 "members": [
1376 {
1377 "type": "SEQ",
1378 "members": [
1379 {
1380 "type": "STRING",
1381 "value": "="
1382 },
1383 {
1384 "type": "SYMBOL",
1385 "name": "expression"
1386 }
1387 ]
1388 },
1389 {
1390 "type": "BLANK"
1391 }
1392 ]
1393 }
1394 ]
1395 }
1396 ]
1397 }
1398 },
1399 {
1400 "type": "CHOICE",
1401 "members": [
1402 {
1403 "type": "STRING",
1404 "value": ","
1405 },
1406 {
1407 "type": "BLANK"
1408 }
1409 ]
1410 }
1411 ]
1412 },
1413 {
1414 "type": "BLANK"
1415 }
1416 ]
1417 },
1418 {
1419 "type": "STRING",
1420 "value": ")"
1421 }
1422 ]
1423 },
1424 "parameter": {
1425 "type": "SEQ",
1426 "members": [
1427 {
1428 "type": "SYMBOL",
1429 "name": "_identifier"
1430 },
1431 {
1432 "type": "STRING",
1433 "value": ":"
1434 },
1435 {
1436 "type": "SYMBOL",
1437 "name": "type"
1438 }
1439 ]
1440 },
1441 "delegation_specifiers": {
1442 "type": "SEQ",
1443 "members": [
1444 {
1445 "type": "SYMBOL",
1446 "name": "delegation_specifier"
1447 },
1448 {
1449 "type": "REPEAT",
1450 "content": {
1451 "type": "SEQ",
1452 "members": [
1453 {
1454 "type": "STRING",
1455 "value": ","
1456 },
1457 {
1458 "type": "SYMBOL",
1459 "name": "delegation_specifier"
1460 }
1461 ]
1462 }
1463 }
1464 ]
1465 },
1466 "delegation_specifier": {
1467 "type": "PREC_RIGHT",
1468 "value": 0,
1469 "content": {
1470 "type": "SEQ",
1471 "members": [
1472 {
1473 "type": "REPEAT",
1474 "content": {
1475 "type": "SYMBOL",
1476 "name": "annotation"
1477 }
1478 },
1479 {
1480 "type": "CHOICE",
1481 "members": [
1482 {
1483 "type": "SYMBOL",
1484 "name": "constructor_invocation"
1485 },
1486 {
1487 "type": "SYMBOL",
1488 "name": "explicit_delegation"
1489 },
1490 {
1491 "type": "SYMBOL",
1492 "name": "type"
1493 }
1494 ]
1495 }
1496 ]
1497 }
1498 },
1499 "variable_declaration": {
1500 "type": "PREC",
1501 "value": 1,
1502 "content": {
1503 "type": "SEQ",
1504 "members": [
1505 {
1506 "type": "REPEAT",
1507 "content": {
1508 "type": "SYMBOL",
1509 "name": "annotation"
1510 }
1511 },
1512 {
1513 "type": "SYMBOL",
1514 "name": "_identifier"
1515 },
1516 {
1517 "type": "CHOICE",
1518 "members": [
1519 {
1520 "type": "SEQ",
1521 "members": [
1522 {
1523 "type": "STRING",
1524 "value": ":"
1525 },
1526 {
1527 "type": "SYMBOL",
1528 "name": "type"
1529 }
1530 ]
1531 },
1532 {
1533 "type": "BLANK"
1534 }
1535 ]
1536 }
1537 ]
1538 }
1539 },
1540 "multi_variable_declaration": {
1541 "type": "SEQ",
1542 "members": [
1543 {
1544 "type": "STRING",
1545 "value": "("
1546 },
1547 {
1548 "type": "CHOICE",
1549 "members": [
1550 {
1551 "type": "SEQ",
1552 "members": [
1553 {
1554 "type": "SYMBOL",
1555 "name": "variable_declaration"
1556 },
1557 {
1558 "type": "REPEAT",
1559 "content": {
1560 "type": "SEQ",
1561 "members": [
1562 {
1563 "type": "STRING",
1564 "value": ","
1565 },
1566 {
1567 "type": "SYMBOL",
1568 "name": "variable_declaration"
1569 }
1570 ]
1571 }
1572 },
1573 {
1574 "type": "CHOICE",
1575 "members": [
1576 {
1577 "type": "STRING",
1578 "value": ","
1579 },
1580 {
1581 "type": "BLANK"
1582 }
1583 ]
1584 }
1585 ]
1586 },
1587 {
1588 "type": "BLANK"
1589 }
1590 ]
1591 },
1592 {
1593 "type": "STRING",
1594 "value": ")"
1595 }
1596 ]
1597 },
1598 "property_delegate": {
1599 "type": "SEQ",
1600 "members": [
1601 {
1602 "type": "STRING",
1603 "value": "by"
1604 },
1605 {
1606 "type": "SYMBOL",
1607 "name": "expression"
1608 }
1609 ]
1610 },
1611 "explicit_delegation": {
1612 "type": "SEQ",
1613 "members": [
1614 {
1615 "type": "SYMBOL",
1616 "name": "type"
1617 },
1618 {
1619 "type": "STRING",
1620 "value": "by"
1621 },
1622 {
1623 "type": "SYMBOL",
1624 "name": "primary_expression"
1625 }
1626 ]
1627 },
1628 "getter": {
1629 "type": "PREC_RIGHT",
1630 "value": 0,
1631 "content": {
1632 "type": "SEQ",
1633 "members": [
1634 {
1635 "type": "CHOICE",
1636 "members": [
1637 {
1638 "type": "SYMBOL",
1639 "name": "modifiers"
1640 },
1641 {
1642 "type": "BLANK"
1643 }
1644 ]
1645 },
1646 {
1647 "type": "STRING",
1648 "value": "get"
1649 },
1650 {
1651 "type": "CHOICE",
1652 "members": [
1653 {
1654 "type": "SEQ",
1655 "members": [
1656 {
1657 "type": "STRING",
1658 "value": "("
1659 },
1660 {
1661 "type": "STRING",
1662 "value": ")"
1663 },
1664 {
1665 "type": "CHOICE",
1666 "members": [
1667 {
1668 "type": "SEQ",
1669 "members": [
1670 {
1671 "type": "STRING",
1672 "value": ":"
1673 },
1674 {
1675 "type": "SYMBOL",
1676 "name": "type"
1677 }
1678 ]
1679 },
1680 {
1681 "type": "BLANK"
1682 }
1683 ]
1684 },
1685 {
1686 "type": "SYMBOL",
1687 "name": "function_body"
1688 }
1689 ]
1690 },
1691 {
1692 "type": "BLANK"
1693 }
1694 ]
1695 }
1696 ]
1697 }
1698 },
1699 "setter": {
1700 "type": "PREC_RIGHT",
1701 "value": 0,
1702 "content": {
1703 "type": "SEQ",
1704 "members": [
1705 {
1706 "type": "CHOICE",
1707 "members": [
1708 {
1709 "type": "SYMBOL",
1710 "name": "modifiers"
1711 },
1712 {
1713 "type": "BLANK"
1714 }
1715 ]
1716 },
1717 {
1718 "type": "STRING",
1719 "value": "set"
1720 },
1721 {
1722 "type": "CHOICE",
1723 "members": [
1724 {
1725 "type": "SEQ",
1726 "members": [
1727 {
1728 "type": "STRING",
1729 "value": "("
1730 },
1731 {
1732 "type": "CHOICE",
1733 "members": [
1734 {
1735 "type": "SYMBOL",
1736 "name": "parameter_modifiers"
1737 },
1738 {
1739 "type": "BLANK"
1740 }
1741 ]
1742 },
1743 {
1744 "type": "SYMBOL",
1745 "name": "identifier"
1746 },
1747 {
1748 "type": "CHOICE",
1749 "members": [
1750 {
1751 "type": "SEQ",
1752 "members": [
1753 {
1754 "type": "STRING",
1755 "value": ":"
1756 },
1757 {
1758 "type": "SYMBOL",
1759 "name": "type"
1760 }
1761 ]
1762 },
1763 {
1764 "type": "BLANK"
1765 }
1766 ]
1767 },
1768 {
1769 "type": "CHOICE",
1770 "members": [
1771 {
1772 "type": "SEQ",
1773 "members": [
1774 {
1775 "type": "STRING",
1776 "value": "="
1777 },
1778 {
1779 "type": "SYMBOL",
1780 "name": "expression"
1781 }
1782 ]
1783 },
1784 {
1785 "type": "BLANK"
1786 }
1787 ]
1788 },
1789 {
1790 "type": "STRING",
1791 "value": ")"
1792 },
1793 {
1794 "type": "CHOICE",
1795 "members": [
1796 {
1797 "type": "SEQ",
1798 "members": [
1799 {
1800 "type": "STRING",
1801 "value": ":"
1802 },
1803 {
1804 "type": "SYMBOL",
1805 "name": "type"
1806 }
1807 ]
1808 },
1809 {
1810 "type": "BLANK"
1811 }
1812 ]
1813 },
1814 {
1815 "type": "SYMBOL",
1816 "name": "function_body"
1817 }
1818 ]
1819 },
1820 {
1821 "type": "BLANK"
1822 }
1823 ]
1824 }
1825 ]
1826 }
1827 },
1828 "function_body": {
1829 "type": "CHOICE",
1830 "members": [
1831 {
1832 "type": "SYMBOL",
1833 "name": "block"
1834 },
1835 {
1836 "type": "SEQ",
1837 "members": [
1838 {
1839 "type": "STRING",
1840 "value": "="
1841 },
1842 {
1843 "type": "SYMBOL",
1844 "name": "expression"
1845 }
1846 ]
1847 }
1848 ]
1849 },
1850 "block": {
1851 "type": "SEQ",
1852 "members": [
1853 {
1854 "type": "STRING",
1855 "value": "{"
1856 },
1857 {
1858 "type": "CHOICE",
1859 "members": [
1860 {
1861 "type": "SYMBOL",
1862 "name": "_statements"
1863 },
1864 {
1865 "type": "BLANK"
1866 }
1867 ]
1868 },
1869 {
1870 "type": "STRING",
1871 "value": "}"
1872 }
1873 ]
1874 },
1875 "for_statement": {
1876 "type": "PREC_RIGHT",
1877 "value": 0,
1878 "content": {
1879 "type": "SEQ",
1880 "members": [
1881 {
1882 "type": "CHOICE",
1883 "members": [
1884 {
1885 "type": "SYMBOL",
1886 "name": "label"
1887 },
1888 {
1889 "type": "BLANK"
1890 }
1891 ]
1892 },
1893 {
1894 "type": "STRING",
1895 "value": "for"
1896 },
1897 {
1898 "type": "STRING",
1899 "value": "("
1900 },
1901 {
1902 "type": "REPEAT",
1903 "content": {
1904 "type": "SYMBOL",
1905 "name": "annotation"
1906 }
1907 },
1908 {
1909 "type": "CHOICE",
1910 "members": [
1911 {
1912 "type": "SYMBOL",
1913 "name": "variable_declaration"
1914 },
1915 {
1916 "type": "SYMBOL",
1917 "name": "multi_variable_declaration"
1918 }
1919 ]
1920 },
1921 {
1922 "type": "STRING",
1923 "value": "in"
1924 },
1925 {
1926 "type": "SYMBOL",
1927 "name": "expression"
1928 },
1929 {
1930 "type": "STRING",
1931 "value": ")"
1932 },
1933 {
1934 "type": "CHOICE",
1935 "members": [
1936 {
1937 "type": "CHOICE",
1938 "members": [
1939 {
1940 "type": "SYMBOL",
1941 "name": "block"
1942 },
1943 {
1944 "type": "SYMBOL",
1945 "name": "statement"
1946 }
1947 ]
1948 },
1949 {
1950 "type": "BLANK"
1951 }
1952 ]
1953 }
1954 ]
1955 }
1956 },
1957 "while_statement": {
1958 "type": "PREC_RIGHT",
1959 "value": 0,
1960 "content": {
1961 "type": "SEQ",
1962 "members": [
1963 {
1964 "type": "CHOICE",
1965 "members": [
1966 {
1967 "type": "SYMBOL",
1968 "name": "label"
1969 },
1970 {
1971 "type": "BLANK"
1972 }
1973 ]
1974 },
1975 {
1976 "type": "STRING",
1977 "value": "while"
1978 },
1979 {
1980 "type": "STRING",
1981 "value": "("
1982 },
1983 {
1984 "type": "FIELD",
1985 "name": "condition",
1986 "content": {
1987 "type": "SYMBOL",
1988 "name": "expression"
1989 }
1990 },
1991 {
1992 "type": "STRING",
1993 "value": ")"
1994 },
1995 {
1996 "type": "CHOICE",
1997 "members": [
1998 {
1999 "type": "CHOICE",
2000 "members": [
2001 {
2002 "type": "SYMBOL",
2003 "name": "block"
2004 },
2005 {
2006 "type": "SYMBOL",
2007 "name": "statement"
2008 },
2009 {
2010 "type": "STRING",
2011 "value": ";"
2012 }
2013 ]
2014 },
2015 {
2016 "type": "BLANK"
2017 }
2018 ]
2019 }
2020 ]
2021 }
2022 },
2023 "do_while_statement": {
2024 "type": "PREC_RIGHT",
2025 "value": 0,
2026 "content": {
2027 "type": "SEQ",
2028 "members": [
2029 {
2030 "type": "CHOICE",
2031 "members": [
2032 {
2033 "type": "SYMBOL",
2034 "name": "label"
2035 },
2036 {
2037 "type": "BLANK"
2038 }
2039 ]
2040 },
2041 {
2042 "type": "STRING",
2043 "value": "do"
2044 },
2045 {
2046 "type": "CHOICE",
2047 "members": [
2048 {
2049 "type": "CHOICE",
2050 "members": [
2051 {
2052 "type": "SYMBOL",
2053 "name": "block"
2054 },
2055 {
2056 "type": "SYMBOL",
2057 "name": "statement"
2058 },
2059 {
2060 "type": "STRING",
2061 "value": ";"
2062 }
2063 ]
2064 },
2065 {
2066 "type": "BLANK"
2067 }
2068 ]
2069 },
2070 {
2071 "type": "STRING",
2072 "value": "while"
2073 },
2074 {
2075 "type": "STRING",
2076 "value": "("
2077 },
2078 {
2079 "type": "FIELD",
2080 "name": "condition",
2081 "content": {
2082 "type": "SYMBOL",
2083 "name": "expression"
2084 }
2085 },
2086 {
2087 "type": "STRING",
2088 "value": ")"
2089 }
2090 ]
2091 }
2092 },
2093 "class_body": {
2094 "type": "SEQ",
2095 "members": [
2096 {
2097 "type": "STRING",
2098 "value": "{"
2099 },
2100 {
2101 "type": "REPEAT",
2102 "content": {
2103 "type": "SEQ",
2104 "members": [
2105 {
2106 "type": "SYMBOL",
2107 "name": "class_member_declaration"
2108 },
2109 {
2110 "type": "SYMBOL",
2111 "name": "_class_member_semi"
2112 }
2113 ]
2114 }
2115 },
2116 {
2117 "type": "STRING",
2118 "value": "}"
2119 }
2120 ]
2121 },
2122 "class_member_declaration": {
2123 "type": "CHOICE",
2124 "members": [
2125 {
2126 "type": "SYMBOL",
2127 "name": "declaration"
2128 },
2129 {
2130 "type": "SYMBOL",
2131 "name": "companion_object"
2132 },
2133 {
2134 "type": "SYMBOL",
2135 "name": "anonymous_initializer"
2136 },
2137 {
2138 "type": "SYMBOL",
2139 "name": "secondary_constructor"
2140 }
2141 ]
2142 },
2143 "enum_class_body": {
2144 "type": "SEQ",
2145 "members": [
2146 {
2147 "type": "STRING",
2148 "value": "{"
2149 },
2150 {
2151 "type": "CHOICE",
2152 "members": [
2153 {
2154 "type": "SEQ",
2155 "members": [
2156 {
2157 "type": "SYMBOL",
2158 "name": "enum_entry"
2159 },
2160 {
2161 "type": "REPEAT",
2162 "content": {
2163 "type": "SEQ",
2164 "members": [
2165 {
2166 "type": "STRING",
2167 "value": ","
2168 },
2169 {
2170 "type": "SYMBOL",
2171 "name": "enum_entry"
2172 }
2173 ]
2174 }
2175 },
2176 {
2177 "type": "CHOICE",
2178 "members": [
2179 {
2180 "type": "STRING",
2181 "value": ","
2182 },
2183 {
2184 "type": "BLANK"
2185 }
2186 ]
2187 }
2188 ]
2189 },
2190 {
2191 "type": "BLANK"
2192 }
2193 ]
2194 },
2195 {
2196 "type": "CHOICE",
2197 "members": [
2198 {
2199 "type": "SEQ",
2200 "members": [
2201 {
2202 "type": "STRING",
2203 "value": ";"
2204 },
2205 {
2206 "type": "REPEAT",
2207 "content": {
2208 "type": "SEQ",
2209 "members": [
2210 {
2211 "type": "SYMBOL",
2212 "name": "class_member_declaration"
2213 },
2214 {
2215 "type": "SYMBOL",
2216 "name": "_class_member_semi"
2217 }
2218 ]
2219 }
2220 }
2221 ]
2222 },
2223 {
2224 "type": "BLANK"
2225 }
2226 ]
2227 },
2228 {
2229 "type": "STRING",
2230 "value": "}"
2231 }
2232 ]
2233 },
2234 "enum_entry": {
2235 "type": "SEQ",
2236 "members": [
2237 {
2238 "type": "CHOICE",
2239 "members": [
2240 {
2241 "type": "SYMBOL",
2242 "name": "modifiers"
2243 },
2244 {
2245 "type": "BLANK"
2246 }
2247 ]
2248 },
2249 {
2250 "type": "SYMBOL",
2251 "name": "identifier"
2252 },
2253 {
2254 "type": "CHOICE",
2255 "members": [
2256 {
2257 "type": "SYMBOL",
2258 "name": "value_arguments"
2259 },
2260 {
2261 "type": "BLANK"
2262 }
2263 ]
2264 },
2265 {
2266 "type": "CHOICE",
2267 "members": [
2268 {
2269 "type": "SYMBOL",
2270 "name": "class_body"
2271 },
2272 {
2273 "type": "BLANK"
2274 }
2275 ]
2276 }
2277 ]
2278 },
2279 "value_arguments": {
2280 "type": "SEQ",
2281 "members": [
2282 {
2283 "type": "STRING",
2284 "value": "("
2285 },
2286 {
2287 "type": "CHOICE",
2288 "members": [
2289 {
2290 "type": "SEQ",
2291 "members": [
2292 {
2293 "type": "SYMBOL",
2294 "name": "value_argument"
2295 },
2296 {
2297 "type": "REPEAT",
2298 "content": {
2299 "type": "SEQ",
2300 "members": [
2301 {
2302 "type": "STRING",
2303 "value": ","
2304 },
2305 {
2306 "type": "SYMBOL",
2307 "name": "value_argument"
2308 }
2309 ]
2310 }
2311 },
2312 {
2313 "type": "CHOICE",
2314 "members": [
2315 {
2316 "type": "STRING",
2317 "value": ","
2318 },
2319 {
2320 "type": "BLANK"
2321 }
2322 ]
2323 }
2324 ]
2325 },
2326 {
2327 "type": "BLANK"
2328 }
2329 ]
2330 },
2331 {
2332 "type": "STRING",
2333 "value": ")"
2334 }
2335 ]
2336 },
2337 "value_argument": {
2338 "type": "SEQ",
2339 "members": [
2340 {
2341 "type": "CHOICE",
2342 "members": [
2343 {
2344 "type": "SEQ",
2345 "members": [
2346 {
2347 "type": "SYMBOL",
2348 "name": "_identifier"
2349 },
2350 {
2351 "type": "STRING",
2352 "value": "="
2353 }
2354 ]
2355 },
2356 {
2357 "type": "BLANK"
2358 }
2359 ]
2360 },
2361 {
2362 "type": "CHOICE",
2363 "members": [
2364 {
2365 "type": "STRING",
2366 "value": "*"
2367 },
2368 {
2369 "type": "BLANK"
2370 }
2371 ]
2372 },
2373 {
2374 "type": "SYMBOL",
2375 "name": "expression"
2376 }
2377 ]
2378 },
2379 "_statements": {
2380 "type": "SEQ",
2381 "members": [
2382 {
2383 "type": "SYMBOL",
2384 "name": "statement"
2385 },
2386 {
2387 "type": "REPEAT",
2388 "content": {
2389 "type": "SEQ",
2390 "members": [
2391 {
2392 "type": "SYMBOL",
2393 "name": "_semi"
2394 },
2395 {
2396 "type": "SYMBOL",
2397 "name": "statement"
2398 }
2399 ]
2400 }
2401 },
2402 {
2403 "type": "CHOICE",
2404 "members": [
2405 {
2406 "type": "SYMBOL",
2407 "name": "_semi"
2408 },
2409 {
2410 "type": "BLANK"
2411 }
2412 ]
2413 }
2414 ]
2415 },
2416 "statement": {
2417 "type": "CHOICE",
2418 "members": [
2419 {
2420 "type": "SYMBOL",
2421 "name": "declaration"
2422 },
2423 {
2424 "type": "SYMBOL",
2425 "name": "assignment"
2426 },
2427 {
2428 "type": "SYMBOL",
2429 "name": "for_statement"
2430 },
2431 {
2432 "type": "SYMBOL",
2433 "name": "while_statement"
2434 },
2435 {
2436 "type": "SYMBOL",
2437 "name": "do_while_statement"
2438 },
2439 {
2440 "type": "SYMBOL",
2441 "name": "expression"
2442 }
2443 ]
2444 },
2445 "modifiers": {
2446 "type": "PREC_RIGHT",
2447 "value": 0,
2448 "content": {
2449 "type": "REPEAT1",
2450 "content": {
2451 "type": "CHOICE",
2452 "members": [
2453 {
2454 "type": "SYMBOL",
2455 "name": "annotation"
2456 },
2457 {
2458 "type": "SYMBOL",
2459 "name": "class_modifier"
2460 },
2461 {
2462 "type": "SYMBOL",
2463 "name": "member_modifier"
2464 },
2465 {
2466 "type": "SYMBOL",
2467 "name": "function_modifier"
2468 },
2469 {
2470 "type": "SYMBOL",
2471 "name": "property_modifier"
2472 },
2473 {
2474 "type": "SYMBOL",
2475 "name": "visibility_modifier"
2476 },
2477 {
2478 "type": "SYMBOL",
2479 "name": "inheritance_modifier"
2480 },
2481 {
2482 "type": "SYMBOL",
2483 "name": "parameter_modifier"
2484 },
2485 {
2486 "type": "SYMBOL",
2487 "name": "platform_modifier"
2488 }
2489 ]
2490 }
2491 }
2492 },
2493 "class_modifier": {
2494 "type": "CHOICE",
2495 "members": [
2496 {
2497 "type": "STRING",
2498 "value": "enum"
2499 },
2500 {
2501 "type": "STRING",
2502 "value": "sealed"
2503 },
2504 {
2505 "type": "STRING",
2506 "value": "annotation"
2507 },
2508 {
2509 "type": "STRING",
2510 "value": "data"
2511 },
2512 {
2513 "type": "STRING",
2514 "value": "inner"
2515 },
2516 {
2517 "type": "STRING",
2518 "value": "value"
2519 }
2520 ]
2521 },
2522 "function_modifier": {
2523 "type": "PREC_RIGHT",
2524 "value": 0,
2525 "content": {
2526 "type": "CHOICE",
2527 "members": [
2528 {
2529 "type": "STRING",
2530 "value": "tailrec"
2531 },
2532 {
2533 "type": "STRING",
2534 "value": "operator"
2535 },
2536 {
2537 "type": "STRING",
2538 "value": "infix"
2539 },
2540 {
2541 "type": "STRING",
2542 "value": "inline"
2543 },
2544 {
2545 "type": "STRING",
2546 "value": "external"
2547 },
2548 {
2549 "type": "STRING",
2550 "value": "suspend"
2551 }
2552 ]
2553 }
2554 },
2555 "property_modifier": {
2556 "type": "STRING",
2557 "value": "const"
2558 },
2559 "visibility_modifier": {
2560 "type": "CHOICE",
2561 "members": [
2562 {
2563 "type": "STRING",
2564 "value": "public"
2565 },
2566 {
2567 "type": "STRING",
2568 "value": "private"
2569 },
2570 {
2571 "type": "STRING",
2572 "value": "protected"
2573 },
2574 {
2575 "type": "STRING",
2576 "value": "internal"
2577 }
2578 ]
2579 },
2580 "inheritance_modifier": {
2581 "type": "CHOICE",
2582 "members": [
2583 {
2584 "type": "STRING",
2585 "value": "abstract"
2586 },
2587 {
2588 "type": "STRING",
2589 "value": "final"
2590 },
2591 {
2592 "type": "STRING",
2593 "value": "open"
2594 }
2595 ]
2596 },
2597 "member_modifier": {
2598 "type": "CHOICE",
2599 "members": [
2600 {
2601 "type": "STRING",
2602 "value": "override"
2603 },
2604 {
2605 "type": "STRING",
2606 "value": "lateinit"
2607 }
2608 ]
2609 },
2610 "parameter_modifiers": {
2611 "type": "REPEAT1",
2612 "content": {
2613 "type": "CHOICE",
2614 "members": [
2615 {
2616 "type": "SYMBOL",
2617 "name": "annotation"
2618 },
2619 {
2620 "type": "SYMBOL",
2621 "name": "parameter_modifier"
2622 }
2623 ]
2624 }
2625 },
2626 "parameter_modifier": {
2627 "type": "CHOICE",
2628 "members": [
2629 {
2630 "type": "STRING",
2631 "value": "vararg"
2632 },
2633 {
2634 "type": "STRING",
2635 "value": "noinline"
2636 },
2637 {
2638 "type": "STRING",
2639 "value": "crossinline"
2640 }
2641 ]
2642 },
2643 "reification_modifier": {
2644 "type": "STRING",
2645 "value": "reified"
2646 },
2647 "platform_modifier": {
2648 "type": "CHOICE",
2649 "members": [
2650 {
2651 "type": "STRING",
2652 "value": "expect"
2653 },
2654 {
2655 "type": "STRING",
2656 "value": "actual"
2657 }
2658 ]
2659 },
2660 "type_modifiers": {
2661 "type": "PREC_RIGHT",
2662 "value": 0,
2663 "content": {
2664 "type": "REPEAT1",
2665 "content": {
2666 "type": "CHOICE",
2667 "members": [
2668 {
2669 "type": "SYMBOL",
2670 "name": "annotation"
2671 },
2672 {
2673 "type": "STRING",
2674 "value": "suspend"
2675 }
2676 ]
2677 }
2678 }
2679 },
2680 "annotation": {
2681 "type": "CHOICE",
2682 "members": [
2683 {
2684 "type": "SEQ",
2685 "members": [
2686 {
2687 "type": "STRING",
2688 "value": "@"
2689 },
2690 {
2691 "type": "CHOICE",
2692 "members": [
2693 {
2694 "type": "SYMBOL",
2695 "name": "use_site_target"
2696 },
2697 {
2698 "type": "BLANK"
2699 }
2700 ]
2701 },
2702 {
2703 "type": "SYMBOL",
2704 "name": "_unescaped_annotation"
2705 }
2706 ]
2707 },
2708 {
2709 "type": "SEQ",
2710 "members": [
2711 {
2712 "type": "STRING",
2713 "value": "@"
2714 },
2715 {
2716 "type": "CHOICE",
2717 "members": [
2718 {
2719 "type": "SYMBOL",
2720 "name": "use_site_target"
2721 },
2722 {
2723 "type": "BLANK"
2724 }
2725 ]
2726 },
2727 {
2728 "type": "STRING",
2729 "value": "["
2730 },
2731 {
2732 "type": "REPEAT1",
2733 "content": {
2734 "type": "SYMBOL",
2735 "name": "_unescaped_annotation"
2736 }
2737 },
2738 {
2739 "type": "STRING",
2740 "value": "]"
2741 }
2742 ]
2743 }
2744 ]
2745 },
2746 "use_site_target": {
2747 "type": "SEQ",
2748 "members": [
2749 {
2750 "type": "CHOICE",
2751 "members": [
2752 {
2753 "type": "STRING",
2754 "value": "field"
2755 },
2756 {
2757 "type": "STRING",
2758 "value": "property"
2759 },
2760 {
2761 "type": "STRING",
2762 "value": "get"
2763 },
2764 {
2765 "type": "STRING",
2766 "value": "set"
2767 },
2768 {
2769 "type": "STRING",
2770 "value": "receiver"
2771 },
2772 {
2773 "type": "STRING",
2774 "value": "param"
2775 },
2776 {
2777 "type": "STRING",
2778 "value": "setparam"
2779 },
2780 {
2781 "type": "STRING",
2782 "value": "delegate"
2783 }
2784 ]
2785 },
2786 {
2787 "type": "STRING",
2788 "value": ":"
2789 }
2790 ]
2791 },
2792 "_unescaped_annotation": {
2793 "type": "CHOICE",
2794 "members": [
2795 {
2796 "type": "SYMBOL",
2797 "name": "constructor_invocation"
2798 },
2799 {
2800 "type": "SYMBOL",
2801 "name": "type"
2802 }
2803 ]
2804 },
2805 "type": {
2806 "type": "CHOICE",
2807 "members": [
2808 {
2809 "type": "SYMBOL",
2810 "name": "user_type"
2811 },
2812 {
2813 "type": "SYMBOL",
2814 "name": "nullable_type"
2815 },
2816 {
2817 "type": "SYMBOL",
2818 "name": "function_type"
2819 },
2820 {
2821 "type": "SYMBOL",
2822 "name": "non_nullable_type"
2823 },
2824 {
2825 "type": "SYMBOL",
2826 "name": "parenthesized_type"
2827 },
2828 {
2829 "type": "STRING",
2830 "value": "dynamic"
2831 }
2832 ]
2833 },
2834 "user_type": {
2835 "type": "SEQ",
2836 "members": [
2837 {
2838 "type": "CHOICE",
2839 "members": [
2840 {
2841 "type": "SYMBOL",
2842 "name": "type_modifiers"
2843 },
2844 {
2845 "type": "BLANK"
2846 }
2847 ]
2848 },
2849 {
2850 "type": "SEQ",
2851 "members": [
2852 {
2853 "type": "SYMBOL",
2854 "name": "_simple_user_type"
2855 },
2856 {
2857 "type": "REPEAT",
2858 "content": {
2859 "type": "SEQ",
2860 "members": [
2861 {
2862 "type": "STRING",
2863 "value": "."
2864 },
2865 {
2866 "type": "SYMBOL",
2867 "name": "_simple_user_type"
2868 }
2869 ]
2870 }
2871 }
2872 ]
2873 }
2874 ]
2875 },
2876 "_simple_user_type": {
2877 "type": "PREC_RIGHT",
2878 "value": 0,
2879 "content": {
2880 "type": "SEQ",
2881 "members": [
2882 {
2883 "type": "SYMBOL",
2884 "name": "_identifier"
2885 },
2886 {
2887 "type": "CHOICE",
2888 "members": [
2889 {
2890 "type": "SYMBOL",
2891 "name": "type_arguments"
2892 },
2893 {
2894 "type": "BLANK"
2895 }
2896 ]
2897 }
2898 ]
2899 }
2900 },
2901 "nullable_type": {
2902 "type": "SEQ",
2903 "members": [
2904 {
2905 "type": "CHOICE",
2906 "members": [
2907 {
2908 "type": "SYMBOL",
2909 "name": "type_modifiers"
2910 },
2911 {
2912 "type": "BLANK"
2913 }
2914 ]
2915 },
2916 {
2917 "type": "SYMBOL",
2918 "name": "type"
2919 },
2920 {
2921 "type": "STRING",
2922 "value": "?"
2923 }
2924 ]
2925 },
2926 "non_nullable_type": {
2927 "type": "PREC_RIGHT",
2928 "value": 0,
2929 "content": {
2930 "type": "SEQ",
2931 "members": [
2932 {
2933 "type": "CHOICE",
2934 "members": [
2935 {
2936 "type": "SYMBOL",
2937 "name": "type_modifiers"
2938 },
2939 {
2940 "type": "BLANK"
2941 }
2942 ]
2943 },
2944 {
2945 "type": "SYMBOL",
2946 "name": "type"
2947 },
2948 {
2949 "type": "STRING",
2950 "value": "&"
2951 },
2952 {
2953 "type": "CHOICE",
2954 "members": [
2955 {
2956 "type": "SYMBOL",
2957 "name": "type_modifiers"
2958 },
2959 {
2960 "type": "BLANK"
2961 }
2962 ]
2963 },
2964 {
2965 "type": "SYMBOL",
2966 "name": "type"
2967 }
2968 ]
2969 }
2970 },
2971 "_receiver_type": {
2972 "type": "SEQ",
2973 "members": [
2974 {
2975 "type": "CHOICE",
2976 "members": [
2977 {
2978 "type": "SYMBOL",
2979 "name": "type_modifiers"
2980 },
2981 {
2982 "type": "BLANK"
2983 }
2984 ]
2985 },
2986 {
2987 "type": "CHOICE",
2988 "members": [
2989 {
2990 "type": "SYMBOL",
2991 "name": "user_type"
2992 },
2993 {
2994 "type": "STRING",
2995 "value": "dynamic"
2996 },
2997 {
2998 "type": "SYMBOL",
2999 "name": "parenthesized_type"
3000 },
3001 {
3002 "type": "SYMBOL",
3003 "name": "nullable_type"
3004 }
3005 ]
3006 }
3007 ]
3008 },
3009 "type_arguments": {
3010 "type": "SEQ",
3011 "members": [
3012 {
3013 "type": "STRING",
3014 "value": "<"
3015 },
3016 {
3017 "type": "SEQ",
3018 "members": [
3019 {
3020 "type": "SYMBOL",
3021 "name": "type_projection"
3022 },
3023 {
3024 "type": "REPEAT",
3025 "content": {
3026 "type": "SEQ",
3027 "members": [
3028 {
3029 "type": "STRING",
3030 "value": ","
3031 },
3032 {
3033 "type": "SYMBOL",
3034 "name": "type_projection"
3035 }
3036 ]
3037 }
3038 }
3039 ]
3040 },
3041 {
3042 "type": "STRING",
3043 "value": ">"
3044 }
3045 ]
3046 },
3047 "type_projection": {
3048 "type": "CHOICE",
3049 "members": [
3050 {
3051 "type": "SEQ",
3052 "members": [
3053 {
3054 "type": "REPEAT",
3055 "content": {
3056 "type": "SYMBOL",
3057 "name": "variance_modifier"
3058 }
3059 },
3060 {
3061 "type": "SYMBOL",
3062 "name": "type"
3063 }
3064 ]
3065 },
3066 {
3067 "type": "STRING",
3068 "value": "*"
3069 }
3070 ]
3071 },
3072 "function_type": {
3073 "type": "SEQ",
3074 "members": [
3075 {
3076 "type": "CHOICE",
3077 "members": [
3078 {
3079 "type": "SYMBOL",
3080 "name": "type_modifiers"
3081 },
3082 {
3083 "type": "BLANK"
3084 }
3085 ]
3086 },
3087 {
3088 "type": "CHOICE",
3089 "members": [
3090 {
3091 "type": "SEQ",
3092 "members": [
3093 {
3094 "type": "SYMBOL",
3095 "name": "_receiver_type"
3096 },
3097 {
3098 "type": "STRING",
3099 "value": "."
3100 }
3101 ]
3102 },
3103 {
3104 "type": "BLANK"
3105 }
3106 ]
3107 },
3108 {
3109 "type": "SYMBOL",
3110 "name": "function_type_parameters"
3111 },
3112 {
3113 "type": "STRING",
3114 "value": "->"
3115 },
3116 {
3117 "type": "SYMBOL",
3118 "name": "type"
3119 }
3120 ]
3121 },
3122 "function_type_parameters": {
3123 "type": "SEQ",
3124 "members": [
3125 {
3126 "type": "STRING",
3127 "value": "("
3128 },
3129 {
3130 "type": "CHOICE",
3131 "members": [
3132 {
3133 "type": "SEQ",
3134 "members": [
3135 {
3136 "type": "CHOICE",
3137 "members": [
3138 {
3139 "type": "SYMBOL",
3140 "name": "parameter"
3141 },
3142 {
3143 "type": "SYMBOL",
3144 "name": "type"
3145 }
3146 ]
3147 },
3148 {
3149 "type": "REPEAT",
3150 "content": {
3151 "type": "SEQ",
3152 "members": [
3153 {
3154 "type": "STRING",
3155 "value": ","
3156 },
3157 {
3158 "type": "CHOICE",
3159 "members": [
3160 {
3161 "type": "SYMBOL",
3162 "name": "parameter"
3163 },
3164 {
3165 "type": "SYMBOL",
3166 "name": "type"
3167 }
3168 ]
3169 }
3170 ]
3171 }
3172 },
3173 {
3174 "type": "CHOICE",
3175 "members": [
3176 {
3177 "type": "STRING",
3178 "value": ","
3179 },
3180 {
3181 "type": "BLANK"
3182 }
3183 ]
3184 }
3185 ]
3186 },
3187 {
3188 "type": "BLANK"
3189 }
3190 ]
3191 },
3192 {
3193 "type": "STRING",
3194 "value": ")"
3195 }
3196 ]
3197 },
3198 "parenthesized_type": {
3199 "type": "SEQ",
3200 "members": [
3201 {
3202 "type": "STRING",
3203 "value": "("
3204 },
3205 {
3206 "type": "SYMBOL",
3207 "name": "type"
3208 },
3209 {
3210 "type": "STRING",
3211 "value": ")"
3212 }
3213 ]
3214 },
3215 "assignment": {
3216 "type": "SEQ",
3217 "members": [
3218 {
3219 "type": "FIELD",
3220 "name": "left",
3221 "content": {
3222 "type": "SYMBOL",
3223 "name": "expression"
3224 }
3225 },
3226 {
3227 "type": "FIELD",
3228 "name": "operator",
3229 "content": {
3230 "type": "CHOICE",
3231 "members": [
3232 {
3233 "type": "STRING",
3234 "value": "="
3235 },
3236 {
3237 "type": "STRING",
3238 "value": "+="
3239 },
3240 {
3241 "type": "STRING",
3242 "value": "-="
3243 },
3244 {
3245 "type": "STRING",
3246 "value": "*="
3247 },
3248 {
3249 "type": "STRING",
3250 "value": "/="
3251 },
3252 {
3253 "type": "STRING",
3254 "value": "%="
3255 }
3256 ]
3257 }
3258 },
3259 {
3260 "type": "FIELD",
3261 "name": "right",
3262 "content": {
3263 "type": "SYMBOL",
3264 "name": "expression"
3265 }
3266 }
3267 ]
3268 },
3269 "expression": {
3270 "type": "CHOICE",
3271 "members": [
3272 {
3273 "type": "SYMBOL",
3274 "name": "primary_expression"
3275 },
3276 {
3277 "type": "SYMBOL",
3278 "name": "index_expression"
3279 },
3280 {
3281 "type": "SYMBOL",
3282 "name": "return_expression"
3283 },
3284 {
3285 "type": "SYMBOL",
3286 "name": "throw_expression"
3287 }
3288 ]
3289 },
3290 "primary_expression": {
3291 "type": "CHOICE",
3292 "members": [
3293 {
3294 "type": "SYMBOL",
3295 "name": "_identifier"
3296 },
3297 {
3298 "type": "SYMBOL",
3299 "name": "string_literal"
3300 },
3301 {
3302 "type": "SYMBOL",
3303 "name": "multiline_string_literal"
3304 },
3305 {
3306 "type": "SYMBOL",
3307 "name": "character_literal"
3308 },
3309 {
3310 "type": "SYMBOL",
3311 "name": "number_literal"
3312 },
3313 {
3314 "type": "SYMBOL",
3315 "name": "float_literal"
3316 },
3317 {
3318 "type": "SYMBOL",
3319 "name": "object_literal"
3320 },
3321 {
3322 "type": "SYMBOL",
3323 "name": "collection_literal"
3324 },
3325 {
3326 "type": "SYMBOL",
3327 "name": "navigation_expression"
3328 },
3329 {
3330 "type": "SYMBOL",
3331 "name": "binary_expression"
3332 },
3333 {
3334 "type": "SYMBOL",
3335 "name": "unary_expression"
3336 },
3337 {
3338 "type": "SYMBOL",
3339 "name": "annotated_expression"
3340 },
3341 {
3342 "type": "SYMBOL",
3343 "name": "labeled_expression"
3344 },
3345 {
3346 "type": "SYMBOL",
3347 "name": "call_expression"
3348 },
3349 {
3350 "type": "SYMBOL",
3351 "name": "in_expression"
3352 },
3353 {
3354 "type": "SYMBOL",
3355 "name": "is_expression"
3356 },
3357 {
3358 "type": "SYMBOL",
3359 "name": "as_expression"
3360 },
3361 {
3362 "type": "SYMBOL",
3363 "name": "spread_expression"
3364 },
3365 {
3366 "type": "SYMBOL",
3367 "name": "infix_expression"
3368 },
3369 {
3370 "type": "SYMBOL",
3371 "name": "range_expression"
3372 },
3373 {
3374 "type": "SYMBOL",
3375 "name": "if_expression"
3376 },
3377 {
3378 "type": "SYMBOL",
3379 "name": "parenthesized_expression"
3380 },
3381 {
3382 "type": "SYMBOL",
3383 "name": "this_expression"
3384 },
3385 {
3386 "type": "SYMBOL",
3387 "name": "super_expression"
3388 },
3389 {
3390 "type": "SYMBOL",
3391 "name": "when_expression"
3392 },
3393 {
3394 "type": "SYMBOL",
3395 "name": "try_expression"
3396 },
3397 {
3398 "type": "SYMBOL",
3399 "name": "callable_reference"
3400 },
3401 {
3402 "type": "SYMBOL",
3403 "name": "lambda_literal"
3404 },
3405 {
3406 "type": "SYMBOL",
3407 "name": "anonymous_function"
3408 }
3409 ]
3410 },
3411 "unary_expression": {
3412 "type": "PREC_LEFT",
3413 "value": 14,
3414 "content": {
3415 "type": "CHOICE",
3416 "members": [
3417 {
3418 "type": "SEQ",
3419 "members": [
3420 {
3421 "type": "FIELD",
3422 "name": "operator",
3423 "content": {
3424 "type": "CHOICE",
3425 "members": [
3426 {
3427 "type": "STRING",
3428 "value": "++"
3429 },
3430 {
3431 "type": "STRING",
3432 "value": "--"
3433 },
3434 {
3435 "type": "STRING",
3436 "value": "+"
3437 },
3438 {
3439 "type": "STRING",
3440 "value": "-"
3441 },
3442 {
3443 "type": "STRING",
3444 "value": "!"
3445 }
3446 ]
3447 }
3448 },
3449 {
3450 "type": "FIELD",
3451 "name": "argument",
3452 "content": {
3453 "type": "SYMBOL",
3454 "name": "expression"
3455 }
3456 }
3457 ]
3458 },
3459 {
3460 "type": "SEQ",
3461 "members": [
3462 {
3463 "type": "FIELD",
3464 "name": "argument",
3465 "content": {
3466 "type": "SYMBOL",
3467 "name": "expression"
3468 }
3469 },
3470 {
3471 "type": "FIELD",
3472 "name": "operator",
3473 "content": {
3474 "type": "CHOICE",
3475 "members": [
3476 {
3477 "type": "STRING",
3478 "value": "++"
3479 },
3480 {
3481 "type": "STRING",
3482 "value": "--"
3483 },
3484 {
3485 "type": "STRING",
3486 "value": "!!"
3487 }
3488 ]
3489 }
3490 }
3491 ]
3492 }
3493 ]
3494 }
3495 },
3496 "annotated_expression": {
3497 "type": "SEQ",
3498 "members": [
3499 {
3500 "type": "SYMBOL",
3501 "name": "annotation"
3502 },
3503 {
3504 "type": "SYMBOL",
3505 "name": "expression"
3506 }
3507 ]
3508 },
3509 "labeled_expression": {
3510 "type": "SEQ",
3511 "members": [
3512 {
3513 "type": "SYMBOL",
3514 "name": "label"
3515 },
3516 {
3517 "type": "SYMBOL",
3518 "name": "expression"
3519 }
3520 ]
3521 },
3522 "binary_expression": {
3523 "type": "CHOICE",
3524 "members": [
3525 {
3526 "type": "PREC_LEFT",
3527 "value": 10,
3528 "content": {
3529 "type": "SEQ",
3530 "members": [
3531 {
3532 "type": "FIELD",
3533 "name": "left",
3534 "content": {
3535 "type": "SYMBOL",
3536 "name": "expression"
3537 }
3538 },
3539 {
3540 "type": "FIELD",
3541 "name": "operator",
3542 "content": {
3543 "type": "STRING",
3544 "value": "+"
3545 }
3546 },
3547 {
3548 "type": "FIELD",
3549 "name": "right",
3550 "content": {
3551 "type": "SYMBOL",
3552 "name": "expression"
3553 }
3554 }
3555 ]
3556 }
3557 },
3558 {
3559 "type": "PREC_LEFT",
3560 "value": 10,
3561 "content": {
3562 "type": "SEQ",
3563 "members": [
3564 {
3565 "type": "FIELD",
3566 "name": "left",
3567 "content": {
3568 "type": "SYMBOL",
3569 "name": "expression"
3570 }
3571 },
3572 {
3573 "type": "FIELD",
3574 "name": "operator",
3575 "content": {
3576 "type": "STRING",
3577 "value": "-"
3578 }
3579 },
3580 {
3581 "type": "FIELD",
3582 "name": "right",
3583 "content": {
3584 "type": "SYMBOL",
3585 "name": "expression"
3586 }
3587 }
3588 ]
3589 }
3590 },
3591 {
3592 "type": "PREC_LEFT",
3593 "value": 11,
3594 "content": {
3595 "type": "SEQ",
3596 "members": [
3597 {
3598 "type": "FIELD",
3599 "name": "left",
3600 "content": {
3601 "type": "SYMBOL",
3602 "name": "expression"
3603 }
3604 },
3605 {
3606 "type": "FIELD",
3607 "name": "operator",
3608 "content": {
3609 "type": "STRING",
3610 "value": "*"
3611 }
3612 },
3613 {
3614 "type": "FIELD",
3615 "name": "right",
3616 "content": {
3617 "type": "SYMBOL",
3618 "name": "expression"
3619 }
3620 }
3621 ]
3622 }
3623 },
3624 {
3625 "type": "PREC_LEFT",
3626 "value": 11,
3627 "content": {
3628 "type": "SEQ",
3629 "members": [
3630 {
3631 "type": "FIELD",
3632 "name": "left",
3633 "content": {
3634 "type": "SYMBOL",
3635 "name": "expression"
3636 }
3637 },
3638 {
3639 "type": "FIELD",
3640 "name": "operator",
3641 "content": {
3642 "type": "STRING",
3643 "value": "/"
3644 }
3645 },
3646 {
3647 "type": "FIELD",
3648 "name": "right",
3649 "content": {
3650 "type": "SYMBOL",
3651 "name": "expression"
3652 }
3653 }
3654 ]
3655 }
3656 },
3657 {
3658 "type": "PREC_LEFT",
3659 "value": 11,
3660 "content": {
3661 "type": "SEQ",
3662 "members": [
3663 {
3664 "type": "FIELD",
3665 "name": "left",
3666 "content": {
3667 "type": "SYMBOL",
3668 "name": "expression"
3669 }
3670 },
3671 {
3672 "type": "FIELD",
3673 "name": "operator",
3674 "content": {
3675 "type": "STRING",
3676 "value": "%"
3677 }
3678 },
3679 {
3680 "type": "FIELD",
3681 "name": "right",
3682 "content": {
3683 "type": "SYMBOL",
3684 "name": "expression"
3685 }
3686 }
3687 ]
3688 }
3689 },
3690 {
3691 "type": "PREC_LEFT",
3692 "value": 2,
3693 "content": {
3694 "type": "SEQ",
3695 "members": [
3696 {
3697 "type": "FIELD",
3698 "name": "left",
3699 "content": {
3700 "type": "SYMBOL",
3701 "name": "expression"
3702 }
3703 },
3704 {
3705 "type": "FIELD",
3706 "name": "operator",
3707 "content": {
3708 "type": "STRING",
3709 "value": "||"
3710 }
3711 },
3712 {
3713 "type": "FIELD",
3714 "name": "right",
3715 "content": {
3716 "type": "SYMBOL",
3717 "name": "expression"
3718 }
3719 }
3720 ]
3721 }
3722 },
3723 {
3724 "type": "PREC_LEFT",
3725 "value": 3,
3726 "content": {
3727 "type": "SEQ",
3728 "members": [
3729 {
3730 "type": "FIELD",
3731 "name": "left",
3732 "content": {
3733 "type": "SYMBOL",
3734 "name": "expression"
3735 }
3736 },
3737 {
3738 "type": "FIELD",
3739 "name": "operator",
3740 "content": {
3741 "type": "STRING",
3742 "value": "&&"
3743 }
3744 },
3745 {
3746 "type": "FIELD",
3747 "name": "right",
3748 "content": {
3749 "type": "SYMBOL",
3750 "name": "expression"
3751 }
3752 }
3753 ]
3754 }
3755 },
3756 {
3757 "type": "PREC_LEFT",
3758 "value": 4,
3759 "content": {
3760 "type": "SEQ",
3761 "members": [
3762 {
3763 "type": "FIELD",
3764 "name": "left",
3765 "content": {
3766 "type": "SYMBOL",
3767 "name": "expression"
3768 }
3769 },
3770 {
3771 "type": "FIELD",
3772 "name": "operator",
3773 "content": {
3774 "type": "STRING",
3775 "value": "!="
3776 }
3777 },
3778 {
3779 "type": "FIELD",
3780 "name": "right",
3781 "content": {
3782 "type": "SYMBOL",
3783 "name": "expression"
3784 }
3785 }
3786 ]
3787 }
3788 },
3789 {
3790 "type": "PREC_LEFT",
3791 "value": 4,
3792 "content": {
3793 "type": "SEQ",
3794 "members": [
3795 {
3796 "type": "FIELD",
3797 "name": "left",
3798 "content": {
3799 "type": "SYMBOL",
3800 "name": "expression"
3801 }
3802 },
3803 {
3804 "type": "FIELD",
3805 "name": "operator",
3806 "content": {
3807 "type": "STRING",
3808 "value": "!=="
3809 }
3810 },
3811 {
3812 "type": "FIELD",
3813 "name": "right",
3814 "content": {
3815 "type": "SYMBOL",
3816 "name": "expression"
3817 }
3818 }
3819 ]
3820 }
3821 },
3822 {
3823 "type": "PREC_LEFT",
3824 "value": 4,
3825 "content": {
3826 "type": "SEQ",
3827 "members": [
3828 {
3829 "type": "FIELD",
3830 "name": "left",
3831 "content": {
3832 "type": "SYMBOL",
3833 "name": "expression"
3834 }
3835 },
3836 {
3837 "type": "FIELD",
3838 "name": "operator",
3839 "content": {
3840 "type": "STRING",
3841 "value": "=="
3842 }
3843 },
3844 {
3845 "type": "FIELD",
3846 "name": "right",
3847 "content": {
3848 "type": "SYMBOL",
3849 "name": "expression"
3850 }
3851 }
3852 ]
3853 }
3854 },
3855 {
3856 "type": "PREC_LEFT",
3857 "value": 4,
3858 "content": {
3859 "type": "SEQ",
3860 "members": [
3861 {
3862 "type": "FIELD",
3863 "name": "left",
3864 "content": {
3865 "type": "SYMBOL",
3866 "name": "expression"
3867 }
3868 },
3869 {
3870 "type": "FIELD",
3871 "name": "operator",
3872 "content": {
3873 "type": "STRING",
3874 "value": "==="
3875 }
3876 },
3877 {
3878 "type": "FIELD",
3879 "name": "right",
3880 "content": {
3881 "type": "SYMBOL",
3882 "name": "expression"
3883 }
3884 }
3885 ]
3886 }
3887 },
3888 {
3889 "type": "PREC_LEFT",
3890 "value": 5,
3891 "content": {
3892 "type": "SEQ",
3893 "members": [
3894 {
3895 "type": "FIELD",
3896 "name": "left",
3897 "content": {
3898 "type": "SYMBOL",
3899 "name": "expression"
3900 }
3901 },
3902 {
3903 "type": "FIELD",
3904 "name": "operator",
3905 "content": {
3906 "type": "STRING",
3907 "value": ">"
3908 }
3909 },
3910 {
3911 "type": "FIELD",
3912 "name": "right",
3913 "content": {
3914 "type": "SYMBOL",
3915 "name": "expression"
3916 }
3917 }
3918 ]
3919 }
3920 },
3921 {
3922 "type": "PREC_LEFT",
3923 "value": 5,
3924 "content": {
3925 "type": "SEQ",
3926 "members": [
3927 {
3928 "type": "FIELD",
3929 "name": "left",
3930 "content": {
3931 "type": "SYMBOL",
3932 "name": "expression"
3933 }
3934 },
3935 {
3936 "type": "FIELD",
3937 "name": "operator",
3938 "content": {
3939 "type": "STRING",
3940 "value": ">="
3941 }
3942 },
3943 {
3944 "type": "FIELD",
3945 "name": "right",
3946 "content": {
3947 "type": "SYMBOL",
3948 "name": "expression"
3949 }
3950 }
3951 ]
3952 }
3953 },
3954 {
3955 "type": "PREC_LEFT",
3956 "value": 5,
3957 "content": {
3958 "type": "SEQ",
3959 "members": [
3960 {
3961 "type": "FIELD",
3962 "name": "left",
3963 "content": {
3964 "type": "SYMBOL",
3965 "name": "expression"
3966 }
3967 },
3968 {
3969 "type": "FIELD",
3970 "name": "operator",
3971 "content": {
3972 "type": "STRING",
3973 "value": "<="
3974 }
3975 },
3976 {
3977 "type": "FIELD",
3978 "name": "right",
3979 "content": {
3980 "type": "SYMBOL",
3981 "name": "expression"
3982 }
3983 }
3984 ]
3985 }
3986 },
3987 {
3988 "type": "PREC_LEFT",
3989 "value": 5,
3990 "content": {
3991 "type": "SEQ",
3992 "members": [
3993 {
3994 "type": "FIELD",
3995 "name": "left",
3996 "content": {
3997 "type": "SYMBOL",
3998 "name": "expression"
3999 }
4000 },
4001 {
4002 "type": "FIELD",
4003 "name": "operator",
4004 "content": {
4005 "type": "STRING",
4006 "value": "<"
4007 }
4008 },
4009 {
4010 "type": "FIELD",
4011 "name": "right",
4012 "content": {
4013 "type": "SYMBOL",
4014 "name": "expression"
4015 }
4016 }
4017 ]
4018 }
4019 },
4020 {
4021 "type": "PREC_LEFT",
4022 "value": 7,
4023 "content": {
4024 "type": "SEQ",
4025 "members": [
4026 {
4027 "type": "FIELD",
4028 "name": "left",
4029 "content": {
4030 "type": "SYMBOL",
4031 "name": "expression"
4032 }
4033 },
4034 {
4035 "type": "FIELD",
4036 "name": "operator",
4037 "content": {
4038 "type": "STRING",
4039 "value": "?:"
4040 }
4041 },
4042 {
4043 "type": "FIELD",
4044 "name": "right",
4045 "content": {
4046 "type": "SYMBOL",
4047 "name": "expression"
4048 }
4049 }
4050 ]
4051 }
4052 }
4053 ]
4054 },
4055 "in_expression": {
4056 "type": "PREC_LEFT",
4057 "value": 6,
4058 "content": {
4059 "type": "SEQ",
4060 "members": [
4061 {
4062 "type": "FIELD",
4063 "name": "left",
4064 "content": {
4065 "type": "SYMBOL",
4066 "name": "expression"
4067 }
4068 },
4069 {
4070 "type": "CHOICE",
4071 "members": [
4072 {
4073 "type": "STRING",
4074 "value": "in"
4075 },
4076 {
4077 "type": "STRING",
4078 "value": "!in"
4079 }
4080 ]
4081 },
4082 {
4083 "type": "FIELD",
4084 "name": "right",
4085 "content": {
4086 "type": "SYMBOL",
4087 "name": "expression"
4088 }
4089 }
4090 ]
4091 }
4092 },
4093 "is_expression": {
4094 "type": "PREC_LEFT",
4095 "value": 6,
4096 "content": {
4097 "type": "SEQ",
4098 "members": [
4099 {
4100 "type": "FIELD",
4101 "name": "left",
4102 "content": {
4103 "type": "SYMBOL",
4104 "name": "expression"
4105 }
4106 },
4107 {
4108 "type": "CHOICE",
4109 "members": [
4110 {
4111 "type": "STRING",
4112 "value": "is"
4113 },
4114 {
4115 "type": "ALIAS",
4116 "content": {
4117 "type": "SYMBOL",
4118 "name": "_not_is"
4119 },
4120 "named": false,
4121 "value": "!is"
4122 }
4123 ]
4124 },
4125 {
4126 "type": "FIELD",
4127 "name": "right",
4128 "content": {
4129 "type": "SYMBOL",
4130 "name": "type"
4131 }
4132 }
4133 ]
4134 }
4135 },
4136 "as_expression": {
4137 "type": "PREC_LEFT",
4138 "value": 12,
4139 "content": {
4140 "type": "SEQ",
4141 "members": [
4142 {
4143 "type": "FIELD",
4144 "name": "left",
4145 "content": {
4146 "type": "SYMBOL",
4147 "name": "expression"
4148 }
4149 },
4150 {
4151 "type": "CHOICE",
4152 "members": [
4153 {
4154 "type": "STRING",
4155 "value": "as"
4156 },
4157 {
4158 "type": "STRING",
4159 "value": "as?"
4160 }
4161 ]
4162 },
4163 {
4164 "type": "FIELD",
4165 "name": "right",
4166 "content": {
4167 "type": "SYMBOL",
4168 "name": "type"
4169 }
4170 }
4171 ]
4172 }
4173 },
4174 "spread_expression": {
4175 "type": "PREC",
4176 "value": 1,
4177 "content": {
4178 "type": "SEQ",
4179 "members": [
4180 {
4181 "type": "STRING",
4182 "value": "*"
4183 },
4184 {
4185 "type": "SYMBOL",
4186 "name": "expression"
4187 }
4188 ]
4189 }
4190 },
4191 "range_expression": {
4192 "type": "PREC_LEFT",
4193 "value": 9,
4194 "content": {
4195 "type": "SEQ",
4196 "members": [
4197 {
4198 "type": "SYMBOL",
4199 "name": "expression"
4200 },
4201 {
4202 "type": "CHOICE",
4203 "members": [
4204 {
4205 "type": "STRING",
4206 "value": ".."
4207 },
4208 {
4209 "type": "STRING",
4210 "value": "..<"
4211 }
4212 ]
4213 },
4214 {
4215 "type": "SYMBOL",
4216 "name": "expression"
4217 }
4218 ]
4219 }
4220 },
4221 "infix_expression": {
4222 "type": "PREC_LEFT",
4223 "value": 8,
4224 "content": {
4225 "type": "SEQ",
4226 "members": [
4227 {
4228 "type": "SYMBOL",
4229 "name": "expression"
4230 },
4231 {
4232 "type": "SYMBOL",
4233 "name": "identifier"
4234 },
4235 {
4236 "type": "SYMBOL",
4237 "name": "expression"
4238 }
4239 ]
4240 }
4241 },
4242 "call_expression": {
4243 "type": "PREC_LEFT",
4244 "value": 13,
4245 "content": {
4246 "type": "SEQ",
4247 "members": [
4248 {
4249 "type": "SYMBOL",
4250 "name": "expression"
4251 },
4252 {
4253 "type": "CHOICE",
4254 "members": [
4255 {
4256 "type": "SYMBOL",
4257 "name": "type_arguments"
4258 },
4259 {
4260 "type": "BLANK"
4261 }
4262 ]
4263 },
4264 {
4265 "type": "CHOICE",
4266 "members": [
4267 {
4268 "type": "SYMBOL",
4269 "name": "value_arguments"
4270 },
4271 {
4272 "type": "SEQ",
4273 "members": [
4274 {
4275 "type": "CHOICE",
4276 "members": [
4277 {
4278 "type": "SYMBOL",
4279 "name": "value_arguments"
4280 },
4281 {
4282 "type": "BLANK"
4283 }
4284 ]
4285 },
4286 {
4287 "type": "SYMBOL",
4288 "name": "annotated_lambda"
4289 }
4290 ]
4291 }
4292 ]
4293 }
4294 ]
4295 }
4296 },
4297 "annotated_lambda": {
4298 "type": "SEQ",
4299 "members": [
4300 {
4301 "type": "REPEAT",
4302 "content": {
4303 "type": "SYMBOL",
4304 "name": "annotation"
4305 }
4306 },
4307 {
4308 "type": "CHOICE",
4309 "members": [
4310 {
4311 "type": "SYMBOL",
4312 "name": "label"
4313 },
4314 {
4315 "type": "BLANK"
4316 }
4317 ]
4318 },
4319 {
4320 "type": "SYMBOL",
4321 "name": "lambda_literal"
4322 }
4323 ]
4324 },
4325 "lambda_literal": {
4326 "type": "SEQ",
4327 "members": [
4328 {
4329 "type": "STRING",
4330 "value": "{"
4331 },
4332 {
4333 "type": "CHOICE",
4334 "members": [
4335 {
4336 "type": "SEQ",
4337 "members": [
4338 {
4339 "type": "CHOICE",
4340 "members": [
4341 {
4342 "type": "SYMBOL",
4343 "name": "lambda_parameters"
4344 },
4345 {
4346 "type": "BLANK"
4347 }
4348 ]
4349 },
4350 {
4351 "type": "STRING",
4352 "value": "->"
4353 }
4354 ]
4355 },
4356 {
4357 "type": "BLANK"
4358 }
4359 ]
4360 },
4361 {
4362 "type": "CHOICE",
4363 "members": [
4364 {
4365 "type": "SEQ",
4366 "members": [
4367 {
4368 "type": "SYMBOL",
4369 "name": "statement"
4370 },
4371 {
4372 "type": "REPEAT",
4373 "content": {
4374 "type": "SEQ",
4375 "members": [
4376 {
4377 "type": "SYMBOL",
4378 "name": "_semi"
4379 },
4380 {
4381 "type": "SYMBOL",
4382 "name": "statement"
4383 }
4384 ]
4385 }
4386 },
4387 {
4388 "type": "CHOICE",
4389 "members": [
4390 {
4391 "type": "SYMBOL",
4392 "name": "_semi"
4393 },
4394 {
4395 "type": "BLANK"
4396 }
4397 ]
4398 }
4399 ]
4400 },
4401 {
4402 "type": "BLANK"
4403 }
4404 ]
4405 },
4406 {
4407 "type": "STRING",
4408 "value": "}"
4409 }
4410 ]
4411 },
4412 "lambda_parameters": {
4413 "type": "SEQ",
4414 "members": [
4415 {
4416 "type": "SEQ",
4417 "members": [
4418 {
4419 "type": "SYMBOL",
4420 "name": "_lambda_parameter"
4421 },
4422 {
4423 "type": "REPEAT",
4424 "content": {
4425 "type": "SEQ",
4426 "members": [
4427 {
4428 "type": "STRING",
4429 "value": ","
4430 },
4431 {
4432 "type": "SYMBOL",
4433 "name": "_lambda_parameter"
4434 }
4435 ]
4436 }
4437 }
4438 ]
4439 },
4440 {
4441 "type": "CHOICE",
4442 "members": [
4443 {
4444 "type": "STRING",
4445 "value": ","
4446 },
4447 {
4448 "type": "BLANK"
4449 }
4450 ]
4451 }
4452 ]
4453 },
4454 "_lambda_parameter": {
4455 "type": "CHOICE",
4456 "members": [
4457 {
4458 "type": "SYMBOL",
4459 "name": "variable_declaration"
4460 },
4461 {
4462 "type": "SYMBOL",
4463 "name": "multi_variable_declaration"
4464 }
4465 ]
4466 },
4467 "anonymous_function": {
4468 "type": "PREC_RIGHT",
4469 "value": 0,
4470 "content": {
4471 "type": "SEQ",
4472 "members": [
4473 {
4474 "type": "STRING",
4475 "value": "fun"
4476 },
4477 {
4478 "type": "CHOICE",
4479 "members": [
4480 {
4481 "type": "SEQ",
4482 "members": [
4483 {
4484 "type": "SYMBOL",
4485 "name": "type"
4486 },
4487 {
4488 "type": "STRING",
4489 "value": "."
4490 }
4491 ]
4492 },
4493 {
4494 "type": "BLANK"
4495 }
4496 ]
4497 },
4498 {
4499 "type": "SYMBOL",
4500 "name": "function_value_parameters"
4501 },
4502 {
4503 "type": "CHOICE",
4504 "members": [
4505 {
4506 "type": "SEQ",
4507 "members": [
4508 {
4509 "type": "STRING",
4510 "value": ":"
4511 },
4512 {
4513 "type": "SYMBOL",
4514 "name": "type"
4515 }
4516 ]
4517 },
4518 {
4519 "type": "BLANK"
4520 }
4521 ]
4522 },
4523 {
4524 "type": "CHOICE",
4525 "members": [
4526 {
4527 "type": "SYMBOL",
4528 "name": "type_constraints"
4529 },
4530 {
4531 "type": "BLANK"
4532 }
4533 ]
4534 },
4535 {
4536 "type": "CHOICE",
4537 "members": [
4538 {
4539 "type": "SYMBOL",
4540 "name": "function_body"
4541 },
4542 {
4543 "type": "BLANK"
4544 }
4545 ]
4546 }
4547 ]
4548 }
4549 },
4550 "index_expression": {
4551 "type": "PREC",
4552 "value": 13,
4553 "content": {
4554 "type": "SEQ",
4555 "members": [
4556 {
4557 "type": "SYMBOL",
4558 "name": "expression"
4559 },
4560 {
4561 "type": "STRING",
4562 "value": "["
4563 },
4564 {
4565 "type": "CHOICE",
4566 "members": [
4567 {
4568 "type": "SEQ",
4569 "members": [
4570 {
4571 "type": "SYMBOL",
4572 "name": "expression"
4573 },
4574 {
4575 "type": "REPEAT",
4576 "content": {
4577 "type": "SEQ",
4578 "members": [
4579 {
4580 "type": "STRING",
4581 "value": ","
4582 },
4583 {
4584 "type": "SYMBOL",
4585 "name": "expression"
4586 }
4587 ]
4588 }
4589 }
4590 ]
4591 },
4592 {
4593 "type": "BLANK"
4594 }
4595 ]
4596 },
4597 {
4598 "type": "STRING",
4599 "value": "]"
4600 }
4601 ]
4602 }
4603 },
4604 "this_expression": {
4605 "type": "SEQ",
4606 "members": [
4607 {
4608 "type": "CHOICE",
4609 "members": [
4610 {
4611 "type": "STRING",
4612 "value": "this"
4613 },
4614 {
4615 "type": "SEQ",
4616 "members": [
4617 {
4618 "type": "STRING",
4619 "value": "this@"
4620 },
4621 {
4622 "type": "SYMBOL",
4623 "name": "identifier"
4624 }
4625 ]
4626 }
4627 ]
4628 }
4629 ]
4630 },
4631 "super_expression": {
4632 "type": "PREC_RIGHT",
4633 "value": 0,
4634 "content": {
4635 "type": "CHOICE",
4636 "members": [
4637 {
4638 "type": "STRING",
4639 "value": "super"
4640 },
4641 {
4642 "type": "SEQ",
4643 "members": [
4644 {
4645 "type": "STRING",
4646 "value": "super"
4647 },
4648 {
4649 "type": "STRING",
4650 "value": "<"
4651 },
4652 {
4653 "type": "SYMBOL",
4654 "name": "type"
4655 },
4656 {
4657 "type": "STRING",
4658 "value": ">"
4659 }
4660 ]
4661 },
4662 {
4663 "type": "SEQ",
4664 "members": [
4665 {
4666 "type": "STRING",
4667 "value": "super@"
4668 },
4669 {
4670 "type": "SYMBOL",
4671 "name": "identifier"
4672 }
4673 ]
4674 },
4675 {
4676 "type": "SEQ",
4677 "members": [
4678 {
4679 "type": "STRING",
4680 "value": "super"
4681 },
4682 {
4683 "type": "STRING",
4684 "value": "<"
4685 },
4686 {
4687 "type": "SYMBOL",
4688 "name": "type"
4689 },
4690 {
4691 "type": "STRING",
4692 "value": ">"
4693 },
4694 {
4695 "type": "IMMEDIATE_TOKEN",
4696 "content": {
4697 "type": "STRING",
4698 "value": "@"
4699 }
4700 },
4701 {
4702 "type": "SYMBOL",
4703 "name": "identifier"
4704 }
4705 ]
4706 }
4707 ]
4708 }
4709 },
4710 "if_expression": {
4711 "type": "PREC_RIGHT",
4712 "value": 0,
4713 "content": {
4714 "type": "SEQ",
4715 "members": [
4716 {
4717 "type": "STRING",
4718 "value": "if"
4719 },
4720 {
4721 "type": "STRING",
4722 "value": "("
4723 },
4724 {
4725 "type": "FIELD",
4726 "name": "condition",
4727 "content": {
4728 "type": "SYMBOL",
4729 "name": "expression"
4730 }
4731 },
4732 {
4733 "type": "STRING",
4734 "value": ")"
4735 },
4736 {
4737 "type": "CHOICE",
4738 "members": [
4739 {
4740 "type": "SYMBOL",
4741 "name": "block"
4742 },
4743 {
4744 "type": "SYMBOL",
4745 "name": "expression"
4746 },
4747 {
4748 "type": "SYMBOL",
4749 "name": "assignment"
4750 },
4751 {
4752 "type": "STRING",
4753 "value": ";"
4754 },
4755 {
4756 "type": "SEQ",
4757 "members": [
4758 {
4759 "type": "CHOICE",
4760 "members": [
4761 {
4762 "type": "CHOICE",
4763 "members": [
4764 {
4765 "type": "SYMBOL",
4766 "name": "block"
4767 },
4768 {
4769 "type": "SYMBOL",
4770 "name": "expression"
4771 },
4772 {
4773 "type": "SYMBOL",
4774 "name": "assignment"
4775 }
4776 ]
4777 },
4778 {
4779 "type": "BLANK"
4780 }
4781 ]
4782 },
4783 {
4784 "type": "CHOICE",
4785 "members": [
4786 {
4787 "type": "STRING",
4788 "value": ";"
4789 },
4790 {
4791 "type": "BLANK"
4792 }
4793 ]
4794 },
4795 {
4796 "type": "STRING",
4797 "value": "else"
4798 },
4799 {
4800 "type": "CHOICE",
4801 "members": [
4802 {
4803 "type": "SYMBOL",
4804 "name": "block"
4805 },
4806 {
4807 "type": "SYMBOL",
4808 "name": "expression"
4809 },
4810 {
4811 "type": "SYMBOL",
4812 "name": "assignment"
4813 },
4814 {
4815 "type": "STRING",
4816 "value": ";"
4817 }
4818 ]
4819 }
4820 ]
4821 }
4822 ]
4823 }
4824 ]
4825 }
4826 },
4827 "parenthesized_expression": {
4828 "type": "SEQ",
4829 "members": [
4830 {
4831 "type": "STRING",
4832 "value": "("
4833 },
4834 {
4835 "type": "SYMBOL",
4836 "name": "expression"
4837 },
4838 {
4839 "type": "STRING",
4840 "value": ")"
4841 }
4842 ]
4843 },
4844 "collection_literal": {
4845 "type": "SEQ",
4846 "members": [
4847 {
4848 "type": "STRING",
4849 "value": "["
4850 },
4851 {
4852 "type": "SEQ",
4853 "members": [
4854 {
4855 "type": "SYMBOL",
4856 "name": "expression"
4857 },
4858 {
4859 "type": "REPEAT",
4860 "content": {
4861 "type": "SEQ",
4862 "members": [
4863 {
4864 "type": "STRING",
4865 "value": ","
4866 },
4867 {
4868 "type": "SYMBOL",
4869 "name": "expression"
4870 }
4871 ]
4872 }
4873 }
4874 ]
4875 },
4876 {
4877 "type": "CHOICE",
4878 "members": [
4879 {
4880 "type": "STRING",
4881 "value": ","
4882 },
4883 {
4884 "type": "BLANK"
4885 }
4886 ]
4887 },
4888 {
4889 "type": "STRING",
4890 "value": "]"
4891 }
4892 ]
4893 },
4894 "when_expression": {
4895 "type": "SEQ",
4896 "members": [
4897 {
4898 "type": "STRING",
4899 "value": "when"
4900 },
4901 {
4902 "type": "CHOICE",
4903 "members": [
4904 {
4905 "type": "SYMBOL",
4906 "name": "when_subject"
4907 },
4908 {
4909 "type": "BLANK"
4910 }
4911 ]
4912 },
4913 {
4914 "type": "STRING",
4915 "value": "{"
4916 },
4917 {
4918 "type": "REPEAT",
4919 "content": {
4920 "type": "SYMBOL",
4921 "name": "when_entry"
4922 }
4923 },
4924 {
4925 "type": "STRING",
4926 "value": "}"
4927 }
4928 ]
4929 },
4930 "when_subject": {
4931 "type": "SEQ",
4932 "members": [
4933 {
4934 "type": "STRING",
4935 "value": "("
4936 },
4937 {
4938 "type": "CHOICE",
4939 "members": [
4940 {
4941 "type": "SEQ",
4942 "members": [
4943 {
4944 "type": "REPEAT",
4945 "content": {
4946 "type": "SYMBOL",
4947 "name": "annotation"
4948 }
4949 },
4950 {
4951 "type": "STRING",
4952 "value": "val"
4953 },
4954 {
4955 "type": "SYMBOL",
4956 "name": "variable_declaration"
4957 },
4958 {
4959 "type": "STRING",
4960 "value": "="
4961 }
4962 ]
4963 },
4964 {
4965 "type": "BLANK"
4966 }
4967 ]
4968 },
4969 {
4970 "type": "SYMBOL",
4971 "name": "expression"
4972 },
4973 {
4974 "type": "STRING",
4975 "value": ")"
4976 }
4977 ]
4978 },
4979 "when_entry": {
4980 "type": "SEQ",
4981 "members": [
4982 {
4983 "type": "CHOICE",
4984 "members": [
4985 {
4986 "type": "SEQ",
4987 "members": [
4988 {
4989 "type": "SEQ",
4990 "members": [
4991 {
4992 "type": "FIELD",
4993 "name": "condition",
4994 "content": {
4995 "type": "SYMBOL",
4996 "name": "_when_condition"
4997 }
4998 },
4999 {
5000 "type": "REPEAT",
5001 "content": {
5002 "type": "SEQ",
5003 "members": [
5004 {
5005 "type": "STRING",
5006 "value": ","
5007 },
5008 {
5009 "type": "FIELD",
5010 "name": "condition",
5011 "content": {
5012 "type": "SYMBOL",
5013 "name": "_when_condition"
5014 }
5015 }
5016 ]
5017 }
5018 }
5019 ]
5020 },
5021 {
5022 "type": "CHOICE",
5023 "members": [
5024 {
5025 "type": "STRING",
5026 "value": ","
5027 },
5028 {
5029 "type": "BLANK"
5030 }
5031 ]
5032 }
5033 ]
5034 },
5035 {
5036 "type": "STRING",
5037 "value": "else"
5038 }
5039 ]
5040 },
5041 {
5042 "type": "STRING",
5043 "value": "->"
5044 },
5045 {
5046 "type": "CHOICE",
5047 "members": [
5048 {
5049 "type": "SYMBOL",
5050 "name": "block"
5051 },
5052 {
5053 "type": "SYMBOL",
5054 "name": "statement"
5055 }
5056 ]
5057 },
5058 {
5059 "type": "CHOICE",
5060 "members": [
5061 {
5062 "type": "SYMBOL",
5063 "name": "_semi"
5064 },
5065 {
5066 "type": "BLANK"
5067 }
5068 ]
5069 }
5070 ]
5071 },
5072 "_when_condition": {
5073 "type": "CHOICE",
5074 "members": [
5075 {
5076 "type": "SYMBOL",
5077 "name": "expression"
5078 },
5079 {
5080 "type": "SYMBOL",
5081 "name": "range_test"
5082 },
5083 {
5084 "type": "SYMBOL",
5085 "name": "type_test"
5086 }
5087 ]
5088 },
5089 "range_test": {
5090 "type": "SEQ",
5091 "members": [
5092 {
5093 "type": "CHOICE",
5094 "members": [
5095 {
5096 "type": "ALIAS",
5097 "content": {
5098 "type": "SYMBOL",
5099 "name": "_in"
5100 },
5101 "named": false,
5102 "value": "in"
5103 },
5104 {
5105 "type": "STRING",
5106 "value": "!in"
5107 }
5108 ]
5109 },
5110 {
5111 "type": "SYMBOL",
5112 "name": "expression"
5113 }
5114 ]
5115 },
5116 "type_test": {
5117 "type": "SEQ",
5118 "members": [
5119 {
5120 "type": "CHOICE",
5121 "members": [
5122 {
5123 "type": "STRING",
5124 "value": "is"
5125 },
5126 {
5127 "type": "ALIAS",
5128 "content": {
5129 "type": "SYMBOL",
5130 "name": "_not_is"
5131 },
5132 "named": false,
5133 "value": "!is"
5134 }
5135 ]
5136 },
5137 {
5138 "type": "SYMBOL",
5139 "name": "type"
5140 }
5141 ]
5142 },
5143 "try_expression": {
5144 "type": "SEQ",
5145 "members": [
5146 {
5147 "type": "STRING",
5148 "value": "try"
5149 },
5150 {
5151 "type": "SYMBOL",
5152 "name": "block"
5153 },
5154 {
5155 "type": "CHOICE",
5156 "members": [
5157 {
5158 "type": "SEQ",
5159 "members": [
5160 {
5161 "type": "REPEAT1",
5162 "content": {
5163 "type": "SYMBOL",
5164 "name": "catch_block"
5165 }
5166 },
5167 {
5168 "type": "CHOICE",
5169 "members": [
5170 {
5171 "type": "SYMBOL",
5172 "name": "finally_block"
5173 },
5174 {
5175 "type": "BLANK"
5176 }
5177 ]
5178 }
5179 ]
5180 },
5181 {
5182 "type": "SYMBOL",
5183 "name": "finally_block"
5184 }
5185 ]
5186 }
5187 ]
5188 },
5189 "catch_block": {
5190 "type": "SEQ",
5191 "members": [
5192 {
5193 "type": "STRING",
5194 "value": "catch"
5195 },
5196 {
5197 "type": "STRING",
5198 "value": "("
5199 },
5200 {
5201 "type": "REPEAT",
5202 "content": {
5203 "type": "SYMBOL",
5204 "name": "annotation"
5205 }
5206 },
5207 {
5208 "type": "SYMBOL",
5209 "name": "identifier"
5210 },
5211 {
5212 "type": "STRING",
5213 "value": ":"
5214 },
5215 {
5216 "type": "SYMBOL",
5217 "name": "type"
5218 },
5219 {
5220 "type": "STRING",
5221 "value": ")"
5222 },
5223 {
5224 "type": "SYMBOL",
5225 "name": "block"
5226 }
5227 ]
5228 },
5229 "finally_block": {
5230 "type": "SEQ",
5231 "members": [
5232 {
5233 "type": "STRING",
5234 "value": "finally"
5235 },
5236 {
5237 "type": "SYMBOL",
5238 "name": "block"
5239 }
5240 ]
5241 },
5242 "return_expression": {
5243 "type": "PREC_RIGHT",
5244 "value": 0,
5245 "content": {
5246 "type": "SEQ",
5247 "members": [
5248 {
5249 "type": "CHOICE",
5250 "members": [
5251 {
5252 "type": "STRING",
5253 "value": "return"
5254 },
5255 {
5256 "type": "SEQ",
5257 "members": [
5258 {
5259 "type": "STRING",
5260 "value": "return@"
5261 },
5262 {
5263 "type": "FIELD",
5264 "name": "label",
5265 "content": {
5266 "type": "SYMBOL",
5267 "name": "identifier"
5268 }
5269 }
5270 ]
5271 }
5272 ]
5273 },
5274 {
5275 "type": "CHOICE",
5276 "members": [
5277 {
5278 "type": "SYMBOL",
5279 "name": "expression"
5280 },
5281 {
5282 "type": "BLANK"
5283 }
5284 ]
5285 }
5286 ]
5287 }
5288 },
5289 "throw_expression": {
5290 "type": "SEQ",
5291 "members": [
5292 {
5293 "type": "STRING",
5294 "value": "throw"
5295 },
5296 {
5297 "type": "SYMBOL",
5298 "name": "expression"
5299 }
5300 ]
5301 },
5302 "continue_expression": {
5303 "type": "CHOICE",
5304 "members": [
5305 {
5306 "type": "STRING",
5307 "value": "continue"
5308 },
5309 {
5310 "type": "SEQ",
5311 "members": [
5312 {
5313 "type": "STRING",
5314 "value": "continue@"
5315 },
5316 {
5317 "type": "FIELD",
5318 "name": "label",
5319 "content": {
5320 "type": "SYMBOL",
5321 "name": "identifier"
5322 }
5323 }
5324 ]
5325 }
5326 ]
5327 },
5328 "break_expression": {
5329 "type": "CHOICE",
5330 "members": [
5331 {
5332 "type": "STRING",
5333 "value": "break"
5334 },
5335 {
5336 "type": "SEQ",
5337 "members": [
5338 {
5339 "type": "STRING",
5340 "value": "break@"
5341 },
5342 {
5343 "type": "FIELD",
5344 "name": "label",
5345 "content": {
5346 "type": "SYMBOL",
5347 "name": "identifier"
5348 }
5349 }
5350 ]
5351 }
5352 ]
5353 },
5354 "callable_reference": {
5355 "type": "SEQ",
5356 "members": [
5357 {
5358 "type": "CHOICE",
5359 "members": [
5360 {
5361 "type": "SYMBOL",
5362 "name": "_receiver_type"
5363 },
5364 {
5365 "type": "BLANK"
5366 }
5367 ]
5368 },
5369 {
5370 "type": "STRING",
5371 "value": "::"
5372 },
5373 {
5374 "type": "CHOICE",
5375 "members": [
5376 {
5377 "type": "SYMBOL",
5378 "name": "identifier"
5379 },
5380 {
5381 "type": "STRING",
5382 "value": "class"
5383 }
5384 ]
5385 }
5386 ]
5387 },
5388 "navigation_expression": {
5389 "type": "PREC",
5390 "value": 13,
5391 "content": {
5392 "type": "SEQ",
5393 "members": [
5394 {
5395 "type": "SYMBOL",
5396 "name": "expression"
5397 },
5398 {
5399 "type": "CHOICE",
5400 "members": [
5401 {
5402 "type": "STRING",
5403 "value": "."
5404 },
5405 {
5406 "type": "ALIAS",
5407 "content": {
5408 "type": "SYMBOL",
5409 "name": "_q_dot"
5410 },
5411 "named": false,
5412 "value": "?."
5413 },
5414 {
5415 "type": "STRING",
5416 "value": "::"
5417 }
5418 ]
5419 },
5420 {
5421 "type": "SYMBOL",
5422 "name": "identifier"
5423 }
5424 ]
5425 }
5426 },
5427 "object_literal": {
5428 "type": "SEQ",
5429 "members": [
5430 {
5431 "type": "STRING",
5432 "value": "object"
5433 },
5434 {
5435 "type": "CHOICE",
5436 "members": [
5437 {
5438 "type": "SEQ",
5439 "members": [
5440 {
5441 "type": "STRING",
5442 "value": ":"
5443 },
5444 {
5445 "type": "SYMBOL",
5446 "name": "delegation_specifiers"
5447 }
5448 ]
5449 },
5450 {
5451 "type": "BLANK"
5452 }
5453 ]
5454 },
5455 {
5456 "type": "SYMBOL",
5457 "name": "class_body"
5458 }
5459 ]
5460 },
5461 "string_literal": {
5462 "type": "SEQ",
5463 "members": [
5464 {
5465 "type": "STRING",
5466 "value": "\""
5467 },
5468 {
5469 "type": "REPEAT",
5470 "content": {
5471 "type": "CHOICE",
5472 "members": [
5473 {
5474 "type": "ALIAS",
5475 "content": {
5476 "type": "CHOICE",
5477 "members": [
5478 {
5479 "type": "IMMEDIATE_TOKEN",
5480 "content": {
5481 "type": "PREC",
5482 "value": 2,
5483 "content": {
5484 "type": "SEQ",
5485 "members": [
5486 {
5487 "type": "STRING",
5488 "value": "\\"
5489 },
5490 {
5491 "type": "PATTERN",
5492 "value": "[^bnrt'\\\"\\\\\\$]"
5493 }
5494 ]
5495 }
5496 }
5497 },
5498 {
5499 "type": "IMMEDIATE_TOKEN",
5500 "content": {
5501 "type": "PREC",
5502 "value": 1,
5503 "content": {
5504 "type": "PATTERN",
5505 "value": "[^\"\\\\\\$]+"
5506 }
5507 }
5508 },
5509 {
5510 "type": "STRING",
5511 "value": "$"
5512 }
5513 ]
5514 },
5515 "named": true,
5516 "value": "string_content"
5517 },
5518 {
5519 "type": "SYMBOL",
5520 "name": "escape_sequence"
5521 },
5522 {
5523 "type": "SYMBOL",
5524 "name": "interpolation"
5525 }
5526 ]
5527 }
5528 },
5529 {
5530 "type": "STRING",
5531 "value": "\""
5532 }
5533 ]
5534 },
5535 "multiline_string_literal": {
5536 "type": "SEQ",
5537 "members": [
5538 {
5539 "type": "STRING",
5540 "value": "\"\"\""
5541 },
5542 {
5543 "type": "REPEAT",
5544 "content": {
5545 "type": "CHOICE",
5546 "members": [
5547 {
5548 "type": "ALIAS",
5549 "content": {
5550 "type": "SYMBOL",
5551 "name": "_multiline_string_content"
5552 },
5553 "named": true,
5554 "value": "string_content"
5555 },
5556 {
5557 "type": "SYMBOL",
5558 "name": "interpolation"
5559 }
5560 ]
5561 }
5562 },
5563 {
5564 "type": "CHOICE",
5565 "members": [
5566 {
5567 "type": "STRING",
5568 "value": "\"\"\""
5569 },
5570 {
5571 "type": "STRING",
5572 "value": "\"\"\"\""
5573 }
5574 ]
5575 }
5576 ]
5577 },
5578 "interpolation": {
5579 "type": "CHOICE",
5580 "members": [
5581 {
5582 "type": "SEQ",
5583 "members": [
5584 {
5585 "type": "STRING",
5586 "value": "$"
5587 },
5588 {
5589 "type": "SYMBOL",
5590 "name": "_identifier"
5591 }
5592 ]
5593 },
5594 {
5595 "type": "SEQ",
5596 "members": [
5597 {
5598 "type": "STRING",
5599 "value": "${"
5600 },
5601 {
5602 "type": "SYMBOL",
5603 "name": "expression"
5604 },
5605 {
5606 "type": "STRING",
5607 "value": "}"
5608 }
5609 ]
5610 }
5611 ]
5612 },
5613 "character_literal": {
5614 "type": "SEQ",
5615 "members": [
5616 {
5617 "type": "STRING",
5618 "value": "'"
5619 },
5620 {
5621 "type": "CHOICE",
5622 "members": [
5623 {
5624 "type": "IMMEDIATE_TOKEN",
5625 "content": {
5626 "type": "PREC",
5627 "value": 1,
5628 "content": {
5629 "type": "PATTERN",
5630 "value": "[^'\\\\\\r\\n]"
5631 }
5632 }
5633 },
5634 {
5635 "type": "SYMBOL",
5636 "name": "escape_sequence"
5637 }
5638 ]
5639 },
5640 {
5641 "type": "STRING",
5642 "value": "'"
5643 }
5644 ]
5645 },
5646 "escape_sequence": {
5647 "type": "IMMEDIATE_TOKEN",
5648 "content": {
5649 "type": "PREC",
5650 "value": 1,
5651 "content": {
5652 "type": "SEQ",
5653 "members": [
5654 {
5655 "type": "STRING",
5656 "value": "\\"
5657 },
5658 {
5659 "type": "CHOICE",
5660 "members": [
5661 {
5662 "type": "PATTERN",
5663 "value": "[^xu0-7]"
5664 },
5665 {
5666 "type": "PATTERN",
5667 "value": "u[0-9a-fA-F]{4}"
5668 }
5669 ]
5670 }
5671 ]
5672 }
5673 }
5674 },
5675 "number_literal": {
5676 "type": "TOKEN",
5677 "content": {
5678 "type": "SEQ",
5679 "members": [
5680 {
5681 "type": "CHOICE",
5682 "members": [
5683 {
5684 "type": "SEQ",
5685 "members": [
5686 {
5687 "type": "REPEAT1",
5688 "content": {
5689 "type": "PATTERN",
5690 "value": "[0-9]+"
5691 }
5692 },
5693 {
5694 "type": "REPEAT",
5695 "content": {
5696 "type": "SEQ",
5697 "members": [
5698 {
5699 "type": "STRING",
5700 "value": "_"
5701 },
5702 {
5703 "type": "REPEAT1",
5704 "content": {
5705 "type": "PATTERN",
5706 "value": "[0-9]+"
5707 }
5708 }
5709 ]
5710 }
5711 }
5712 ]
5713 },
5714 {
5715 "type": "SEQ",
5716 "members": [
5717 {
5718 "type": "PATTERN",
5719 "value": "0[xX]"
5720 },
5721 {
5722 "type": "SEQ",
5723 "members": [
5724 {
5725 "type": "REPEAT1",
5726 "content": {
5727 "type": "PATTERN",
5728 "value": "[0-9a-fA-F]"
5729 }
5730 },
5731 {
5732 "type": "REPEAT",
5733 "content": {
5734 "type": "SEQ",
5735 "members": [
5736 {
5737 "type": "STRING",
5738 "value": "_"
5739 },
5740 {
5741 "type": "REPEAT1",
5742 "content": {
5743 "type": "PATTERN",
5744 "value": "[0-9a-fA-F]"
5745 }
5746 }
5747 ]
5748 }
5749 }
5750 ]
5751 }
5752 ]
5753 },
5754 {
5755 "type": "SEQ",
5756 "members": [
5757 {
5758 "type": "PATTERN",
5759 "value": "0[bB]"
5760 },
5761 {
5762 "type": "SEQ",
5763 "members": [
5764 {
5765 "type": "REPEAT1",
5766 "content": {
5767 "type": "PATTERN",
5768 "value": "[01]"
5769 }
5770 },
5771 {
5772 "type": "REPEAT",
5773 "content": {
5774 "type": "SEQ",
5775 "members": [
5776 {
5777 "type": "STRING",
5778 "value": "_"
5779 },
5780 {
5781 "type": "REPEAT1",
5782 "content": {
5783 "type": "PATTERN",
5784 "value": "[01]"
5785 }
5786 }
5787 ]
5788 }
5789 }
5790 ]
5791 }
5792 ]
5793 }
5794 ]
5795 },
5796 {
5797 "type": "CHOICE",
5798 "members": [
5799 {
5800 "type": "PATTERN",
5801 "value": "([lL]|[uU][lL]?)"
5802 },
5803 {
5804 "type": "BLANK"
5805 }
5806 ]
5807 }
5808 ]
5809 }
5810 },
5811 "float_literal": {
5812 "type": "TOKEN",
5813 "content": {
5814 "type": "SEQ",
5815 "members": [
5816 {
5817 "type": "CHOICE",
5818 "members": [
5819 {
5820 "type": "SEQ",
5821 "members": [
5822 {
5823 "type": "SEQ",
5824 "members": [
5825 {
5826 "type": "REPEAT1",
5827 "content": {
5828 "type": "PATTERN",
5829 "value": "[0-9]+"
5830 }
5831 },
5832 {
5833 "type": "REPEAT",
5834 "content": {
5835 "type": "SEQ",
5836 "members": [
5837 {
5838 "type": "STRING",
5839 "value": "_"
5840 },
5841 {
5842 "type": "REPEAT1",
5843 "content": {
5844 "type": "PATTERN",
5845 "value": "[0-9]+"
5846 }
5847 }
5848 ]
5849 }
5850 }
5851 ]
5852 },
5853 {
5854 "type": "PATTERN",
5855 "value": "[eE][+-]?[0-9]+"
5856 },
5857 {
5858 "type": "CHOICE",
5859 "members": [
5860 {
5861 "type": "PATTERN",
5862 "value": "[fF]"
5863 },
5864 {
5865 "type": "BLANK"
5866 }
5867 ]
5868 }
5869 ]
5870 },
5871 {
5872 "type": "SEQ",
5873 "members": [
5874 {
5875 "type": "CHOICE",
5876 "members": [
5877 {
5878 "type": "SEQ",
5879 "members": [
5880 {
5881 "type": "REPEAT1",
5882 "content": {
5883 "type": "PATTERN",
5884 "value": "[0-9]+"
5885 }
5886 },
5887 {
5888 "type": "REPEAT",
5889 "content": {
5890 "type": "SEQ",
5891 "members": [
5892 {
5893 "type": "STRING",
5894 "value": "_"
5895 },
5896 {
5897 "type": "REPEAT1",
5898 "content": {
5899 "type": "PATTERN",
5900 "value": "[0-9]+"
5901 }
5902 }
5903 ]
5904 }
5905 }
5906 ]
5907 },
5908 {
5909 "type": "BLANK"
5910 }
5911 ]
5912 },
5913 {
5914 "type": "STRING",
5915 "value": "."
5916 },
5917 {
5918 "type": "REPEAT1",
5919 "content": {
5920 "type": "SEQ",
5921 "members": [
5922 {
5923 "type": "REPEAT1",
5924 "content": {
5925 "type": "PATTERN",
5926 "value": "[0-9]+"
5927 }
5928 },
5929 {
5930 "type": "REPEAT",
5931 "content": {
5932 "type": "SEQ",
5933 "members": [
5934 {
5935 "type": "STRING",
5936 "value": "_"
5937 },
5938 {
5939 "type": "REPEAT1",
5940 "content": {
5941 "type": "PATTERN",
5942 "value": "[0-9]+"
5943 }
5944 }
5945 ]
5946 }
5947 }
5948 ]
5949 }
5950 },
5951 {
5952 "type": "CHOICE",
5953 "members": [
5954 {
5955 "type": "PATTERN",
5956 "value": "[eE][+-]?[0-9]+"
5957 },
5958 {
5959 "type": "BLANK"
5960 }
5961 ]
5962 },
5963 {
5964 "type": "CHOICE",
5965 "members": [
5966 {
5967 "type": "PATTERN",
5968 "value": "[fF]"
5969 },
5970 {
5971 "type": "BLANK"
5972 }
5973 ]
5974 }
5975 ]
5976 },
5977 {
5978 "type": "SEQ",
5979 "members": [
5980 {
5981 "type": "SEQ",
5982 "members": [
5983 {
5984 "type": "REPEAT1",
5985 "content": {
5986 "type": "PATTERN",
5987 "value": "[0-9]+"
5988 }
5989 },
5990 {
5991 "type": "REPEAT",
5992 "content": {
5993 "type": "SEQ",
5994 "members": [
5995 {
5996 "type": "STRING",
5997 "value": "_"
5998 },
5999 {
6000 "type": "REPEAT1",
6001 "content": {
6002 "type": "PATTERN",
6003 "value": "[0-9]+"
6004 }
6005 }
6006 ]
6007 }
6008 }
6009 ]
6010 },
6011 {
6012 "type": "PATTERN",
6013 "value": "[fF]"
6014 }
6015 ]
6016 }
6017 ]
6018 }
6019 ]
6020 }
6021 },
6022 "variance_modifier": {
6023 "type": "CHOICE",
6024 "members": [
6025 {
6026 "type": "STRING",
6027 "value": "in"
6028 },
6029 {
6030 "type": "STRING",
6031 "value": "out"
6032 }
6033 ]
6034 },
6035 "type_parameter_modifiers": {
6036 "type": "REPEAT1",
6037 "content": {
6038 "type": "CHOICE",
6039 "members": [
6040 {
6041 "type": "SYMBOL",
6042 "name": "reification_modifier"
6043 },
6044 {
6045 "type": "SYMBOL",
6046 "name": "variance_modifier"
6047 },
6048 {
6049 "type": "SYMBOL",
6050 "name": "annotation"
6051 }
6052 ]
6053 }
6054 },
6055 "qualified_identifier": {
6056 "type": "SEQ",
6057 "members": [
6058 {
6059 "type": "SYMBOL",
6060 "name": "identifier"
6061 },
6062 {
6063 "type": "REPEAT",
6064 "content": {
6065 "type": "SEQ",
6066 "members": [
6067 {
6068 "type": "STRING",
6069 "value": "."
6070 },
6071 {
6072 "type": "SYMBOL",
6073 "name": "identifier"
6074 }
6075 ]
6076 }
6077 }
6078 ]
6079 },
6080 "label": {
6081 "type": "TOKEN",
6082 "content": {
6083 "type": "PATTERN",
6084 "value": "[a-zA-Z_][a-zA-Z_0-9]*@"
6085 }
6086 },
6087 "_identifier": {
6088 "type": "CHOICE",
6089 "members": [
6090 {
6091 "type": "SYMBOL",
6092 "name": "identifier"
6093 },
6094 {
6095 "type": "SYMBOL",
6096 "name": "_reserved_identifier"
6097 }
6098 ]
6099 },
6100 "identifier": {
6101 "type": "TOKEN",
6102 "content": {
6103 "type": "CHOICE",
6104 "members": [
6105 {
6106 "type": "PATTERN",
6107 "value": "[\\p{L}_][\\p{L}_\\p{Nd}]*",
6108 "flags": "u"
6109 },
6110 {
6111 "type": "PATTERN",
6112 "value": "`[^\\r\\n`]+`"
6113 }
6114 ]
6115 }
6116 },
6117 "_reserved_identifier": {
6118 "type": "PREC_DYNAMIC",
6119 "value": 1,
6120 "content": {
6121 "type": "ALIAS",
6122 "content": {
6123 "type": "CHOICE",
6124 "members": [
6125 {
6126 "type": "STRING",
6127 "value": "actual"
6128 },
6129 {
6130 "type": "STRING",
6131 "value": "annotation"
6132 },
6133 {
6134 "type": "STRING",
6135 "value": "constructor"
6136 },
6137 {
6138 "type": "STRING",
6139 "value": "const"
6140 },
6141 {
6142 "type": "STRING",
6143 "value": "data"
6144 },
6145 {
6146 "type": "STRING",
6147 "value": "enum"
6148 },
6149 {
6150 "type": "STRING",
6151 "value": "expect"
6152 },
6153 {
6154 "type": "STRING",
6155 "value": "inner"
6156 },
6157 {
6158 "type": "STRING",
6159 "value": "get"
6160 },
6161 {
6162 "type": "STRING",
6163 "value": "set"
6164 },
6165 {
6166 "type": "STRING",
6167 "value": "operator"
6168 },
6169 {
6170 "type": "STRING",
6171 "value": "value"
6172 }
6173 ]
6174 },
6175 "named": true,
6176 "value": "identifier"
6177 }
6178 },
6179 "shebang": {
6180 "type": "PATTERN",
6181 "value": "#!.*"
6182 },
6183 "line_comment": {
6184 "type": "TOKEN",
6185 "content": {
6186 "type": "SEQ",
6187 "members": [
6188 {
6189 "type": "STRING",
6190 "value": "//"
6191 },
6192 {
6193 "type": "PATTERN",
6194 "value": ".*"
6195 }
6196 ]
6197 }
6198 }
6199 },
6200 "extras": [
6201 {
6202 "type": "PATTERN",
6203 "value": "\\s"
6204 },
6205 {
6206 "type": "SYMBOL",
6207 "name": "line_comment"
6208 },
6209 {
6210 "type": "SYMBOL",
6211 "name": "block_comment"
6212 }
6213 ],
6214 "conflicts": [
6215 [
6216 "class_body",
6217 "enum_class_body"
6218 ],
6219 [
6220 "binary_expression",
6221 "call_expression"
6222 ],
6223 [
6224 "binary_expression",
6225 "in_expression",
6226 "call_expression"
6227 ],
6228 [
6229 "binary_expression",
6230 "infix_expression",
6231 "call_expression"
6232 ],
6233 [
6234 "binary_expression",
6235 "range_expression",
6236 "call_expression"
6237 ],
6238 [
6239 "user_type"
6240 ],
6241 [
6242 "_simple_user_type",
6243 "primary_expression"
6244 ],
6245 [
6246 "type",
6247 "_receiver_type"
6248 ],
6249 [
6250 "modifiers",
6251 "annotated_lambda"
6252 ],
6253 [
6254 "modifiers",
6255 "annotated_expression"
6256 ],
6257 [
6258 "delegation_specifier",
6259 "type_modifiers"
6260 ],
6261 [
6262 "annotated_expression",
6263 "type_modifiers"
6264 ],
6265 [
6266 "annotated_expression",
6267 "type_modifiers",
6268 "when_subject"
6269 ],
6270 [
6271 "annotated_expression",
6272 "type_modifiers",
6273 "modifiers"
6274 ],
6275 [
6276 "parameter_modifiers",
6277 "type_modifiers"
6278 ],
6279 [
6280 "function_modifier",
6281 "type_modifiers"
6282 ],
6283 [
6284 "function_modifier",
6285 "_reserved_identifier"
6286 ],
6287 [
6288 "variable_declaration",
6289 "type_modifiers"
6290 ],
6291 [
6292 "variable_declaration",
6293 "type_modifiers",
6294 "modifiers",
6295 "annotated_expression"
6296 ],
6297 [
6298 "variable_declaration",
6299 "type_modifiers",
6300 "annotated_expression"
6301 ],
6302 [
6303 "variable_declaration"
6304 ],
6305 [
6306 "function_value_parameters",
6307 "function_type_parameters"
6308 ],
6309 [
6310 "parenthesized_type",
6311 "function_type_parameters"
6312 ],
6313 [
6314 "multi_variable_declaration",
6315 "function_type_parameters"
6316 ],
6317 [
6318 "class_modifier",
6319 "_reserved_identifier"
6320 ],
6321 [
6322 "platform_modifier",
6323 "_reserved_identifier"
6324 ],
6325 [
6326 "property_modifier",
6327 "_reserved_identifier"
6328 ],
6329 [
6330 "explicit_delegation",
6331 "expression"
6332 ],
6333 [
6334 "qualified_identifier"
6335 ],
6336 [
6337 "constructor_invocation",
6338 "_unescaped_annotation"
6339 ],
6340 [
6341 "nullable_type"
6342 ],
6343 [
6344 "non_nullable_type"
6345 ],
6346 [
6347 "function_type"
6348 ],
6349 [
6350 "_receiver_type"
6351 ]
6352 ],
6353 "precedences": [
6354 [
6355 {
6356 "type": "SYMBOL",
6357 "name": "block"
6358 },
6359 {
6360 "type": "SYMBOL",
6361 "name": "lambda_literal"
6362 }
6363 ],
6364 [
6365 {
6366 "type": "SYMBOL",
6367 "name": "function_type"
6368 },
6369 {
6370 "type": "SYMBOL",
6371 "name": "nullable_type"
6372 }
6373 ],
6374 [
6375 {
6376 "type": "SYMBOL",
6377 "name": "function_type"
6378 },
6379 {
6380 "type": "SYMBOL",
6381 "name": "non_nullable_type"
6382 }
6383 ]
6384 ],
6385 "externals": [
6386 {
6387 "type": "SYMBOL",
6388 "name": "_semi"
6389 },
6390 {
6391 "type": "SYMBOL",
6392 "name": "_class_member_semi"
6393 },
6394 {
6395 "type": "SYMBOL",
6396 "name": "block_comment"
6397 },
6398 {
6399 "type": "SYMBOL",
6400 "name": "_not_is"
6401 },
6402 {
6403 "type": "SYMBOL",
6404 "name": "_in"
6405 },
6406 {
6407 "type": "SYMBOL",
6408 "name": "_q_dot"
6409 },
6410 {
6411 "type": "SYMBOL",
6412 "name": "_multiline_string_content"
6413 },
6414 {
6415 "type": "STRING",
6416 "value": "constructor"
6417 },
6418 {
6419 "type": "STRING",
6420 "value": "get"
6421 },
6422 {
6423 "type": "STRING",
6424 "value": "set"
6425 },
6426 {
6427 "type": "STRING",
6428 "value": "$"
6429 }
6430 ],
6431 "inline": [
6432 "_statements",
6433 "_identifier"
6434 ],
6435 "supertypes": [
6436 "class_member_declaration",
6437 "declaration",
6438 "expression",
6439 "primary_expression",
6440 "type"
6441 ]
6442}