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