{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "dart",
"word": "_name",
"rules": {
"source_file": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "script_tag"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "library_name"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "import_or_export"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "part_directive"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "part_of_directive"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_top_level_definition"
}
}
]
},
"_top_level_definition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "SYMBOL",
"name": "function_declaration"
},
{
"type": "SYMBOL",
"name": "getter_declaration"
},
{
"type": "SYMBOL",
"name": "setter_declaration"
},
{
"type": "SYMBOL",
"name": "external_function_declaration"
},
{
"type": "SYMBOL",
"name": "external_getter_declaration"
},
{
"type": "SYMBOL",
"name": "external_setter_declaration"
},
{
"type": "SYMBOL",
"name": "top_level_variable_declaration"
},
{
"type": "SYMBOL",
"name": "external_variable_declaration"
}
]
},
"script_tag": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#!"
},
{
"type": "PATTERN",
"value": "[^\\n]*"
},
{
"type": "STRING",
"value": "\n"
}
]
},
"library_name": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "library"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dotted_identifier_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "library"
},
{
"type": "STRING",
"value": "augment"
},
{
"type": "FIELD",
"name": "uri",
"content": {
"type": "SYMBOL",
"name": "uri"
}
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
"import_or_export": {
"type": "PREC",
"value": 19,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "library_import"
},
{
"type": "SYMBOL",
"name": "library_export"
}
]
}
},
"library_import": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "import_specification"
}
]
},
"import_specification": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "FIELD",
"name": "uri",
"content": {
"type": "SYMBOL",
"name": "configurable_uri"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "deferred"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "combinator"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "FIELD",
"name": "uri",
"content": {
"type": "SYMBOL",
"name": "uri"
}
},
{
"type": "STRING",
"value": "deferred"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "combinator"
}
},
{
"type": "STRING",
"value": ";"
}
]
}
}
]
},
"library_export": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "export"
},
{
"type": "FIELD",
"name": "uri",
"content": {
"type": "SYMBOL",
"name": "configurable_uri"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "combinator"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"part_directive": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "part"
},
{
"type": "FIELD",
"name": "uri",
"content": {
"type": "SYMBOL",
"name": "uri"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"part_of_directive": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "part"
},
{
"type": "STRING",
"value": "of"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dotted_identifier_list"
},
{
"type": "SYMBOL",
"name": "uri"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"uri": {
"type": "SYMBOL",
"name": "string_literal"
},
"configurable_uri": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "uri"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "configuration_uri"
}
}
]
},
"configuration_uri": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "uri_test"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "uri"
}
]
},
"uri_test": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "dotted_identifier_list"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "=="
},
{
"type": "SYMBOL",
"name": "string_literal"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"combinator": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "show"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "hide"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
}
]
}
]
},
"dotted_identifier_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"_metadata": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_annotation"
}
},
"_annotation": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_annotation_with_args"
},
"named": true,
"value": "annotation"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_annotation_no_args"
},
"named": true,
"value": "annotation"
}
]
},
"_annotation_with_args": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "qualified"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_identifier_or_new"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "annotation_arguments"
}
]
},
"annotation_arguments": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "annotation_open_paren"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_argument_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_annotation_no_args": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "qualified"
}
]
}
}
]
},
"qualified": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_identifier_or_new"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_identifier_or_new"
}
]
}
]
},
"type": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "function_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "void_type"
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Function"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"_type_not_function": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Function"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "void_type"
}
]
},
"named": true,
"value": "type"
},
"_type_not_void": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "function_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Function"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"named": true,
"value": "type"
},
"_type_not_void_not_function": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Function"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"named": true,
"value": "type"
},
"_type_name": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "PREC_RIGHT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "type_identifier"
}
]
}
},
{
"type": "BLANK"
}
]
}
]
},
"void_type": {
"type": "STRING",
"value": "void"
},
"function_type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_function_type_tails"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_not_function"
},
{
"type": "SYMBOL",
"name": "_function_type_tails"
}
]
}
]
},
"_function_type_tails": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_function_type_tail"
}
},
"_function_type_tail": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Function"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameter_type_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
"parameter_type_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "normal_parameter_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "normal_parameter_type"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "normal_parameter_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "normal_parameter_type"
}
]
}
}
]
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "optional_parameter_types"
}
]
},
{
"type": "SYMBOL",
"name": "optional_parameter_types"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"normal_parameter_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "typed_identifier"
},
{
"type": "SYMBOL",
"name": "type"
}
]
}
]
},
"optional_parameter_types": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "optional_positional_parameter_types"
},
{
"type": "SYMBOL",
"name": "named_parameter_types"
}
]
},
"optional_positional_parameter_types": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "normal_parameter_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "normal_parameter_type"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"named_parameter_types": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_named_parameter_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_named_parameter_type"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_named_parameter_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "required"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "typed_identifier"
}
]
},
"typed_identifier": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"type_arguments": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "type"
}
]
}
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"type_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type_parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "type_parameter"
}
]
}
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"type_parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "variance",
"content": {
"type": "SYMBOL",
"name": "variance_modifier"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "type_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extends"
},
{
"type": "FIELD",
"name": "bound",
"content": {
"type": "SYMBOL",
"name": "_type_not_void"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"variance_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "in"
},
{
"type": "STRING",
"value": "out"
},
{
"type": "STRING",
"value": "inout"
}
]
},
"record_type": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_type_field"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "record_type_field"
}
]
}
}
]
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_type_named_field"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "record_type_named_field"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_type_field"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "record_type_field"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_type_named_field"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "record_type_named_field"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"record_type_field": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "BLANK"
}
]
}
]
},
"record_type_named_field": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "typed_identifier"
}
]
},
"_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "null_literal"
},
{
"type": "SYMBOL",
"name": "true"
},
{
"type": "SYMBOL",
"name": "false"
},
{
"type": "SYMBOL",
"name": "decimal_integer_literal"
},
{
"type": "SYMBOL",
"name": "hex_integer_literal"
},
{
"type": "SYMBOL",
"name": "decimal_floating_point_literal"
},
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "SYMBOL",
"name": "symbol_literal"
},
{
"type": "SYMBOL",
"name": "list_literal"
},
{
"type": "SYMBOL",
"name": "set_or_map_literal"
},
{
"type": "SYMBOL",
"name": "record_literal"
}
]
},
"null_literal": {
"type": "STRING",
"value": "null"
},
"true": {
"type": "STRING",
"value": "true"
},
"false": {
"type": "STRING",
"value": "false"
},
"decimal_integer_literal": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
},
"hex_integer_literal": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "0x"
},
{
"type": "STRING",
"value": "0X"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[A-Fa-f0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[A-Fa-f0-9]+"
}
]
}
}
]
}
]
}
},
"decimal_floating_point_literal": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
},
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
]
}
]
}
},
"string_literal": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string_literal_double_quotes"
},
{
"type": "SYMBOL",
"name": "string_literal_single_quotes"
},
{
"type": "SYMBOL",
"name": "string_literal_double_quotes_multiple"
},
{
"type": "SYMBOL",
"name": "string_literal_single_quotes_multiple"
},
{
"type": "SYMBOL",
"name": "raw_string_literal_double_quotes"
},
{
"type": "SYMBOL",
"name": "raw_string_literal_single_quotes"
},
{
"type": "SYMBOL",
"name": "raw_string_literal_double_quotes_multiple"
},
{
"type": "SYMBOL",
"name": "raw_string_literal_single_quotes_multiple"
}
]
}
},
"string_literal_double_quotes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_chars_double_single"
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "SYMBOL",
"name": "template_substitution"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"string_literal_single_quotes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_chars_single_single"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "SYMBOL",
"name": "template_substitution"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
"string_literal_double_quotes_multiple": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\"\"\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_chars_double"
},
{
"type": "STRING",
"value": "'"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "SYMBOL",
"name": "template_substitution"
}
]
}
},
{
"type": "STRING",
"value": "\"\"\""
}
]
}
},
"string_literal_single_quotes_multiple": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'''"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_chars_single"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "SYMBOL",
"name": "template_substitution"
}
]
}
},
{
"type": "STRING",
"value": "'''"
}
]
}
},
"raw_string_literal_double_quotes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "r\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_chars_double_single"
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "template_chars_raw_slash"
},
{
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "STRING",
"value": "$"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"raw_string_literal_single_quotes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "r'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_chars_single_single"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "template_chars_raw_slash"
},
{
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "STRING",
"value": "$"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
"raw_string_literal_double_quotes_multiple": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "r\"\"\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_chars_double"
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "template_chars_raw_slash"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "STRING",
"value": "$"
}
]
}
},
{
"type": "STRING",
"value": "\"\"\""
}
]
}
},
"raw_string_literal_single_quotes_multiple": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "r'''"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_chars_single"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "template_chars_raw_slash"
},
{
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "STRING",
"value": "$"
}
]
}
},
{
"type": "STRING",
"value": "'''"
}
]
}
},
"template_substitution": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SYMBOL",
"name": "identifier_dollar_escaped"
}
]
}
]
},
"_sub_string_test": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "PATTERN",
"value": "[^a-zA-Z_{]"
}
]
},
"identifier_dollar_escaped": {
"type": "PATTERN",
"value": "([a-zA-Z_]|(\\\\\\$))([\\w]|(\\\\\\$))*"
},
"_unused_escape_sequence": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^xu0-7]"
},
{
"type": "PATTERN",
"value": "[0-7]{1,3}"
},
{
"type": "PATTERN",
"value": "x[0-9a-fA-F]{2}"
},
{
"type": "PATTERN",
"value": "u[0-9a-fA-F]{4}"
},
{
"type": "PATTERN",
"value": "u\\{[0-9a-fA-F]+\\}"
}
]
}
]
}
},
"escape_sequence": {
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
"symbol_literal": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
{
"type": "STRING",
"value": "~"
},
{
"type": "SYMBOL",
"name": "binary_operator"
},
{
"type": "STRING",
"value": "[]"
},
{
"type": "STRING",
"value": "[]="
}
]
}
]
}
},
"list_literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_element"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"set_or_map_literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_element"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_element": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "pair"
},
{
"type": "SYMBOL",
"name": "spread_element"
},
{
"type": "SYMBOL",
"name": "null_aware_element"
},
{
"type": "SYMBOL",
"name": "null_aware_pair"
},
{
"type": "SYMBOL",
"name": "if_element"
},
{
"type": "SYMBOL",
"name": "for_element"
}
]
},
"null_aware_element": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"null_aware_pair": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "null_aware_element"
}
]
}
}
]
},
"pair": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "null_aware_element"
}
]
}
}
]
},
"spread_element": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "..."
},
{
"type": "STRING",
"value": "...?"
}
]
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
"if_element": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "case"
},
{
"type": "SYMBOL",
"name": "_guarded_pattern"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_element"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "FIELD",
"name": "alternative",
"content": {
"type": "SYMBOL",
"name": "_element"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"for_element": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "await"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_for_loop_parts"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_element"
}
}
]
},
"record_literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_record_literal_no_const"
}
]
},
"_record_literal_no_const": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "label"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ","
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_field"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "record_field"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"record_field": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "label"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pattern_assignment"
},
{
"type": "SYMBOL",
"name": "assignment_expression"
},
{
"type": "SYMBOL",
"name": "throw_expression"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "cascade_section"
}
}
]
}
]
},
"_expression_without_cascade": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "assignment_expression"
},
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "SYMBOL",
"name": "throw_expression"
}
]
},
"_real_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "conditional_expression"
},
{
"type": "SYMBOL",
"name": "logical_or_expression"
},
{
"type": "SYMBOL",
"name": "if_null_expression"
},
{
"type": "SYMBOL",
"name": "logical_and_expression"
},
{
"type": "SYMBOL",
"name": "equality_expression"
},
{
"type": "SYMBOL",
"name": "relational_expression"
},
{
"type": "SYMBOL",
"name": "bitwise_or_expression"
},
{
"type": "SYMBOL",
"name": "bitwise_xor_expression"
},
{
"type": "SYMBOL",
"name": "bitwise_and_expression"
},
{
"type": "SYMBOL",
"name": "shift_expression"
},
{
"type": "SYMBOL",
"name": "additive_expression"
},
{
"type": "SYMBOL",
"name": "multiplicative_expression"
},
{
"type": "SYMBOL",
"name": "type_cast_expression"
},
{
"type": "SYMBOL",
"name": "type_test_expression"
},
{
"type": "SYMBOL",
"name": "_unary_expression"
}
]
},
"throw_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "throw"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
"assignment_expression": {
"type": "PREC_RIGHT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "assignable_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_assignment_operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"_assignment_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "+="
},
{
"type": "STRING",
"value": "-="
},
{
"type": "STRING",
"value": "*="
},
{
"type": "STRING",
"value": "/="
},
{
"type": "STRING",
"value": "%="
},
{
"type": "STRING",
"value": "~/="
},
{
"type": "STRING",
"value": "<<="
},
{
"type": "STRING",
"value": ">>="
},
{
"type": "STRING",
"value": ">>>="
},
{
"type": "STRING",
"value": "&="
},
{
"type": "STRING",
"value": "^="
},
{
"type": "STRING",
"value": "|="
},
{
"type": "STRING",
"value": "??="
}
]
},
"assignable_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "STRING",
"value": "?."
},
{
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "STRING",
"value": "?"
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"conditional_expression": {
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "STRING",
"value": "?"
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_expression_without_cascade"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "alternative",
"content": {
"type": "SYMBOL",
"name": "_expression_without_cascade"
}
}
]
}
},
"if_null_expression": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "??"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
}
]
}
},
"logical_or_expression": {
"type": "PREC_LEFT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "STRING",
"value": "||"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
},
"logical_and_expression": {
"type": "PREC_LEFT",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "STRING",
"value": "&&"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
},
"equality_expression": {
"type": "PREC_LEFT",
"value": 8,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
}
]
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
}
]
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
]
}
},
"relational_expression": {
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "SYMBOL",
"name": "relational_operator"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "SYMBOL",
"name": "relational_operator"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
]
}
},
"relational_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
}
]
},
"type_test_expression": {
"type": "PREC",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "SYMBOL",
"name": "type_test"
}
]
}
},
"type_test": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "is_operator"
},
{
"type": "SYMBOL",
"name": "_type_not_void"
}
]
},
"is_operator": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "is"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "BLANK"
}
]
}
]
},
"type_cast_expression": {
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "SYMBOL",
"name": "type_cast"
}
]
}
},
"type_cast": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "as"
},
{
"type": "SYMBOL",
"name": "_type_not_void"
}
]
},
"bitwise_or_expression": {
"type": "PREC_LEFT",
"value": 10,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
}
]
}
]
}
},
"bitwise_xor_expression": {
"type": "PREC_LEFT",
"value": 11,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "STRING",
"value": "^"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "^"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
}
]
}
]
}
},
"bitwise_and_expression": {
"type": "PREC_LEFT",
"value": 12,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "STRING",
"value": "&"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "&"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
}
]
}
]
}
},
"shift_expression": {
"type": "PREC_LEFT",
"value": 13,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "SYMBOL",
"name": "_shift_operator"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_shift_operator"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
}
]
}
]
}
},
"_shift_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<<"
},
{
"type": "STRING",
"value": ">>>"
},
{
"type": "STRING",
"value": ">>"
}
]
},
"additive_expression": {
"type": "PREC_LEFT",
"value": 14,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "SYMBOL",
"name": "_additive_operator"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_additive_operator"
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
}
}
]
}
]
}
},
"_additive_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
"multiplicative_expression": {
"type": "PREC_LEFT",
"value": 15,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_unary_expression"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "~/"
}
]
},
{
"type": "SYMBOL",
"name": "_unary_expression"
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "~/"
}
]
},
{
"type": "SYMBOL",
"name": "_unary_expression"
}
]
}
}
]
}
]
}
},
"_unary_expression": {
"type": "PREC",
"value": 16,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_postfix_expression"
},
{
"type": "SYMBOL",
"name": "unary_expression"
}
]
}
},
"unary_expression": {
"type": "PREC",
"value": 16,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "prefix_operator"
},
{
"type": "SYMBOL",
"name": "_unary_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "negate_operator"
},
{
"type": "SYMBOL",
"name": "_unary_expression"
}
]
},
{
"type": "SYMBOL",
"name": "await_expression"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "~"
}
]
},
{
"type": "STRING",
"value": "super"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "--"
}
]
},
{
"type": "SYMBOL",
"name": "assignable_expression"
}
]
}
]
}
},
"prefix_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "~"
}
]
},
"negate_operator": {
"type": "STRING",
"value": "!"
},
"await_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "await"
},
{
"type": "SYMBOL",
"name": "_unary_expression"
}
]
},
"_postfix_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_primary"
},
{
"type": "SYMBOL",
"name": "call_expression"
},
{
"type": "SYMBOL",
"name": "member_expression"
},
{
"type": "SYMBOL",
"name": "index_expression"
},
{
"type": "SYMBOL",
"name": "null_aware_member_expression"
},
{
"type": "SYMBOL",
"name": "null_aware_index_expression"
},
{
"type": "SYMBOL",
"name": "null_assertion_expression"
},
{
"type": "SYMBOL",
"name": "instantiation_expression"
},
{
"type": "SYMBOL",
"name": "postfix_expression"
}
]
},
"postfix_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "assignable_expression"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "--"
}
]
}
]
}
},
"call_expression": {
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "PREC",
"value": "call",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
}
}
},
"instantiation_expression": {
"type": "PREC",
"value": "instantiation",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "FIELD",
"name": "type_arguments",
"content": {
"type": "SYMBOL",
"name": "type_arguments"
}
}
]
}
},
"member_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
}
},
"index_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"null_aware_member_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "STRING",
"value": "?."
},
{
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
}
},
"null_aware_index_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "STRING",
"value": "?"
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"null_assertion_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_postfix_expression"
}
},
{
"type": "STRING",
"value": "!"
}
]
}
},
"cascade_section": {
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "STRING",
"value": "?.."
}
]
},
{
"type": "SYMBOL",
"name": "_cascade_postfix_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_assignment_operator"
},
{
"type": "SYMBOL",
"name": "_expression_without_cascade"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"_cascade_postfix_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cascade_selector"
},
{
"type": "SYMBOL",
"name": "cascade_call_expression"
},
{
"type": "SYMBOL",
"name": "cascade_member_expression"
},
{
"type": "SYMBOL",
"name": "cascade_index_expression"
},
{
"type": "SYMBOL",
"name": "cascade_null_aware_member_expression"
},
{
"type": "SYMBOL",
"name": "cascade_null_aware_index_expression"
},
{
"type": "SYMBOL",
"name": "cascade_null_assertion_expression"
}
]
},
"cascade_selector": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"cascade_call_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "CHOICE",
"members": [
{
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type_arguments",
"content": {
"type": "SYMBOL",
"name": "type_arguments"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "_cascade_postfix_expression"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type_arguments",
"content": {
"type": "SYMBOL",
"name": "type_arguments"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
}
]
}
},
"cascade_member_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_cascade_postfix_expression"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
}
},
"cascade_index_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_cascade_postfix_expression"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"cascade_null_aware_member_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_cascade_postfix_expression"
}
},
{
"type": "STRING",
"value": "?."
},
{
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
}
},
"cascade_null_aware_index_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_cascade_postfix_expression"
}
},
{
"type": "STRING",
"value": "?"
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"cascade_null_assertion_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_cascade_postfix_expression"
}
},
{
"type": "STRING",
"value": "!"
}
]
}
},
"_primary": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_literal"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_expression"
},
{
"type": "SYMBOL",
"name": "_instantiation"
},
{
"type": "SYMBOL",
"name": "parenthesized_expression"
},
{
"type": "STRING",
"value": "this"
},
{
"type": "STRING",
"value": "super"
},
{
"type": "SYMBOL",
"name": "constructor_tearoff"
},
{
"type": "SYMBOL",
"name": "switch_expression"
},
{
"type": "SYMBOL",
"name": "static_member_shorthand"
}
]
},
"parenthesized_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
"function_expression": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "_formal_parameter_part"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "function_expression_body"
}
}
]
},
"function_expression_body": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "async"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "async"
},
{
"type": "STRING",
"value": "async*"
},
{
"type": "STRING",
"value": "sync*"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "block"
}
]
}
]
},
"_instantiation": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "new_expression"
},
{
"type": "SYMBOL",
"name": "const_object_expression"
},
{
"type": "SYMBOL",
"name": "constructor_invocation"
}
]
},
"new_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "new"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_not_void"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "constructor",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
},
"const_object_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_not_void"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "constructor",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
},
"constructor_invocation": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_name"
}
},
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "constructor",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_name"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "new"
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
}
]
}
},
"constructor_tearoff": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "new"
}
]
}
},
"static_member_shorthand": {
"type": "PREC_DYNAMIC",
"value": -1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "new"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "new"
}
]
},
{
"type": "SYMBOL",
"name": "arguments"
}
]
}
]
}
},
"arguments": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_argument_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_argument_list": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "named_argument"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "named_argument"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
}
},
"named_argument": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "label"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"_formal_parameter_part": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "formal_parameter_list"
}
]
},
"formal_parameter_list": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_normal_formal_parameters"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_normal_formal_parameters"
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "optional_formal_parameters"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "optional_formal_parameters"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"_normal_formal_parameters": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "formal_parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "formal_parameter"
}
]
}
}
]
},
"formal_parameter": {
"type": "SYMBOL",
"name": "_normal_formal_parameter"
},
"optional_formal_parameters": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_default_formal_parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_default_formal_parameter"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_default_named_parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_default_named_parameter"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"_default_formal_parameter": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "formal_parameter"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_default_named_parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "required"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "formal_parameter"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_normal_formal_parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_function_formal_parameter"
},
{
"type": "SYMBOL",
"name": "_simple_formal_parameter"
},
{
"type": "SYMBOL",
"name": "constructor_param"
},
{
"type": "SYMBOL",
"name": "super_formal_parameter"
}
]
}
]
},
"_function_formal_parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "covariant"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_formal_parameter_part"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
"_simple_formal_parameter": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declared_identifier"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "covariant"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
},
"_declared_identifier": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "covariant"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_final_const_var_or_type"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"constructor_param": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_final_const_var_or_type"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "this"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_formal_parameter_part"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"super_formal_parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_final_const_var_or_type"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "super"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_formal_parameter_part"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SYMBOL",
"name": "local_function_declaration"
}
},
{
"type": "PREC_DYNAMIC",
"value": 2,
"content": {
"type": "SYMBOL",
"name": "local_variable_declaration"
}
},
{
"type": "SYMBOL",
"name": "for_statement"
},
{
"type": "SYMBOL",
"name": "while_statement"
},
{
"type": "SYMBOL",
"name": "do_statement"
},
{
"type": "SYMBOL",
"name": "switch_statement"
},
{
"type": "SYMBOL",
"name": "if_statement"
},
{
"type": "SYMBOL",
"name": "try_statement"
},
{
"type": "SYMBOL",
"name": "break_statement"
},
{
"type": "SYMBOL",
"name": "continue_statement"
},
{
"type": "SYMBOL",
"name": "rethrow_statement"
},
{
"type": "SYMBOL",
"name": "return_statement"
},
{
"type": "SYMBOL",
"name": "yield_statement"
},
{
"type": "SYMBOL",
"name": "yield_each_statement"
},
{
"type": "SYMBOL",
"name": "expression_statement"
},
{
"type": "SYMBOL",
"name": "assert_statement"
},
{
"type": "SYMBOL",
"name": "labeled_statement"
},
{
"type": "SYMBOL",
"name": "empty_statement"
}
]
},
"empty_statement": {
"type": "STRING",
"value": ";"
},
"block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"expression_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ";"
}
]
},
"local_variable_declaration": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "initialized_variable_definition"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "pattern_variable_declaration"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
"initialized_variable_definition": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_declared_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "initialized_identifier"
}
]
}
}
]
},
"local_function_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "function_signature"
},
{
"type": "SYMBOL",
"name": "function_body"
}
]
},
"labeled_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_statement"
}
]
},
"if_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "case"
},
{
"type": "SYMBOL",
"name": "_guarded_pattern"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "FIELD",
"name": "alternative",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"for_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "await"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_for_loop_parts"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"_for_loop_parts": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declared_identifier"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "STRING",
"value": "in"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "init",
"content": {
"type": "SYMBOL",
"name": "local_variable_declaration"
}
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "init",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "init",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "update",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "update",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "final"
},
{
"type": "STRING",
"value": "var"
}
]
},
{
"type": "SYMBOL",
"name": "_outer_pattern"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
]
},
"while_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "while"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "parenthesized_expression"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"do_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "do"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "STRING",
"value": "while"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "parenthesized_expression"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"switch_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "switch"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "parenthesized_expression"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "switch_block"
}
}
]
},
"switch_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "switch_statement_case"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "switch_statement_default"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"switch_statement_case": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "label"
}
},
{
"type": "STRING",
"value": "case"
},
{
"type": "SYMBOL",
"name": "_guarded_pattern"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"switch_statement_default": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "label"
}
},
{
"type": "STRING",
"value": "default"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"switch_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "switch"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "parenthesized_expression"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "switch_expression_case"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "switch_expression_case"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
}
]
},
"switch_expression_case": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_guarded_pattern"
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"try_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "try"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "finally_clause"
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_on_part"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "finally_clause"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_on_part": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "catch_clause"
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "on"
},
{
"type": "SYMBOL",
"name": "_type_not_void"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "catch_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "block"
}
]
}
]
},
"catch_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "catch"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "exception",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "stack_trace",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"finally_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "finally"
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
"break_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "break"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"continue_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "continue"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"rethrow_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "rethrow"
},
{
"type": "STRING",
"value": ";"
}
]
},
"return_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "return"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"yield_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "yield"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ";"
}
]
},
"yield_each_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "yield"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ";"
}
]
},
"assert_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "assertion"
},
{
"type": "STRING",
"value": ";"
}
]
},
"assertion": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "assert"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"function_signature": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_function_name"
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "_formal_parameter_part"
}
}
]
},
"_function_name": {
"type": "SYMBOL",
"name": "identifier"
},
"getter_signature": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "get"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"setter_signature": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "set"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "_formal_parameter_part"
}
}
]
},
"function_body": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "async"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "async"
},
{
"type": "STRING",
"value": "async*"
},
{
"type": "STRING",
"value": "sync*"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
{
"type": "SYMBOL",
"name": "native"
}
]
},
"native": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "native"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"_declaration": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_declaration"
},
{
"type": "SYMBOL",
"name": "mixin_declaration"
},
{
"type": "SYMBOL",
"name": "extension_declaration"
},
{
"type": "SYMBOL",
"name": "extension_type_declaration"
},
{
"type": "SYMBOL",
"name": "enum_declaration"
},
{
"type": "SYMBOL",
"name": "type_alias"
}
]
}
},
"_final_const_var_or_type": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "late"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "final"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "late"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_var_or_type"
}
]
}
]
},
"_var_or_type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "var"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"_final_var_or_type": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "var"
},
{
"type": "STRING",
"value": "final"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "final"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "type"
}
]
}
]
},
"method_signature": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "constructor_signature"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "initializers"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "factory_constructor_signature"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "static"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_signature"
},
{
"type": "SYMBOL",
"name": "getter_signature"
},
{
"type": "SYMBOL",
"name": "setter_signature"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "operator_signature"
}
]
},
"declaration": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "constant_constructor_signature"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "redirection"
},
{
"type": "SYMBOL",
"name": "initializers"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "constructor_signature"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "redirection"
},
{
"type": "SYMBOL",
"name": "initializers"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "external"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "factory_constructor_signature"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "external"
},
{
"type": "SYMBOL",
"name": "constant_constructor_signature"
}
]
},
{
"type": "SYMBOL",
"name": "redirecting_factory_constructor_signature"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "external"
},
{
"type": "SYMBOL",
"name": "constructor_signature"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_external_and_static"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "getter_signature"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_external_and_static"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "setter_signature"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "external"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "operator_signature"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_external_and_static"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "function_signature"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "static"
},
{
"type": "SYMBOL",
"name": "function_signature"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "static"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "final"
},
{
"type": "STRING",
"value": "const"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "static_final_declaration_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "late"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "final"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_var_or_type"
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_var_or_type"
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "covariant"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "late"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "final"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_var_or_type"
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_var_or_type"
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "late"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "final"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "late"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_var_or_type"
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "static_final_declaration_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "abstract"
},
{
"type": "STRING",
"value": "final"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "abstract"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "abstract"
},
{
"type": "STRING",
"value": "covariant"
},
{
"type": "STRING",
"value": "final"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "abstract"
},
{
"type": "STRING",
"value": "covariant"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "external"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "static"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "covariant"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "final"
},
{
"type": "STRING",
"value": "var"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier_list"
}
]
}
]
},
"external": {
"type": "STRING",
"value": "external"
},
"_external_and_static": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "external"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "static"
},
{
"type": "BLANK"
}
]
}
]
},
"constructor_signature": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_identifier_or_new"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "formal_parameter_list"
}
}
]
},
"constant_constructor_signature": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_identifier_or_new"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "formal_parameter_list"
}
}
]
},
"factory_constructor_signature": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "factory"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_identifier_or_new"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "formal_parameter_list"
}
}
]
},
"redirecting_factory_constructor_signature": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "factory"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_identifier_or_new"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "formal_parameter_list"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "target",
"content": {
"type": "SYMBOL",
"name": "_type_not_void"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "target_constructor",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"redirection": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "STRING",
"value": "this"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_identifier_or_new"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "arguments"
}
]
},
"initializers": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "initializer_list_entry"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "initializer_list_entry"
}
]
}
}
]
}
]
},
"initializer_list_entry": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "SYMBOL",
"name": "arguments"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
},
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "new"
}
]
},
{
"type": "SYMBOL",
"name": "arguments"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "this"
},
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "new"
}
]
},
{
"type": "SYMBOL",
"name": "arguments"
}
]
},
{
"type": "SYMBOL",
"name": "field_initializer"
},
{
"type": "SYMBOL",
"name": "assertion"
}
]
},
"field_initializer": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "this"
},
{
"type": "STRING",
"value": "."
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
"operator_signature": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "operator"
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "~"
},
{
"type": "SYMBOL",
"name": "binary_operator"
},
{
"type": "STRING",
"value": "[]"
},
{
"type": "STRING",
"value": "[]="
}
]
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "formal_parameter_list"
}
}
]
},
"binary_operator": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "~/"
}
]
},
{
"type": "SYMBOL",
"name": "_additive_operator"
},
{
"type": "SYMBOL",
"name": "_shift_operator"
},
{
"type": "SYMBOL",
"name": "relational_operator"
},
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": "^"
},
{
"type": "STRING",
"value": "&"
}
]
},
"static_final_declaration_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "static_final_declaration"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "static_final_declaration"
}
]
}
}
]
},
"static_final_declaration": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"initialized_identifier_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "initialized_identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "initialized_identifier"
}
]
}
}
]
},
"initialized_identifier": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"identifier_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"class_declaration": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_class_modifiers"
},
{
"type": "SYMBOL",
"name": "_mixin_class_modifiers"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type_parameters",
"content": {
"type": "SYMBOL",
"name": "type_parameters"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "superclass",
"content": {
"type": "SYMBOL",
"name": "superclass"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "interfaces",
"content": {
"type": "SYMBOL",
"name": "interfaces"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "class_body"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_class_modifiers"
},
{
"type": "SYMBOL",
"name": "_mixin_class_modifiers"
}
]
},
{
"type": "SYMBOL",
"name": "mixin_application_class"
}
]
}
]
},
"_class_modifiers": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "sealed"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "abstract"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "base"
},
{
"type": "STRING",
"value": "interface"
},
{
"type": "STRING",
"value": "final"
},
{
"type": "STRING",
"value": "inline"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "STRING",
"value": "class"
}
]
},
"_mixin_class_modifiers": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "abstract"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "base"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "mixin"
},
{
"type": "STRING",
"value": "class"
}
]
},
"class_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "class_member"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"class_member": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "declaration"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SYMBOL",
"name": "method_declaration"
}
]
},
"method_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "signature",
"content": {
"type": "SYMBOL",
"name": "method_signature"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "function_body"
}
}
]
},
"superclass": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extends"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_not_void"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "mixins"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "mixins"
}
]
},
"mixins": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "with"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_not_void"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_type_not_void"
}
]
}
}
]
}
]
},
"interfaces": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "implements"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_not_void"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_type_not_void"
}
]
}
}
]
}
]
},
"mixin_application_class": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "mixin_application"
},
{
"type": "STRING",
"value": ";"
}
]
},
"mixin_application": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_not_void"
},
{
"type": "SYMBOL",
"name": "mixins"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "interfaces"
},
{
"type": "BLANK"
}
]
}
]
},
"mixin_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "base"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "mixin"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type_parameters",
"content": {
"type": "SYMBOL",
"name": "type_parameters"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "on"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_not_void"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_type_not_void"
}
]
}
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "interfaces",
"content": {
"type": "SYMBOL",
"name": "interfaces"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "class_body"
}
}
]
},
"extension_declaration": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "extension"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type_parameters",
"content": {
"type": "SYMBOL",
"name": "type_parameters"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "on"
},
{
"type": "FIELD",
"name": "class",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "extension_body"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "augment"
},
{
"type": "STRING",
"value": "extension"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type_parameters",
"content": {
"type": "SYMBOL",
"name": "type_parameters"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "extension_body"
}
}
]
}
]
},
"extension_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "class_member"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"extension_type_declaration": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "extension"
},
{
"type": "STRING",
"value": "type"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "extension_type_name"
}
},
{
"type": "FIELD",
"name": "representation",
"content": {
"type": "SYMBOL",
"name": "extension_type_representation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "implements"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "type"
}
]
}
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "class_body"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "augment"
},
{
"type": "STRING",
"value": "extension"
},
{
"type": "STRING",
"value": "type"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type_parameters",
"content": {
"type": "SYMBOL",
"name": "type_parameters"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "interfaces",
"content": {
"type": "SYMBOL",
"name": "interfaces"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "class_body"
}
}
]
}
]
},
"extension_type_name": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"extension_type_representation": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"enum_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "enum"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "mixins"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "interfaces"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "enum_body"
}
}
]
},
"enum_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "enum_constant"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "enum_constant"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "class_member"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"enum_constant": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "arguments"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "new"
}
]
},
{
"type": "SYMBOL",
"name": "arguments"
}
]
}
]
},
"type_alias": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "typedef"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "SYMBOL",
"name": "_formal_parameter_part"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "typedef"
},
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
"function_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "signature",
"content": {
"type": "SYMBOL",
"name": "function_signature"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "function_body"
}
}
]
},
"getter_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "signature",
"content": {
"type": "SYMBOL",
"name": "getter_signature"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "function_body"
}
}
]
},
"setter_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "signature",
"content": {
"type": "SYMBOL",
"name": "setter_signature"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "function_body"
}
}
]
},
"external_function_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "SYMBOL",
"name": "external"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "signature",
"content": {
"type": "SYMBOL",
"name": "function_signature"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"external_getter_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "SYMBOL",
"name": "external"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "signature",
"content": {
"type": "SYMBOL",
"name": "getter_signature"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"external_setter_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "SYMBOL",
"name": "external"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "signature",
"content": {
"type": "SYMBOL",
"name": "setter_signature"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"external_variable_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "SYMBOL",
"name": "external"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "final"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier_list"
},
{
"type": "STRING",
"value": ";"
}
]
},
"top_level_variable_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "augment"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "final"
},
{
"type": "STRING",
"value": "const"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "static_final_declaration_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "STRING",
"value": "late"
}
},
{
"type": "STRING",
"value": "final"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "STRING",
"value": "late"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_var_or_type"
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
}
]
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"_guarded_pattern": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_pattern"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "when"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_pattern": {
"type": "SYMBOL",
"name": "_logical_or_pattern"
},
"_logical_or_pattern": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_logical_and_pattern"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "||"
},
{
"type": "SYMBOL",
"name": "_logical_and_pattern"
}
]
}
}
]
},
"_logical_and_pattern": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_relational_pattern"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "&&"
},
{
"type": "SYMBOL",
"name": "_relational_pattern"
}
]
}
}
]
},
"_relational_pattern": {
"type": "PREC",
"value": 9,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "relational_operator"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
}
]
}
]
},
{
"type": "SYMBOL",
"name": "_real_expression"
}
]
},
{
"type": "SYMBOL",
"name": "_unary_pattern"
}
]
}
},
"_unary_pattern": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cast_pattern"
},
{
"type": "SYMBOL",
"name": "null_check_pattern"
},
{
"type": "SYMBOL",
"name": "null_assert_pattern"
},
{
"type": "SYMBOL",
"name": "_primary_pattern"
}
]
},
"_primary_pattern": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "constant_pattern"
},
{
"type": "SYMBOL",
"name": "variable_pattern"
},
{
"type": "SYMBOL",
"name": "_parenthesized_pattern"
},
{
"type": "SYMBOL",
"name": "list_pattern"
},
{
"type": "SYMBOL",
"name": "map_pattern"
},
{
"type": "SYMBOL",
"name": "record_pattern"
},
{
"type": "SYMBOL",
"name": "object_pattern"
}
]
},
"cast_pattern": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_primary_pattern"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
}
]
},
"null_check_pattern": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_primary_pattern"
},
{
"type": "STRING",
"value": "?"
}
]
},
"null_assert_pattern": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_primary_pattern"
},
{
"type": "STRING",
"value": "!"
}
]
},
"constant_pattern": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "true"
},
{
"type": "SYMBOL",
"name": "false"
},
{
"type": "SYMBOL",
"name": "null_literal"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "decimal_integer_literal"
},
{
"type": "SYMBOL",
"name": "hex_integer_literal"
},
{
"type": "SYMBOL",
"name": "decimal_floating_point_literal"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "symbol_literal"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "qualified"
},
{
"type": "SYMBOL",
"name": "const_object_expression"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_element"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_element"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "const"
},
{
"type": "SYMBOL",
"name": "_record_literal_no_const"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
},
"variable_pattern": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_final_var_or_type"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"_parenthesized_pattern": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_pattern"
},
{
"type": "STRING",
"value": ")"
}
]
},
"list_pattern": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_pattern"
},
{
"type": "SYMBOL",
"name": "rest_pattern"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_pattern"
},
{
"type": "SYMBOL",
"name": "rest_pattern"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"rest_pattern": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "..."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_pattern"
},
{
"type": "BLANK"
}
]
}
]
},
"map_pattern": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_pattern"
}
]
},
{
"type": "SYMBOL",
"name": "rest_pattern"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_pattern"
}
]
},
{
"type": "SYMBOL",
"name": "rest_pattern"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"record_pattern": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_pattern_field"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_pattern_field"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_pattern_field": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "label"
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_pattern"
}
]
},
"object_pattern": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_pattern_field"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_pattern_field"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"pattern_variable_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "final"
},
{
"type": "STRING",
"value": "var"
}
]
},
{
"type": "SYMBOL",
"name": "_outer_pattern"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"_outer_pattern": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_parenthesized_pattern"
},
{
"type": "SYMBOL",
"name": "list_pattern"
},
{
"type": "SYMBOL",
"name": "map_pattern"
},
{
"type": "SYMBOL",
"name": "record_pattern"
},
{
"type": "SYMBOL",
"name": "object_pattern"
}
]
},
"pattern_assignment": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_outer_pattern"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"_identifier_or_new": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "new"
}
]
},
"label": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
}
]
},
"_name": {
"type": "PATTERN",
"value": "[a-zA-Z_$][\\w$]*"
},
"_built_in_identifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "abstract"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "STRING",
"value": "covariant"
},
{
"type": "STRING",
"value": "deferred"
},
{
"type": "STRING",
"value": "dynamic"
},
{
"type": "STRING",
"value": "export"
},
{
"type": "STRING",
"value": "external"
},
{
"type": "STRING",
"value": "factory"
},
{
"type": "STRING",
"value": "Function"
},
{
"type": "STRING",
"value": "get"
},
{
"type": "STRING",
"value": "implements"
},
{
"type": "STRING",
"value": "import"
},
{
"type": "STRING",
"value": "interface"
},
{
"type": "STRING",
"value": "late"
},
{
"type": "STRING",
"value": "library"
},
{
"type": "STRING",
"value": "mixin"
},
{
"type": "STRING",
"value": "operator"
},
{
"type": "STRING",
"value": "part"
},
{
"type": "STRING",
"value": "required"
},
{
"type": "STRING",
"value": "set"
},
{
"type": "STRING",
"value": "show"
},
{
"type": "STRING",
"value": "static"
},
{
"type": "STRING",
"value": "typedef"
},
{
"type": "STRING",
"value": "hide"
},
{
"type": "STRING",
"value": "native"
},
{
"type": "STRING",
"value": "on"
},
{
"type": "STRING",
"value": "sealed"
},
{
"type": "STRING",
"value": "when"
},
{
"type": "STRING",
"value": "base"
},
{
"type": "STRING",
"value": "inline"
},
{
"type": "STRING",
"value": "type"
},
{
"type": "STRING",
"value": "augment"
}
]
},
"identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_name"
},
{
"type": "SYMBOL",
"name": "_built_in_identifier"
}
]
},
"comment": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block_comment"
},
{
"type": "SYMBOL",
"name": "documentation_block_comment"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": "([^/\\n].*)?"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "///"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
},
{
"type": "SYMBOL",
"name": "comment"
}
],
"conflicts": [
[
"_type_name",
"_primary"
],
[
"_type_name",
"_primary",
"_function_name"
],
[
"_primary",
"_simple_formal_parameter"
],
[
"_primary",
"_simple_formal_parameter",
"constant_pattern"
],
[
"declaration",
"_external_and_static"
],
[
"_type_not_function",
"_type_not_void"
],
[
"_type_not_void_not_function"
],
[
"_type_not_void"
],
[
"_function_type_tail"
],
[
"_type_not_void_not_function",
"_function_type_tail"
],
[
"type",
"_type_not_function"
],
[
"type",
"_function_type_tail",
"_built_in_identifier"
],
[
"type",
"_type_not_function",
"_function_type_tail",
"_built_in_identifier"
],
[
"type",
"_function_type_tail"
],
[
"type",
"_type_not_function",
"_function_type_tail"
],
[
"_type_not_function",
"_function_type_tail",
"_built_in_identifier"
],
[
"_type_not_void",
"_function_type_tail",
"_built_in_identifier"
],
[
"_type_not_function",
"_type_not_void",
"_function_type_tail",
"_built_in_identifier"
],
[
"_type_not_function",
"_function_type_tail"
],
[
"type",
"_type_not_function",
"_type_not_void",
"_function_type_tail",
"_built_in_identifier"
],
[
"_type_not_void",
"_function_type_tail"
],
[
"function_type"
],
[
"_var_or_type"
],
[
"_var_or_type",
"function_signature"
],
[
"_var_or_type",
"_function_formal_parameter"
],
[
"_final_const_var_or_type"
],
[
"_final_const_var_or_type",
"const_object_expression"
],
[
"_expression"
],
[
"_primary",
"assignable_expression"
],
[
"_primary",
"labeled_statement"
],
[
"assignable_expression",
"member_expression",
"_unary_expression"
],
[
"assignable_expression",
"index_expression",
"_unary_expression"
],
[
"assignable_expression",
"null_aware_member_expression",
"_unary_expression"
],
[
"assignable_expression",
"null_aware_index_expression",
"_unary_expression"
],
[
"_type_name"
],
[
"_normal_formal_parameters"
],
[
"_normal_formal_parameter"
],
[
"typed_identifier",
"_var_or_type",
"_function_formal_parameter"
],
[
"record_type_field",
"_function_formal_parameter",
"_var_or_type"
],
[
"record_type_field",
"_var_or_type",
"_final_var_or_type",
"_function_formal_parameter"
],
[
"_var_or_type",
"_final_var_or_type"
],
[
"_var_or_type",
"_final_var_or_type",
"_function_formal_parameter"
],
[
"_final_const_var_or_type",
"_final_var_or_type"
],
[
"record_type_field",
"_final_var_or_type"
],
[
"_final_var_or_type"
],
[
"type_parameter",
"_type_name"
],
[
"_var_or_type",
"_for_loop_parts",
"pattern_variable_declaration"
],
[
"pattern_variable_declaration",
"_for_loop_parts",
"_final_const_var_or_type"
],
[
"pattern_variable_declaration",
"_var_or_type"
],
[
"_final_const_var_or_type",
"pattern_variable_declaration"
],
[
"set_or_map_literal",
"map_pattern"
],
[
"list_literal",
"list_pattern"
],
[
"static_member_shorthand",
"constant_pattern"
],
[
"_primary",
"constant_pattern"
],
[
"_instantiation",
"constant_pattern"
],
[
"_literal",
"constant_pattern"
],
[
"prefix_operator",
"constant_pattern"
],
[
"_parenthesized_pattern",
"_pattern_field"
],
[
"set_or_map_literal",
"constant_pattern"
],
[
"list_literal",
"constant_pattern"
],
[
"record_literal",
"constant_pattern"
],
[
"constructor_tearoff",
"_identifier_or_new"
],
[
"declaration",
"external"
],
[
"type_arguments",
"relational_operator"
],
[
"type_arguments",
"relational_operator",
"type_parameters"
],
[
"_unary_expression",
"instantiation_expression"
],
[
"_unary_expression",
"call_expression"
],
[
"_record_literal_no_const",
"record_field"
],
[
"record_type",
"_record_literal_no_const"
],
[
"record_type",
"_record_literal_no_const",
"record_pattern"
],
[
"_record_literal_no_const",
"record_pattern"
],
[
"record_type",
"record_pattern"
],
[
"_record_literal_no_const",
"formal_parameter_list"
],
[
"block",
"set_or_map_literal"
],
[
"switch_block",
"switch_expression"
],
[
"_primary",
"constructor_param"
],
[
"switch_statement_case"
],
[
"_type_name",
"_function_formal_parameter"
],
[
"_type_name",
"constant_pattern"
],
[
"_type_name",
"_simple_formal_parameter"
],
[
"function_declaration",
"getter_declaration",
"setter_declaration",
"external_function_declaration",
"external_getter_declaration",
"external_setter_declaration",
"top_level_variable_declaration",
"_built_in_identifier"
],
[
"function_declaration",
"getter_declaration",
"setter_declaration",
"external_function_declaration",
"external_getter_declaration",
"external_setter_declaration",
"top_level_variable_declaration",
"external_variable_declaration",
"_built_in_identifier"
],
[
"class_declaration",
"function_declaration",
"getter_declaration",
"setter_declaration",
"external_function_declaration",
"external_getter_declaration",
"external_setter_declaration",
"top_level_variable_declaration",
"_built_in_identifier"
],
[
"class_declaration",
"mixin_declaration",
"function_declaration",
"getter_declaration",
"setter_declaration",
"external_function_declaration",
"external_getter_declaration",
"external_setter_declaration",
"top_level_variable_declaration",
"_built_in_identifier"
],
[
"top_level_variable_declaration",
"_built_in_identifier"
],
[
"class_member",
"method_declaration",
"_built_in_identifier"
],
[
"type_alias",
"_built_in_identifier"
],
[
"function_signature",
"getter_signature",
"_var_or_type"
],
[
"function_signature",
"setter_signature",
"_var_or_type"
],
[
"_final_const_var_or_type",
"_built_in_identifier"
],
[
"_declared_identifier",
"_built_in_identifier"
],
[
"external",
"_built_in_identifier"
],
[
"declaration",
"_built_in_identifier"
],
[
"method_signature",
"declaration",
"_built_in_identifier"
],
[
"operator_signature",
"_built_in_identifier"
],
[
"function_signature",
"_var_or_type",
"operator_signature"
],
[
"_function_formal_parameter",
"_declared_identifier",
"_built_in_identifier"
],
[
"try_statement"
],
[
"_default_named_parameter",
"_built_in_identifier"
],
[
"library_name",
"_built_in_identifier"
],
[
"getter_signature",
"_built_in_identifier"
],
[
"setter_signature",
"_built_in_identifier"
],
[
"_class_modifiers",
"_mixin_class_modifiers",
"_built_in_identifier"
],
[
"_class_modifiers",
"_built_in_identifier"
],
[
"_mixin_class_modifiers",
"_built_in_identifier"
],
[
"_mixin_class_modifiers",
"mixin_declaration",
"_built_in_identifier"
],
[
"mixin_declaration",
"_built_in_identifier"
],
[
"_type_name",
"_function_name"
],
[
"extension_declaration",
"_built_in_identifier"
],
[
"extension_type_declaration",
"_built_in_identifier"
],
[
"_function_formal_parameter",
"_simple_formal_parameter",
"_declared_identifier",
"_built_in_identifier"
],
[
"_named_parameter_type",
"_built_in_identifier"
],
[
"declaration",
"external",
"_built_in_identifier"
],
[
"declaration",
"_external_and_static",
"_built_in_identifier"
],
[
"factory_constructor_signature",
"redirecting_factory_constructor_signature",
"_built_in_identifier"
],
[
"redirecting_factory_constructor_signature",
"_built_in_identifier"
],
[
"_function_name",
"constructor_signature"
],
[
"_type_name",
"_primary",
"constant_pattern"
],
[
"_type_name",
"_primary",
"_function_formal_parameter"
],
[
"_type_name",
"_primary",
"_simple_formal_parameter",
"constant_pattern"
],
[
"_type_name",
"assignable_expression",
"_primary"
],
[
"_type_not_void_not_function",
"_function_type_tail",
"_built_in_identifier"
],
[
"_function_type_tail",
"_built_in_identifier"
],
[
"factory_constructor_signature",
"_built_in_identifier"
],
[
"assignable_expression",
"_simple_formal_parameter"
],
[
"_primary",
"super_formal_parameter"
],
[
"initializer_list_entry",
"_identifier_or_new"
]
],
"precedences": [
[
{
"type": "STRING",
"value": "call"
},
{
"type": "STRING",
"value": "instantiation"
}
]
],
"externals": [
{
"type": "SYMBOL",
"name": "template_chars_single"
},
{
"type": "SYMBOL",
"name": "template_chars_double"
},
{
"type": "SYMBOL",
"name": "template_chars_single_single"
},
{
"type": "SYMBOL",
"name": "template_chars_double_single"
},
{
"type": "SYMBOL",
"name": "template_chars_raw_slash"
},
{
"type": "SYMBOL",
"name": "block_comment"
},
{
"type": "SYMBOL",
"name": "documentation_block_comment"
},
{
"type": "SYMBOL",
"name": "annotation_open_paren"
}
],
"inline": [],
"supertypes": [
"_statement",
"_literal",
"_declaration",
"_instantiation"
],
"reserved": {}
}