Constant tree_sitter_cpp::NODE_TYPES[][src]

pub const NODE_TYPES: &str = "[\n  {\n    \"type\": \"_abstract_declarator\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"abstract_array_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"abstract_function_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"abstract_parenthesized_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"abstract_pointer_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"abstract_reference_declarator\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_declarator\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"array_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"destructor_name\",\n        \"named\": true\n      },\n      {\n        \"type\": \"function_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"identifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"operator_name\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"pointer_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"reference_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"scoped_identifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"structured_binding_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"template_function\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"assignment_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"binary_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"call_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"cast_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"char_literal\",\n        \"named\": true\n      },\n      {\n        \"type\": \"compound_literal_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"concatenated_string\",\n        \"named\": true\n      },\n      {\n        \"type\": \"conditional_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"delete_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"false\",\n        \"named\": true\n      },\n      {\n        \"type\": \"field_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"identifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"lambda_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"new_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"null\",\n        \"named\": true\n      },\n      {\n        \"type\": \"nullptr\",\n        \"named\": true\n      },\n      {\n        \"type\": \"number_literal\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parameter_pack_expansion\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"pointer_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"raw_string_literal\",\n        \"named\": true\n      },\n      {\n        \"type\": \"scoped_identifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"sizeof_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"string_literal\",\n        \"named\": true\n      },\n      {\n        \"type\": \"subscript_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"template_function\",\n        \"named\": true\n      },\n      {\n        \"type\": \"this\",\n        \"named\": true\n      },\n      {\n        \"type\": \"true\",\n        \"named\": true\n      },\n      {\n        \"type\": \"unary_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"update_expression\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_field_declarator\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"array_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"field_identifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"function_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"operator_name\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"pointer_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"reference_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"template_method\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_statement\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"break_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"case_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"compound_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"continue_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"do_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"expression_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"for_range_loop\",\n        \"named\": true\n      },\n      {\n        \"type\": \"for_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"goto_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"if_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"labeled_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"return_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"switch_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"throw_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"try_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"while_statement\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_type_declarator\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"array_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"function_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"pointer_declarator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"type_identifier\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_type_specifier\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"auto\",\n        \"named\": true\n      },\n      {\n        \"type\": \"class_specifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"decltype\",\n        \"named\": true\n      },\n      {\n        \"type\": \"dependent_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"enum_specifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"primitive_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"scoped_type_identifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"sized_type_specifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"struct_specifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"template_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"type_identifier\",\n        \"named\": true\n      },\n      {\n        \"type\": \"union_specifier\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"abstract_array_declarator\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_abstract_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"size\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"abstract_function_declarator\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_abstract_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"parameters\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"parameter_list\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"noexcept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"throw_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trailing_return_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"abstract_parenthesized_declarator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_abstract_declarator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"abstract_pointer_declarator\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_abstract_declarator\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"abstract_reference_declarator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_abstract_declarator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"access_specifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"alias_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_descriptor\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"argument_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"initializer_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_defined\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"array_declarator\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_field_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_type_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"size\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"assignment_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"call_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pointer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"scoped_namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"subscript_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"attribute\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"attribute_specifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"argument_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"base_class_clause\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"scoped_type_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"binary_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"preproc_defined\",\n            \"named\": true\n          }\n        ]\n      },\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"!=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"==\",\n            \"named\": false\n          },\n          {\n            \"type\": \">\",\n            \"named\": false\n          },\n          {\n            \"type\": \">=\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"|\",\n            \"named\": false\n          },\n          {\n            \"type\": \"||\",\n            \"named\": false\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"preproc_defined\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"bitfield_clause\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"break_statement\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"call_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"arguments\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"argument_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"function\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"case_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"break_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"compound_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"continue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"do_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"labeled_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"switch_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"cast_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_descriptor\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"catch_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"compound_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"parameters\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"parameter_list\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"char_literal\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_specifier\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"field_declaration_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"scoped_type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"base_class_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"virtual_specifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"comma_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"comma_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"compound_literal_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"scoped_type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_descriptor\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"initializer_list\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"compound_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linkage_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"namespace_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_function_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_if\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_ifdef\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"static_assert_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"using_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"concatenated_string\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"raw_string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"condition_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"initializer\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"declaration\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expression_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"comma_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"declaration\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"conditional_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"alternative\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"consequence\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"continue_statement\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"init_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_cast\",\n            \"named\": true\n          }\n        ]\n      },\n      \"default_value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"initializer_list\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"explicit_function_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"storage_class_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"virtual_function_specifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"declaration_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linkage_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"namespace_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_function_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_if\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_ifdef\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"static_assert_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"using_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"decltype\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"default_method_clause\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"delete_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"delete_method_clause\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"dependent_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"destructor_name\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"do_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"enum_specifier\",\n    \"named\": true,\n    \"fields\": {\n      \"base\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"scoped_type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sized_type_specifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"enumerator_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"scoped_type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"enumerator\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"enumerator_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"enumerator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"explicit_function_specifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"expression_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"comma_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_field_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"default_value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"initializer_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitfield_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"storage_class_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"virtual_function_specifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_declaration_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"friend_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_function_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_if\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_ifdef\",\n          \"named\": true\n        },\n        {\n          \"type\": \"static_assert_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"using_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_designator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"field\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"destructor_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_method\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"field_initializer\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"argument_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"initializer_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"scoped_field_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_initializer_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_initializer\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"for_range_loop\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"initializer_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"storage_class_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"for_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"initializer\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"comma_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"declaration\",\n            \"named\": true\n          }\n        ]\n      },\n      \"update\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"comma_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"friend_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"scoped_type_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"function_declarator\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_field_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_type_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"parameters\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"parameter_list\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"noexcept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"throw_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trailing_return_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"virtual_specifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"function_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"compound_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_field_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_cast\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"default_method_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delete_method_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"explicit_function_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_initializer_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_call_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"storage_class_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"virtual_function_specifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"goto_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"label\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"statement_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"if_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"alternative\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"condition_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"consequence\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_statement\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"init_declarator\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"argument_list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"initializer_list\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"initializer_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"initializer_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"initializer_pair\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"initializer_pair\",\n    \"named\": true,\n    \"fields\": {\n      \"designator\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"field_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"subscript_designator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"initializer_list\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"labeled_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"label\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"statement_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"lambda_capture_specifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_default_capture\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"lambda_default_capture\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"lambda_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"compound_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"captures\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"lambda_capture_specifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"abstract_function_declarator\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"linkage_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"declaration\",\n            \"named\": true\n          },\n          {\n            \"type\": \"declaration_list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_definition\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"ms_based_modifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"argument_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"ms_call_modifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"ms_declspec_modifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"ms_pointer_modifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"ms_restrict_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_signed_ptr_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_unaligned_ptr_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_unsigned_ptr_modifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"ms_unaligned_ptr_modifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"namespace_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"declaration_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"new_declarator\",\n    \"named\": true,\n    \"fields\": {\n      \"length\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"new_declarator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"new_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"arguments\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"argument_list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"initializer_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"new_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"placement\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"argument_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"noexcept\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"operator_cast\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_abstract_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"namespace\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"scoped_namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"storage_class_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"optional_parameter_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"default_value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"storage_class_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"optional_type_parameter_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"default_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"parameter_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_abstract_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"storage_class_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parameter_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"optional_parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variadic_parameter_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parameter_pack_expansion\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_descriptor\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"parenthesized_declarator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_declarator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_field_declarator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type_declarator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"comma_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_defined\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"pointer_declarator\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_field_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_type_declarator\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"ms_based_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_pointer_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"pointer_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"preproc_call\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"preproc_arg\",\n            \"named\": true\n          }\n        ]\n      },\n      \"directive\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"preproc_directive\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"preproc_def\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"preproc_arg\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"preproc_defined\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"preproc_elif\",\n    \"named\": true,\n    \"fields\": {\n      \"alternative\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"preproc_elif\",\n            \"named\": true\n          },\n          {\n            \"type\": \"preproc_else\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"preproc_defined\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"access_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"friend_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linkage_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"namespace_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_function_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_if\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_ifdef\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"static_assert_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"using_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"preproc_else\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"access_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"friend_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linkage_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"namespace_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_function_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_if\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_ifdef\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"static_assert_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"using_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"preproc_function_def\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"parameters\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"preproc_params\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"preproc_arg\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"preproc_if\",\n    \"named\": true,\n    \"fields\": {\n      \"alternative\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"preproc_elif\",\n            \"named\": true\n          },\n          {\n            \"type\": \"preproc_else\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"preproc_defined\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"access_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"friend_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linkage_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"namespace_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_function_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_if\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_ifdef\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"static_assert_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"using_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"preproc_ifdef\",\n    \"named\": true,\n    \"fields\": {\n      \"alternative\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"preproc_elif\",\n            \"named\": true\n          },\n          {\n            \"type\": \"preproc_else\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"access_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"friend_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linkage_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"namespace_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_function_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_if\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_ifdef\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"static_assert_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"using_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"preproc_include\",\n    \"named\": true,\n    \"fields\": {\n      \"path\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"call_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"system_lib_string\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"preproc_params\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"reference_declarator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_declarator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_field_declarator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variadic_declarator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"return_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"comma_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"initializer_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"scoped_field_identifier\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"destructor_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"namespace\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"scoped_namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"scoped_identifier\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"destructor_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"namespace\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"scoped_namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"scoped_namespace_identifier\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"namespace_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"namespace\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"scoped_namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"scoped_type_identifier\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"namespace\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"scoped_namespace_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"sized_type_specifier\",\n    \"named\": true,\n    \"fields\": {\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"primitive_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"sizeof_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"type_descriptor\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"static_assert_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"message\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"concatenated_string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"storage_class_specifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"string_literal\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"struct_specifier\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"field_declaration_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"scoped_type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"base_class_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"virtual_specifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"structured_binding_declarator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"subscript_designator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"subscript_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"index\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"switch_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"compound_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"condition_clause\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"template_argument_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_descriptor\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"template_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"parameters\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"template_parameter_list\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"template_function\",\n    \"named\": true,\n    \"fields\": {\n      \"arguments\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"template_argument_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"scoped_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"template_instantiation\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"storage_class_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"template_method\",\n    \"named\": true,\n    \"fields\": {\n      \"arguments\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"template_argument_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"field_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"scoped_field_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"template_parameter_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"optional_parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"optional_type_parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_template_parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variadic_parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variadic_type_parameter_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"template_template_parameter_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"parameters\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"template_parameter_list\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"optional_type_parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_parameter_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variadic_type_parameter_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"template_type\",\n    \"named\": true,\n    \"fields\": {\n      \"arguments\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"template_argument_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"scoped_type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"throw_specifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_descriptor\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"throw_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"trailing_return_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_abstract_declarator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"translation_unit\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linkage_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"namespace_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_function_def\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_if\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_ifdef\",\n          \"named\": true\n        },\n        {\n          \"type\": \"preproc_include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"static_assert_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"template_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"using_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"try_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"compound_statement\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"catch_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_descriptor\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_abstract_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_parameter_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_qualifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"unary_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"preproc_defined\",\n            \"named\": true\n          }\n        ]\n      },\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"!\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~\",\n            \"named\": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"union_specifier\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"field_declaration_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"scoped_type_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"template_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"base_class_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"virtual_specifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"update_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"++\",\n            \"named\": false\n          },\n          {\n            \"type\": \"--\",\n            \"named\": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"using_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"scoped_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"variadic_declarator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"variadic_parameter_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"declarator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"reference_declarator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variadic_declarator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_type_specifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ms_declspec_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"storage_class_specifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_qualifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"variadic_type_parameter_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"virtual_function_specifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"virtual_specifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"while_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"condition_clause\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"\\n\",\n    \"named\": false\n  },\n  {\n    \"type\": \"!\",\n    \"named\": false\n  },\n  {\n    \"type\": \"!=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#define\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#elif\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#endif\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#ifdef\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#ifndef\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#include\",\n    \"named\": false\n  },\n  {\n    \"type\": \"%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"%=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\'\",\n    \"named\": false\n  },\n  {\n    \"type\": \"(\",\n    \"named\": false\n  },\n  {\n    \"type\": \")\",\n    \"named\": false\n  },\n  {\n    \"type\": \"*\",\n    \"named\": false\n  },\n  {\n    \"type\": \"*=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+\",\n    \"named\": false\n  },\n  {\n    \"type\": \"++\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+=\",\n    \"named\": false\n  },\n  {\n    \"type\": \",\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-\",\n    \"named\": false\n  },\n  {\n    \"type\": \"--\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"->\",\n    \"named\": false\n  },\n  {\n    \"type\": \".\",\n    \"named\": false\n  },\n  {\n    \"type\": \"...\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/=\",\n    \"named\": false\n  },\n  {\n    \"type\": \":\",\n    \"named\": false\n  },\n  {\n    \"type\": \"::\",\n    \"named\": false\n  },\n  {\n    \"type\": \";\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<<=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"==\",\n    \"named\": false\n  },\n  {\n    \"type\": \">\",\n    \"named\": false\n  },\n  {\n    \"type\": \">=\",\n    \"named\": false\n  },\n  {\n    \"type\": \">>\",\n    \"named\": false\n  },\n  {\n    \"type\": \">>=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"?\",\n    \"named\": false\n  },\n  {\n    \"type\": \"L\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"L\'\",\n    \"named\": false\n  },\n  {\n    \"type\": \"U\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"U\'\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[[\",\n    \"named\": false\n  },\n  {\n    \"type\": \"]\",\n    \"named\": false\n  },\n  {\n    \"type\": \"]]\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"_Atomic\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__attribute__\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__based\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__cdecl\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__clrcall\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__declspec\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__fastcall\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__stdcall\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__thiscall\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__unaligned\",\n    \"named\": false\n  },\n  {\n    \"type\": \"__vectorcall\",\n    \"named\": false\n  },\n  {\n    \"type\": \"_unaligned\",\n    \"named\": false\n  },\n  {\n    \"type\": \"auto\",\n    \"named\": true\n  },\n  {\n    \"type\": \"break\",\n    \"named\": false\n  },\n  {\n    \"type\": \"case\",\n    \"named\": false\n  },\n  {\n    \"type\": \"catch\",\n    \"named\": false\n  },\n  {\n    \"type\": \"class\",\n    \"named\": false\n  },\n  {\n    \"type\": \"comment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"const\",\n    \"named\": false\n  },\n  {\n    \"type\": \"constexpr\",\n    \"named\": false\n  },\n  {\n    \"type\": \"continue\",\n    \"named\": false\n  },\n  {\n    \"type\": \"decltype\",\n    \"named\": false\n  },\n  {\n    \"type\": \"default\",\n    \"named\": false\n  },\n  {\n    \"type\": \"defined\",\n    \"named\": false\n  },\n  {\n    \"type\": \"delete\",\n    \"named\": false\n  },\n  {\n    \"type\": \"do\",\n    \"named\": false\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"enum\",\n    \"named\": false\n  },\n  {\n    \"type\": \"escape_sequence\",\n    \"named\": true\n  },\n  {\n    \"type\": \"explicit\",\n    \"named\": false\n  },\n  {\n    \"type\": \"extern\",\n    \"named\": false\n  },\n  {\n    \"type\": \"false\",\n    \"named\": true\n  },\n  {\n    \"type\": \"field_identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"final\",\n    \"named\": false\n  },\n  {\n    \"type\": \"for\",\n    \"named\": false\n  },\n  {\n    \"type\": \"friend\",\n    \"named\": false\n  },\n  {\n    \"type\": \"goto\",\n    \"named\": false\n  },\n  {\n    \"type\": \"identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"inline\",\n    \"named\": false\n  },\n  {\n    \"type\": \"long\",\n    \"named\": false\n  },\n  {\n    \"type\": \"ms_restrict_modifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"ms_signed_ptr_modifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"ms_unsigned_ptr_modifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"mutable\",\n    \"named\": false\n  },\n  {\n    \"type\": \"namespace\",\n    \"named\": false\n  },\n  {\n    \"type\": \"namespace_identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"new\",\n    \"named\": false\n  },\n  {\n    \"type\": \"noexcept\",\n    \"named\": false\n  },\n  {\n    \"type\": \"null\",\n    \"named\": true\n  },\n  {\n    \"type\": \"nullptr\",\n    \"named\": true\n  },\n  {\n    \"type\": \"number_literal\",\n    \"named\": true\n  },\n  {\n    \"type\": \"operator\",\n    \"named\": false\n  },\n  {\n    \"type\": \"operator_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"override\",\n    \"named\": false\n  },\n  {\n    \"type\": \"preproc_arg\",\n    \"named\": true\n  },\n  {\n    \"type\": \"preproc_directive\",\n    \"named\": true\n  },\n  {\n    \"type\": \"primitive_type\",\n    \"named\": true\n  },\n  {\n    \"type\": \"private\",\n    \"named\": false\n  },\n  {\n    \"type\": \"protected\",\n    \"named\": false\n  },\n  {\n    \"type\": \"public\",\n    \"named\": false\n  },\n  {\n    \"type\": \"raw_string_literal\",\n    \"named\": true\n  },\n  {\n    \"type\": \"register\",\n    \"named\": false\n  },\n  {\n    \"type\": \"restrict\",\n    \"named\": false\n  },\n  {\n    \"type\": \"return\",\n    \"named\": false\n  },\n  {\n    \"type\": \"short\",\n    \"named\": false\n  },\n  {\n    \"type\": \"signed\",\n    \"named\": false\n  },\n  {\n    \"type\": \"sizeof\",\n    \"named\": false\n  },\n  {\n    \"type\": \"statement_identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"static\",\n    \"named\": false\n  },\n  {\n    \"type\": \"static_assert\",\n    \"named\": false\n  },\n  {\n    \"type\": \"struct\",\n    \"named\": false\n  },\n  {\n    \"type\": \"switch\",\n    \"named\": false\n  },\n  {\n    \"type\": \"system_lib_string\",\n    \"named\": true\n  },\n  {\n    \"type\": \"template\",\n    \"named\": false\n  },\n  {\n    \"type\": \"this\",\n    \"named\": true\n  },\n  {\n    \"type\": \"throw\",\n    \"named\": false\n  },\n  {\n    \"type\": \"true\",\n    \"named\": true\n  },\n  {\n    \"type\": \"try\",\n    \"named\": false\n  },\n  {\n    \"type\": \"type_identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"typedef\",\n    \"named\": false\n  },\n  {\n    \"type\": \"typename\",\n    \"named\": false\n  },\n  {\n    \"type\": \"u\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"u\'\",\n    \"named\": false\n  },\n  {\n    \"type\": \"u8\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"u8\'\",\n    \"named\": false\n  },\n  {\n    \"type\": \"union\",\n    \"named\": false\n  },\n  {\n    \"type\": \"unsigned\",\n    \"named\": false\n  },\n  {\n    \"type\": \"using\",\n    \"named\": false\n  },\n  {\n    \"type\": \"virtual\",\n    \"named\": false\n  },\n  {\n    \"type\": \"volatile\",\n    \"named\": false\n  },\n  {\n    \"type\": \"while\",\n    \"named\": false\n  },\n  {\n    \"type\": \"{\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"||\",\n    \"named\": false\n  },\n  {\n    \"type\": \"}\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~\",\n    \"named\": false\n  }\n]";

The content of the node-types.json file for this grammar.