{
"name": "kotlin",
"word": "_alpha_identifier",
"rules": {
"source_file": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "shebang_line"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "file_annotation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "package_header"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "import_list"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "SYMBOL",
"name": "_semi"
}
]
}
}
]
},
"shebang_line": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#!"
},
{
"type": "PATTERN",
"value": "[^\\r\\n]*"
}
]
},
"file_annotation": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "STRING",
"value": "file"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_unescaped_annotation"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SYMBOL",
"name": "_unescaped_annotation"
}
]
},
{
"type": "SYMBOL",
"name": "_semi"
}
]
},
"package_header": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "package"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_semi"
}
]
},
"import_list": {
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "import_header"
}
},
{
"type": "SYMBOL",
"name": "_import_list_delimiter"
}
]
},
"import_header": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ".*"
}
]
},
{
"type": "SYMBOL",
"name": "import_alias"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_semi"
}
]
},
"import_alias": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "as"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
}
]
},
"top_level_object": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_semi"
},
{
"type": "BLANK"
}
]
}
]
},
"type_alias": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "typealias"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"_declaration": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_declaration"
},
{
"type": "SYMBOL",
"name": "object_declaration"
},
{
"type": "SYMBOL",
"name": "function_declaration"
},
{
"type": "SYMBOL",
"name": "property_declaration"
},
{
"type": "SYMBOL",
"name": "getter"
},
{
"type": "SYMBOL",
"name": "setter"
},
{
"type": "SYMBOL",
"name": "type_alias"
}
]
},
"class_declaration": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "class"
},
{
"type": "STRING",
"value": "interface"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "primary_constructor"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_delegation_specifiers"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_constraints"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_body"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "enum"
},
{
"type": "STRING",
"value": "class"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "primary_constructor"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_delegation_specifiers"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_constraints"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "enum_class_body"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
},
"primary_constructor": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "constructor"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_class_parameters"
}
]
},
"class_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_class_member_declarations"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_class_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "class_parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "class_parameter"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"class_parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "val"
},
{
"type": "STRING",
"value": "var"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_delegation_specifiers": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "delegation_specifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "delegation_specifier"
}
]
}
}
]
}
},
"delegation_specifier": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "constructor_invocation"
},
{
"type": "SYMBOL",
"name": "explicit_delegation"
},
{
"type": "SYMBOL",
"name": "user_type"
},
{
"type": "SYMBOL",
"name": "function_type"
}
]
}
},
"constructor_invocation": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "user_type"
},
{
"type": "SYMBOL",
"name": "value_arguments"
}
]
},
"_annotated_delegation_specifier": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "annotation"
}
},
{
"type": "SYMBOL",
"name": "delegation_specifier"
}
]
},
"explicit_delegation": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "user_type"
},
{
"type": "SYMBOL",
"name": "function_type"
}
]
},
{
"type": "STRING",
"value": "by"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"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": "type_parameter_modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"type_constraints": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "where"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type_constraint"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "type_constraint"
}
]
}
}
]
}
]
}
},
"type_constraint": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "annotation"
}
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"_class_member_declarations": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_class_member_declaration"
},
{
"type": "SYMBOL",
"name": "_semi"
}
]
}
},
"_class_member_declaration": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "SYMBOL",
"name": "companion_object"
},
{
"type": "SYMBOL",
"name": "anonymous_initializer"
},
{
"type": "SYMBOL",
"name": "secondary_constructor"
}
]
},
"anonymous_initializer": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "init"
},
{
"type": "SYMBOL",
"name": "_block"
}
]
},
"companion_object": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "companion"
},
{
"type": "STRING",
"value": "object"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_delegation_specifiers"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_body"
},
{
"type": "BLANK"
}
]
}
]
},
"function_value_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_function_value_parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_function_value_parameter"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_function_value_parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameter_modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "parameter"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_receiver_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_reference"
},
{
"type": "SYMBOL",
"name": "parenthesized_type"
},
{
"type": "SYMBOL",
"name": "nullable_type"
}
]
}
]
},
"function_declaration": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "fun"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_receiver_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "SYMBOL",
"name": "function_value_parameters"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_constraints"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_body"
},
{
"type": "BLANK"
}
]
}
]
}
},
"function_body": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_block"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
]
},
"variable_declaration": {
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"property_declaration": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "val"
},
{
"type": "STRING",
"value": "var"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_receiver_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable_declaration"
},
{
"type": "SYMBOL",
"name": "multi_variable_declaration"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_constraints"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SYMBOL",
"name": "property_delegate"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "getter"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "setter"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
},
"property_delegate": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "by"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"getter": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "get"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "function_body"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"setter": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "set"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "parameter_with_optional_type"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "function_body"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"parameters_with_optional_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "parameter_with_optional_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "parameter_with_optional_type"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"parameter_with_optional_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameter_modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"parameter": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"object_declaration": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "object"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_delegation_specifiers"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_body"
},
{
"type": "BLANK"
}
]
}
]
}
},
"secondary_constructor": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "constructor"
},
{
"type": "SYMBOL",
"name": "function_value_parameters"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "constructor_delegation_call"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_block"
},
{
"type": "BLANK"
}
]
}
]
},
"constructor_delegation_call": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "this"
},
{
"type": "STRING",
"value": "super"
}
]
},
{
"type": "SYMBOL",
"name": "value_arguments"
}
]
},
"enum_class_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_enum_entries"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_class_member_declarations"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_enum_entries": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "enum_entry"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "enum_entry"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"enum_entry": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "value_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_body"
},
{
"type": "BLANK"
}
]
}
]
},
"_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parenthesized_type"
},
{
"type": "SYMBOL",
"name": "nullable_type"
},
{
"type": "SYMBOL",
"name": "_type_reference"
},
{
"type": "SYMBOL",
"name": "function_type"
},
{
"type": "SYMBOL",
"name": "not_nullable_type"
}
]
}
]
},
"_type_reference": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "user_type"
},
{
"type": "STRING",
"value": "dynamic"
}
]
}
},
"not_nullable_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "user_type"
},
{
"type": "SYMBOL",
"name": "parenthesized_user_type"
}
]
},
{
"type": "STRING",
"value": "&"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "user_type"
},
{
"type": "SYMBOL",
"name": "parenthesized_user_type"
}
]
}
]
},
"nullable_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_reference"
},
{
"type": "SYMBOL",
"name": "parenthesized_type"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_quest"
}
}
]
},
"_quest": {
"type": "STRING",
"value": "?"
},
"user_type": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_user_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_simple_user_type"
}
]
}
}
]
},
"_simple_user_type": {
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
}
]
}
},
"type_projection": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_projection_modifiers"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
{
"type": "STRING",
"value": "*"
}
]
},
"type_projection_modifiers": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_type_projection_modifier"
}
},
"_type_projection_modifier": {
"type": "SYMBOL",
"name": "variance_modifier"
},
"function_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_user_type"
},
{
"type": "STRING",
"value": "."
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "function_type_parameters"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"function_type_parameters": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameter"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameter"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"parenthesized_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "STRING",
"value": ")"
}
]
},
"parenthesized_user_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "user_type"
},
{
"type": "SYMBOL",
"name": "parenthesized_user_type"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"statements": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_semi"
},
{
"type": "SYMBOL",
"name": "_statement"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_semi"
},
{
"type": "BLANK"
}
]
}
]
},
"_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "label"
},
{
"type": "SYMBOL",
"name": "annotation"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "assignment"
},
{
"type": "SYMBOL",
"name": "_loop_statement"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
]
}
]
},
"label": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z_0-9]*"
},
{
"type": "STRING",
"value": "@"
}
]
}
},
"control_structure_body": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_block"
},
{
"type": "SYMBOL",
"name": "_statement"
}
]
},
"_block": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "statements"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
},
"_loop_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "for_statement"
},
{
"type": "SYMBOL",
"name": "while_statement"
},
{
"type": "SYMBOL",
"name": "do_while_statement"
}
]
},
"for_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "annotation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable_declaration"
},
{
"type": "SYMBOL",
"name": "multi_variable_declaration"
}
]
},
{
"type": "STRING",
"value": "in"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "control_structure_body"
},
{
"type": "BLANK"
}
]
}
]
}
},
"while_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "while"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "control_structure_body"
}
]
}
]
},
"do_while_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "do"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "control_structure_body"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "while"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"_semi": {
"type": "SYMBOL",
"name": "_automatic_semicolon"
},
"assignment": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "directly_assignable_expression"
},
{
"type": "SYMBOL",
"name": "_assignment_and_operator"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "directly_assignable_expression"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
"_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_unary_expression"
},
{
"type": "SYMBOL",
"name": "_binary_expression"
},
{
"type": "SYMBOL",
"name": "_primary_expression"
}
]
},
"_unary_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "postfix_expression"
},
{
"type": "SYMBOL",
"name": "call_expression"
},
{
"type": "SYMBOL",
"name": "indexing_expression"
},
{
"type": "SYMBOL",
"name": "navigation_expression"
},
{
"type": "SYMBOL",
"name": "prefix_expression"
},
{
"type": "SYMBOL",
"name": "as_expression"
},
{
"type": "SYMBOL",
"name": "spread_expression"
}
]
},
"postfix_expression": {
"type": "PREC_LEFT",
"value": 16,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "_postfix_unary_operator"
}
]
}
},
"call_expression": {
"type": "PREC_LEFT",
"value": 16,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "call_suffix"
}
]
}
},
"indexing_expression": {
"type": "PREC_LEFT",
"value": 16,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "indexing_suffix"
}
]
}
},
"navigation_expression": {
"type": "PREC_LEFT",
"value": 16,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "navigation_suffix"
}
]
}
},
"prefix_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "SYMBOL",
"name": "label"
},
{
"type": "SYMBOL",
"name": "_prefix_unary_operator"
}
]
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"as_expression": {
"type": "PREC_LEFT",
"value": 13,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "_as_operator"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
}
},
"spread_expression": {
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"_binary_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "multiplicative_expression"
},
{
"type": "SYMBOL",
"name": "additive_expression"
},
{
"type": "SYMBOL",
"name": "range_expression"
},
{
"type": "SYMBOL",
"name": "infix_expression"
},
{
"type": "SYMBOL",
"name": "elvis_expression"
},
{
"type": "SYMBOL",
"name": "check_expression"
},
{
"type": "SYMBOL",
"name": "comparison_expression"
},
{
"type": "SYMBOL",
"name": "equality_expression"
},
{
"type": "SYMBOL",
"name": "comparison_expression"
},
{
"type": "SYMBOL",
"name": "equality_expression"
},
{
"type": "SYMBOL",
"name": "conjunction_expression"
},
{
"type": "SYMBOL",
"name": "disjunction_expression"
}
]
},
"multiplicative_expression": {
"type": "PREC_LEFT",
"value": 12,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "_multiplicative_operator"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"additive_expression": {
"type": "PREC_LEFT",
"value": 11,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "_additive_operator"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"range_expression": {
"type": "PREC_LEFT",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ".."
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"infix_expression": {
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"elvis_expression": {
"type": "PREC_LEFT",
"value": 8,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "?:"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"check_expression": {
"type": "PREC_LEFT",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_in_operator"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_is_operator"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
}
]
}
]
}
},
"comparison_expression": {
"type": "PREC_LEFT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "_comparison_operator"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"equality_expression": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "_equality_operator"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"conjunction_expression": {
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "&&"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"disjunction_expression": {
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "||"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"indexing_suffix": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"navigation_suffix": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_member_access_operator"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "SYMBOL",
"name": "parenthesized_expression"
},
{
"type": "STRING",
"value": "class"
}
]
}
]
},
"call_suffix": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "value_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "annotated_lambda"
}
]
},
{
"type": "SYMBOL",
"name": "value_arguments"
}
]
}
]
}
},
"annotated_lambda": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "annotation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "label"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "lambda_literal"
}
]
},
"type_arguments": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type_projection"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "type_projection"
}
]
}
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"value_arguments": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value_argument"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "value_argument"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"value_argument": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "STRING",
"value": "="
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"_primary_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "SYMBOL",
"name": "_literal_constant"
},
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "SYMBOL",
"name": "callable_reference"
},
{
"type": "SYMBOL",
"name": "_function_literal"
},
{
"type": "SYMBOL",
"name": "object_literal"
},
{
"type": "SYMBOL",
"name": "collection_literal"
},
{
"type": "SYMBOL",
"name": "this_expression"
},
{
"type": "SYMBOL",
"name": "super_expression"
},
{
"type": "SYMBOL",
"name": "if_expression"
},
{
"type": "SYMBOL",
"name": "when_expression"
},
{
"type": "SYMBOL",
"name": "try_expression"
},
{
"type": "SYMBOL",
"name": "jump_expression"
}
]
},
"parenthesized_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
"collection_literal": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"_literal_constant": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "boolean_literal"
},
{
"type": "SYMBOL",
"name": "integer_literal"
},
{
"type": "SYMBOL",
"name": "hex_literal"
},
{
"type": "SYMBOL",
"name": "bin_literal"
},
{
"type": "SYMBOL",
"name": "character_literal"
},
{
"type": "SYMBOL",
"name": "real_literal"
},
{
"type": "STRING",
"value": "null"
},
{
"type": "SYMBOL",
"name": "long_literal"
},
{
"type": "SYMBOL",
"name": "unsigned_literal"
}
]
},
"string_literal": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_string_start"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_string_content"
},
{
"type": "SYMBOL",
"name": "_interpolation"
}
]
}
},
{
"type": "SYMBOL",
"name": "_string_end"
}
]
},
"line_string_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "${"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "}"
}
]
},
"_interpolation": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "${"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "interpolated_expression"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "interpolated_identifier"
}
]
}
]
},
"lambda_literal": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "lambda_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "->"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "statements"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
},
"multi_variable_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "variable_declaration"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "variable_declaration"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"lambda_parameters": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_lambda_parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_lambda_parameter"
}
]
}
}
]
},
"_lambda_parameter": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable_declaration"
},
{
"type": "SYMBOL",
"name": "multi_variable_declaration"
}
]
},
"anonymous_function": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "fun"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_user_type"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_simple_user_type"
}
]
}
}
]
},
{
"type": "STRING",
"value": "."
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "function_value_parameters"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_body"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_function_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "lambda_literal"
},
{
"type": "SYMBOL",
"name": "anonymous_function"
}
]
},
"object_literal": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "object"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_delegation_specifiers"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "class_body"
}
]
},
"this_expression": {
"type": "STRING",
"value": "this"
},
"super_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super"
}
]
},
"if_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "control_structure_body"
},
{
"type": "STRING",
"value": ";"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "control_structure_body"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "else"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "control_structure_body"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
]
}
]
}
},
"when_subject": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "annotation"
}
},
{
"type": "STRING",
"value": "val"
},
{
"type": "SYMBOL",
"name": "variable_declaration"
},
{
"type": "STRING",
"value": "="
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
"when_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "when"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "when_subject"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "when_entry"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"when_entry": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "when_condition"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "when_condition"
}
]
}
}
]
},
{
"type": "STRING",
"value": "else"
}
]
},
{
"type": "STRING",
"value": "->"
},
{
"type": "SYMBOL",
"name": "control_structure_body"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_semi"
},
{
"type": "BLANK"
}
]
}
]
},
"when_condition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "range_test"
},
{
"type": "SYMBOL",
"name": "type_test"
}
]
},
"range_test": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_in_operator"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"type_test": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_is_operator"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"try_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "try"
},
{
"type": "SYMBOL",
"name": "_block"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "catch_block"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "finally_block"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "finally_block"
}
]
}
]
},
"catch_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "catch"
},
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "annotation"
}
},
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_block"
}
]
},
"finally_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "finally"
},
{
"type": "SYMBOL",
"name": "_block"
}
]
},
"jump_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "throw"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "return"
},
{
"type": "SYMBOL",
"name": "_return_at"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "STRING",
"value": "continue"
},
{
"type": "SYMBOL",
"name": "_continue_at"
},
{
"type": "STRING",
"value": "break"
},
{
"type": "SYMBOL",
"name": "_break_at"
}
]
},
"callable_reference": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "simple_identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "::"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "STRING",
"value": "class"
}
]
}
]
},
"_assignment_and_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+="
},
{
"type": "STRING",
"value": "-="
},
{
"type": "STRING",
"value": "*="
},
{
"type": "STRING",
"value": "/="
},
{
"type": "STRING",
"value": "%="
}
]
},
"_equality_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "!="
},
{
"type": "STRING",
"value": "!=="
},
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "==="
}
]
},
"_comparison_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
}
]
},
"_in_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "in"
},
{
"type": "STRING",
"value": "!in"
}
]
},
"_is_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "is"
},
{
"type": "STRING",
"value": "!is"
}
]
},
"_additive_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
"_multiplicative_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
}
]
},
"_as_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "as"
},
{
"type": "STRING",
"value": "as?"
}
]
},
"_prefix_unary_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "--"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "!"
}
]
},
"_postfix_unary_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "--"
},
{
"type": "STRING",
"value": "!!"
}
]
},
"_member_access_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "::"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "safe_nav"
},
"named": false,
"value": "?."
}
]
},
"_indexing_suffix": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"_postfix_unary_suffix": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_postfix_unary_operator"
},
{
"type": "SYMBOL",
"name": "navigation_suffix"
},
{
"type": "SYMBOL",
"name": "indexing_suffix"
}
]
},
"_postfix_unary_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_primary_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_postfix_unary_suffix"
}
}
]
},
"directly_assignable_expression": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_postfix_unary_expression"
},
{
"type": "SYMBOL",
"name": "simple_identifier"
}
]
}
},
"modifiers": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "SYMBOL",
"name": "_modifier"
}
]
}
}
},
"parameter_modifiers": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "SYMBOL",
"name": "parameter_modifier"
}
]
}
},
"_modifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_modifier"
},
{
"type": "SYMBOL",
"name": "member_modifier"
},
{
"type": "SYMBOL",
"name": "visibility_modifier"
},
{
"type": "SYMBOL",
"name": "function_modifier"
},
{
"type": "SYMBOL",
"name": "property_modifier"
},
{
"type": "SYMBOL",
"name": "inheritance_modifier"
},
{
"type": "SYMBOL",
"name": "parameter_modifier"
},
{
"type": "SYMBOL",
"name": "platform_modifier"
}
]
},
"type_modifiers": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_type_modifier"
}
},
"_type_modifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "STRING",
"value": "suspend"
}
]
},
"class_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "sealed"
},
{
"type": "STRING",
"value": "annotation"
},
{
"type": "STRING",
"value": "data"
},
{
"type": "STRING",
"value": "inner"
},
{
"type": "STRING",
"value": "value"
}
]
},
"member_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "override"
},
{
"type": "STRING",
"value": "lateinit"
}
]
},
"visibility_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "public"
},
{
"type": "STRING",
"value": "private"
},
{
"type": "STRING",
"value": "internal"
},
{
"type": "STRING",
"value": "protected"
}
]
},
"variance_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "in"
},
{
"type": "STRING",
"value": "out"
}
]
},
"type_parameter_modifiers": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_type_parameter_modifier"
}
},
"_type_parameter_modifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "reification_modifier"
},
{
"type": "SYMBOL",
"name": "variance_modifier"
},
{
"type": "SYMBOL",
"name": "annotation"
}
]
},
"function_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "tailrec"
},
{
"type": "STRING",
"value": "operator"
},
{
"type": "STRING",
"value": "infix"
},
{
"type": "STRING",
"value": "inline"
},
{
"type": "STRING",
"value": "external"
},
{
"type": "STRING",
"value": "suspend"
}
]
},
"property_modifier": {
"type": "STRING",
"value": "const"
},
"inheritance_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "abstract"
},
{
"type": "STRING",
"value": "final"
},
{
"type": "STRING",
"value": "open"
}
]
},
"parameter_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "vararg"
},
{
"type": "STRING",
"value": "noinline"
},
{
"type": "STRING",
"value": "crossinline"
}
]
},
"reification_modifier": {
"type": "STRING",
"value": "reified"
},
"platform_modifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "expect"
},
{
"type": "STRING",
"value": "actual"
}
]
},
"annotation": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_single_annotation"
},
{
"type": "SYMBOL",
"name": "_multi_annotation"
}
]
},
"_single_annotation": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "use_site_target"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_unescaped_annotation"
}
]
},
"_multi_annotation": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "use_site_target"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_unescaped_annotation"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"use_site_target": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "field"
},
{
"type": "STRING",
"value": "property"
},
{
"type": "STRING",
"value": "get"
},
{
"type": "STRING",
"value": "set"
},
{
"type": "STRING",
"value": "receiver"
},
{
"type": "STRING",
"value": "param"
},
{
"type": "STRING",
"value": "setparam"
},
{
"type": "STRING",
"value": "delegate"
}
]
},
{
"type": "STRING",
"value": ":"
}
]
},
"_unescaped_annotation": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "constructor_invocation"
},
{
"type": "SYMBOL",
"name": "user_type"
}
]
},
"simple_identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_lexical_identifier"
},
{
"type": "STRING",
"value": "expect"
},
{
"type": "STRING",
"value": "data"
},
{
"type": "STRING",
"value": "inner"
},
{
"type": "STRING",
"value": "value"
},
{
"type": "STRING",
"value": "actual"
},
{
"type": "STRING",
"value": "set"
},
{
"type": "STRING",
"value": "get"
}
]
},
"identifier": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "simple_identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "simple_identifier"
}
]
}
}
]
},
"line_comment": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
},
"_return_at": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "return@"
},
{
"type": "SYMBOL",
"name": "_lexical_identifier"
}
]
},
"_continue_at": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "continue@"
},
{
"type": "SYMBOL",
"name": "_lexical_identifier"
}
]
},
"_break_at": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "break@"
},
{
"type": "SYMBOL",
"name": "_lexical_identifier"
}
]
},
"_this_at": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "this@"
},
{
"type": "SYMBOL",
"name": "_lexical_identifier"
}
]
},
"_super_at": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "super@"
},
{
"type": "SYMBOL",
"name": "_lexical_identifier"
}
]
},
"real_literal": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"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]+"
}
]
}
}
]
}
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[+-]"
},
{
"type": "BLANK"
}
]
},
{
"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]+"
}
]
}
}
]
}
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"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]+"
}
]
}
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"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]+"
}
]
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[+-]"
},
{
"type": "BLANK"
}
]
},
{
"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]+"
}
]
}
}
]
}
}
]
}
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[fF]"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"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]+"
}
]
}
}
]
}
},
{
"type": "PATTERN",
"value": "[fF]"
}
]
}
]
}
},
"integer_literal": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[1-9]"
},
{
"type": "BLANK"
}
]
},
{
"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_literal": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "PATTERN",
"value": "[xX]"
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9a-fA-F]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9a-fA-F]+"
}
]
}
}
]
}
}
]
}
},
"bin_literal": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "PATTERN",
"value": "[bB]"
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[01]"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[01]"
}
]
}
}
]
}
}
]
}
},
"unsigned_literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "integer_literal"
},
{
"type": "SYMBOL",
"name": "hex_literal"
},
{
"type": "SYMBOL",
"name": "bin_literal"
}
]
},
{
"type": "PATTERN",
"value": "[uU]"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "L"
},
{
"type": "BLANK"
}
]
}
]
},
"long_literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "integer_literal"
},
{
"type": "SYMBOL",
"name": "hex_literal"
},
{
"type": "SYMBOL",
"name": "bin_literal"
}
]
},
{
"type": "STRING",
"value": "L"
}
]
},
"boolean_literal": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "false"
}
]
},
"character_literal": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "character_escape_seq"
},
{
"type": "PATTERN",
"value": "[^\\n\\r'\\\\]"
}
]
},
{
"type": "STRING",
"value": "'"
}
]
},
"character_escape_seq": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_uni_character_literal"
},
{
"type": "SYMBOL",
"name": "_escaped_identifier"
}
]
},
"_lexical_identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_alpha_identifier"
},
{
"type": "SYMBOL",
"name": "_backtick_identifier"
}
]
},
"_alpha_identifier": {
"type": "PATTERN",
"value": "[\\p{L}_][\\p{L}_\\p{Nd}]*"
},
"_backtick_identifier": {
"type": "PATTERN",
"value": "`[^\\r\\n`]+`"
},
"_uni_character_literal": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\u"
},
{
"type": "PATTERN",
"value": "[0-9a-fA-F]{4}"
}
]
},
"_escaped_identifier": {
"type": "PATTERN",
"value": "\\\\[tbrn'\"\\\\$]"
}
},
"extras": [
{
"type": "SYMBOL",
"name": "line_comment"
},
{
"type": "SYMBOL",
"name": "multiline_comment"
},
{
"type": "PATTERN",
"value": "\\s+"
}
],
"conflicts": [
[
"_primary_expression",
"callable_reference"
],
[
"constructor_invocation",
"_unescaped_annotation"
],
[
"platform_modifier",
"simple_identifier"
],
[
"class_modifier",
"simple_identifier"
],
[
"_postfix_unary_expression",
"_expression"
],
[
"call_expression",
"range_expression",
"comparison_expression"
],
[
"call_expression",
"elvis_expression",
"comparison_expression"
],
[
"call_expression",
"check_expression",
"comparison_expression"
],
[
"call_expression",
"additive_expression",
"comparison_expression"
],
[
"call_expression",
"infix_expression",
"comparison_expression"
],
[
"call_expression",
"multiplicative_expression",
"comparison_expression"
],
[
"type_arguments",
"_comparison_operator"
],
[
"_statement",
"prefix_expression"
],
[
"_statement",
"prefix_expression",
"modifiers"
],
[
"prefix_expression",
"when_subject"
],
[
"prefix_expression",
"value_argument"
],
[
"user_type"
],
[
"user_type",
"anonymous_function"
],
[
"user_type",
"function_type"
],
[
"annotated_lambda",
"modifiers"
],
[
"setter",
"simple_identifier"
],
[
"getter",
"simple_identifier"
],
[
"parameter_modifiers",
"_type_modifier"
],
[
"type_modifiers"
],
[
"not_nullable_type"
]
],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "_automatic_semicolon"
},
{
"type": "SYMBOL",
"name": "_import_list_delimiter"
},
{
"type": "SYMBOL",
"name": "safe_nav"
},
{
"type": "SYMBOL",
"name": "multiline_comment"
},
{
"type": "SYMBOL",
"name": "_string_start"
},
{
"type": "SYMBOL",
"name": "_string_end"
},
{
"type": "SYMBOL",
"name": "_string_content"
}
],
"inline": [],
"supertypes": []
}