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