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]