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