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        "type": "abstract_reference_declarator",
  24        "named": true
  25      }
  26    ]
  27  },
  28  {
  29    "type": "_declarator",
  30    "named": true,
  31    "subtypes": [
  32      {
  33        "type": "array_declarator",
  34        "named": true
  35      },
  36      {
  37        "type": "attributed_declarator",
  38        "named": true
  39      },
  40      {
  41        "type": "destructor_name",
  42        "named": true
  43      },
  44      {
  45        "type": "function_declarator",
  46        "named": true
  47      },
  48      {
  49        "type": "identifier",
  50        "named": true
  51      },
  52      {
  53        "type": "operator_name",
  54        "named": true
  55      },
  56      {
  57        "type": "parenthesized_declarator",
  58        "named": true
  59      },
  60      {
  61        "type": "pointer_declarator",
  62        "named": true
  63      },
  64      {
  65        "type": "qualified_identifier",
  66        "named": true
  67      },
  68      {
  69        "type": "reference_declarator",
  70        "named": true
  71      },
  72      {
  73        "type": "structured_binding_declarator",
  74        "named": true
  75      },
  76      {
  77        "type": "template_function",
  78        "named": true
  79      }
  80    ]
  81  },
  82  {
  83    "type": "_expression",
  84    "named": true,
  85    "subtypes": [
  86      {
  87        "type": "alignof_expression",
  88        "named": true
  89      },
  90      {
  91        "type": "assignment_expression",
  92        "named": true
  93      },
  94      {
  95        "type": "binary_expression",
  96        "named": true
  97      },
  98      {
  99        "type": "call_expression",
 100        "named": true
 101      },
 102      {
 103        "type": "cast_expression",
 104        "named": true
 105      },
 106      {
 107        "type": "char_literal",
 108        "named": true
 109      },
 110      {
 111        "type": "co_await_expression",
 112        "named": true
 113      },
 114      {
 115        "type": "compound_literal_expression",
 116        "named": true
 117      },
 118      {
 119        "type": "concatenated_string",
 120        "named": true
 121      },
 122      {
 123        "type": "conditional_expression",
 124        "named": true
 125      },
 126      {
 127        "type": "delete_expression",
 128        "named": true
 129      },
 130      {
 131        "type": "false",
 132        "named": true
 133      },
 134      {
 135        "type": "field_expression",
 136        "named": true
 137      },
 138      {
 139        "type": "fold_expression",
 140        "named": true
 141      },
 142      {
 143        "type": "generic_expression",
 144        "named": true
 145      },
 146      {
 147        "type": "gnu_asm_expression",
 148        "named": true
 149      },
 150      {
 151        "type": "identifier",
 152        "named": true
 153      },
 154      {
 155        "type": "lambda_expression",
 156        "named": true
 157      },
 158      {
 159        "type": "new_expression",
 160        "named": true
 161      },
 162      {
 163        "type": "null",
 164        "named": true
 165      },
 166      {
 167        "type": "number_literal",
 168        "named": true
 169      },
 170      {
 171        "type": "offsetof_expression",
 172        "named": true
 173      },
 174      {
 175        "type": "parameter_pack_expansion",
 176        "named": true
 177      },
 178      {
 179        "type": "parenthesized_expression",
 180        "named": true
 181      },
 182      {
 183        "type": "pointer_expression",
 184        "named": true
 185      },
 186      {
 187        "type": "qualified_identifier",
 188        "named": true
 189      },
 190      {
 191        "type": "raw_string_literal",
 192        "named": true
 193      },
 194      {
 195        "type": "requires_clause",
 196        "named": true
 197      },
 198      {
 199        "type": "requires_expression",
 200        "named": true
 201      },
 202      {
 203        "type": "sizeof_expression",
 204        "named": true
 205      },
 206      {
 207        "type": "string_literal",
 208        "named": true
 209      },
 210      {
 211        "type": "subscript_expression",
 212        "named": true
 213      },
 214      {
 215        "type": "template_function",
 216        "named": true
 217      },
 218      {
 219        "type": "this",
 220        "named": true
 221      },
 222      {
 223        "type": "true",
 224        "named": true
 225      },
 226      {
 227        "type": "unary_expression",
 228        "named": true
 229      },
 230      {
 231        "type": "update_expression",
 232        "named": true
 233      },
 234      {
 235        "type": "user_defined_literal",
 236        "named": true
 237      }
 238    ]
 239  },
 240  {
 241    "type": "_field_declarator",
 242    "named": true,
 243    "subtypes": [
 244      {
 245        "type": "array_declarator",
 246        "named": true
 247      },
 248      {
 249        "type": "attributed_declarator",
 250        "named": true
 251      },
 252      {
 253        "type": "field_identifier",
 254        "named": true
 255      },
 256      {
 257        "type": "function_declarator",
 258        "named": true
 259      },
 260      {
 261        "type": "operator_name",
 262        "named": true
 263      },
 264      {
 265        "type": "parenthesized_declarator",
 266        "named": true
 267      },
 268      {
 269        "type": "pointer_declarator",
 270        "named": true
 271      },
 272      {
 273        "type": "reference_declarator",
 274        "named": true
 275      },
 276      {
 277        "type": "template_method",
 278        "named": true
 279      }
 280    ]
 281  },
 282  {
 283    "type": "_statement",
 284    "named": true,
 285    "subtypes": [
 286      {
 287        "type": "attributed_statement",
 288        "named": true
 289      },
 290      {
 291        "type": "break_statement",
 292        "named": true
 293      },
 294      {
 295        "type": "case_statement",
 296        "named": true
 297      },
 298      {
 299        "type": "co_return_statement",
 300        "named": true
 301      },
 302      {
 303        "type": "co_yield_statement",
 304        "named": true
 305      },
 306      {
 307        "type": "compound_statement",
 308        "named": true
 309      },
 310      {
 311        "type": "continue_statement",
 312        "named": true
 313      },
 314      {
 315        "type": "do_statement",
 316        "named": true
 317      },
 318      {
 319        "type": "expression_statement",
 320        "named": true
 321      },
 322      {
 323        "type": "for_range_loop",
 324        "named": true
 325      },
 326      {
 327        "type": "for_statement",
 328        "named": true
 329      },
 330      {
 331        "type": "goto_statement",
 332        "named": true
 333      },
 334      {
 335        "type": "if_statement",
 336        "named": true
 337      },
 338      {
 339        "type": "labeled_statement",
 340        "named": true
 341      },
 342      {
 343        "type": "return_statement",
 344        "named": true
 345      },
 346      {
 347        "type": "seh_leave_statement",
 348        "named": true
 349      },
 350      {
 351        "type": "seh_try_statement",
 352        "named": true
 353      },
 354      {
 355        "type": "switch_statement",
 356        "named": true
 357      },
 358      {
 359        "type": "throw_statement",
 360        "named": true
 361      },
 362      {
 363        "type": "try_statement",
 364        "named": true
 365      },
 366      {
 367        "type": "while_statement",
 368        "named": true
 369      }
 370    ]
 371  },
 372  {
 373    "type": "_type_declarator",
 374    "named": true,
 375    "subtypes": [
 376      {
 377        "type": "array_declarator",
 378        "named": true
 379      },
 380      {
 381        "type": "attributed_declarator",
 382        "named": true
 383      },
 384      {
 385        "type": "function_declarator",
 386        "named": true
 387      },
 388      {
 389        "type": "parenthesized_declarator",
 390        "named": true
 391      },
 392      {
 393        "type": "pointer_declarator",
 394        "named": true
 395      },
 396      {
 397        "type": "primitive_type",
 398        "named": true
 399      },
 400      {
 401        "type": "reference_declarator",
 402        "named": true
 403      },
 404      {
 405        "type": "type_identifier",
 406        "named": true
 407      }
 408    ]
 409  },
 410  {
 411    "type": "_type_specifier",
 412    "named": true,
 413    "subtypes": [
 414      {
 415        "type": "class_specifier",
 416        "named": true
 417      },
 418      {
 419        "type": "decltype",
 420        "named": true
 421      },
 422      {
 423        "type": "dependent_type",
 424        "named": true
 425      },
 426      {
 427        "type": "enum_specifier",
 428        "named": true
 429      },
 430      {
 431        "type": "placeholder_type_specifier",
 432        "named": true
 433      },
 434      {
 435        "type": "primitive_type",
 436        "named": true
 437      },
 438      {
 439        "type": "qualified_identifier",
 440        "named": true
 441      },
 442      {
 443        "type": "sized_type_specifier",
 444        "named": true
 445      },
 446      {
 447        "type": "struct_specifier",
 448        "named": true
 449      },
 450      {
 451        "type": "template_type",
 452        "named": true
 453      },
 454      {
 455        "type": "type_identifier",
 456        "named": true
 457      },
 458      {
 459        "type": "union_specifier",
 460        "named": true
 461      }
 462    ]
 463  },
 464  {
 465    "type": "abstract_array_declarator",
 466    "named": true,
 467    "fields": {
 468      "declarator": {
 469        "multiple": false,
 470        "required": false,
 471        "types": [
 472          {
 473            "type": "_abstract_declarator",
 474            "named": true
 475          }
 476        ]
 477      },
 478      "size": {
 479        "multiple": false,
 480        "required": false,
 481        "types": [
 482          {
 483            "type": "*",
 484            "named": false
 485          },
 486          {
 487            "type": "_expression",
 488            "named": true
 489          }
 490        ]
 491      }
 492    },
 493    "children": {
 494      "multiple": true,
 495      "required": false,
 496      "types": [
 497        {
 498          "type": "type_qualifier",
 499          "named": true
 500        }
 501      ]
 502    }
 503  },
 504  {
 505    "type": "abstract_function_declarator",
 506    "named": true,
 507    "fields": {
 508      "declarator": {
 509        "multiple": false,
 510        "required": false,
 511        "types": [
 512          {
 513            "type": "_abstract_declarator",
 514            "named": true
 515          }
 516        ]
 517      },
 518      "parameters": {
 519        "multiple": false,
 520        "required": true,
 521        "types": [
 522          {
 523            "type": "parameter_list",
 524            "named": true
 525          }
 526        ]
 527      }
 528    },
 529    "children": {
 530      "multiple": true,
 531      "required": false,
 532      "types": [
 533        {
 534          "type": "attribute_declaration",
 535          "named": true
 536        },
 537        {
 538          "type": "attribute_specifier",
 539          "named": true
 540        },
 541        {
 542          "type": "gnu_asm_expression",
 543          "named": true
 544        },
 545        {
 546          "type": "noexcept",
 547          "named": true
 548        },
 549        {
 550          "type": "ref_qualifier",
 551          "named": true
 552        },
 553        {
 554          "type": "requires_clause",
 555          "named": true
 556        },
 557        {
 558          "type": "throw_specifier",
 559          "named": true
 560        },
 561        {
 562          "type": "trailing_return_type",
 563          "named": true
 564        },
 565        {
 566          "type": "type_qualifier",
 567          "named": true
 568        },
 569        {
 570          "type": "virtual_specifier",
 571          "named": true
 572        }
 573      ]
 574    }
 575  },
 576  {
 577    "type": "abstract_parenthesized_declarator",
 578    "named": true,
 579    "fields": {},
 580    "children": {
 581      "multiple": true,
 582      "required": true,
 583      "types": [
 584        {
 585          "type": "_abstract_declarator",
 586          "named": true
 587        },
 588        {
 589          "type": "ms_call_modifier",
 590          "named": true
 591        }
 592      ]
 593    }
 594  },
 595  {
 596    "type": "abstract_pointer_declarator",
 597    "named": true,
 598    "fields": {
 599      "declarator": {
 600        "multiple": false,
 601        "required": false,
 602        "types": [
 603          {
 604            "type": "_abstract_declarator",
 605            "named": true
 606          }
 607        ]
 608      }
 609    },
 610    "children": {
 611      "multiple": true,
 612      "required": false,
 613      "types": [
 614        {
 615          "type": "ms_pointer_modifier",
 616          "named": true
 617        },
 618        {
 619          "type": "type_qualifier",
 620          "named": true
 621        }
 622      ]
 623    }
 624  },
 625  {
 626    "type": "abstract_reference_declarator",
 627    "named": true,
 628    "fields": {},
 629    "children": {
 630      "multiple": false,
 631      "required": false,
 632      "types": [
 633        {
 634          "type": "_abstract_declarator",
 635          "named": true
 636        }
 637      ]
 638    }
 639  },
 640  {
 641    "type": "access_specifier",
 642    "named": true,
 643    "fields": {}
 644  },
 645  {
 646    "type": "alias_declaration",
 647    "named": true,
 648    "fields": {
 649      "name": {
 650        "multiple": false,
 651        "required": true,
 652        "types": [
 653          {
 654            "type": "type_identifier",
 655            "named": true
 656          }
 657        ]
 658      },
 659      "type": {
 660        "multiple": false,
 661        "required": true,
 662        "types": [
 663          {
 664            "type": "type_descriptor",
 665            "named": true
 666          }
 667        ]
 668      }
 669    },
 670    "children": {
 671      "multiple": true,
 672      "required": false,
 673      "types": [
 674        {
 675          "type": "attribute_declaration",
 676          "named": true
 677        }
 678      ]
 679    }
 680  },
 681  {
 682    "type": "alignas_specifier",
 683    "named": true,
 684    "fields": {},
 685    "children": {
 686      "multiple": false,
 687      "required": true,
 688      "types": [
 689        {
 690          "type": "_expression",
 691          "named": true
 692        },
 693        {
 694          "type": "primitive_type",
 695          "named": true
 696        }
 697      ]
 698    }
 699  },
 700  {
 701    "type": "alignof_expression",
 702    "named": true,
 703    "fields": {
 704      "type": {
 705        "multiple": false,
 706        "required": true,
 707        "types": [
 708          {
 709            "type": "type_descriptor",
 710            "named": true
 711          }
 712        ]
 713      }
 714    }
 715  },
 716  {
 717    "type": "argument_list",
 718    "named": true,
 719    "fields": {},
 720    "children": {
 721      "multiple": true,
 722      "required": false,
 723      "types": [
 724        {
 725          "type": "_expression",
 726          "named": true
 727        },
 728        {
 729          "type": "compound_statement",
 730          "named": true
 731        },
 732        {
 733          "type": "initializer_list",
 734          "named": true
 735        },
 736        {
 737          "type": "preproc_defined",
 738          "named": true
 739        }
 740      ]
 741    }
 742  },
 743  {
 744    "type": "array_declarator",
 745    "named": true,
 746    "fields": {
 747      "declarator": {
 748        "multiple": false,
 749        "required": true,
 750        "types": [
 751          {
 752            "type": "_declarator",
 753            "named": true
 754          },
 755          {
 756            "type": "_field_declarator",
 757            "named": true
 758          },
 759          {
 760            "type": "_type_declarator",
 761            "named": true
 762          }
 763        ]
 764      },
 765      "size": {
 766        "multiple": false,
 767        "required": false,
 768        "types": [
 769          {
 770            "type": "*",
 771            "named": false
 772          },
 773          {
 774            "type": "_expression",
 775            "named": true
 776          }
 777        ]
 778      }
 779    },
 780    "children": {
 781      "multiple": true,
 782      "required": false,
 783      "types": [
 784        {
 785          "type": "type_qualifier",
 786          "named": true
 787        }
 788      ]
 789    }
 790  },
 791  {
 792    "type": "assignment_expression",
 793    "named": true,
 794    "fields": {
 795      "left": {
 796        "multiple": false,
 797        "required": true,
 798        "types": [
 799          {
 800            "type": "_expression",
 801            "named": true
 802          }
 803        ]
 804      },
 805      "operator": {
 806        "multiple": false,
 807        "required": true,
 808        "types": [
 809          {
 810            "type": "%=",
 811            "named": false
 812          },
 813          {
 814            "type": "&=",
 815            "named": false
 816          },
 817          {
 818            "type": "*=",
 819            "named": false
 820          },
 821          {
 822            "type": "+=",
 823            "named": false
 824          },
 825          {
 826            "type": "-=",
 827            "named": false
 828          },
 829          {
 830            "type": "/=",
 831            "named": false
 832          },
 833          {
 834            "type": "<<=",
 835            "named": false
 836          },
 837          {
 838            "type": "=",
 839            "named": false
 840          },
 841          {
 842            "type": ">>=",
 843            "named": false
 844          },
 845          {
 846            "type": "^=",
 847            "named": false
 848          },
 849          {
 850            "type": "and_eq",
 851            "named": false
 852          },
 853          {
 854            "type": "or_eq",
 855            "named": false
 856          },
 857          {
 858            "type": "xor_eq",
 859            "named": false
 860          },
 861          {
 862            "type": "|=",
 863            "named": false
 864          }
 865        ]
 866      },
 867      "right": {
 868        "multiple": false,
 869        "required": true,
 870        "types": [
 871          {
 872            "type": "_expression",
 873            "named": true
 874          },
 875          {
 876            "type": "initializer_list",
 877            "named": true
 878          }
 879        ]
 880      }
 881    }
 882  },
 883  {
 884    "type": "attribute",
 885    "named": true,
 886    "fields": {
 887      "name": {
 888        "multiple": false,
 889        "required": true,
 890        "types": [
 891          {
 892            "type": "identifier",
 893            "named": true
 894          }
 895        ]
 896      },
 897      "prefix": {
 898        "multiple": false,
 899        "required": false,
 900        "types": [
 901          {
 902            "type": "identifier",
 903            "named": true
 904          }
 905        ]
 906      }
 907    },
 908    "children": {
 909      "multiple": false,
 910      "required": false,
 911      "types": [
 912        {
 913          "type": "argument_list",
 914          "named": true
 915        }
 916      ]
 917    }
 918  },
 919  {
 920    "type": "attribute_declaration",
 921    "named": true,
 922    "fields": {},
 923    "children": {
 924      "multiple": true,
 925      "required": true,
 926      "types": [
 927        {
 928          "type": "attribute",
 929          "named": true
 930        }
 931      ]
 932    }
 933  },
 934  {
 935    "type": "attribute_specifier",
 936    "named": true,
 937    "fields": {},
 938    "children": {
 939      "multiple": false,
 940      "required": true,
 941      "types": [
 942        {
 943          "type": "argument_list",
 944          "named": true
 945        }
 946      ]
 947    }
 948  },
 949  {
 950    "type": "attributed_declarator",
 951    "named": true,
 952    "fields": {},
 953    "children": {
 954      "multiple": true,
 955      "required": true,
 956      "types": [
 957        {
 958          "type": "_declarator",
 959          "named": true
 960        },
 961        {
 962          "type": "_field_declarator",
 963          "named": true
 964        },
 965        {
 966          "type": "_type_declarator",
 967          "named": true
 968        },
 969        {
 970          "type": "attribute_declaration",
 971          "named": true
 972        }
 973      ]
 974    }
 975  },
 976  {
 977    "type": "attributed_statement",
 978    "named": true,
 979    "fields": {},
 980    "children": {
 981      "multiple": true,
 982      "required": true,
 983      "types": [
 984        {
 985          "type": "_statement",
 986          "named": true
 987        },
 988        {
 989          "type": "attribute_declaration",
 990          "named": true
 991        }
 992      ]
 993    }
 994  },
 995  {
 996    "type": "base_class_clause",
 997    "named": true,
 998    "fields": {},
 999    "children": {
1000      "multiple": true,
1001      "required": true,
1002      "types": [
1003        {
1004          "type": "access_specifier",
1005          "named": true
1006        },
1007        {
1008          "type": "attribute_declaration",
1009          "named": true
1010        },
1011        {
1012          "type": "qualified_identifier",
1013          "named": true
1014        },
1015        {
1016          "type": "template_type",
1017          "named": true
1018        },
1019        {
1020          "type": "type_identifier",
1021          "named": true
1022        },
1023        {
1024          "type": "virtual",
1025          "named": true
1026        }
1027      ]
1028    }
1029  },
1030  {
1031    "type": "binary_expression",
1032    "named": true,
1033    "fields": {
1034      "left": {
1035        "multiple": false,
1036        "required": true,
1037        "types": [
1038          {
1039            "type": "_expression",
1040            "named": true
1041          },
1042          {
1043            "type": "preproc_defined",
1044            "named": true
1045          }
1046        ]
1047      },
1048      "operator": {
1049        "multiple": false,
1050        "required": true,
1051        "types": [
1052          {
1053            "type": "!=",
1054            "named": false
1055          },
1056          {
1057            "type": "%",
1058            "named": false
1059          },
1060          {
1061            "type": "&",
1062            "named": false
1063          },
1064          {
1065            "type": "&&",
1066            "named": false
1067          },
1068          {
1069            "type": "*",
1070            "named": false
1071          },
1072          {
1073            "type": "+",
1074            "named": false
1075          },
1076          {
1077            "type": "-",
1078            "named": false
1079          },
1080          {
1081            "type": "/",
1082            "named": false
1083          },
1084          {
1085            "type": "<",
1086            "named": false
1087          },
1088          {
1089            "type": "<<",
1090            "named": false
1091          },
1092          {
1093            "type": "<=",
1094            "named": false
1095          },
1096          {
1097            "type": "<=>",
1098            "named": false
1099          },
1100          {
1101            "type": "==",
1102            "named": false
1103          },
1104          {
1105            "type": ">",
1106            "named": false
1107          },
1108          {
1109            "type": ">=",
1110            "named": false
1111          },
1112          {
1113            "type": ">>",
1114            "named": false
1115          },
1116          {
1117            "type": "^",
1118            "named": false
1119          },
1120          {
1121            "type": "and",
1122            "named": false
1123          },
1124          {
1125            "type": "bitand",
1126            "named": false
1127          },
1128          {
1129            "type": "bitor",
1130            "named": false
1131          },
1132          {
1133            "type": "not_eq",
1134            "named": false
1135          },
1136          {
1137            "type": "or",
1138            "named": false
1139          },
1140          {
1141            "type": "xor",
1142            "named": false
1143          },
1144          {
1145            "type": "|",
1146            "named": false
1147          },
1148          {
1149            "type": "||",
1150            "named": false
1151          }
1152        ]
1153      },
1154      "right": {
1155        "multiple": false,
1156        "required": true,
1157        "types": [
1158          {
1159            "type": "_expression",
1160            "named": true
1161          },
1162          {
1163            "type": "preproc_defined",
1164            "named": true
1165          }
1166        ]
1167      }
1168    }
1169  },
1170  {
1171    "type": "bitfield_clause",
1172    "named": true,
1173    "fields": {},
1174    "children": {
1175      "multiple": false,
1176      "required": true,
1177      "types": [
1178        {
1179          "type": "_expression",
1180          "named": true
1181        }
1182      ]
1183    }
1184  },
1185  {
1186    "type": "break_statement",
1187    "named": true,
1188    "fields": {}
1189  },
1190  {
1191    "type": "call_expression",
1192    "named": true,
1193    "fields": {
1194      "arguments": {
1195        "multiple": false,
1196        "required": true,
1197        "types": [
1198          {
1199            "type": "argument_list",
1200            "named": true
1201          }
1202        ]
1203      },
1204      "function": {
1205        "multiple": false,
1206        "required": true,
1207        "types": [
1208          {
1209            "type": "_expression",
1210            "named": true
1211          },
1212          {
1213            "type": "primitive_type",
1214            "named": true
1215          }
1216        ]
1217      }
1218    }
1219  },
1220  {
1221    "type": "case_statement",
1222    "named": true,
1223    "fields": {
1224      "value": {
1225        "multiple": false,
1226        "required": false,
1227        "types": [
1228          {
1229            "type": "_expression",
1230            "named": true
1231          }
1232        ]
1233      }
1234    },
1235    "children": {
1236      "multiple": true,
1237      "required": false,
1238      "types": [
1239        {
1240          "type": "attributed_statement",
1241          "named": true
1242        },
1243        {
1244          "type": "break_statement",
1245          "named": true
1246        },
1247        {
1248          "type": "co_return_statement",
1249          "named": true
1250        },
1251        {
1252          "type": "co_yield_statement",
1253          "named": true
1254        },
1255        {
1256          "type": "compound_statement",
1257          "named": true
1258        },
1259        {
1260          "type": "continue_statement",
1261          "named": true
1262        },
1263        {
1264          "type": "declaration",
1265          "named": true
1266        },
1267        {
1268          "type": "do_statement",
1269          "named": true
1270        },
1271        {
1272          "type": "expression_statement",
1273          "named": true
1274        },
1275        {
1276          "type": "for_range_loop",
1277          "named": true
1278        },
1279        {
1280          "type": "for_statement",
1281          "named": true
1282        },
1283        {
1284          "type": "goto_statement",
1285          "named": true
1286        },
1287        {
1288          "type": "if_statement",
1289          "named": true
1290        },
1291        {
1292          "type": "labeled_statement",
1293          "named": true
1294        },
1295        {
1296          "type": "return_statement",
1297          "named": true
1298        },
1299        {
1300          "type": "seh_leave_statement",
1301          "named": true
1302        },
1303        {
1304          "type": "seh_try_statement",
1305          "named": true
1306        },
1307        {
1308          "type": "switch_statement",
1309          "named": true
1310        },
1311        {
1312          "type": "throw_statement",
1313          "named": true
1314        },
1315        {
1316          "type": "try_statement",
1317          "named": true
1318        },
1319        {
1320          "type": "type_definition",
1321          "named": true
1322        },
1323        {
1324          "type": "while_statement",
1325          "named": true
1326        }
1327      ]
1328    }
1329  },
1330  {
1331    "type": "cast_expression",
1332    "named": true,
1333    "fields": {
1334      "type": {
1335        "multiple": false,
1336        "required": true,
1337        "types": [
1338          {
1339            "type": "type_descriptor",
1340            "named": true
1341          }
1342        ]
1343      },
1344      "value": {
1345        "multiple": false,
1346        "required": true,
1347        "types": [
1348          {
1349            "type": "_expression",
1350            "named": true
1351          }
1352        ]
1353      }
1354    }
1355  },
1356  {
1357    "type": "catch_clause",
1358    "named": true,
1359    "fields": {
1360      "body": {
1361        "multiple": false,
1362        "required": true,
1363        "types": [
1364          {
1365            "type": "compound_statement",
1366            "named": true
1367          }
1368        ]
1369      },
1370      "parameters": {
1371        "multiple": false,
1372        "required": true,
1373        "types": [
1374          {
1375            "type": "parameter_list",
1376            "named": true
1377          }
1378        ]
1379      }
1380    }
1381  },
1382  {
1383    "type": "char_literal",
1384    "named": true,
1385    "fields": {},
1386    "children": {
1387      "multiple": true,
1388      "required": true,
1389      "types": [
1390        {
1391          "type": "character",
1392          "named": true
1393        },
1394        {
1395          "type": "escape_sequence",
1396          "named": true
1397        }
1398      ]
1399    }
1400  },
1401  {
1402    "type": "class_specifier",
1403    "named": true,
1404    "fields": {
1405      "body": {
1406        "multiple": false,
1407        "required": false,
1408        "types": [
1409          {
1410            "type": "field_declaration_list",
1411            "named": true
1412          }
1413        ]
1414      },
1415      "name": {
1416        "multiple": false,
1417        "required": false,
1418        "types": [
1419          {
1420            "type": "qualified_identifier",
1421            "named": true
1422          },
1423          {
1424            "type": "template_type",
1425            "named": true
1426          },
1427          {
1428            "type": "type_identifier",
1429            "named": true
1430          }
1431        ]
1432      }
1433    },
1434    "children": {
1435      "multiple": true,
1436      "required": false,
1437      "types": [
1438        {
1439          "type": "alignas_specifier",
1440          "named": true
1441        },
1442        {
1443          "type": "attribute_declaration",
1444          "named": true
1445        },
1446        {
1447          "type": "attribute_specifier",
1448          "named": true
1449        },
1450        {
1451          "type": "base_class_clause",
1452          "named": true
1453        },
1454        {
1455          "type": "ms_declspec_modifier",
1456          "named": true
1457        },
1458        {
1459          "type": "virtual_specifier",
1460          "named": true
1461        }
1462      ]
1463    }
1464  },
1465  {
1466    "type": "co_await_expression",
1467    "named": true,
1468    "fields": {
1469      "argument": {
1470        "multiple": false,
1471        "required": true,
1472        "types": [
1473          {
1474            "type": "_expression",
1475            "named": true
1476          }
1477        ]
1478      },
1479      "operator": {
1480        "multiple": false,
1481        "required": true,
1482        "types": [
1483          {
1484            "type": "co_await",
1485            "named": false
1486          }
1487        ]
1488      }
1489    }
1490  },
1491  {
1492    "type": "co_return_statement",
1493    "named": true,
1494    "fields": {},
1495    "children": {
1496      "multiple": false,
1497      "required": false,
1498      "types": [
1499        {
1500          "type": "_expression",
1501          "named": true
1502        }
1503      ]
1504    }
1505  },
1506  {
1507    "type": "co_yield_statement",
1508    "named": true,
1509    "fields": {},
1510    "children": {
1511      "multiple": false,
1512      "required": true,
1513      "types": [
1514        {
1515          "type": "_expression",
1516          "named": true
1517        }
1518      ]
1519    }
1520  },
1521  {
1522    "type": "comma_expression",
1523    "named": true,
1524    "fields": {
1525      "left": {
1526        "multiple": false,
1527        "required": true,
1528        "types": [
1529          {
1530            "type": "_expression",
1531            "named": true
1532          }
1533        ]
1534      },
1535      "right": {
1536        "multiple": false,
1537        "required": true,
1538        "types": [
1539          {
1540            "type": "_expression",
1541            "named": true
1542          },
1543          {
1544            "type": "comma_expression",
1545            "named": true
1546          }
1547        ]
1548      }
1549    }
1550  },
1551  {
1552    "type": "compound_literal_expression",
1553    "named": true,
1554    "fields": {
1555      "type": {
1556        "multiple": false,
1557        "required": true,
1558        "types": [
1559          {
1560            "type": "primitive_type",
1561            "named": true
1562          },
1563          {
1564            "type": "qualified_identifier",
1565            "named": true
1566          },
1567          {
1568            "type": "template_type",
1569            "named": true
1570          },
1571          {
1572            "type": "type_descriptor",
1573            "named": true
1574          },
1575          {
1576            "type": "type_identifier",
1577            "named": true
1578          }
1579        ]
1580      },
1581      "value": {
1582        "multiple": false,
1583        "required": true,
1584        "types": [
1585          {
1586            "type": "initializer_list",
1587            "named": true
1588          }
1589        ]
1590      }
1591    }
1592  },
1593  {
1594    "type": "compound_requirement",
1595    "named": true,
1596    "fields": {},
1597    "children": {
1598      "multiple": true,
1599      "required": true,
1600      "types": [
1601        {
1602          "type": "_expression",
1603          "named": true
1604        },
1605        {
1606          "type": "trailing_return_type",
1607          "named": true
1608        }
1609      ]
1610    }
1611  },
1612  {
1613    "type": "compound_statement",
1614    "named": true,
1615    "fields": {},
1616    "children": {
1617      "multiple": true,
1618      "required": false,
1619      "types": [
1620        {
1621          "type": "_statement",
1622          "named": true
1623        },
1624        {
1625          "type": "_type_specifier",
1626          "named": true
1627        },
1628        {
1629          "type": "alias_declaration",
1630          "named": true
1631        },
1632        {
1633          "type": "concept_definition",
1634          "named": true
1635        },
1636        {
1637          "type": "declaration",
1638          "named": true
1639        },
1640        {
1641          "type": "function_definition",
1642          "named": true
1643        },
1644        {
1645          "type": "linkage_specification",
1646          "named": true
1647        },
1648        {
1649          "type": "namespace_alias_definition",
1650          "named": true
1651        },
1652        {
1653          "type": "namespace_definition",
1654          "named": true
1655        },
1656        {
1657          "type": "preproc_call",
1658          "named": true
1659        },
1660        {
1661          "type": "preproc_def",
1662          "named": true
1663        },
1664        {
1665          "type": "preproc_function_def",
1666          "named": true
1667        },
1668        {
1669          "type": "preproc_if",
1670          "named": true
1671        },
1672        {
1673          "type": "preproc_ifdef",
1674          "named": true
1675        },
1676        {
1677          "type": "preproc_include",
1678          "named": true
1679        },
1680        {
1681          "type": "static_assert_declaration",
1682          "named": true
1683        },
1684        {
1685          "type": "template_declaration",
1686          "named": true
1687        },
1688        {
1689          "type": "template_instantiation",
1690          "named": true
1691        },
1692        {
1693          "type": "type_definition",
1694          "named": true
1695        },
1696        {
1697          "type": "using_declaration",
1698          "named": true
1699        }
1700      ]
1701    }
1702  },
1703  {
1704    "type": "concatenated_string",
1705    "named": true,
1706    "fields": {},
1707    "children": {
1708      "multiple": true,
1709      "required": true,
1710      "types": [
1711        {
1712          "type": "identifier",
1713          "named": true
1714        },
1715        {
1716          "type": "raw_string_literal",
1717          "named": true
1718        },
1719        {
1720          "type": "string_literal",
1721          "named": true
1722        }
1723      ]
1724    }
1725  },
1726  {
1727    "type": "concept_definition",
1728    "named": true,
1729    "fields": {
1730      "name": {
1731        "multiple": false,
1732        "required": true,
1733        "types": [
1734          {
1735            "type": "identifier",
1736            "named": true
1737          }
1738        ]
1739      }
1740    },
1741    "children": {
1742      "multiple": false,
1743      "required": true,
1744      "types": [
1745        {
1746          "type": "_expression",
1747          "named": true
1748        }
1749      ]
1750    }
1751  },
1752  {
1753    "type": "condition_clause",
1754    "named": true,
1755    "fields": {
1756      "initializer": {
1757        "multiple": false,
1758        "required": false,
1759        "types": [
1760          {
1761            "type": "init_statement",
1762            "named": true
1763          }
1764        ]
1765      },
1766      "value": {
1767        "multiple": false,
1768        "required": true,
1769        "types": [
1770          {
1771            "type": "_expression",
1772            "named": true
1773          },
1774          {
1775            "type": "comma_expression",
1776            "named": true
1777          },
1778          {
1779            "type": "declaration",
1780            "named": true
1781          }
1782        ]
1783      }
1784    }
1785  },
1786  {
1787    "type": "conditional_expression",
1788    "named": true,
1789    "fields": {
1790      "alternative": {
1791        "multiple": false,
1792        "required": true,
1793        "types": [
1794          {
1795            "type": "_expression",
1796            "named": true
1797          }
1798        ]
1799      },
1800      "condition": {
1801        "multiple": false,
1802        "required": true,
1803        "types": [
1804          {
1805            "type": "_expression",
1806            "named": true
1807          }
1808        ]
1809      },
1810      "consequence": {
1811        "multiple": false,
1812        "required": false,
1813        "types": [
1814          {
1815            "type": "_expression",
1816            "named": true
1817          },
1818          {
1819            "type": "comma_expression",
1820            "named": true
1821          }
1822        ]
1823      }
1824    }
1825  },
1826  {
1827    "type": "constraint_conjunction",
1828    "named": true,
1829    "fields": {
1830      "left": {
1831        "multiple": true,
1832        "required": true,
1833        "types": [
1834          {
1835            "type": "(",
1836            "named": false
1837          },
1838          {
1839            "type": ")",
1840            "named": false
1841          },
1842          {
1843            "type": "_expression",
1844            "named": true
1845          },
1846          {
1847            "type": "constraint_conjunction",
1848            "named": true
1849          },
1850          {
1851            "type": "constraint_disjunction",
1852            "named": true
1853          },
1854          {
1855            "type": "template_type",
1856            "named": true
1857          },
1858          {
1859            "type": "type_identifier",
1860            "named": true
1861          }
1862        ]
1863      },
1864      "operator": {
1865        "multiple": false,
1866        "required": true,
1867        "types": [
1868          {
1869            "type": "&&",
1870            "named": false
1871          },
1872          {
1873            "type": "and",
1874            "named": false
1875          }
1876        ]
1877      },
1878      "right": {
1879        "multiple": true,
1880        "required": true,
1881        "types": [
1882          {
1883            "type": "(",
1884            "named": false
1885          },
1886          {
1887            "type": ")",
1888            "named": false
1889          },
1890          {
1891            "type": "_expression",
1892            "named": true
1893          },
1894          {
1895            "type": "constraint_conjunction",
1896            "named": true
1897          },
1898          {
1899            "type": "constraint_disjunction",
1900            "named": true
1901          },
1902          {
1903            "type": "template_type",
1904            "named": true
1905          },
1906          {
1907            "type": "type_identifier",
1908            "named": true
1909          }
1910        ]
1911      }
1912    }
1913  },
1914  {
1915    "type": "constraint_disjunction",
1916    "named": true,
1917    "fields": {
1918      "left": {
1919        "multiple": true,
1920        "required": true,
1921        "types": [
1922          {
1923            "type": "(",
1924            "named": false
1925          },
1926          {
1927            "type": ")",
1928            "named": false
1929          },
1930          {
1931            "type": "_expression",
1932            "named": true
1933          },
1934          {
1935            "type": "constraint_conjunction",
1936            "named": true
1937          },
1938          {
1939            "type": "constraint_disjunction",
1940            "named": true
1941          },
1942          {
1943            "type": "template_type",
1944            "named": true
1945          },
1946          {
1947            "type": "type_identifier",
1948            "named": true
1949          }
1950        ]
1951      },
1952      "operator": {
1953        "multiple": false,
1954        "required": true,
1955        "types": [
1956          {
1957            "type": "or",
1958            "named": false
1959          },
1960          {
1961            "type": "||",
1962            "named": false
1963          }
1964        ]
1965      },
1966      "right": {
1967        "multiple": true,
1968        "required": true,
1969        "types": [
1970          {
1971            "type": "(",
1972            "named": false
1973          },
1974          {
1975            "type": ")",
1976            "named": false
1977          },
1978          {
1979            "type": "_expression",
1980            "named": true
1981          },
1982          {
1983            "type": "constraint_conjunction",
1984            "named": true
1985          },
1986          {
1987            "type": "constraint_disjunction",
1988            "named": true
1989          },
1990          {
1991            "type": "template_type",
1992            "named": true
1993          },
1994          {
1995            "type": "type_identifier",
1996            "named": true
1997          }
1998        ]
1999      }
2000    }
2001  },
2002  {
2003    "type": "continue_statement",
2004    "named": true,
2005    "fields": {}
2006  },
2007  {
2008    "type": "declaration",
2009    "named": true,
2010    "fields": {
2011      "declarator": {
2012        "multiple": true,
2013        "required": true,
2014        "types": [
2015          {
2016            "type": "_declarator",
2017            "named": true
2018          },
2019          {
2020            "type": "gnu_asm_expression",
2021            "named": true
2022          },
2023          {
2024            "type": "init_declarator",
2025            "named": true
2026          },
2027          {
2028            "type": "operator_cast",
2029            "named": true
2030          }
2031        ]
2032      },
2033      "default_value": {
2034        "multiple": false,
2035        "required": false,
2036        "types": [
2037          {
2038            "type": "_expression",
2039            "named": true
2040          }
2041        ]
2042      },
2043      "type": {
2044        "multiple": false,
2045        "required": false,
2046        "types": [
2047          {
2048            "type": "_type_specifier",
2049            "named": true
2050          }
2051        ]
2052      },
2053      "value": {
2054        "multiple": false,
2055        "required": false,
2056        "types": [
2057          {
2058            "type": "_expression",
2059            "named": true
2060          },
2061          {
2062            "type": "initializer_list",
2063            "named": true
2064          }
2065        ]
2066      }
2067    },
2068    "children": {
2069      "multiple": true,
2070      "required": false,
2071      "types": [
2072        {
2073          "type": "alignas_specifier",
2074          "named": true
2075        },
2076        {
2077          "type": "attribute_declaration",
2078          "named": true
2079        },
2080        {
2081          "type": "attribute_specifier",
2082          "named": true
2083        },
2084        {
2085          "type": "explicit_function_specifier",
2086          "named": true
2087        },
2088        {
2089          "type": "ms_declspec_modifier",
2090          "named": true
2091        },
2092        {
2093          "type": "storage_class_specifier",
2094          "named": true
2095        },
2096        {
2097          "type": "type_qualifier",
2098          "named": true
2099        },
2100        {
2101          "type": "virtual",
2102          "named": true
2103        }
2104      ]
2105    }
2106  },
2107  {
2108    "type": "declaration_list",
2109    "named": true,
2110    "fields": {},
2111    "children": {
2112      "multiple": true,
2113      "required": false,
2114      "types": [
2115        {
2116          "type": "_statement",
2117          "named": true
2118        },
2119        {
2120          "type": "_type_specifier",
2121          "named": true
2122        },
2123        {
2124          "type": "alias_declaration",
2125          "named": true
2126        },
2127        {
2128          "type": "concept_definition",
2129          "named": true
2130        },
2131        {
2132          "type": "declaration",
2133          "named": true
2134        },
2135        {
2136          "type": "function_definition",
2137          "named": true
2138        },
2139        {
2140          "type": "linkage_specification",
2141          "named": true
2142        },
2143        {
2144          "type": "namespace_alias_definition",
2145          "named": true
2146        },
2147        {
2148          "type": "namespace_definition",
2149          "named": true
2150        },
2151        {
2152          "type": "preproc_call",
2153          "named": true
2154        },
2155        {
2156          "type": "preproc_def",
2157          "named": true
2158        },
2159        {
2160          "type": "preproc_function_def",
2161          "named": true
2162        },
2163        {
2164          "type": "preproc_if",
2165          "named": true
2166        },
2167        {
2168          "type": "preproc_ifdef",
2169          "named": true
2170        },
2171        {
2172          "type": "preproc_include",
2173          "named": true
2174        },
2175        {
2176          "type": "static_assert_declaration",
2177          "named": true
2178        },
2179        {
2180          "type": "template_declaration",
2181          "named": true
2182        },
2183        {
2184          "type": "template_instantiation",
2185          "named": true
2186        },
2187        {
2188          "type": "type_definition",
2189          "named": true
2190        },
2191        {
2192          "type": "using_declaration",
2193          "named": true
2194        }
2195      ]
2196    }
2197  },
2198  {
2199    "type": "decltype",
2200    "named": true,
2201    "fields": {},
2202    "children": {
2203      "multiple": false,
2204      "required": true,
2205      "types": [
2206        {
2207          "type": "_expression",
2208          "named": true
2209        },
2210        {
2211          "type": "auto",
2212          "named": true
2213        }
2214      ]
2215    }
2216  },
2217  {
2218    "type": "default_method_clause",
2219    "named": true,
2220    "fields": {}
2221  },
2222  {
2223    "type": "delete_expression",
2224    "named": true,
2225    "fields": {},
2226    "children": {
2227      "multiple": false,
2228      "required": true,
2229      "types": [
2230        {
2231          "type": "_expression",
2232          "named": true
2233        }
2234      ]
2235    }
2236  },
2237  {
2238    "type": "delete_method_clause",
2239    "named": true,
2240    "fields": {}
2241  },
2242  {
2243    "type": "dependent_name",
2244    "named": true,
2245    "fields": {},
2246    "children": {
2247      "multiple": false,
2248      "required": true,
2249      "types": [
2250        {
2251          "type": "template_function",
2252          "named": true
2253        },
2254        {
2255          "type": "template_method",
2256          "named": true
2257        },
2258        {
2259          "type": "template_type",
2260          "named": true
2261        }
2262      ]
2263    }
2264  },
2265  {
2266    "type": "dependent_type",
2267    "named": true,
2268    "fields": {},
2269    "children": {
2270      "multiple": false,
2271      "required": true,
2272      "types": [
2273        {
2274          "type": "_type_specifier",
2275          "named": true
2276        }
2277      ]
2278    }
2279  },
2280  {
2281    "type": "destructor_name",
2282    "named": true,
2283    "fields": {},
2284    "children": {
2285      "multiple": false,
2286      "required": true,
2287      "types": [
2288        {
2289          "type": "identifier",
2290          "named": true
2291        }
2292      ]
2293    }
2294  },
2295  {
2296    "type": "do_statement",
2297    "named": true,
2298    "fields": {
2299      "body": {
2300        "multiple": false,
2301        "required": true,
2302        "types": [
2303          {
2304            "type": "_statement",
2305            "named": true
2306          }
2307        ]
2308      },
2309      "condition": {
2310        "multiple": false,
2311        "required": true,
2312        "types": [
2313          {
2314            "type": "parenthesized_expression",
2315            "named": true
2316          }
2317        ]
2318      }
2319    }
2320  },
2321  {
2322    "type": "else_clause",
2323    "named": true,
2324    "fields": {},
2325    "children": {
2326      "multiple": false,
2327      "required": true,
2328      "types": [
2329        {
2330          "type": "_statement",
2331          "named": true
2332        }
2333      ]
2334    }
2335  },
2336  {
2337    "type": "enum_specifier",
2338    "named": true,
2339    "fields": {
2340      "base": {
2341        "multiple": false,
2342        "required": false,
2343        "types": [
2344          {
2345            "type": "primitive_type",
2346            "named": true
2347          },
2348          {
2349            "type": "qualified_identifier",
2350            "named": true
2351          },
2352          {
2353            "type": "sized_type_specifier",
2354            "named": true
2355          },
2356          {
2357            "type": "type_identifier",
2358            "named": true
2359          }
2360        ]
2361      },
2362      "body": {
2363        "multiple": false,
2364        "required": false,
2365        "types": [
2366          {
2367            "type": "enumerator_list",
2368            "named": true
2369          }
2370        ]
2371      },
2372      "name": {
2373        "multiple": false,
2374        "required": false,
2375        "types": [
2376          {
2377            "type": "qualified_identifier",
2378            "named": true
2379          },
2380          {
2381            "type": "template_type",
2382            "named": true
2383          },
2384          {
2385            "type": "type_identifier",
2386            "named": true
2387          }
2388        ]
2389      }
2390    },
2391    "children": {
2392      "multiple": false,
2393      "required": false,
2394      "types": [
2395        {
2396          "type": "attribute_specifier",
2397          "named": true
2398        }
2399      ]
2400    }
2401  },
2402  {
2403    "type": "enumerator",
2404    "named": true,
2405    "fields": {
2406      "name": {
2407        "multiple": false,
2408        "required": true,
2409        "types": [
2410          {
2411            "type": "identifier",
2412            "named": true
2413          }
2414        ]
2415      },
2416      "value": {
2417        "multiple": false,
2418        "required": false,
2419        "types": [
2420          {
2421            "type": "_expression",
2422            "named": true
2423          }
2424        ]
2425      }
2426    }
2427  },
2428  {
2429    "type": "enumerator_list",
2430    "named": true,
2431    "fields": {},
2432    "children": {
2433      "multiple": true,
2434      "required": false,
2435      "types": [
2436        {
2437          "type": "enumerator",
2438          "named": true
2439        },
2440        {
2441          "type": "preproc_call",
2442          "named": true
2443        },
2444        {
2445          "type": "preproc_if",
2446          "named": true
2447        },
2448        {
2449          "type": "preproc_ifdef",
2450          "named": true
2451        }
2452      ]
2453    }
2454  },
2455  {
2456    "type": "explicit_function_specifier",
2457    "named": true,
2458    "fields": {},
2459    "children": {
2460      "multiple": false,
2461      "required": false,
2462      "types": [
2463        {
2464          "type": "_expression",
2465          "named": true
2466        }
2467      ]
2468    }
2469  },
2470  {
2471    "type": "expression_statement",
2472    "named": true,
2473    "fields": {},
2474    "children": {
2475      "multiple": false,
2476      "required": false,
2477      "types": [
2478        {
2479          "type": "_expression",
2480          "named": true
2481        },
2482        {
2483          "type": "comma_expression",
2484          "named": true
2485        }
2486      ]
2487    }
2488  },
2489  {
2490    "type": "field_declaration",
2491    "named": true,
2492    "fields": {
2493      "declarator": {
2494        "multiple": true,
2495        "required": false,
2496        "types": [
2497          {
2498            "type": "_field_declarator",
2499            "named": true
2500          }
2501        ]
2502      },
2503      "default_value": {
2504        "multiple": true,
2505        "required": false,
2506        "types": [
2507          {
2508            "type": "_expression",
2509            "named": true
2510          },
2511          {
2512            "type": "initializer_list",
2513            "named": true
2514          }
2515        ]
2516      },
2517      "type": {
2518        "multiple": false,
2519        "required": true,
2520        "types": [
2521          {
2522            "type": "_type_specifier",
2523            "named": true
2524          }
2525        ]
2526      }
2527    },
2528    "children": {
2529      "multiple": true,
2530      "required": false,
2531      "types": [
2532        {
2533          "type": "alignas_specifier",
2534          "named": true
2535        },
2536        {
2537          "type": "attribute_declaration",
2538          "named": true
2539        },
2540        {
2541          "type": "attribute_specifier",
2542          "named": true
2543        },
2544        {
2545          "type": "bitfield_clause",
2546          "named": true
2547        },
2548        {
2549          "type": "ms_declspec_modifier",
2550          "named": true
2551        },
2552        {
2553          "type": "storage_class_specifier",
2554          "named": true
2555        },
2556        {
2557          "type": "type_qualifier",
2558          "named": true
2559        },
2560        {
2561          "type": "virtual",
2562          "named": true
2563        }
2564      ]
2565    }
2566  },
2567  {
2568    "type": "field_declaration_list",
2569    "named": true,
2570    "fields": {},
2571    "children": {
2572      "multiple": true,
2573      "required": false,
2574      "types": [
2575        {
2576          "type": "access_specifier",
2577          "named": true
2578        },
2579        {
2580          "type": "alias_declaration",
2581          "named": true
2582        },
2583        {
2584          "type": "declaration",
2585          "named": true
2586        },
2587        {
2588          "type": "field_declaration",
2589          "named": true
2590        },
2591        {
2592          "type": "friend_declaration",
2593          "named": true
2594        },
2595        {
2596          "type": "function_definition",
2597          "named": true
2598        },
2599        {
2600          "type": "preproc_call",
2601          "named": true
2602        },
2603        {
2604          "type": "preproc_def",
2605          "named": true
2606        },
2607        {
2608          "type": "preproc_function_def",
2609          "named": true
2610        },
2611        {
2612          "type": "preproc_if",
2613          "named": true
2614        },
2615        {
2616          "type": "preproc_ifdef",
2617          "named": true
2618        },
2619        {
2620          "type": "static_assert_declaration",
2621          "named": true
2622        },
2623        {
2624          "type": "template_declaration",
2625          "named": true
2626        },
2627        {
2628          "type": "type_definition",
2629          "named": true
2630        },
2631        {
2632          "type": "using_declaration",
2633          "named": true
2634        }
2635      ]
2636    }
2637  },
2638  {
2639    "type": "field_designator",
2640    "named": true,
2641    "fields": {},
2642    "children": {
2643      "multiple": false,
2644      "required": true,
2645      "types": [
2646        {
2647          "type": "field_identifier",
2648          "named": true
2649        }
2650      ]
2651    }
2652  },
2653  {
2654    "type": "field_expression",
2655    "named": true,
2656    "fields": {
2657      "argument": {
2658        "multiple": false,
2659        "required": true,
2660        "types": [
2661          {
2662            "type": "_expression",
2663            "named": true
2664          }
2665        ]
2666      },
2667      "field": {
2668        "multiple": false,
2669        "required": true,
2670        "types": [
2671          {
2672            "type": "dependent_name",
2673            "named": true
2674          },
2675          {
2676            "type": "destructor_name",
2677            "named": true
2678          },
2679          {
2680            "type": "field_identifier",
2681            "named": true
2682          },
2683          {
2684            "type": "qualified_identifier",
2685            "named": true
2686          },
2687          {
2688            "type": "template_method",
2689            "named": true
2690          }
2691        ]
2692      },
2693      "operator": {
2694        "multiple": false,
2695        "required": true,
2696        "types": [
2697          {
2698            "type": "->",
2699            "named": false
2700          },
2701          {
2702            "type": ".",
2703            "named": false
2704          },
2705          {
2706            "type": ".*",
2707            "named": false
2708          }
2709        ]
2710      }
2711    }
2712  },
2713  {
2714    "type": "field_initializer",
2715    "named": true,
2716    "fields": {},
2717    "children": {
2718      "multiple": true,
2719      "required": true,
2720      "types": [
2721        {
2722          "type": "argument_list",
2723          "named": true
2724        },
2725        {
2726          "type": "field_identifier",
2727          "named": true
2728        },
2729        {
2730          "type": "initializer_list",
2731          "named": true
2732        },
2733        {
2734          "type": "qualified_identifier",
2735          "named": true
2736        },
2737        {
2738          "type": "template_method",
2739          "named": true
2740        }
2741      ]
2742    }
2743  },
2744  {
2745    "type": "field_initializer_list",
2746    "named": true,
2747    "fields": {},
2748    "children": {
2749      "multiple": true,
2750      "required": true,
2751      "types": [
2752        {
2753          "type": "field_initializer",
2754          "named": true
2755        }
2756      ]
2757    }
2758  },
2759  {
2760    "type": "fold_expression",
2761    "named": true,
2762    "fields": {
2763      "left": {
2764        "multiple": false,
2765        "required": true,
2766        "types": [
2767          {
2768            "type": "...",
2769            "named": false
2770          },
2771          {
2772            "type": "_expression",
2773            "named": true
2774          }
2775        ]
2776      },
2777      "operator": {
2778        "multiple": false,
2779        "required": true,
2780        "types": [
2781          {
2782            "type": "!=",
2783            "named": false
2784          },
2785          {
2786            "type": "%",
2787            "named": false
2788          },
2789          {
2790            "type": "%=",
2791            "named": false
2792          },
2793          {
2794            "type": "&",
2795            "named": false
2796          },
2797          {
2798            "type": "&&",
2799            "named": false
2800          },
2801          {
2802            "type": "&=",
2803            "named": false
2804          },
2805          {
2806            "type": "*",
2807            "named": false
2808          },
2809          {
2810            "type": "*=",
2811            "named": false
2812          },
2813          {
2814            "type": "+",
2815            "named": false
2816          },
2817          {
2818            "type": "+=",
2819            "named": false
2820          },
2821          {
2822            "type": ",",
2823            "named": false
2824          },
2825          {
2826            "type": "-",
2827            "named": false
2828          },
2829          {
2830            "type": "-=",
2831            "named": false
2832          },
2833          {
2834            "type": "->*",
2835            "named": false
2836          },
2837          {
2838            "type": ".*",
2839            "named": false
2840          },
2841          {
2842            "type": "/",
2843            "named": false
2844          },
2845          {
2846            "type": "/=",
2847            "named": false
2848          },
2849          {
2850            "type": "<",
2851            "named": false
2852          },
2853          {
2854            "type": "<<",
2855            "named": false
2856          },
2857          {
2858            "type": "<<=",
2859            "named": false
2860          },
2861          {
2862            "type": "<=",
2863            "named": false
2864          },
2865          {
2866            "type": "=",
2867            "named": false
2868          },
2869          {
2870            "type": "==",
2871            "named": false
2872          },
2873          {
2874            "type": ">",
2875            "named": false
2876          },
2877          {
2878            "type": ">=",
2879            "named": false
2880          },
2881          {
2882            "type": ">>",
2883            "named": false
2884          },
2885          {
2886            "type": ">>=",
2887            "named": false
2888          },
2889          {
2890            "type": "^",
2891            "named": false
2892          },
2893          {
2894            "type": "^=",
2895            "named": false
2896          },
2897          {
2898            "type": "and",
2899            "named": false
2900          },
2901          {
2902            "type": "bitand",
2903            "named": false
2904          },
2905          {
2906            "type": "bitor",
2907            "named": false
2908          },
2909          {
2910            "type": "not_eq",
2911            "named": false
2912          },
2913          {
2914            "type": "or",
2915            "named": false
2916          },
2917          {
2918            "type": "xor",
2919            "named": false
2920          },
2921          {
2922            "type": "|",
2923            "named": false
2924          },
2925          {
2926            "type": "|=",
2927            "named": false
2928          },
2929          {
2930            "type": "||",
2931            "named": false
2932          }
2933        ]
2934      },
2935      "right": {
2936        "multiple": false,
2937        "required": true,
2938        "types": [
2939          {
2940            "type": "...",
2941            "named": false
2942          },
2943          {
2944            "type": "_expression",
2945            "named": true
2946          }
2947        ]
2948      }
2949    }
2950  },
2951  {
2952    "type": "for_range_loop",
2953    "named": true,
2954    "fields": {
2955      "body": {
2956        "multiple": false,
2957        "required": true,
2958        "types": [
2959          {
2960            "type": "_statement",
2961            "named": true
2962          }
2963        ]
2964      },
2965      "declarator": {
2966        "multiple": false,
2967        "required": true,
2968        "types": [
2969          {
2970            "type": "_declarator",
2971            "named": true
2972          }
2973        ]
2974      },
2975      "initializer": {
2976        "multiple": false,
2977        "required": false,
2978        "types": [
2979          {
2980            "type": "init_statement",
2981            "named": true
2982          }
2983        ]
2984      },
2985      "right": {
2986        "multiple": false,
2987        "required": true,
2988        "types": [
2989          {
2990            "type": "_expression",
2991            "named": true
2992          },
2993          {
2994            "type": "initializer_list",
2995            "named": true
2996          }
2997        ]
2998      },
2999      "type": {
3000        "multiple": false,
3001        "required": true,
3002        "types": [
3003          {
3004            "type": "_type_specifier",
3005            "named": true
3006          }
3007        ]
3008      }
3009    },
3010    "children": {
3011      "multiple": true,
3012      "required": false,
3013      "types": [
3014        {
3015          "type": "alignas_specifier",
3016          "named": true
3017        },
3018        {
3019          "type": "attribute_declaration",
3020          "named": true
3021        },
3022        {
3023          "type": "attribute_specifier",
3024          "named": true
3025        },
3026        {
3027          "type": "ms_declspec_modifier",
3028          "named": true
3029        },
3030        {
3031          "type": "storage_class_specifier",
3032          "named": true
3033        },
3034        {
3035          "type": "type_qualifier",
3036          "named": true
3037        },
3038        {
3039          "type": "virtual",
3040          "named": true
3041        }
3042      ]
3043    }
3044  },
3045  {
3046    "type": "for_statement",
3047    "named": true,
3048    "fields": {
3049      "body": {
3050        "multiple": false,
3051        "required": true,
3052        "types": [
3053          {
3054            "type": "_statement",
3055            "named": true
3056          }
3057        ]
3058      },
3059      "condition": {
3060        "multiple": false,
3061        "required": false,
3062        "types": [
3063          {
3064            "type": "_expression",
3065            "named": true
3066          },
3067          {
3068            "type": "comma_expression",
3069            "named": true
3070          }
3071        ]
3072      },
3073      "initializer": {
3074        "multiple": false,
3075        "required": false,
3076        "types": [
3077          {
3078            "type": "_expression",
3079            "named": true
3080          },
3081          {
3082            "type": "comma_expression",
3083            "named": true
3084          },
3085          {
3086            "type": "declaration",
3087            "named": true
3088          }
3089        ]
3090      },
3091      "update": {
3092        "multiple": false,
3093        "required": false,
3094        "types": [
3095          {
3096            "type": "_expression",
3097            "named": true
3098          },
3099          {
3100            "type": "comma_expression",
3101            "named": true
3102          }
3103        ]
3104      }
3105    }
3106  },
3107  {
3108    "type": "friend_declaration",
3109    "named": true,
3110    "fields": {},
3111    "children": {
3112      "multiple": false,
3113      "required": true,
3114      "types": [
3115        {
3116          "type": "declaration",
3117          "named": true
3118        },
3119        {
3120          "type": "function_definition",
3121          "named": true
3122        },
3123        {
3124          "type": "qualified_identifier",
3125          "named": true
3126        },
3127        {
3128          "type": "template_type",
3129          "named": true
3130        },
3131        {
3132          "type": "type_identifier",
3133          "named": true
3134        }
3135      ]
3136    }
3137  },
3138  {
3139    "type": "function_declarator",
3140    "named": true,
3141    "fields": {
3142      "declarator": {
3143        "multiple": false,
3144        "required": true,
3145        "types": [
3146          {
3147            "type": "_declarator",
3148            "named": true
3149          },
3150          {
3151            "type": "_field_declarator",
3152            "named": true
3153          },
3154          {
3155            "type": "_type_declarator",
3156            "named": true
3157          }
3158        ]
3159      },
3160      "parameters": {
3161        "multiple": false,
3162        "required": true,
3163        "types": [
3164          {
3165            "type": "parameter_list",
3166            "named": true
3167          }
3168        ]
3169      }
3170    },
3171    "children": {
3172      "multiple": true,
3173      "required": false,
3174      "types": [
3175        {
3176          "type": "attribute_declaration",
3177          "named": true
3178        },
3179        {
3180          "type": "attribute_specifier",
3181          "named": true
3182        },
3183        {
3184          "type": "gnu_asm_expression",
3185          "named": true
3186        },
3187        {
3188          "type": "noexcept",
3189          "named": true
3190        },
3191        {
3192          "type": "ref_qualifier",
3193          "named": true
3194        },
3195        {
3196          "type": "requires_clause",
3197          "named": true
3198        },
3199        {
3200          "type": "throw_specifier",
3201          "named": true
3202        },
3203        {
3204          "type": "trailing_return_type",
3205          "named": true
3206        },
3207        {
3208          "type": "type_qualifier",
3209          "named": true
3210        },
3211        {
3212          "type": "virtual_specifier",
3213          "named": true
3214        }
3215      ]
3216    }
3217  },
3218  {
3219    "type": "function_definition",
3220    "named": true,
3221    "fields": {
3222      "body": {
3223        "multiple": false,
3224        "required": false,
3225        "types": [
3226          {
3227            "type": "compound_statement",
3228            "named": true
3229          },
3230          {
3231            "type": "try_statement",
3232            "named": true
3233          }
3234        ]
3235      },
3236      "declarator": {
3237        "multiple": false,
3238        "required": true,
3239        "types": [
3240          {
3241            "type": "_declarator",
3242            "named": true
3243          },
3244          {
3245            "type": "_field_declarator",
3246            "named": true
3247          },
3248          {
3249            "type": "operator_cast",
3250            "named": true
3251          }
3252        ]
3253      },
3254      "type": {
3255        "multiple": false,
3256        "required": false,
3257        "types": [
3258          {
3259            "type": "_type_specifier",
3260            "named": true
3261          }
3262        ]
3263      }
3264    },
3265    "children": {
3266      "multiple": true,
3267      "required": false,
3268      "types": [
3269        {
3270          "type": "alignas_specifier",
3271          "named": true
3272        },
3273        {
3274          "type": "attribute_declaration",
3275          "named": true
3276        },
3277        {
3278          "type": "attribute_specifier",
3279          "named": true
3280        },
3281        {
3282          "type": "default_method_clause",
3283          "named": true
3284        },
3285        {
3286          "type": "delete_method_clause",
3287          "named": true
3288        },
3289        {
3290          "type": "explicit_function_specifier",
3291          "named": true
3292        },
3293        {
3294          "type": "field_initializer_list",
3295          "named": true
3296        },
3297        {
3298          "type": "ms_call_modifier",
3299          "named": true
3300        },
3301        {
3302          "type": "ms_declspec_modifier",
3303          "named": true
3304        },
3305        {
3306          "type": "pure_virtual_clause",
3307          "named": true
3308        },
3309        {
3310          "type": "storage_class_specifier",
3311          "named": true
3312        },
3313        {
3314          "type": "try_statement",
3315          "named": true
3316        },
3317        {
3318          "type": "type_qualifier",
3319          "named": true
3320        },
3321        {
3322          "type": "virtual",
3323          "named": true
3324        }
3325      ]
3326    }
3327  },
3328  {
3329    "type": "generic_expression",
3330    "named": true,
3331    "fields": {},
3332    "children": {
3333      "multiple": true,
3334      "required": true,
3335      "types": [
3336        {
3337          "type": "_expression",
3338          "named": true
3339        },
3340        {
3341          "type": "type_descriptor",
3342          "named": true
3343        }
3344      ]
3345    }
3346  },
3347  {
3348    "type": "gnu_asm_clobber_list",
3349    "named": true,
3350    "fields": {
3351      "register": {
3352        "multiple": true,
3353        "required": false,
3354        "types": [
3355          {
3356            "type": "concatenated_string",
3357            "named": true
3358          },
3359          {
3360            "type": "string_literal",
3361            "named": true
3362          }
3363        ]
3364      }
3365    }
3366  },
3367  {
3368    "type": "gnu_asm_expression",
3369    "named": true,
3370    "fields": {
3371      "assembly_code": {
3372        "multiple": false,
3373        "required": true,
3374        "types": [
3375          {
3376            "type": "concatenated_string",
3377            "named": true
3378          },
3379          {
3380            "type": "string_literal",
3381            "named": true
3382          }
3383        ]
3384      },
3385      "clobbers": {
3386        "multiple": false,
3387        "required": false,
3388        "types": [
3389          {
3390            "type": "gnu_asm_clobber_list",
3391            "named": true
3392          }
3393        ]
3394      },
3395      "goto_labels": {
3396        "multiple": false,
3397        "required": false,
3398        "types": [
3399          {
3400            "type": "gnu_asm_goto_list",
3401            "named": true
3402          }
3403        ]
3404      },
3405      "input_operands": {
3406        "multiple": false,
3407        "required": false,
3408        "types": [
3409          {
3410            "type": "gnu_asm_input_operand_list",
3411            "named": true
3412          }
3413        ]
3414      },
3415      "output_operands": {
3416        "multiple": false,
3417        "required": false,
3418        "types": [
3419          {
3420            "type": "gnu_asm_output_operand_list",
3421            "named": true
3422          }
3423        ]
3424      }
3425    },
3426    "children": {
3427      "multiple": true,
3428      "required": false,
3429      "types": [
3430        {
3431          "type": "gnu_asm_qualifier",
3432          "named": true
3433        }
3434      ]
3435    }
3436  },
3437  {
3438    "type": "gnu_asm_goto_list",
3439    "named": true,
3440    "fields": {
3441      "label": {
3442        "multiple": true,
3443        "required": false,
3444        "types": [
3445          {
3446            "type": "identifier",
3447            "named": true
3448          }
3449        ]
3450      }
3451    }
3452  },
3453  {
3454    "type": "gnu_asm_input_operand",
3455    "named": true,
3456    "fields": {
3457      "constraint": {
3458        "multiple": false,
3459        "required": true,
3460        "types": [
3461          {
3462            "type": "string_literal",
3463            "named": true
3464          }
3465        ]
3466      },
3467      "symbol": {
3468        "multiple": false,
3469        "required": false,
3470        "types": [
3471          {
3472            "type": "identifier",
3473            "named": true
3474          }
3475        ]
3476      },
3477      "value": {
3478        "multiple": false,
3479        "required": true,
3480        "types": [
3481          {
3482            "type": "_expression",
3483            "named": true
3484          }
3485        ]
3486      }
3487    }
3488  },
3489  {
3490    "type": "gnu_asm_input_operand_list",
3491    "named": true,
3492    "fields": {
3493      "operand": {
3494        "multiple": true,
3495        "required": false,
3496        "types": [
3497          {
3498            "type": "gnu_asm_input_operand",
3499            "named": true
3500          }
3501        ]
3502      }
3503    }
3504  },
3505  {
3506    "type": "gnu_asm_output_operand",
3507    "named": true,
3508    "fields": {
3509      "constraint": {
3510        "multiple": false,
3511        "required": true,
3512        "types": [
3513          {
3514            "type": "string_literal",
3515            "named": true
3516          }
3517        ]
3518      },
3519      "symbol": {
3520        "multiple": false,
3521        "required": false,
3522        "types": [
3523          {
3524            "type": "identifier",
3525            "named": true
3526          }
3527        ]
3528      },
3529      "value": {
3530        "multiple": false,
3531        "required": true,
3532        "types": [
3533          {
3534            "type": "identifier",
3535            "named": true
3536          }
3537        ]
3538      }
3539    }
3540  },
3541  {
3542    "type": "gnu_asm_output_operand_list",
3543    "named": true,
3544    "fields": {
3545      "operand": {
3546        "multiple": true,
3547        "required": false,
3548        "types": [
3549          {
3550            "type": "gnu_asm_output_operand",
3551            "named": true
3552          }
3553        ]
3554      }
3555    }
3556  },
3557  {
3558    "type": "gnu_asm_qualifier",
3559    "named": true,
3560    "fields": {}
3561  },
3562  {
3563    "type": "goto_statement",
3564    "named": true,
3565    "fields": {
3566      "label": {
3567        "multiple": false,
3568        "required": true,
3569        "types": [
3570          {
3571            "type": "statement_identifier",
3572            "named": true
3573          }
3574        ]
3575      }
3576    }
3577  },
3578  {
3579    "type": "if_statement",
3580    "named": true,
3581    "fields": {
3582      "alternative": {
3583        "multiple": false,
3584        "required": false,
3585        "types": [
3586          {
3587            "type": "else_clause",
3588            "named": true
3589          }
3590        ]
3591      },
3592      "condition": {
3593        "multiple": false,
3594        "required": true,
3595        "types": [
3596          {
3597            "type": "condition_clause",
3598            "named": true
3599          }
3600        ]
3601      },
3602      "consequence": {
3603        "multiple": false,
3604        "required": true,
3605        "types": [
3606          {
3607            "type": "_statement",
3608            "named": true
3609          }
3610        ]
3611      }
3612    }
3613  },
3614  {
3615    "type": "init_declarator",
3616    "named": true,
3617    "fields": {
3618      "declarator": {
3619        "multiple": false,
3620        "required": true,
3621        "types": [
3622          {
3623            "type": "_declarator",
3624            "named": true
3625          }
3626        ]
3627      },
3628      "value": {
3629        "multiple": false,
3630        "required": true,
3631        "types": [
3632          {
3633            "type": "_expression",
3634            "named": true
3635          },
3636          {
3637            "type": "argument_list",
3638            "named": true
3639          },
3640          {
3641            "type": "initializer_list",
3642            "named": true
3643          }
3644        ]
3645      }
3646    }
3647  },
3648  {
3649    "type": "init_statement",
3650    "named": true,
3651    "fields": {},
3652    "children": {
3653      "multiple": false,
3654      "required": true,
3655      "types": [
3656        {
3657          "type": "alias_declaration",
3658          "named": true
3659        },
3660        {
3661          "type": "declaration",
3662          "named": true
3663        },
3664        {
3665          "type": "expression_statement",
3666          "named": true
3667        },
3668        {
3669          "type": "type_definition",
3670          "named": true
3671        }
3672      ]
3673    }
3674  },
3675  {
3676    "type": "initializer_list",
3677    "named": true,
3678    "fields": {},
3679    "children": {
3680      "multiple": true,
3681      "required": false,
3682      "types": [
3683        {
3684          "type": "_expression",
3685          "named": true
3686        },
3687        {
3688          "type": "initializer_list",
3689          "named": true
3690        },
3691        {
3692          "type": "initializer_pair",
3693          "named": true
3694        }
3695      ]
3696    }
3697  },
3698  {
3699    "type": "initializer_pair",
3700    "named": true,
3701    "fields": {
3702      "designator": {
3703        "multiple": true,
3704        "required": true,
3705        "types": [
3706          {
3707            "type": "field_designator",
3708            "named": true
3709          },
3710          {
3711            "type": "field_identifier",
3712            "named": true
3713          },
3714          {
3715            "type": "subscript_designator",
3716            "named": true
3717          },
3718          {
3719            "type": "subscript_range_designator",
3720            "named": true
3721          }
3722        ]
3723      },
3724      "value": {
3725        "multiple": false,
3726        "required": true,
3727        "types": [
3728          {
3729            "type": "_expression",
3730            "named": true
3731          },
3732          {
3733            "type": "initializer_list",
3734            "named": true
3735          }
3736        ]
3737      }
3738    }
3739  },
3740  {
3741    "type": "labeled_statement",
3742    "named": true,
3743    "fields": {
3744      "label": {
3745        "multiple": false,
3746        "required": true,
3747        "types": [
3748          {
3749            "type": "statement_identifier",
3750            "named": true
3751          }
3752        ]
3753      }
3754    },
3755    "children": {
3756      "multiple": false,
3757      "required": true,
3758      "types": [
3759        {
3760          "type": "_statement",
3761          "named": true
3762        }
3763      ]
3764    }
3765  },
3766  {
3767    "type": "lambda_capture_specifier",
3768    "named": true,
3769    "fields": {},
3770    "children": {
3771      "multiple": true,
3772      "required": false,
3773      "types": [
3774        {
3775          "type": "_expression",
3776          "named": true
3777        },
3778        {
3779          "type": "lambda_default_capture",
3780          "named": true
3781        }
3782      ]
3783    }
3784  },
3785  {
3786    "type": "lambda_default_capture",
3787    "named": true,
3788    "fields": {}
3789  },
3790  {
3791    "type": "lambda_expression",
3792    "named": true,
3793    "fields": {
3794      "body": {
3795        "multiple": false,
3796        "required": true,
3797        "types": [
3798          {
3799            "type": "compound_statement",
3800            "named": true
3801          }
3802        ]
3803      },
3804      "captures": {
3805        "multiple": false,
3806        "required": true,
3807        "types": [
3808          {
3809            "type": "lambda_capture_specifier",
3810            "named": true
3811          }
3812        ]
3813      },
3814      "constraint": {
3815        "multiple": false,
3816        "required": false,
3817        "types": [
3818          {
3819            "type": "requires_clause",
3820            "named": true
3821          }
3822        ]
3823      },
3824      "declarator": {
3825        "multiple": false,
3826        "required": false,
3827        "types": [
3828          {
3829            "type": "abstract_function_declarator",
3830            "named": true
3831          }
3832        ]
3833      },
3834      "template_parameters": {
3835        "multiple": false,
3836        "required": false,
3837        "types": [
3838          {
3839            "type": "template_parameter_list",
3840            "named": true
3841          }
3842        ]
3843      }
3844    }
3845  },
3846  {
3847    "type": "linkage_specification",
3848    "named": true,
3849    "fields": {
3850      "body": {
3851        "multiple": false,
3852        "required": true,
3853        "types": [
3854          {
3855            "type": "declaration",
3856            "named": true
3857          },
3858          {
3859            "type": "declaration_list",
3860            "named": true
3861          },
3862          {
3863            "type": "function_definition",
3864            "named": true
3865          }
3866        ]
3867      },
3868      "value": {
3869        "multiple": false,
3870        "required": true,
3871        "types": [
3872          {
3873            "type": "string_literal",
3874            "named": true
3875          }
3876        ]
3877      }
3878    }
3879  },
3880  {
3881    "type": "ms_based_modifier",
3882    "named": true,
3883    "fields": {},
3884    "children": {
3885      "multiple": false,
3886      "required": true,
3887      "types": [
3888        {
3889          "type": "argument_list",
3890          "named": true
3891        }
3892      ]
3893    }
3894  },
3895  {
3896    "type": "ms_call_modifier",
3897    "named": true,
3898    "fields": {}
3899  },
3900  {
3901    "type": "ms_declspec_modifier",
3902    "named": true,
3903    "fields": {},
3904    "children": {
3905      "multiple": false,
3906      "required": true,
3907      "types": [
3908        {
3909          "type": "identifier",
3910          "named": true
3911        }
3912      ]
3913    }
3914  },
3915  {
3916    "type": "ms_pointer_modifier",
3917    "named": true,
3918    "fields": {},
3919    "children": {
3920      "multiple": false,
3921      "required": true,
3922      "types": [
3923        {
3924          "type": "ms_restrict_modifier",
3925          "named": true
3926        },
3927        {
3928          "type": "ms_signed_ptr_modifier",
3929          "named": true
3930        },
3931        {
3932          "type": "ms_unaligned_ptr_modifier",
3933          "named": true
3934        },
3935        {
3936          "type": "ms_unsigned_ptr_modifier",
3937          "named": true
3938        }
3939      ]
3940    }
3941  },
3942  {
3943    "type": "ms_unaligned_ptr_modifier",
3944    "named": true,
3945    "fields": {}
3946  },
3947  {
3948    "type": "namespace_alias_definition",
3949    "named": true,
3950    "fields": {
3951      "name": {
3952        "multiple": false,
3953        "required": true,
3954        "types": [
3955          {
3956            "type": "namespace_identifier",
3957            "named": true
3958          }
3959        ]
3960      }
3961    },
3962    "children": {
3963      "multiple": false,
3964      "required": true,
3965      "types": [
3966        {
3967          "type": "namespace_identifier",
3968          "named": true
3969        },
3970        {
3971          "type": "nested_namespace_specifier",
3972          "named": true
3973        }
3974      ]
3975    }
3976  },
3977  {
3978    "type": "namespace_definition",
3979    "named": true,
3980    "fields": {
3981      "body": {
3982        "multiple": false,
3983        "required": true,
3984        "types": [
3985          {
3986            "type": "declaration_list",
3987            "named": true
3988          }
3989        ]
3990      },
3991      "name": {
3992        "multiple": false,
3993        "required": false,
3994        "types": [
3995          {
3996            "type": "namespace_identifier",
3997            "named": true
3998          },
3999          {
4000            "type": "nested_namespace_specifier",
4001            "named": true
4002          }
4003        ]
4004      }
4005    },
4006    "children": {
4007      "multiple": false,
4008      "required": false,
4009      "types": [
4010        {
4011          "type": "attribute_declaration",
4012          "named": true
4013        }
4014      ]
4015    }
4016  },
4017  {
4018    "type": "nested_namespace_specifier",
4019    "named": true,
4020    "fields": {},
4021    "children": {
4022      "multiple": true,
4023      "required": false,
4024      "types": [
4025        {
4026          "type": "namespace_identifier",
4027          "named": true
4028        },
4029        {
4030          "type": "nested_namespace_specifier",
4031          "named": true
4032        }
4033      ]
4034    }
4035  },
4036  {
4037    "type": "new_declarator",
4038    "named": true,
4039    "fields": {
4040      "length": {
4041        "multiple": false,
4042        "required": true,
4043        "types": [
4044          {
4045            "type": "_expression",
4046            "named": true
4047          }
4048        ]
4049      }
4050    },
4051    "children": {
4052      "multiple": false,
4053      "required": false,
4054      "types": [
4055        {
4056          "type": "new_declarator",
4057          "named": true
4058        }
4059      ]
4060    }
4061  },
4062  {
4063    "type": "new_expression",
4064    "named": true,
4065    "fields": {
4066      "arguments": {
4067        "multiple": false,
4068        "required": false,
4069        "types": [
4070          {
4071            "type": "argument_list",
4072            "named": true
4073          },
4074          {
4075            "type": "initializer_list",
4076            "named": true
4077          }
4078        ]
4079      },
4080      "declarator": {
4081        "multiple": false,
4082        "required": false,
4083        "types": [
4084          {
4085            "type": "new_declarator",
4086            "named": true
4087          }
4088        ]
4089      },
4090      "placement": {
4091        "multiple": false,
4092        "required": false,
4093        "types": [
4094          {
4095            "type": "argument_list",
4096            "named": true
4097          }
4098        ]
4099      },
4100      "type": {
4101        "multiple": false,
4102        "required": true,
4103        "types": [
4104          {
4105            "type": "_type_specifier",
4106            "named": true
4107          }
4108        ]
4109      }
4110    }
4111  },
4112  {
4113    "type": "noexcept",
4114    "named": true,
4115    "fields": {},
4116    "children": {
4117      "multiple": false,
4118      "required": false,
4119      "types": [
4120        {
4121          "type": "_expression",
4122          "named": true
4123        }
4124      ]
4125    }
4126  },
4127  {
4128    "type": "null",
4129    "named": true,
4130    "fields": {}
4131  },
4132  {
4133    "type": "offsetof_expression",
4134    "named": true,
4135    "fields": {
4136      "member": {
4137        "multiple": false,
4138        "required": true,
4139        "types": [
4140          {
4141            "type": "field_identifier",
4142            "named": true
4143          }
4144        ]
4145      },
4146      "type": {
4147        "multiple": false,
4148        "required": true,
4149        "types": [
4150          {
4151            "type": "type_descriptor",
4152            "named": true
4153          }
4154        ]
4155      }
4156    }
4157  },
4158  {
4159    "type": "operator_cast",
4160    "named": true,
4161    "fields": {
4162      "declarator": {
4163        "multiple": false,
4164        "required": true,
4165        "types": [
4166          {
4167            "type": "_abstract_declarator",
4168            "named": true
4169          }
4170        ]
4171      },
4172      "type": {
4173        "multiple": false,
4174        "required": true,
4175        "types": [
4176          {
4177            "type": "_type_specifier",
4178            "named": true
4179          }
4180        ]
4181      }
4182    },
4183    "children": {
4184      "multiple": true,
4185      "required": false,
4186      "types": [
4187        {
4188          "type": "alignas_specifier",
4189          "named": true
4190        },
4191        {
4192          "type": "attribute_declaration",
4193          "named": true
4194        },
4195        {
4196          "type": "attribute_specifier",
4197          "named": true
4198        },
4199        {
4200          "type": "ms_declspec_modifier",
4201          "named": true
4202        },
4203        {
4204          "type": "storage_class_specifier",
4205          "named": true
4206        },
4207        {
4208          "type": "type_qualifier",
4209          "named": true
4210        },
4211        {
4212          "type": "virtual",
4213          "named": true
4214        }
4215      ]
4216    }
4217  },
4218  {
4219    "type": "operator_name",
4220    "named": true,
4221    "fields": {},
4222    "children": {
4223      "multiple": false,
4224      "required": false,
4225      "types": [
4226        {
4227          "type": "identifier",
4228          "named": true
4229        }
4230      ]
4231    }
4232  },
4233  {
4234    "type": "optional_parameter_declaration",
4235    "named": true,
4236    "fields": {
4237      "declarator": {
4238        "multiple": false,
4239        "required": false,
4240        "types": [
4241          {
4242            "type": "_declarator",
4243            "named": true
4244          },
4245          {
4246            "type": "abstract_reference_declarator",
4247            "named": true
4248          }
4249        ]
4250      },
4251      "default_value": {
4252        "multiple": false,
4253        "required": true,
4254        "types": [
4255          {
4256            "type": "_expression",
4257            "named": true
4258          }
4259        ]
4260      },
4261      "type": {
4262        "multiple": false,
4263        "required": true,
4264        "types": [
4265          {
4266            "type": "_type_specifier",
4267            "named": true
4268          }
4269        ]
4270      }
4271    },
4272    "children": {
4273      "multiple": true,
4274      "required": false,
4275      "types": [
4276        {
4277          "type": "alignas_specifier",
4278          "named": true
4279        },
4280        {
4281          "type": "attribute_declaration",
4282          "named": true
4283        },
4284        {
4285          "type": "attribute_specifier",
4286          "named": true
4287        },
4288        {
4289          "type": "ms_declspec_modifier",
4290          "named": true
4291        },
4292        {
4293          "type": "storage_class_specifier",
4294          "named": true
4295        },
4296        {
4297          "type": "type_qualifier",
4298          "named": true
4299        },
4300        {
4301          "type": "virtual",
4302          "named": true
4303        }
4304      ]
4305    }
4306  },
4307  {
4308    "type": "optional_type_parameter_declaration",
4309    "named": true,
4310    "fields": {
4311      "default_type": {
4312        "multiple": false,
4313        "required": true,
4314        "types": [
4315          {
4316            "type": "_type_specifier",
4317            "named": true
4318          }
4319        ]
4320      },
4321      "name": {
4322        "multiple": false,
4323        "required": false,
4324        "types": [
4325          {
4326            "type": "type_identifier",
4327            "named": true
4328          }
4329        ]
4330      }
4331    }
4332  },
4333  {
4334    "type": "parameter_declaration",
4335    "named": true,
4336    "fields": {
4337      "declarator": {
4338        "multiple": false,
4339        "required": false,
4340        "types": [
4341          {
4342            "type": "_abstract_declarator",
4343            "named": true
4344          },
4345          {
4346            "type": "_declarator",
4347            "named": true
4348          }
4349        ]
4350      },
4351      "type": {
4352        "multiple": false,
4353        "required": true,
4354        "types": [
4355          {
4356            "type": "_type_specifier",
4357            "named": true
4358          }
4359        ]
4360      }
4361    },
4362    "children": {
4363      "multiple": true,
4364      "required": false,
4365      "types": [
4366        {
4367          "type": "alignas_specifier",
4368          "named": true
4369        },
4370        {
4371          "type": "attribute_declaration",
4372          "named": true
4373        },
4374        {
4375          "type": "attribute_specifier",
4376          "named": true
4377        },
4378        {
4379          "type": "ms_declspec_modifier",
4380          "named": true
4381        },
4382        {
4383          "type": "storage_class_specifier",
4384          "named": true
4385        },
4386        {
4387          "type": "type_qualifier",
4388          "named": true
4389        },
4390        {
4391          "type": "virtual",
4392          "named": true
4393        }
4394      ]
4395    }
4396  },
4397  {
4398    "type": "parameter_list",
4399    "named": true,
4400    "fields": {},
4401    "children": {
4402      "multiple": true,
4403      "required": false,
4404      "types": [
4405        {
4406          "type": "identifier",
4407          "named": true
4408        },
4409        {
4410          "type": "optional_parameter_declaration",
4411          "named": true
4412        },
4413        {
4414          "type": "parameter_declaration",
4415          "named": true
4416        },
4417        {
4418          "type": "variadic_parameter",
4419          "named": true
4420        },
4421        {
4422          "type": "variadic_parameter_declaration",
4423          "named": true
4424        }
4425      ]
4426    }
4427  },
4428  {
4429    "type": "parameter_pack_expansion",
4430    "named": true,
4431    "fields": {
4432      "pattern": {
4433        "multiple": false,
4434        "required": true,
4435        "types": [
4436          {
4437            "type": "_expression",
4438            "named": true
4439          },
4440          {
4441            "type": "type_descriptor",
4442            "named": true
4443          }
4444        ]
4445      }
4446    }
4447  },
4448  {
4449    "type": "parenthesized_declarator",
4450    "named": true,
4451    "fields": {},
4452    "children": {
4453      "multiple": true,
4454      "required": true,
4455      "types": [
4456        {
4457          "type": "_declarator",
4458          "named": true
4459        },
4460        {
4461          "type": "_field_declarator",
4462          "named": true
4463        },
4464        {
4465          "type": "_type_declarator",
4466          "named": true
4467        },
4468        {
4469          "type": "ms_call_modifier",
4470          "named": true
4471        }
4472      ]
4473    }
4474  },
4475  {
4476    "type": "parenthesized_expression",
4477    "named": true,
4478    "fields": {},
4479    "children": {
4480      "multiple": false,
4481      "required": true,
4482      "types": [
4483        {
4484          "type": "_expression",
4485          "named": true
4486        },
4487        {
4488          "type": "comma_expression",
4489          "named": true
4490        },
4491        {
4492          "type": "preproc_defined",
4493          "named": true
4494        }
4495      ]
4496    }
4497  },
4498  {
4499    "type": "placeholder_type_specifier",
4500    "named": true,
4501    "fields": {
4502      "constraint": {
4503        "multiple": false,
4504        "required": false,
4505        "types": [
4506          {
4507            "type": "_type_specifier",
4508            "named": true
4509          }
4510        ]
4511      }
4512    },
4513    "children": {
4514      "multiple": false,
4515      "required": true,
4516      "types": [
4517        {
4518          "type": "auto",
4519          "named": true
4520        },
4521        {
4522          "type": "decltype",
4523          "named": true
4524        }
4525      ]
4526    }
4527  },
4528  {
4529    "type": "pointer_declarator",
4530    "named": true,
4531    "fields": {
4532      "declarator": {
4533        "multiple": false,
4534        "required": true,
4535        "types": [
4536          {
4537            "type": "_declarator",
4538            "named": true
4539          },
4540          {
4541            "type": "_field_declarator",
4542            "named": true
4543          },
4544          {
4545            "type": "_type_declarator",
4546            "named": true
4547          }
4548        ]
4549      }
4550    },
4551    "children": {
4552      "multiple": true,
4553      "required": false,
4554      "types": [
4555        {
4556          "type": "ms_based_modifier",
4557          "named": true
4558        },
4559        {
4560          "type": "ms_pointer_modifier",
4561          "named": true
4562        },
4563        {
4564          "type": "type_qualifier",
4565          "named": true
4566        }
4567      ]
4568    }
4569  },
4570  {
4571    "type": "pointer_expression",
4572    "named": true,
4573    "fields": {
4574      "argument": {
4575        "multiple": false,
4576        "required": true,
4577        "types": [
4578          {
4579            "type": "_expression",
4580            "named": true
4581          }
4582        ]
4583      },
4584      "operator": {
4585        "multiple": false,
4586        "required": true,
4587        "types": [
4588          {
4589            "type": "&",
4590            "named": false
4591          },
4592          {
4593            "type": "*",
4594            "named": false
4595          }
4596        ]
4597      }
4598    }
4599  },
4600  {
4601    "type": "pointer_type_declarator",
4602    "named": true,
4603    "fields": {
4604      "declarator": {
4605        "multiple": false,
4606        "required": true,
4607        "types": [
4608          {
4609            "type": "_type_declarator",
4610            "named": true
4611          }
4612        ]
4613      }
4614    },
4615    "children": {
4616      "multiple": true,
4617      "required": false,
4618      "types": [
4619        {
4620          "type": "ms_based_modifier",
4621          "named": true
4622        },
4623        {
4624          "type": "ms_pointer_modifier",
4625          "named": true
4626        },
4627        {
4628          "type": "type_qualifier",
4629          "named": true
4630        }
4631      ]
4632    }
4633  },
4634  {
4635    "type": "preproc_call",
4636    "named": true,
4637    "fields": {
4638      "argument": {
4639        "multiple": false,
4640        "required": false,
4641        "types": [
4642          {
4643            "type": "preproc_arg",
4644            "named": true
4645          }
4646        ]
4647      },
4648      "directive": {
4649        "multiple": false,
4650        "required": true,
4651        "types": [
4652          {
4653            "type": "preproc_directive",
4654            "named": true
4655          }
4656        ]
4657      }
4658    }
4659  },
4660  {
4661    "type": "preproc_def",
4662    "named": true,
4663    "fields": {
4664      "name": {
4665        "multiple": false,
4666        "required": true,
4667        "types": [
4668          {
4669            "type": "identifier",
4670            "named": true
4671          }
4672        ]
4673      },
4674      "value": {
4675        "multiple": false,
4676        "required": false,
4677        "types": [
4678          {
4679            "type": "preproc_arg",
4680            "named": true
4681          }
4682        ]
4683      }
4684    }
4685  },
4686  {
4687    "type": "preproc_defined",
4688    "named": true,
4689    "fields": {},
4690    "children": {
4691      "multiple": false,
4692      "required": true,
4693      "types": [
4694        {
4695          "type": "identifier",
4696          "named": true
4697        }
4698      ]
4699    }
4700  },
4701  {
4702    "type": "preproc_elif",
4703    "named": true,
4704    "fields": {
4705      "alternative": {
4706        "multiple": false,
4707        "required": false,
4708        "types": [
4709          {
4710            "type": "preproc_elif",
4711            "named": true
4712          },
4713          {
4714            "type": "preproc_else",
4715            "named": true
4716          }
4717        ]
4718      },
4719      "condition": {
4720        "multiple": false,
4721        "required": true,
4722        "types": [
4723          {
4724            "type": "binary_expression",
4725            "named": true
4726          },
4727          {
4728            "type": "call_expression",
4729            "named": true
4730          },
4731          {
4732            "type": "char_literal",
4733            "named": true
4734          },
4735          {
4736            "type": "identifier",
4737            "named": true
4738          },
4739          {
4740            "type": "number_literal",
4741            "named": true
4742          },
4743          {
4744            "type": "parenthesized_expression",
4745            "named": true
4746          },
4747          {
4748            "type": "preproc_defined",
4749            "named": true
4750          },
4751          {
4752            "type": "unary_expression",
4753            "named": true
4754          }
4755        ]
4756      }
4757    },
4758    "children": {
4759      "multiple": true,
4760      "required": false,
4761      "types": [
4762        {
4763          "type": "_statement",
4764          "named": true
4765        },
4766        {
4767          "type": "_type_specifier",
4768          "named": true
4769        },
4770        {
4771          "type": "access_specifier",
4772          "named": true
4773        },
4774        {
4775          "type": "alias_declaration",
4776          "named": true
4777        },
4778        {
4779          "type": "concept_definition",
4780          "named": true
4781        },
4782        {
4783          "type": "declaration",
4784          "named": true
4785        },
4786        {
4787          "type": "enumerator",
4788          "named": true
4789        },
4790        {
4791          "type": "field_declaration",
4792          "named": true
4793        },
4794        {
4795          "type": "friend_declaration",
4796          "named": true
4797        },
4798        {
4799          "type": "function_definition",
4800          "named": true
4801        },
4802        {
4803          "type": "linkage_specification",
4804          "named": true
4805        },
4806        {
4807          "type": "namespace_alias_definition",
4808          "named": true
4809        },
4810        {
4811          "type": "namespace_definition",
4812          "named": true
4813        },
4814        {
4815          "type": "preproc_call",
4816          "named": true
4817        },
4818        {
4819          "type": "preproc_def",
4820          "named": true
4821        },
4822        {
4823          "type": "preproc_function_def",
4824          "named": true
4825        },
4826        {
4827          "type": "preproc_if",
4828          "named": true
4829        },
4830        {
4831          "type": "preproc_ifdef",
4832          "named": true
4833        },
4834        {
4835          "type": "preproc_include",
4836          "named": true
4837        },
4838        {
4839          "type": "static_assert_declaration",
4840          "named": true
4841        },
4842        {
4843          "type": "template_declaration",
4844          "named": true
4845        },
4846        {
4847          "type": "template_instantiation",
4848          "named": true
4849        },
4850        {
4851          "type": "type_definition",
4852          "named": true
4853        },
4854        {
4855          "type": "using_declaration",
4856          "named": true
4857        }
4858      ]
4859    }
4860  },
4861  {
4862    "type": "preproc_elifdef",
4863    "named": true,
4864    "fields": {
4865      "alternative": {
4866        "multiple": false,
4867        "required": false,
4868        "types": [
4869          {
4870            "type": "preproc_elif",
4871            "named": true
4872          },
4873          {
4874            "type": "preproc_else",
4875            "named": true
4876          }
4877        ]
4878      },
4879      "name": {
4880        "multiple": false,
4881        "required": true,
4882        "types": [
4883          {
4884            "type": "identifier",
4885            "named": true
4886          }
4887        ]
4888      }
4889    },
4890    "children": {
4891      "multiple": true,
4892      "required": false,
4893      "types": [
4894        {
4895          "type": "_statement",
4896          "named": true
4897        },
4898        {
4899          "type": "_type_specifier",
4900          "named": true
4901        },
4902        {
4903          "type": "access_specifier",
4904          "named": true
4905        },
4906        {
4907          "type": "alias_declaration",
4908          "named": true
4909        },
4910        {
4911          "type": "concept_definition",
4912          "named": true
4913        },
4914        {
4915          "type": "declaration",
4916          "named": true
4917        },
4918        {
4919          "type": "enumerator",
4920          "named": true
4921        },
4922        {
4923          "type": "field_declaration",
4924          "named": true
4925        },
4926        {
4927          "type": "friend_declaration",
4928          "named": true
4929        },
4930        {
4931          "type": "function_definition",
4932          "named": true
4933        },
4934        {
4935          "type": "linkage_specification",
4936          "named": true
4937        },
4938        {
4939          "type": "namespace_alias_definition",
4940          "named": true
4941        },
4942        {
4943          "type": "namespace_definition",
4944          "named": true
4945        },
4946        {
4947          "type": "preproc_call",
4948          "named": true
4949        },
4950        {
4951          "type": "preproc_def",
4952          "named": true
4953        },
4954        {
4955          "type": "preproc_function_def",
4956          "named": true
4957        },
4958        {
4959          "type": "preproc_if",
4960          "named": true
4961        },
4962        {
4963          "type": "preproc_ifdef",
4964          "named": true
4965        },
4966        {
4967          "type": "preproc_include",
4968          "named": true
4969        },
4970        {
4971          "type": "static_assert_declaration",
4972          "named": true
4973        },
4974        {
4975          "type": "template_declaration",
4976          "named": true
4977        },
4978        {
4979          "type": "template_instantiation",
4980          "named": true
4981        },
4982        {
4983          "type": "type_definition",
4984          "named": true
4985        },
4986        {
4987          "type": "using_declaration",
4988          "named": true
4989        }
4990      ]
4991    }
4992  },
4993  {
4994    "type": "preproc_else",
4995    "named": true,
4996    "fields": {},
4997    "children": {
4998      "multiple": true,
4999      "required": false,
5000      "types": [
5001        {
5002          "type": "_statement",
5003          "named": true
5004        },
5005        {
5006          "type": "_type_specifier",
5007          "named": true
5008        },
5009        {
5010          "type": "access_specifier",
5011          "named": true
5012        },
5013        {
5014          "type": "alias_declaration",
5015          "named": true
5016        },
5017        {
5018          "type": "concept_definition",
5019          "named": true
5020        },
5021        {
5022          "type": "declaration",
5023          "named": true
5024        },
5025        {
5026          "type": "enumerator",
5027          "named": true
5028        },
5029        {
5030          "type": "field_declaration",
5031          "named": true
5032        },
5033        {
5034          "type": "friend_declaration",
5035          "named": true
5036        },
5037        {
5038          "type": "function_definition",
5039          "named": true
5040        },
5041        {
5042          "type": "linkage_specification",
5043          "named": true
5044        },
5045        {
5046          "type": "namespace_alias_definition",
5047          "named": true
5048        },
5049        {
5050          "type": "namespace_definition",
5051          "named": true
5052        },
5053        {
5054          "type": "preproc_call",
5055          "named": true
5056        },
5057        {
5058          "type": "preproc_def",
5059          "named": true
5060        },
5061        {
5062          "type": "preproc_function_def",
5063          "named": true
5064        },
5065        {
5066          "type": "preproc_if",
5067          "named": true
5068        },
5069        {
5070          "type": "preproc_ifdef",
5071          "named": true
5072        },
5073        {
5074          "type": "preproc_include",
5075          "named": true
5076        },
5077        {
5078          "type": "static_assert_declaration",
5079          "named": true
5080        },
5081        {
5082          "type": "template_declaration",
5083          "named": true
5084        },
5085        {
5086          "type": "template_instantiation",
5087          "named": true
5088        },
5089        {
5090          "type": "type_definition",
5091          "named": true
5092        },
5093        {
5094          "type": "using_declaration",
5095          "named": true
5096        }
5097      ]
5098    }
5099  },
5100  {
5101    "type": "preproc_function_def",
5102    "named": true,
5103    "fields": {
5104      "name": {
5105        "multiple": false,
5106        "required": true,
5107        "types": [
5108          {
5109            "type": "identifier",
5110            "named": true
5111          }
5112        ]
5113      },
5114      "parameters": {
5115        "multiple": false,
5116        "required": true,
5117        "types": [
5118          {
5119            "type": "preproc_params",
5120            "named": true
5121          }
5122        ]
5123      },
5124      "value": {
5125        "multiple": false,
5126        "required": false,
5127        "types": [
5128          {
5129            "type": "preproc_arg",
5130            "named": true
5131          }
5132        ]
5133      }
5134    }
5135  },
5136  {
5137    "type": "preproc_if",
5138    "named": true,
5139    "fields": {
5140      "alternative": {
5141        "multiple": false,
5142        "required": false,
5143        "types": [
5144          {
5145            "type": "preproc_elif",
5146            "named": true
5147          },
5148          {
5149            "type": "preproc_else",
5150            "named": true
5151          }
5152        ]
5153      },
5154      "condition": {
5155        "multiple": false,
5156        "required": true,
5157        "types": [
5158          {
5159            "type": "binary_expression",
5160            "named": true
5161          },
5162          {
5163            "type": "call_expression",
5164            "named": true
5165          },
5166          {
5167            "type": "char_literal",
5168            "named": true
5169          },
5170          {
5171            "type": "identifier",
5172            "named": true
5173          },
5174          {
5175            "type": "number_literal",
5176            "named": true
5177          },
5178          {
5179            "type": "parenthesized_expression",
5180            "named": true
5181          },
5182          {
5183            "type": "preproc_defined",
5184            "named": true
5185          },
5186          {
5187            "type": "unary_expression",
5188            "named": true
5189          }
5190        ]
5191      }
5192    },
5193    "children": {
5194      "multiple": true,
5195      "required": false,
5196      "types": [
5197        {
5198          "type": "_statement",
5199          "named": true
5200        },
5201        {
5202          "type": "_type_specifier",
5203          "named": true
5204        },
5205        {
5206          "type": "access_specifier",
5207          "named": true
5208        },
5209        {
5210          "type": "alias_declaration",
5211          "named": true
5212        },
5213        {
5214          "type": "concept_definition",
5215          "named": true
5216        },
5217        {
5218          "type": "declaration",
5219          "named": true
5220        },
5221        {
5222          "type": "enumerator",
5223          "named": true
5224        },
5225        {
5226          "type": "field_declaration",
5227          "named": true
5228        },
5229        {
5230          "type": "friend_declaration",
5231          "named": true
5232        },
5233        {
5234          "type": "function_definition",
5235          "named": true
5236        },
5237        {
5238          "type": "linkage_specification",
5239          "named": true
5240        },
5241        {
5242          "type": "namespace_alias_definition",
5243          "named": true
5244        },
5245        {
5246          "type": "namespace_definition",
5247          "named": true
5248        },
5249        {
5250          "type": "preproc_call",
5251          "named": true
5252        },
5253        {
5254          "type": "preproc_def",
5255          "named": true
5256        },
5257        {
5258          "type": "preproc_function_def",
5259          "named": true
5260        },
5261        {
5262          "type": "preproc_if",
5263          "named": true
5264        },
5265        {
5266          "type": "preproc_ifdef",
5267          "named": true
5268        },
5269        {
5270          "type": "preproc_include",
5271          "named": true
5272        },
5273        {
5274          "type": "static_assert_declaration",
5275          "named": true
5276        },
5277        {
5278          "type": "template_declaration",
5279          "named": true
5280        },
5281        {
5282          "type": "template_instantiation",
5283          "named": true
5284        },
5285        {
5286          "type": "type_definition",
5287          "named": true
5288        },
5289        {
5290          "type": "using_declaration",
5291          "named": true
5292        }
5293      ]
5294    }
5295  },
5296  {
5297    "type": "preproc_ifdef",
5298    "named": true,
5299    "fields": {
5300      "alternative": {
5301        "multiple": false,
5302        "required": false,
5303        "types": [
5304          {
5305            "type": "preproc_elif",
5306            "named": true
5307          },
5308          {
5309            "type": "preproc_elifdef",
5310            "named": true
5311          },
5312          {
5313            "type": "preproc_else",
5314            "named": true
5315          }
5316        ]
5317      },
5318      "name": {
5319        "multiple": false,
5320        "required": true,
5321        "types": [
5322          {
5323            "type": "identifier",
5324            "named": true
5325          }
5326        ]
5327      }
5328    },
5329    "children": {
5330      "multiple": true,
5331      "required": false,
5332      "types": [
5333        {
5334          "type": "_statement",
5335          "named": true
5336        },
5337        {
5338          "type": "_type_specifier",
5339          "named": true
5340        },
5341        {
5342          "type": "access_specifier",
5343          "named": true
5344        },
5345        {
5346          "type": "alias_declaration",
5347          "named": true
5348        },
5349        {
5350          "type": "concept_definition",
5351          "named": true
5352        },
5353        {
5354          "type": "declaration",
5355          "named": true
5356        },
5357        {
5358          "type": "enumerator",
5359          "named": true
5360        },
5361        {
5362          "type": "field_declaration",
5363          "named": true
5364        },
5365        {
5366          "type": "friend_declaration",
5367          "named": true
5368        },
5369        {
5370          "type": "function_definition",
5371          "named": true
5372        },
5373        {
5374          "type": "linkage_specification",
5375          "named": true
5376        },
5377        {
5378          "type": "namespace_alias_definition",
5379          "named": true
5380        },
5381        {
5382          "type": "namespace_definition",
5383          "named": true
5384        },
5385        {
5386          "type": "preproc_call",
5387          "named": true
5388        },
5389        {
5390          "type": "preproc_def",
5391          "named": true
5392        },
5393        {
5394          "type": "preproc_function_def",
5395          "named": true
5396        },
5397        {
5398          "type": "preproc_if",
5399          "named": true
5400        },
5401        {
5402          "type": "preproc_ifdef",
5403          "named": true
5404        },
5405        {
5406          "type": "preproc_include",
5407          "named": true
5408        },
5409        {
5410          "type": "static_assert_declaration",
5411          "named": true
5412        },
5413        {
5414          "type": "template_declaration",
5415          "named": true
5416        },
5417        {
5418          "type": "template_instantiation",
5419          "named": true
5420        },
5421        {
5422          "type": "type_definition",
5423          "named": true
5424        },
5425        {
5426          "type": "using_declaration",
5427          "named": true
5428        }
5429      ]
5430    }
5431  },
5432  {
5433    "type": "preproc_include",
5434    "named": true,
5435    "fields": {
5436      "path": {
5437        "multiple": false,
5438        "required": true,
5439        "types": [
5440          {
5441            "type": "call_expression",
5442            "named": true
5443          },
5444          {
5445            "type": "identifier",
5446            "named": true
5447          },
5448          {
5449            "type": "string_literal",
5450            "named": true
5451          },
5452          {
5453            "type": "system_lib_string",
5454            "named": true
5455          }
5456        ]
5457      }
5458    }
5459  },
5460  {
5461    "type": "preproc_params",
5462    "named": true,
5463    "fields": {},
5464    "children": {
5465      "multiple": true,
5466      "required": false,
5467      "types": [
5468        {
5469          "type": "identifier",
5470          "named": true
5471        }
5472      ]
5473    }
5474  },
5475  {
5476    "type": "pure_virtual_clause",
5477    "named": true,
5478    "fields": {}
5479  },
5480  {
5481    "type": "qualified_identifier",
5482    "named": true,
5483    "fields": {
5484      "name": {
5485        "multiple": true,
5486        "required": true,
5487        "types": [
5488          {
5489            "type": "dependent_name",
5490            "named": true
5491          },
5492          {
5493            "type": "destructor_name",
5494            "named": true
5495          },
5496          {
5497            "type": "field_identifier",
5498            "named": true
5499          },
5500          {
5501            "type": "identifier",
5502            "named": true
5503          },
5504          {
5505            "type": "operator_cast",
5506            "named": true
5507          },
5508          {
5509            "type": "operator_name",
5510            "named": true
5511          },
5512          {
5513            "type": "pointer_type_declarator",
5514            "named": true
5515          },
5516          {
5517            "type": "qualified_identifier",
5518            "named": true
5519          },
5520          {
5521            "type": "template",
5522            "named": false
5523          },
5524          {
5525            "type": "template_function",
5526            "named": true
5527          },
5528          {
5529            "type": "template_method",
5530            "named": true
5531          },
5532          {
5533            "type": "template_type",
5534            "named": true
5535          },
5536          {
5537            "type": "type_identifier",
5538            "named": true
5539          }
5540        ]
5541      },
5542      "scope": {
5543        "multiple": false,
5544        "required": false,
5545        "types": [
5546          {
5547            "type": "decltype",
5548            "named": true
5549          },
5550          {
5551            "type": "dependent_name",
5552            "named": true
5553          },
5554          {
5555            "type": "namespace_identifier",
5556            "named": true
5557          },
5558          {
5559            "type": "template_type",
5560            "named": true
5561          }
5562        ]
5563      }
5564    }
5565  },
5566  {
5567    "type": "raw_string_literal",
5568    "named": true,
5569    "fields": {
5570      "delimiter": {
5571        "multiple": false,
5572        "required": false,
5573        "types": [
5574          {
5575            "type": "raw_string_delimiter",
5576            "named": true
5577          }
5578        ]
5579      }
5580    },
5581    "children": {
5582      "multiple": true,
5583      "required": true,
5584      "types": [
5585        {
5586          "type": "raw_string_content",
5587          "named": true
5588        },
5589        {
5590          "type": "raw_string_delimiter",
5591          "named": true
5592        }
5593      ]
5594    }
5595  },
5596  {
5597    "type": "ref_qualifier",
5598    "named": true,
5599    "fields": {}
5600  },
5601  {
5602    "type": "reference_declarator",
5603    "named": true,
5604    "fields": {},
5605    "children": {
5606      "multiple": false,
5607      "required": true,
5608      "types": [
5609        {
5610          "type": "_declarator",
5611          "named": true
5612        },
5613        {
5614          "type": "_field_declarator",
5615          "named": true
5616        },
5617        {
5618          "type": "_type_declarator",
5619          "named": true
5620        },
5621        {
5622          "type": "variadic_declarator",
5623          "named": true
5624        }
5625      ]
5626    }
5627  },
5628  {
5629    "type": "requirement_seq",
5630    "named": true,
5631    "fields": {},
5632    "children": {
5633      "multiple": true,
5634      "required": false,
5635      "types": [
5636        {
5637          "type": "compound_requirement",
5638          "named": true
5639        },
5640        {
5641          "type": "simple_requirement",
5642          "named": true
5643        },
5644        {
5645          "type": "type_requirement",
5646          "named": true
5647        }
5648      ]
5649    }
5650  },
5651  {
5652    "type": "requires_clause",
5653    "named": true,
5654    "fields": {
5655      "constraint": {
5656        "multiple": true,
5657        "required": true,
5658        "types": [
5659          {
5660            "type": "(",
5661            "named": false
5662          },
5663          {
5664            "type": ")",
5665            "named": false
5666          },
5667          {
5668            "type": "_expression",
5669            "named": true
5670          },
5671          {
5672            "type": "constraint_conjunction",
5673            "named": true
5674          },
5675          {
5676            "type": "constraint_disjunction",
5677            "named": true
5678          },
5679          {
5680            "type": "template_type",
5681            "named": true
5682          },
5683          {
5684            "type": "type_identifier",
5685            "named": true
5686          }
5687        ]
5688      }
5689    }
5690  },
5691  {
5692    "type": "requires_expression",
5693    "named": true,
5694    "fields": {
5695      "parameters": {
5696        "multiple": false,
5697        "required": false,
5698        "types": [
5699          {
5700            "type": "parameter_list",
5701            "named": true
5702          }
5703        ]
5704      },
5705      "requirements": {
5706        "multiple": false,
5707        "required": true,
5708        "types": [
5709          {
5710            "type": "requirement_seq",
5711            "named": true
5712          }
5713        ]
5714      }
5715    }
5716  },
5717  {
5718    "type": "return_statement",
5719    "named": true,
5720    "fields": {},
5721    "children": {
5722      "multiple": false,
5723      "required": false,
5724      "types": [
5725        {
5726          "type": "_expression",
5727          "named": true
5728        },
5729        {
5730          "type": "comma_expression",
5731          "named": true
5732        },
5733        {
5734          "type": "initializer_list",
5735          "named": true
5736        }
5737      ]
5738    }
5739  },
5740  {
5741    "type": "seh_except_clause",
5742    "named": true,
5743    "fields": {
5744      "body": {
5745        "multiple": false,
5746        "required": true,
5747        "types": [
5748          {
5749            "type": "compound_statement",
5750            "named": true
5751          }
5752        ]
5753      },
5754      "filter": {
5755        "multiple": false,
5756        "required": true,
5757        "types": [
5758          {
5759            "type": "parenthesized_expression",
5760            "named": true
5761          }
5762        ]
5763      }
5764    }
5765  },
5766  {
5767    "type": "seh_finally_clause",
5768    "named": true,
5769    "fields": {
5770      "body": {
5771        "multiple": false,
5772        "required": true,
5773        "types": [
5774          {
5775            "type": "compound_statement",
5776            "named": true
5777          }
5778        ]
5779      }
5780    }
5781  },
5782  {
5783    "type": "seh_leave_statement",
5784    "named": true,
5785    "fields": {}
5786  },
5787  {
5788    "type": "seh_try_statement",
5789    "named": true,
5790    "fields": {
5791      "body": {
5792        "multiple": false,
5793        "required": true,
5794        "types": [
5795          {
5796            "type": "compound_statement",
5797            "named": true
5798          }
5799        ]
5800      }
5801    },
5802    "children": {
5803      "multiple": false,
5804      "required": true,
5805      "types": [
5806        {
5807          "type": "seh_except_clause",
5808          "named": true
5809        },
5810        {
5811          "type": "seh_finally_clause",
5812          "named": true
5813        }
5814      ]
5815    }
5816  },
5817  {
5818    "type": "simple_requirement",
5819    "named": true,
5820    "fields": {},
5821    "children": {
5822      "multiple": false,
5823      "required": false,
5824      "types": [
5825        {
5826          "type": "_expression",
5827          "named": true
5828        },
5829        {
5830          "type": "comma_expression",
5831          "named": true
5832        }
5833      ]
5834    }
5835  },
5836  {
5837    "type": "sized_type_specifier",
5838    "named": true,
5839    "fields": {
5840      "type": {
5841        "multiple": false,
5842        "required": false,
5843        "types": [
5844          {
5845            "type": "primitive_type",
5846            "named": true
5847          },
5848          {
5849            "type": "type_identifier",
5850            "named": true
5851          }
5852        ]
5853      }
5854    }
5855  },
5856  {
5857    "type": "sizeof_expression",
5858    "named": true,
5859    "fields": {
5860      "type": {
5861        "multiple": false,
5862        "required": false,
5863        "types": [
5864          {
5865            "type": "type_descriptor",
5866            "named": true
5867          }
5868        ]
5869      },
5870      "value": {
5871        "multiple": false,
5872        "required": false,
5873        "types": [
5874          {
5875            "type": "_expression",
5876            "named": true
5877          }
5878        ]
5879      }
5880    }
5881  },
5882  {
5883    "type": "static_assert_declaration",
5884    "named": true,
5885    "fields": {
5886      "condition": {
5887        "multiple": false,
5888        "required": true,
5889        "types": [
5890          {
5891            "type": "_expression",
5892            "named": true
5893          }
5894        ]
5895      },
5896      "message": {
5897        "multiple": false,
5898        "required": false,
5899        "types": [
5900          {
5901            "type": "concatenated_string",
5902            "named": true
5903          },
5904          {
5905            "type": "raw_string_literal",
5906            "named": true
5907          },
5908          {
5909            "type": "string_literal",
5910            "named": true
5911          }
5912        ]
5913      }
5914    }
5915  },
5916  {
5917    "type": "storage_class_specifier",
5918    "named": true,
5919    "fields": {}
5920  },
5921  {
5922    "type": "string_literal",
5923    "named": true,
5924    "fields": {},
5925    "children": {
5926      "multiple": true,
5927      "required": false,
5928      "types": [
5929        {
5930          "type": "escape_sequence",
5931          "named": true
5932        },
5933        {
5934          "type": "string_content",
5935          "named": true
5936        }
5937      ]
5938    }
5939  },
5940  {
5941    "type": "struct_specifier",
5942    "named": true,
5943    "fields": {
5944      "body": {
5945        "multiple": false,
5946        "required": false,
5947        "types": [
5948          {
5949            "type": "field_declaration_list",
5950            "named": true
5951          }
5952        ]
5953      },
5954      "name": {
5955        "multiple": false,
5956        "required": false,
5957        "types": [
5958          {
5959            "type": "qualified_identifier",
5960            "named": true
5961          },
5962          {
5963            "type": "template_type",
5964            "named": true
5965          },
5966          {
5967            "type": "type_identifier",
5968            "named": true
5969          }
5970        ]
5971      }
5972    },
5973    "children": {
5974      "multiple": true,
5975      "required": false,
5976      "types": [
5977        {
5978          "type": "alignas_specifier",
5979          "named": true
5980        },
5981        {
5982          "type": "attribute_declaration",
5983          "named": true
5984        },
5985        {
5986          "type": "attribute_specifier",
5987          "named": true
5988        },
5989        {
5990          "type": "base_class_clause",
5991          "named": true
5992        },
5993        {
5994          "type": "ms_declspec_modifier",
5995          "named": true
5996        },
5997        {
5998          "type": "virtual_specifier",
5999          "named": true
6000        }
6001      ]
6002    }
6003  },
6004  {
6005    "type": "structured_binding_declarator",
6006    "named": true,
6007    "fields": {},
6008    "children": {
6009      "multiple": true,
6010      "required": true,
6011      "types": [
6012        {
6013          "type": "identifier",
6014          "named": true
6015        }
6016      ]
6017    }
6018  },
6019  {
6020    "type": "subscript_argument_list",
6021    "named": true,
6022    "fields": {},
6023    "children": {
6024      "multiple": true,
6025      "required": false,
6026      "types": [
6027        {
6028          "type": "_expression",
6029          "named": true
6030        },
6031        {
6032          "type": "initializer_list",
6033          "named": true
6034        }
6035      ]
6036    }
6037  },
6038  {
6039    "type": "subscript_designator",
6040    "named": true,
6041    "fields": {},
6042    "children": {
6043      "multiple": false,
6044      "required": true,
6045      "types": [
6046        {
6047          "type": "_expression",
6048          "named": true
6049        }
6050      ]
6051    }
6052  },
6053  {
6054    "type": "subscript_expression",
6055    "named": true,
6056    "fields": {
6057      "argument": {
6058        "multiple": false,
6059        "required": true,
6060        "types": [
6061          {
6062            "type": "_expression",
6063            "named": true
6064          }
6065        ]
6066      },
6067      "indices": {
6068        "multiple": false,
6069        "required": true,
6070        "types": [
6071          {
6072            "type": "subscript_argument_list",
6073            "named": true
6074          }
6075        ]
6076      }
6077    }
6078  },
6079  {
6080    "type": "subscript_range_designator",
6081    "named": true,
6082    "fields": {
6083      "end": {
6084        "multiple": false,
6085        "required": true,
6086        "types": [
6087          {
6088            "type": "_expression",
6089            "named": true
6090          }
6091        ]
6092      },
6093      "start": {
6094        "multiple": false,
6095        "required": true,
6096        "types": [
6097          {
6098            "type": "_expression",
6099            "named": true
6100          }
6101        ]
6102      }
6103    }
6104  },
6105  {
6106    "type": "switch_statement",
6107    "named": true,
6108    "fields": {
6109      "body": {
6110        "multiple": false,
6111        "required": true,
6112        "types": [
6113          {
6114            "type": "compound_statement",
6115            "named": true
6116          }
6117        ]
6118      },
6119      "condition": {
6120        "multiple": false,
6121        "required": true,
6122        "types": [
6123          {
6124            "type": "condition_clause",
6125            "named": true
6126          }
6127        ]
6128      }
6129    }
6130  },
6131  {
6132    "type": "template_argument_list",
6133    "named": true,
6134    "fields": {},
6135    "children": {
6136      "multiple": true,
6137      "required": false,
6138      "types": [
6139        {
6140          "type": "_expression",
6141          "named": true
6142        },
6143        {
6144          "type": "type_descriptor",
6145          "named": true
6146        }
6147      ]
6148    }
6149  },
6150  {
6151    "type": "template_declaration",
6152    "named": true,
6153    "fields": {
6154      "parameters": {
6155        "multiple": false,
6156        "required": true,
6157        "types": [
6158          {
6159            "type": "template_parameter_list",
6160            "named": true
6161          }
6162        ]
6163      }
6164    },
6165    "children": {
6166      "multiple": true,
6167      "required": true,
6168      "types": [
6169        {
6170          "type": "_type_specifier",
6171          "named": true
6172        },
6173        {
6174          "type": "alias_declaration",
6175          "named": true
6176        },
6177        {
6178          "type": "concept_definition",
6179          "named": true
6180        },
6181        {
6182          "type": "declaration",
6183          "named": true
6184        },
6185        {
6186          "type": "friend_declaration",
6187          "named": true
6188        },
6189        {
6190          "type": "function_definition",
6191          "named": true
6192        },
6193        {
6194          "type": "requires_clause",
6195          "named": true
6196        },
6197        {
6198          "type": "template_declaration",
6199          "named": true
6200        }
6201      ]
6202    }
6203  },
6204  {
6205    "type": "template_function",
6206    "named": true,
6207    "fields": {
6208      "arguments": {
6209        "multiple": false,
6210        "required": true,
6211        "types": [
6212          {
6213            "type": "template_argument_list",
6214            "named": true
6215          }
6216        ]
6217      },
6218      "name": {
6219        "multiple": false,
6220        "required": true,
6221        "types": [
6222          {
6223            "type": "identifier",
6224            "named": true
6225          }
6226        ]
6227      }
6228    }
6229  },
6230  {
6231    "type": "template_instantiation",
6232    "named": true,
6233    "fields": {
6234      "declarator": {
6235        "multiple": false,
6236        "required": true,
6237        "types": [
6238          {
6239            "type": "_declarator",
6240            "named": true
6241          }
6242        ]
6243      },
6244      "type": {
6245        "multiple": false,
6246        "required": false,
6247        "types": [
6248          {
6249            "type": "_type_specifier",
6250            "named": true
6251          }
6252        ]
6253      }
6254    },
6255    "children": {
6256      "multiple": true,
6257      "required": false,
6258      "types": [
6259        {
6260          "type": "alignas_specifier",
6261          "named": true
6262        },
6263        {
6264          "type": "attribute_declaration",
6265          "named": true
6266        },
6267        {
6268          "type": "attribute_specifier",
6269          "named": true
6270        },
6271        {
6272          "type": "ms_declspec_modifier",
6273          "named": true
6274        },
6275        {
6276          "type": "storage_class_specifier",
6277          "named": true
6278        },
6279        {
6280          "type": "type_qualifier",
6281          "named": true
6282        },
6283        {
6284          "type": "virtual",
6285          "named": true
6286        }
6287      ]
6288    }
6289  },
6290  {
6291    "type": "template_method",
6292    "named": true,
6293    "fields": {
6294      "arguments": {
6295        "multiple": false,
6296        "required": true,
6297        "types": [
6298          {
6299            "type": "template_argument_list",
6300            "named": true
6301          }
6302        ]
6303      },
6304      "name": {
6305        "multiple": false,
6306        "required": true,
6307        "types": [
6308          {
6309            "type": "field_identifier",
6310            "named": true
6311          },
6312          {
6313            "type": "operator_name",
6314            "named": true
6315          }
6316        ]
6317      }
6318    }
6319  },
6320  {
6321    "type": "template_parameter_list",
6322    "named": true,
6323    "fields": {},
6324    "children": {
6325      "multiple": true,
6326      "required": false,
6327      "types": [
6328        {
6329          "type": "optional_parameter_declaration",
6330          "named": true
6331        },
6332        {
6333          "type": "optional_type_parameter_declaration",
6334          "named": true
6335        },
6336        {
6337          "type": "parameter_declaration",
6338          "named": true
6339        },
6340        {
6341          "type": "template_template_parameter_declaration",
6342          "named": true
6343        },
6344        {
6345          "type": "type_parameter_declaration",
6346          "named": true
6347        },
6348        {
6349          "type": "variadic_parameter_declaration",
6350          "named": true
6351        },
6352        {
6353          "type": "variadic_type_parameter_declaration",
6354          "named": true
6355        }
6356      ]
6357    }
6358  },
6359  {
6360    "type": "template_template_parameter_declaration",
6361    "named": true,
6362    "fields": {
6363      "parameters": {
6364        "multiple": false,
6365        "required": true,
6366        "types": [
6367          {
6368            "type": "template_parameter_list",
6369            "named": true
6370          }
6371        ]
6372      }
6373    },
6374    "children": {
6375      "multiple": false,
6376      "required": true,
6377      "types": [
6378        {
6379          "type": "optional_type_parameter_declaration",
6380          "named": true
6381        },
6382        {
6383          "type": "type_parameter_declaration",
6384          "named": true
6385        },
6386        {
6387          "type": "variadic_type_parameter_declaration",
6388          "named": true
6389        }
6390      ]
6391    }
6392  },
6393  {
6394    "type": "template_type",
6395    "named": true,
6396    "fields": {
6397      "arguments": {
6398        "multiple": false,
6399        "required": true,
6400        "types": [
6401          {
6402            "type": "template_argument_list",
6403            "named": true
6404          }
6405        ]
6406      },
6407      "name": {
6408        "multiple": false,
6409        "required": true,
6410        "types": [
6411          {
6412            "type": "type_identifier",
6413            "named": true
6414          }
6415        ]
6416      }
6417    }
6418  },
6419  {
6420    "type": "throw_specifier",
6421    "named": true,
6422    "fields": {},
6423    "children": {
6424      "multiple": true,
6425      "required": false,
6426      "types": [
6427        {
6428          "type": "type_descriptor",
6429          "named": true
6430        }
6431      ]
6432    }
6433  },
6434  {
6435    "type": "throw_statement",
6436    "named": true,
6437    "fields": {},
6438    "children": {
6439      "multiple": false,
6440      "required": false,
6441      "types": [
6442        {
6443          "type": "_expression",
6444          "named": true
6445        }
6446      ]
6447    }
6448  },
6449  {
6450    "type": "trailing_return_type",
6451    "named": true,
6452    "fields": {},
6453    "children": {
6454      "multiple": false,
6455      "required": true,
6456      "types": [
6457        {
6458          "type": "type_descriptor",
6459          "named": true
6460        }
6461      ]
6462    }
6463  },
6464  {
6465    "type": "translation_unit",
6466    "named": true,
6467    "fields": {},
6468    "children": {
6469      "multiple": true,
6470      "required": false,
6471      "types": [
6472        {
6473          "type": "_type_specifier",
6474          "named": true
6475        },
6476        {
6477          "type": "alias_declaration",
6478          "named": true
6479        },
6480        {
6481          "type": "attributed_statement",
6482          "named": true
6483        },
6484        {
6485          "type": "break_statement",
6486          "named": true
6487        },
6488        {
6489          "type": "case_statement",
6490          "named": true
6491        },
6492        {
6493          "type": "co_return_statement",
6494          "named": true
6495        },
6496        {
6497          "type": "co_yield_statement",
6498          "named": true
6499        },
6500        {
6501          "type": "compound_statement",
6502          "named": true
6503        },
6504        {
6505          "type": "concept_definition",
6506          "named": true
6507        },
6508        {
6509          "type": "continue_statement",
6510          "named": true
6511        },
6512        {
6513          "type": "declaration",
6514          "named": true
6515        },
6516        {
6517          "type": "do_statement",
6518          "named": true
6519        },
6520        {
6521          "type": "expression_statement",
6522          "named": true
6523        },
6524        {
6525          "type": "for_range_loop",
6526          "named": true
6527        },
6528        {
6529          "type": "for_statement",
6530          "named": true
6531        },
6532        {
6533          "type": "function_definition",
6534          "named": true
6535        },
6536        {
6537          "type": "goto_statement",
6538          "named": true
6539        },
6540        {
6541          "type": "if_statement",
6542          "named": true
6543        },
6544        {
6545          "type": "labeled_statement",
6546          "named": true
6547        },
6548        {
6549          "type": "linkage_specification",
6550          "named": true
6551        },
6552        {
6553          "type": "namespace_alias_definition",
6554          "named": true
6555        },
6556        {
6557          "type": "namespace_definition",
6558          "named": true
6559        },
6560        {
6561          "type": "preproc_call",
6562          "named": true
6563        },
6564        {
6565          "type": "preproc_def",
6566          "named": true
6567        },
6568        {
6569          "type": "preproc_function_def",
6570          "named": true
6571        },
6572        {
6573          "type": "preproc_if",
6574          "named": true
6575        },
6576        {
6577          "type": "preproc_ifdef",
6578          "named": true
6579        },
6580        {
6581          "type": "preproc_include",
6582          "named": true
6583        },
6584        {
6585          "type": "return_statement",
6586          "named": true
6587        },
6588        {
6589          "type": "static_assert_declaration",
6590          "named": true
6591        },
6592        {
6593          "type": "switch_statement",
6594          "named": true
6595        },
6596        {
6597          "type": "template_declaration",
6598          "named": true
6599        },
6600        {
6601          "type": "template_instantiation",
6602          "named": true
6603        },
6604        {
6605          "type": "throw_statement",
6606          "named": true
6607        },
6608        {
6609          "type": "try_statement",
6610          "named": true
6611        },
6612        {
6613          "type": "type_definition",
6614          "named": true
6615        },
6616        {
6617          "type": "using_declaration",
6618          "named": true
6619        },
6620        {
6621          "type": "while_statement",
6622          "named": true
6623        }
6624      ]
6625    }
6626  },
6627  {
6628    "type": "try_statement",
6629    "named": true,
6630    "fields": {
6631      "body": {
6632        "multiple": false,
6633        "required": true,
6634        "types": [
6635          {
6636            "type": "compound_statement",
6637            "named": true
6638          }
6639        ]
6640      }
6641    },
6642    "children": {
6643      "multiple": true,
6644      "required": true,
6645      "types": [
6646        {
6647          "type": "catch_clause",
6648          "named": true
6649        },
6650        {
6651          "type": "field_initializer_list",
6652          "named": true
6653        }
6654      ]
6655    }
6656  },
6657  {
6658    "type": "type_definition",
6659    "named": true,
6660    "fields": {
6661      "declarator": {
6662        "multiple": true,
6663        "required": true,
6664        "types": [
6665          {
6666            "type": "_type_declarator",
6667            "named": true
6668          }
6669        ]
6670      },
6671      "type": {
6672        "multiple": false,
6673        "required": true,
6674        "types": [
6675          {
6676            "type": "_type_specifier",
6677            "named": true
6678          }
6679        ]
6680      }
6681    },
6682    "children": {
6683      "multiple": true,
6684      "required": false,
6685      "types": [
6686        {
6687          "type": "attribute_specifier",
6688          "named": true
6689        },
6690        {
6691          "type": "type_qualifier",
6692          "named": true
6693        }
6694      ]
6695    }
6696  },
6697  {
6698    "type": "type_descriptor",
6699    "named": true,
6700    "fields": {
6701      "declarator": {
6702        "multiple": false,
6703        "required": false,
6704        "types": [
6705          {
6706            "type": "_abstract_declarator",
6707            "named": true
6708          }
6709        ]
6710      },
6711      "type": {
6712        "multiple": false,
6713        "required": true,
6714        "types": [
6715          {
6716            "type": "_type_specifier",
6717            "named": true
6718          }
6719        ]
6720      }
6721    },
6722    "children": {
6723      "multiple": true,
6724      "required": false,
6725      "types": [
6726        {
6727          "type": "type_qualifier",
6728          "named": true
6729        }
6730      ]
6731    }
6732  },
6733  {
6734    "type": "type_parameter_declaration",
6735    "named": true,
6736    "fields": {},
6737    "children": {
6738      "multiple": false,
6739      "required": false,
6740      "types": [
6741        {
6742          "type": "type_identifier",
6743          "named": true
6744        }
6745      ]
6746    }
6747  },
6748  {
6749    "type": "type_qualifier",
6750    "named": true,
6751    "fields": {}
6752  },
6753  {
6754    "type": "type_requirement",
6755    "named": true,
6756    "fields": {},
6757    "children": {
6758      "multiple": false,
6759      "required": true,
6760      "types": [
6761        {
6762          "type": "qualified_identifier",
6763          "named": true
6764        },
6765        {
6766          "type": "template_type",
6767          "named": true
6768        },
6769        {
6770          "type": "type_identifier",
6771          "named": true
6772        }
6773      ]
6774    }
6775  },
6776  {
6777    "type": "unary_expression",
6778    "named": true,
6779    "fields": {
6780      "argument": {
6781        "multiple": false,
6782        "required": true,
6783        "types": [
6784          {
6785            "type": "_expression",
6786            "named": true
6787          },
6788          {
6789            "type": "preproc_defined",
6790            "named": true
6791          }
6792        ]
6793      },
6794      "operator": {
6795        "multiple": false,
6796        "required": true,
6797        "types": [
6798          {
6799            "type": "!",
6800            "named": false
6801          },
6802          {
6803            "type": "+",
6804            "named": false
6805          },
6806          {
6807            "type": "-",
6808            "named": false
6809          },
6810          {
6811            "type": "compl",
6812            "named": false
6813          },
6814          {
6815            "type": "not",
6816            "named": false
6817          },
6818          {
6819            "type": "~",
6820            "named": false
6821          }
6822        ]
6823      }
6824    }
6825  },
6826  {
6827    "type": "union_specifier",
6828    "named": true,
6829    "fields": {
6830      "body": {
6831        "multiple": false,
6832        "required": false,
6833        "types": [
6834          {
6835            "type": "field_declaration_list",
6836            "named": true
6837          }
6838        ]
6839      },
6840      "name": {
6841        "multiple": false,
6842        "required": false,
6843        "types": [
6844          {
6845            "type": "qualified_identifier",
6846            "named": true
6847          },
6848          {
6849            "type": "template_type",
6850            "named": true
6851          },
6852          {
6853            "type": "type_identifier",
6854            "named": true
6855          }
6856        ]
6857      }
6858    },
6859    "children": {
6860      "multiple": true,
6861      "required": false,
6862      "types": [
6863        {
6864          "type": "alignas_specifier",
6865          "named": true
6866        },
6867        {
6868          "type": "attribute_declaration",
6869          "named": true
6870        },
6871        {
6872          "type": "attribute_specifier",
6873          "named": true
6874        },
6875        {
6876          "type": "base_class_clause",
6877          "named": true
6878        },
6879        {
6880          "type": "ms_declspec_modifier",
6881          "named": true
6882        },
6883        {
6884          "type": "virtual_specifier",
6885          "named": true
6886        }
6887      ]
6888    }
6889  },
6890  {
6891    "type": "update_expression",
6892    "named": true,
6893    "fields": {
6894      "argument": {
6895        "multiple": false,
6896        "required": true,
6897        "types": [
6898          {
6899            "type": "_expression",
6900            "named": true
6901          }
6902        ]
6903      },
6904      "operator": {
6905        "multiple": false,
6906        "required": true,
6907        "types": [
6908          {
6909            "type": "++",
6910            "named": false
6911          },
6912          {
6913            "type": "--",
6914            "named": false
6915          }
6916        ]
6917      }
6918    }
6919  },
6920  {
6921    "type": "user_defined_literal",
6922    "named": true,
6923    "fields": {},
6924    "children": {
6925      "multiple": true,
6926      "required": true,
6927      "types": [
6928        {
6929          "type": "char_literal",
6930          "named": true
6931        },
6932        {
6933          "type": "concatenated_string",
6934          "named": true
6935        },
6936        {
6937          "type": "literal_suffix",
6938          "named": true
6939        },
6940        {
6941          "type": "number_literal",
6942          "named": true
6943        },
6944        {
6945          "type": "raw_string_literal",
6946          "named": true
6947        },
6948        {
6949          "type": "string_literal",
6950          "named": true
6951        }
6952      ]
6953    }
6954  },
6955  {
6956    "type": "using_declaration",
6957    "named": true,
6958    "fields": {},
6959    "children": {
6960      "multiple": false,
6961      "required": true,
6962      "types": [
6963        {
6964          "type": "identifier",
6965          "named": true
6966        },
6967        {
6968          "type": "qualified_identifier",
6969          "named": true
6970        }
6971      ]
6972    }
6973  },
6974  {
6975    "type": "variadic_declarator",
6976    "named": true,
6977    "fields": {},
6978    "children": {
6979      "multiple": false,
6980      "required": false,
6981      "types": [
6982        {
6983          "type": "identifier",
6984          "named": true
6985        }
6986      ]
6987    }
6988  },
6989  {
6990    "type": "variadic_parameter",
6991    "named": true,
6992    "fields": {}
6993  },
6994  {
6995    "type": "variadic_parameter_declaration",
6996    "named": true,
6997    "fields": {
6998      "declarator": {
6999        "multiple": false,
7000        "required": true,
7001        "types": [
7002          {
7003            "type": "reference_declarator",
7004            "named": true
7005          },
7006          {
7007            "type": "variadic_declarator",
7008            "named": true
7009          }
7010        ]
7011      },
7012      "type": {
7013        "multiple": false,
7014        "required": true,
7015        "types": [
7016          {
7017            "type": "_type_specifier",
7018            "named": true
7019          }
7020        ]
7021      }
7022    },
7023    "children": {
7024      "multiple": true,
7025      "required": false,
7026      "types": [
7027        {
7028          "type": "alignas_specifier",
7029          "named": true
7030        },
7031        {
7032          "type": "attribute_declaration",
7033          "named": true
7034        },
7035        {
7036          "type": "attribute_specifier",
7037          "named": true
7038        },
7039        {
7040          "type": "ms_declspec_modifier",
7041          "named": true
7042        },
7043        {
7044          "type": "storage_class_specifier",
7045          "named": true
7046        },
7047        {
7048          "type": "type_qualifier",
7049          "named": true
7050        },
7051        {
7052          "type": "virtual",
7053          "named": true
7054        }
7055      ]
7056    }
7057  },
7058  {
7059    "type": "variadic_type_parameter_declaration",
7060    "named": true,
7061    "fields": {},
7062    "children": {
7063      "multiple": false,
7064      "required": false,
7065      "types": [
7066        {
7067          "type": "type_identifier",
7068          "named": true
7069        }
7070      ]
7071    }
7072  },
7073  {
7074    "type": "virtual",
7075    "named": true,
7076    "fields": {}
7077  },
7078  {
7079    "type": "virtual_specifier",
7080    "named": true,
7081    "fields": {}
7082  },
7083  {
7084    "type": "while_statement",
7085    "named": true,
7086    "fields": {
7087      "body": {
7088        "multiple": false,
7089        "required": true,
7090        "types": [
7091          {
7092            "type": "_statement",
7093            "named": true
7094          }
7095        ]
7096      },
7097      "condition": {
7098        "multiple": false,
7099        "required": true,
7100        "types": [
7101          {
7102            "type": "condition_clause",
7103            "named": true
7104          }
7105        ]
7106      }
7107    }
7108  },
7109  {
7110    "type": "\n",
7111    "named": false
7112  },
7113  {
7114    "type": "!",
7115    "named": false
7116  },
7117  {
7118    "type": "!=",
7119    "named": false
7120  },
7121  {
7122    "type": "\"",
7123    "named": false
7124  },
7125  {
7126    "type": "\"\"",
7127    "named": false
7128  },
7129  {
7130    "type": "#define",
7131    "named": false
7132  },
7133  {
7134    "type": "#elif",
7135    "named": false
7136  },
7137  {
7138    "type": "#elifdef",
7139    "named": false
7140  },
7141  {
7142    "type": "#elifndef",
7143    "named": false
7144  },
7145  {
7146    "type": "#else",
7147    "named": false
7148  },
7149  {
7150    "type": "#endif",
7151    "named": false
7152  },
7153  {
7154    "type": "#if",
7155    "named": false
7156  },
7157  {
7158    "type": "#ifdef",
7159    "named": false
7160  },
7161  {
7162    "type": "#ifndef",
7163    "named": false
7164  },
7165  {
7166    "type": "#include",
7167    "named": false
7168  },
7169  {
7170    "type": "%",
7171    "named": false
7172  },
7173  {
7174    "type": "%=",
7175    "named": false
7176  },
7177  {
7178    "type": "&",
7179    "named": false
7180  },
7181  {
7182    "type": "&&",
7183    "named": false
7184  },
7185  {
7186    "type": "&=",
7187    "named": false
7188  },
7189  {
7190    "type": "'",
7191    "named": false
7192  },
7193  {
7194    "type": "(",
7195    "named": false
7196  },
7197  {
7198    "type": "()",
7199    "named": false
7200  },
7201  {
7202    "type": ")",
7203    "named": false
7204  },
7205  {
7206    "type": "*",
7207    "named": false
7208  },
7209  {
7210    "type": "*=",
7211    "named": false
7212  },
7213  {
7214    "type": "+",
7215    "named": false
7216  },
7217  {
7218    "type": "++",
7219    "named": false
7220  },
7221  {
7222    "type": "+=",
7223    "named": false
7224  },
7225  {
7226    "type": ",",
7227    "named": false
7228  },
7229  {
7230    "type": "-",
7231    "named": false
7232  },
7233  {
7234    "type": "--",
7235    "named": false
7236  },
7237  {
7238    "type": "-=",
7239    "named": false
7240  },
7241  {
7242    "type": "->",
7243    "named": false
7244  },
7245  {
7246    "type": "->*",
7247    "named": false
7248  },
7249  {
7250    "type": ".",
7251    "named": false
7252  },
7253  {
7254    "type": ".*",
7255    "named": false
7256  },
7257  {
7258    "type": "...",
7259    "named": false
7260  },
7261  {
7262    "type": "/",
7263    "named": false
7264  },
7265  {
7266    "type": "/=",
7267    "named": false
7268  },
7269  {
7270    "type": "0",
7271    "named": false
7272  },
7273  {
7274    "type": ":",
7275    "named": false
7276  },
7277  {
7278    "type": "::",
7279    "named": false
7280  },
7281  {
7282    "type": ";",
7283    "named": false
7284  },
7285  {
7286    "type": "<",
7287    "named": false
7288  },
7289  {
7290    "type": "<<",
7291    "named": false
7292  },
7293  {
7294    "type": "<<=",
7295    "named": false
7296  },
7297  {
7298    "type": "<=",
7299    "named": false
7300  },
7301  {
7302    "type": "<=>",
7303    "named": false
7304  },
7305  {
7306    "type": "=",
7307    "named": false
7308  },
7309  {
7310    "type": "==",
7311    "named": false
7312  },
7313  {
7314    "type": ">",
7315    "named": false
7316  },
7317  {
7318    "type": ">=",
7319    "named": false
7320  },
7321  {
7322    "type": ">>",
7323    "named": false
7324  },
7325  {
7326    "type": ">>=",
7327    "named": false
7328  },
7329  {
7330    "type": "?",
7331    "named": false
7332  },
7333  {
7334    "type": "L\"",
7335    "named": false
7336  },
7337  {
7338    "type": "L'",
7339    "named": false
7340  },
7341  {
7342    "type": "LR\"",
7343    "named": false
7344  },
7345  {
7346    "type": "NULL",
7347    "named": false
7348  },
7349  {
7350    "type": "R\"",
7351    "named": false
7352  },
7353  {
7354    "type": "U\"",
7355    "named": false
7356  },
7357  {
7358    "type": "U'",
7359    "named": false
7360  },
7361  {
7362    "type": "UR\"",
7363    "named": false
7364  },
7365  {
7366    "type": "[",
7367    "named": false
7368  },
7369  {
7370    "type": "[[",
7371    "named": false
7372  },
7373  {
7374    "type": "[]",
7375    "named": false
7376  },
7377  {
7378    "type": "]",
7379    "named": false
7380  },
7381  {
7382    "type": "]]",
7383    "named": false
7384  },
7385  {
7386    "type": "^",
7387    "named": false
7388  },
7389  {
7390    "type": "^=",
7391    "named": false
7392  },
7393  {
7394    "type": "_Alignof",
7395    "named": false
7396  },
7397  {
7398    "type": "_Atomic",
7399    "named": false
7400  },
7401  {
7402    "type": "_Generic",
7403    "named": false
7404  },
7405  {
7406    "type": "_Noreturn",
7407    "named": false
7408  },
7409  {
7410    "type": "__alignof",
7411    "named": false
7412  },
7413  {
7414    "type": "__alignof__",
7415    "named": false
7416  },
7417  {
7418    "type": "__asm__",
7419    "named": false
7420  },
7421  {
7422    "type": "__attribute__",
7423    "named": false
7424  },
7425  {
7426    "type": "__based",
7427    "named": false
7428  },
7429  {
7430    "type": "__cdecl",
7431    "named": false
7432  },
7433  {
7434    "type": "__clrcall",
7435    "named": false
7436  },
7437  {
7438    "type": "__declspec",
7439    "named": false
7440  },
7441  {
7442    "type": "__except",
7443    "named": false
7444  },
7445  {
7446    "type": "__extension__",
7447    "named": false
7448  },
7449  {
7450    "type": "__fastcall",
7451    "named": false
7452  },
7453  {
7454    "type": "__finally",
7455    "named": false
7456  },
7457  {
7458    "type": "__forceinline",
7459    "named": false
7460  },
7461  {
7462    "type": "__inline",
7463    "named": false
7464  },
7465  {
7466    "type": "__inline__",
7467    "named": false
7468  },
7469  {
7470    "type": "__leave",
7471    "named": false
7472  },
7473  {
7474    "type": "__restrict__",
7475    "named": false
7476  },
7477  {
7478    "type": "__stdcall",
7479    "named": false
7480  },
7481  {
7482    "type": "__thiscall",
7483    "named": false
7484  },
7485  {
7486    "type": "__thread",
7487    "named": false
7488  },
7489  {
7490    "type": "__try",
7491    "named": false
7492  },
7493  {
7494    "type": "__unaligned",
7495    "named": false
7496  },
7497  {
7498    "type": "__vectorcall",
7499    "named": false
7500  },
7501  {
7502    "type": "_alignof",
7503    "named": false
7504  },
7505  {
7506    "type": "_unaligned",
7507    "named": false
7508  },
7509  {
7510    "type": "alignas",
7511    "named": false
7512  },
7513  {
7514    "type": "alignof",
7515    "named": false
7516  },
7517  {
7518    "type": "and",
7519    "named": false
7520  },
7521  {
7522    "type": "and_eq",
7523    "named": false
7524  },
7525  {
7526    "type": "asm",
7527    "named": false
7528  },
7529  {
7530    "type": "auto",
7531    "named": true
7532  },
7533  {
7534    "type": "bitand",
7535    "named": false
7536  },
7537  {
7538    "type": "bitor",
7539    "named": false
7540  },
7541  {
7542    "type": "break",
7543    "named": false
7544  },
7545  {
7546    "type": "case",
7547    "named": false
7548  },
7549  {
7550    "type": "catch",
7551    "named": false
7552  },
7553  {
7554    "type": "character",
7555    "named": true
7556  },
7557  {
7558    "type": "class",
7559    "named": false
7560  },
7561  {
7562    "type": "co_await",
7563    "named": false
7564  },
7565  {
7566    "type": "co_return",
7567    "named": false
7568  },
7569  {
7570    "type": "co_yield",
7571    "named": false
7572  },
7573  {
7574    "type": "comment",
7575    "named": true
7576  },
7577  {
7578    "type": "compl",
7579    "named": false
7580  },
7581  {
7582    "type": "concept",
7583    "named": false
7584  },
7585  {
7586    "type": "const",
7587    "named": false
7588  },
7589  {
7590    "type": "consteval",
7591    "named": false
7592  },
7593  {
7594    "type": "constexpr",
7595    "named": false
7596  },
7597  {
7598    "type": "constinit",
7599    "named": false
7600  },
7601  {
7602    "type": "continue",
7603    "named": false
7604  },
7605  {
7606    "type": "decltype",
7607    "named": false
7608  },
7609  {
7610    "type": "default",
7611    "named": false
7612  },
7613  {
7614    "type": "defined",
7615    "named": false
7616  },
7617  {
7618    "type": "delete",
7619    "named": false
7620  },
7621  {
7622    "type": "do",
7623    "named": false
7624  },
7625  {
7626    "type": "else",
7627    "named": false
7628  },
7629  {
7630    "type": "enum",
7631    "named": false
7632  },
7633  {
7634    "type": "escape_sequence",
7635    "named": true
7636  },
7637  {
7638    "type": "explicit",
7639    "named": false
7640  },
7641  {
7642    "type": "extern",
7643    "named": false
7644  },
7645  {
7646    "type": "false",
7647    "named": true
7648  },
7649  {
7650    "type": "field_identifier",
7651    "named": true
7652  },
7653  {
7654    "type": "final",
7655    "named": false
7656  },
7657  {
7658    "type": "for",
7659    "named": false
7660  },
7661  {
7662    "type": "friend",
7663    "named": false
7664  },
7665  {
7666    "type": "goto",
7667    "named": false
7668  },
7669  {
7670    "type": "identifier",
7671    "named": true
7672  },
7673  {
7674    "type": "if",
7675    "named": false
7676  },
7677  {
7678    "type": "inline",
7679    "named": false
7680  },
7681  {
7682    "type": "literal_suffix",
7683    "named": true
7684  },
7685  {
7686    "type": "long",
7687    "named": false
7688  },
7689  {
7690    "type": "ms_restrict_modifier",
7691    "named": true
7692  },
7693  {
7694    "type": "ms_signed_ptr_modifier",
7695    "named": true
7696  },
7697  {
7698    "type": "ms_unsigned_ptr_modifier",
7699    "named": true
7700  },
7701  {
7702    "type": "mutable",
7703    "named": false
7704  },
7705  {
7706    "type": "namespace",
7707    "named": false
7708  },
7709  {
7710    "type": "namespace_identifier",
7711    "named": true
7712  },
7713  {
7714    "type": "new",
7715    "named": false
7716  },
7717  {
7718    "type": "noexcept",
7719    "named": false
7720  },
7721  {
7722    "type": "noreturn",
7723    "named": false
7724  },
7725  {
7726    "type": "not",
7727    "named": false
7728  },
7729  {
7730    "type": "not_eq",
7731    "named": false
7732  },
7733  {
7734    "type": "nullptr",
7735    "named": false
7736  },
7737  {
7738    "type": "number_literal",
7739    "named": true
7740  },
7741  {
7742    "type": "offsetof",
7743    "named": false
7744  },
7745  {
7746    "type": "operator",
7747    "named": false
7748  },
7749  {
7750    "type": "or",
7751    "named": false
7752  },
7753  {
7754    "type": "or_eq",
7755    "named": false
7756  },
7757  {
7758    "type": "override",
7759    "named": false
7760  },
7761  {
7762    "type": "preproc_arg",
7763    "named": true
7764  },
7765  {
7766    "type": "preproc_directive",
7767    "named": true
7768  },
7769  {
7770    "type": "primitive_type",
7771    "named": true
7772  },
7773  {
7774    "type": "private",
7775    "named": false
7776  },
7777  {
7778    "type": "protected",
7779    "named": false
7780  },
7781  {
7782    "type": "public",
7783    "named": false
7784  },
7785  {
7786    "type": "raw_string_content",
7787    "named": true
7788  },
7789  {
7790    "type": "raw_string_delimiter",
7791    "named": true
7792  },
7793  {
7794    "type": "register",
7795    "named": false
7796  },
7797  {
7798    "type": "requires",
7799    "named": false
7800  },
7801  {
7802    "type": "restrict",
7803    "named": false
7804  },
7805  {
7806    "type": "return",
7807    "named": false
7808  },
7809  {
7810    "type": "short",
7811    "named": false
7812  },
7813  {
7814    "type": "signed",
7815    "named": false
7816  },
7817  {
7818    "type": "sizeof",
7819    "named": false
7820  },
7821  {
7822    "type": "statement_identifier",
7823    "named": true
7824  },
7825  {
7826    "type": "static",
7827    "named": false
7828  },
7829  {
7830    "type": "static_assert",
7831    "named": false
7832  },
7833  {
7834    "type": "string_content",
7835    "named": true
7836  },
7837  {
7838    "type": "struct",
7839    "named": false
7840  },
7841  {
7842    "type": "switch",
7843    "named": false
7844  },
7845  {
7846    "type": "system_lib_string",
7847    "named": true
7848  },
7849  {
7850    "type": "template",
7851    "named": false
7852  },
7853  {
7854    "type": "this",
7855    "named": true
7856  },
7857  {
7858    "type": "thread_local",
7859    "named": false
7860  },
7861  {
7862    "type": "throw",
7863    "named": false
7864  },
7865  {
7866    "type": "true",
7867    "named": true
7868  },
7869  {
7870    "type": "try",
7871    "named": false
7872  },
7873  {
7874    "type": "type_identifier",
7875    "named": true
7876  },
7877  {
7878    "type": "typedef",
7879    "named": false
7880  },
7881  {
7882    "type": "typename",
7883    "named": false
7884  },
7885  {
7886    "type": "u\"",
7887    "named": false
7888  },
7889  {
7890    "type": "u'",
7891    "named": false
7892  },
7893  {
7894    "type": "u8\"",
7895    "named": false
7896  },
7897  {
7898    "type": "u8'",
7899    "named": false
7900  },
7901  {
7902    "type": "u8R\"",
7903    "named": false
7904  },
7905  {
7906    "type": "uR\"",
7907    "named": false
7908  },
7909  {
7910    "type": "union",
7911    "named": false
7912  },
7913  {
7914    "type": "unsigned",
7915    "named": false
7916  },
7917  {
7918    "type": "using",
7919    "named": false
7920  },
7921  {
7922    "type": "virtual",
7923    "named": false
7924  },
7925  {
7926    "type": "volatile",
7927    "named": false
7928  },
7929  {
7930    "type": "while",
7931    "named": false
7932  },
7933  {
7934    "type": "xor",
7935    "named": false
7936  },
7937  {
7938    "type": "xor_eq",
7939    "named": false
7940  },
7941  {
7942    "type": "{",
7943    "named": false
7944  },
7945  {
7946    "type": "|",
7947    "named": false
7948  },
7949  {
7950    "type": "|=",
7951    "named": false
7952  },
7953  {
7954    "type": "||",
7955    "named": false
7956  },
7957  {
7958    "type": "}",
7959    "named": false
7960  },
7961  {
7962    "type": "~",
7963    "named": false
7964  }
7965]