pub const NODE_TYPES: &str = "[\n  {\n    \"type\": \"block_lit\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"constant\",\n          \"named\": true\n        },\n        {\n          \"type\": \"full_ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"bool\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"false\",\n          \"named\": true\n        },\n        {\n          \"type\": \"true\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"constant\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"block_lit\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_lit\",\n          \"named\": true\n        },\n        {\n          \"type\": \"full_ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"int_lit\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"edition\",\n    \"named\": true,\n    \"fields\": {\n      \"year\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"empty_statement\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"enum\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"enum_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enum_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"enum_body\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"empty_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enum_field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"option\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reserved\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"enum_field\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"enum_value_option\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"int_lit\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"enum_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\": \"enum_value_option\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"constant\",\n          \"named\": true\n        },\n        {\n          \"type\": \"full_ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"extend\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"full_ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"message_body\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"extensions\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"ranges\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_options\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_number\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"int_lit\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_option\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"constant\",\n          \"named\": true\n        },\n        {\n          \"type\": \"full_ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_options\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_option\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"full_ident\",\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\": \"import\",\n    \"named\": true,\n    \"fields\": {\n      \"path\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"int_lit\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"decimal_lit\",\n          \"named\": true\n        },\n        {\n          \"type\": \"hex_lit\",\n          \"named\": true\n        },\n        {\n          \"type\": \"octal_lit\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"key_type\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"map_field\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_options\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"key_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"message\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"message_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"message_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"message_body\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"empty_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enum\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extend\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extensions\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map_field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"message\",\n          \"named\": true\n        },\n        {\n          \"type\": \"oneof\",\n          \"named\": true\n        },\n        {\n          \"type\": \"option\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reserved\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"message_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\": \"message_or_enum_type\",\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\": \"oneof\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"empty_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"oneof_field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"option\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"oneof_field\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_options\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"option\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"constant\",\n          \"named\": true\n        },\n        {\n          \"type\": \"full_ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"package\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"full_ident\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"range\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"int_lit\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"ranges\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"range\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"reserved\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"ranges\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reserved_field_names\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"reserved_field_names\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"reserved_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"rpc\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"empty_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"message_or_enum_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"option\",\n          \"named\": true\n        },\n        {\n          \"type\": \"rpc_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"rpc_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\": \"service\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"empty_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"option\",\n          \"named\": true\n        },\n        {\n          \"type\": \"rpc\",\n          \"named\": true\n        },\n        {\n          \"type\": \"service_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"service_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\": \"source_file\",\n    \"named\": true,\n    \"root\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"edition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"empty_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enum\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extend\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"message\",\n          \"named\": true\n        },\n        {\n          \"type\": \"option\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package\",\n          \"named\": true\n        },\n        {\n          \"type\": \"service\",\n          \"named\": true\n        },\n        {\n          \"type\": \"syntax\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"string\",\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\": \"syntax\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"message_or_enum_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\\"proto2\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\\"proto3\\\"\",\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\": \"bool\",\n    \"named\": false\n  },\n  {\n    \"type\": \"bytes\",\n    \"named\": false\n  },\n  {\n    \"type\": \"comment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"decimal_lit\",\n    \"named\": true\n  },\n  {\n    \"type\": \"double\",\n    \"named\": false\n  },\n  {\n    \"type\": \"edition\",\n    \"named\": false\n  },\n  {\n    \"type\": \"enum\",\n    \"named\": false\n  },\n  {\n    \"type\": \"escape_sequence\",\n    \"named\": true\n  },\n  {\n    \"type\": \"extend\",\n    \"named\": false\n  },\n  {\n    \"type\": \"extensions\",\n    \"named\": false\n  },\n  {\n    \"type\": \"false\",\n    \"named\": true\n  },\n  {\n    \"type\": \"fixed32\",\n    \"named\": false\n  },\n  {\n    \"type\": \"fixed64\",\n    \"named\": false\n  },\n  {\n    \"type\": \"float\",\n    \"named\": false\n  },\n  {\n    \"type\": \"float_lit\",\n    \"named\": true\n  },\n  {\n    \"type\": \"hex_lit\",\n    \"named\": true\n  },\n  {\n    \"type\": \"identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"import\",\n    \"named\": false\n  },\n  {\n    \"type\": \"int32\",\n    \"named\": false\n  },\n  {\n    \"type\": \"int64\",\n    \"named\": false\n  },\n  {\n    \"type\": \"map\",\n    \"named\": false\n  },\n  {\n    \"type\": \"max\",\n    \"named\": false\n  },\n  {\n    \"type\": \"message\",\n    \"named\": false\n  },\n  {\n    \"type\": \"octal_lit\",\n    \"named\": true\n  },\n  {\n    \"type\": \"oneof\",\n    \"named\": false\n  },\n  {\n    \"type\": \"option\",\n    \"named\": false\n  },\n  {\n    \"type\": \"optional\",\n    \"named\": false\n  },\n  {\n    \"type\": \"package\",\n    \"named\": false\n  },\n  {\n    \"type\": \"public\",\n    \"named\": false\n  },\n  {\n    \"type\": \"repeated\",\n    \"named\": false\n  },\n  {\n    \"type\": \"required\",\n    \"named\": false\n  },\n  {\n    \"type\": \"reserved\",\n    \"named\": false\n  },\n  {\n    \"type\": \"reserved_identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"returns\",\n    \"named\": false\n  },\n  {\n    \"type\": \"rpc\",\n    \"named\": false\n  },\n  {\n    \"type\": \"service\",\n    \"named\": false\n  },\n  {\n    \"type\": \"sfixed32\",\n    \"named\": false\n  },\n  {\n    \"type\": \"sfixed64\",\n    \"named\": false\n  },\n  {\n    \"type\": \"sint32\",\n    \"named\": false\n  },\n  {\n    \"type\": \"sint64\",\n    \"named\": false\n  },\n  {\n    \"type\": \"stream\",\n    \"named\": false\n  },\n  {\n    \"type\": \"string\",\n    \"named\": false\n  },\n  {\n    \"type\": \"syntax\",\n    \"named\": false\n  },\n  {\n    \"type\": \"to\",\n    \"named\": false\n  },\n  {\n    \"type\": \"true\",\n    \"named\": true\n  },\n  {\n    \"type\": \"uint32\",\n    \"named\": false\n  },\n  {\n    \"type\": \"uint64\",\n    \"named\": false\n  },\n  {\n    \"type\": \"weak\",\n    \"named\": false\n  },\n  {\n    \"type\": \"{\",\n    \"named\": false\n  },\n  {\n    \"type\": \"}\",\n    \"named\": false\n  }\n]";
Expand description

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