diff options
Diffstat (limited to 'vendor/tree-sitter-kotlin/src/grammar.json')
| -rw-r--r-- | vendor/tree-sitter-kotlin/src/grammar.json | 6442 |
1 files changed, 6442 insertions, 0 deletions
diff --git a/vendor/tree-sitter-kotlin/src/grammar.json b/vendor/tree-sitter-kotlin/src/grammar.json new file mode 100644 index 0000000..2164fa8 --- /dev/null +++ b/vendor/tree-sitter-kotlin/src/grammar.json @@ -0,0 +1,6442 @@ +{ + "name": "kotlin", + "word": "identifier", + "rules": { + "source_file": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "shebang" + }, + { + "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" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "statement" + }, + { + "type": "SYMBOL", + "name": "_semi" + } + ] + } + } + ] + }, + "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": "qualified_identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": ";" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "import": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "import" + }, + { + "type": "SYMBOL", + "name": "qualified_identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "STRING", + "value": "*" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "as" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": ";" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "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": "type_alias" + } + ] + }, + "class_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": "class" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "fun" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "interface" + } + ] + } + ] + }, + { + "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": "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": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "class_body" + }, + { + "type": "SYMBOL", + "name": "enum_class_body" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "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": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "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" + } + ] + } + ] + } + }, + "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": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "getter" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "setter" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "setter" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "getter" + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "type_alias": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "typealias" + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_parameters" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + } + }, + "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": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "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" + } + ] + } + ] + }, + "anonymous_initializer": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "init" + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + }, + "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" + } + ] + }, + "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": "SYMBOL", + "name": "identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + }, + { + "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_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": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "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": "_identifier" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + { + "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": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + } + }, + "constructor_invocation": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "SYMBOL", + "name": "value_arguments" + } + ] + }, + "function_declaration": { + "type": "PREC_RIGHT", + "value": 1, + "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": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_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_value_parameters": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "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" + } + ] + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "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" + } + ] + } + ] + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "parameter": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + }, + "delegation_specifiers": { + "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_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "annotation" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "constructor_invocation" + }, + { + "type": "SYMBOL", + "name": "explicit_delegation" + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + } + ] + } + }, + "variable_declaration": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "annotation" + } + }, + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "multi_variable_declaration": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "variable_declaration" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "variable_declaration" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "property_delegate": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "by" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "explicit_delegation": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "STRING", + "value": "by" + }, + { + "type": "SYMBOL", + "name": "primary_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": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "parameter_modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "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" + } + ] + } + ] + } + }, + "function_body": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + ] + }, + "block": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_statements" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "for_statement": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "label" + }, + { + "type": "BLANK" + } + ] + }, + { + "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": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "statement" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "while_statement": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "label" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "while" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "statement" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "do_while_statement": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "label" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "do" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "statement" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "while" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "STRING", + "value": ")" + } + ] + } + }, + "class_body": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "class_member_declaration" + }, + { + "type": "SYMBOL", + "name": "_class_member_semi" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "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" + } + ] + }, + "enum_class_body": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "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" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ";" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "class_member_declaration" + }, + { + "type": "SYMBOL", + "name": "_class_member_semi" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "enum_entry": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "value_arguments" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "class_body" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "value_arguments": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "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": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "STRING", + "value": "=" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "_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": "SYMBOL", + "name": "assignment" + }, + { + "type": "SYMBOL", + "name": "for_statement" + }, + { + "type": "SYMBOL", + "name": "while_statement" + }, + { + "type": "SYMBOL", + "name": "do_while_statement" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "modifiers": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "annotation" + }, + { + "type": "SYMBOL", + "name": "class_modifier" + }, + { + "type": "SYMBOL", + "name": "member_modifier" + }, + { + "type": "SYMBOL", + "name": "function_modifier" + }, + { + "type": "SYMBOL", + "name": "property_modifier" + }, + { + "type": "SYMBOL", + "name": "visibility_modifier" + }, + { + "type": "SYMBOL", + "name": "inheritance_modifier" + }, + { + "type": "SYMBOL", + "name": "parameter_modifier" + }, + { + "type": "SYMBOL", + "name": "platform_modifier" + } + ] + } + } + }, + "class_modifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "enum" + }, + { + "type": "STRING", + "value": "sealed" + }, + { + "type": "STRING", + "value": "annotation" + }, + { + "type": "STRING", + "value": "data" + }, + { + "type": "STRING", + "value": "inner" + }, + { + "type": "STRING", + "value": "value" + } + ] + }, + "function_modifier": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "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" + }, + "visibility_modifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "public" + }, + { + "type": "STRING", + "value": "private" + }, + { + "type": "STRING", + "value": "protected" + }, + { + "type": "STRING", + "value": "internal" + } + ] + }, + "inheritance_modifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "abstract" + }, + { + "type": "STRING", + "value": "final" + }, + { + "type": "STRING", + "value": "open" + } + ] + }, + "member_modifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "override" + }, + { + "type": "STRING", + "value": "lateinit" + } + ] + }, + "parameter_modifiers": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "annotation" + }, + { + "type": "SYMBOL", + "name": "parameter_modifier" + } + ] + } + }, + "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" + } + ] + }, + "type_modifiers": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "annotation" + }, + { + "type": "STRING", + "value": "suspend" + } + ] + } + } + }, + "annotation": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "@" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "use_site_target" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_unescaped_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": "type" + } + ] + }, + "type": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "user_type" + }, + { + "type": "SYMBOL", + "name": "nullable_type" + }, + { + "type": "SYMBOL", + "name": "function_type" + }, + { + "type": "SYMBOL", + "name": "non_nullable_type" + }, + { + "type": "SYMBOL", + "name": "parenthesized_type" + }, + { + "type": "STRING", + "value": "dynamic" + } + ] + }, + "user_type": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "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": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_arguments" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "nullable_type": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "STRING", + "value": "?" + } + ] + }, + "non_nullable_type": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "STRING", + "value": "&" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + } + }, + "_receiver_type": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "user_type" + }, + { + "type": "STRING", + "value": "dynamic" + }, + { + "type": "SYMBOL", + "name": "parenthesized_type" + }, + { + "type": "SYMBOL", + "name": "nullable_type" + } + ] + } + ] + }, + "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": ">" + } + ] + }, + "type_projection": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "variance_modifier" + } + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + }, + { + "type": "STRING", + "value": "*" + } + ] + }, + "function_type": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_modifiers" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_receiver_type" + }, + { + "type": "STRING", + "value": "." + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "function_type_parameters" + }, + { + "type": "STRING", + "value": "->" + }, + { + "type": "SYMBOL", + "name": "type" + } + ] + }, + "function_type_parameters": { + "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": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "parenthesized_type": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "assignment": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "STRING", + "value": "+=" + }, + { + "type": "STRING", + "value": "-=" + }, + { + "type": "STRING", + "value": "*=" + }, + { + "type": "STRING", + "value": "/=" + }, + { + "type": "STRING", + "value": "%=" + } + ] + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + "expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "primary_expression" + }, + { + "type": "SYMBOL", + "name": "index_expression" + }, + { + "type": "SYMBOL", + "name": "return_expression" + }, + { + "type": "SYMBOL", + "name": "throw_expression" + } + ] + }, + "primary_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "SYMBOL", + "name": "string_literal" + }, + { + "type": "SYMBOL", + "name": "multiline_string_literal" + }, + { + "type": "SYMBOL", + "name": "character_literal" + }, + { + "type": "SYMBOL", + "name": "number_literal" + }, + { + "type": "SYMBOL", + "name": "float_literal" + }, + { + "type": "SYMBOL", + "name": "object_literal" + }, + { + "type": "SYMBOL", + "name": "collection_literal" + }, + { + "type": "SYMBOL", + "name": "navigation_expression" + }, + { + "type": "SYMBOL", + "name": "binary_expression" + }, + { + "type": "SYMBOL", + "name": "unary_expression" + }, + { + "type": "SYMBOL", + "name": "annotated_expression" + }, + { + "type": "SYMBOL", + "name": "labeled_expression" + }, + { + "type": "SYMBOL", + "name": "call_expression" + }, + { + "type": "SYMBOL", + "name": "in_expression" + }, + { + "type": "SYMBOL", + "name": "is_expression" + }, + { + "type": "SYMBOL", + "name": "as_expression" + }, + { + "type": "SYMBOL", + "name": "spread_expression" + }, + { + "type": "SYMBOL", + "name": "infix_expression" + }, + { + "type": "SYMBOL", + "name": "range_expression" + }, + { + "type": "SYMBOL", + "name": "if_expression" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + }, + { + "type": "SYMBOL", + "name": "this_expression" + }, + { + "type": "SYMBOL", + "name": "super_expression" + }, + { + "type": "SYMBOL", + "name": "when_expression" + }, + { + "type": "SYMBOL", + "name": "try_expression" + }, + { + "type": "SYMBOL", + "name": "callable_reference" + }, + { + "type": "SYMBOL", + "name": "lambda_literal" + }, + { + "type": "SYMBOL", + "name": "anonymous_function" + } + ] + }, + "unary_expression": { + "type": "PREC_LEFT", + "value": 14, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "++" + }, + { + "type": "STRING", + "value": "--" + }, + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "!" + } + ] + } + }, + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "++" + }, + { + "type": "STRING", + "value": "--" + }, + { + "type": "STRING", + "value": "!!" + } + ] + } + } + ] + } + ] + } + }, + "annotated_expression": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "annotation" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "labeled_expression": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "label" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "binary_expression": { + "type": "CHOICE", + "members": [ + { + "type": "PREC_LEFT", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "+" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "-" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 11, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "*" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 11, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "/" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 11, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "%" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "||" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 3, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "&&" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 4, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "!=" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 4, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "!==" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 4, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "==" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 4, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "===" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 5, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": ">" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 5, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": ">=" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 5, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "<=" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 5, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "<" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 7, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "?:" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + } + ] + }, + "in_expression": { + "type": "PREC_LEFT", + "value": 6, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "in" + }, + { + "type": "STRING", + "value": "!in" + } + ] + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + "is_expression": { + "type": "PREC_LEFT", + "value": 6, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "is" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_not_is" + }, + "named": false, + "value": "!is" + } + ] + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "type" + } + } + ] + } + }, + "as_expression": { + "type": "PREC_LEFT", + "value": 12, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "as" + }, + { + "type": "STRING", + "value": "as?" + } + ] + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "type" + } + } + ] + } + }, + "spread_expression": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + }, + "range_expression": { + "type": "PREC_LEFT", + "value": 9, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": ".." + }, + { + "type": "STRING", + "value": "..<" + } + ] + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + }, + "infix_expression": { + "type": "PREC_LEFT", + "value": 8, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + }, + "call_expression": { + "type": "PREC_LEFT", + "value": 13, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_arguments" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "value_arguments" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "value_arguments" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "annotated_lambda" + } + ] + } + ] + } + ] + } + }, + "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" + } + ] + }, + "lambda_literal": { + "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": "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" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "lambda_parameters": { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_lambda_parameter" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_lambda_parameter" + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "_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": "SYMBOL", + "name": "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": "type_constraints" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "function_body" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "index_expression": { + "type": "PREC", + "value": 13, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + } + }, + "this_expression": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "this" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "this@" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + ] + } + ] + }, + "super_expression": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "super" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "super" + }, + { + "type": "STRING", + "value": "<" + }, + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "STRING", + "value": ">" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "super@" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "super" + }, + { + "type": "STRING", + "value": "<" + }, + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "STRING", + "value": ">" + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": "@" + } + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + ] + } + }, + "if_expression": { + "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": "STRING", + "value": ")" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "assignment" + }, + { + "type": "STRING", + "value": ";" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "assignment" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": ";" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "else" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "assignment" + }, + { + "type": "STRING", + "value": ";" + } + ] + } + ] + } + ] + } + ] + } + }, + "parenthesized_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "collection_literal": { + "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": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "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_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_entry": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "_when_condition" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "_when_condition" + } + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "STRING", + "value": "else" + } + ] + }, + { + "type": "STRING", + "value": "->" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "statement" + } + ] + }, + { + "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": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_in" + }, + "named": false, + "value": "in" + }, + { + "type": "STRING", + "value": "!in" + } + ] + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "type_test": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "is" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_not_is" + }, + "named": false, + "value": "!is" + } + ] + }, + { + "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": "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" + } + ] + }, + "return_expression": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "return" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "return@" + }, + { + "type": "FIELD", + "name": "label", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "throw_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "throw" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "continue_expression": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "continue" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "continue@" + }, + { + "type": "FIELD", + "name": "label", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + } + ] + }, + "break_expression": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "break" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "break@" + }, + { + "type": "FIELD", + "name": "label", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + } + ] + }, + "callable_reference": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_receiver_type" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "::" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "STRING", + "value": "class" + } + ] + } + ] + }, + "navigation_expression": { + "type": "PREC", + "value": 13, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_q_dot" + }, + "named": false, + "value": "?." + }, + { + "type": "STRING", + "value": "::" + } + ] + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + }, + "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" + } + ] + }, + "string_literal": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "PATTERN", + "value": "[^bnrt'\\\"\\\\\\$]" + } + ] + } + } + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "[^\"\\\\\\$]+" + } + } + }, + { + "type": "STRING", + "value": "$" + } + ] + }, + "named": true, + "value": "string_content" + }, + { + "type": "SYMBOL", + "name": "escape_sequence" + }, + { + "type": "SYMBOL", + "name": "interpolation" + } + ] + } + }, + { + "type": "STRING", + "value": "\"" + } + ] + }, + "multiline_string_literal": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"\"\"" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_multiline_string_content" + }, + "named": true, + "value": "string_content" + }, + { + "type": "SYMBOL", + "name": "interpolation" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "\"\"\"" + }, + { + "type": "STRING", + "value": "\"\"\"\"" + } + ] + } + ] + }, + "interpolation": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "$" + }, + { + "type": "SYMBOL", + "name": "_identifier" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "${" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] + }, + "character_literal": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "[^'\\\\\\r\\n]" + } + } + }, + { + "type": "SYMBOL", + "name": "escape_sequence" + } + ] + }, + { + "type": "STRING", + "value": "'" + } + ] + }, + "escape_sequence": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[^xu0-7]" + }, + { + "type": "PATTERN", + "value": "u[0-9a-fA-F]{4}" + } + ] + } + ] + } + } + }, + "number_literal": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "_" + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + } + ] + } + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "0[xX]" + }, + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9a-fA-F]" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "_" + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9a-fA-F]" + } + } + ] + } + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "0[bB]" + }, + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[01]" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "_" + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[01]" + } + } + ] + } + } + ] + } + ] + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "([lL]|[uU][lL]?)" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "float_literal": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "_" + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + } + ] + } + } + ] + }, + { + "type": "PATTERN", + "value": "[eE][+-]?[0-9]+" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[fF]" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "_" + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "REPEAT1", + "content": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "_" + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + } + ] + } + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[eE][+-]?[0-9]+" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[fF]" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "_" + }, + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[0-9]+" + } + } + ] + } + } + ] + }, + { + "type": "PATTERN", + "value": "[fF]" + } + ] + } + ] + } + ] + } + }, + "variance_modifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "in" + }, + { + "type": "STRING", + "value": "out" + } + ] + }, + "type_parameter_modifiers": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "reification_modifier" + }, + { + "type": "SYMBOL", + "name": "variance_modifier" + }, + { + "type": "SYMBOL", + "name": "annotation" + } + ] + } + }, + "qualified_identifier": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + } + ] + }, + "label": { + "type": "TOKEN", + "content": { + "type": "PATTERN", + "value": "[a-zA-Z_][a-zA-Z_0-9]*@" + } + }, + "_identifier": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_reserved_identifier" + } + ] + }, + "identifier": { + "type": "TOKEN", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[\\p{L}_][\\p{L}_\\p{Nd}]*", + "flags": "u" + }, + { + "type": "PATTERN", + "value": "`[^\\r\\n`]+`" + } + ] + } + }, + "_reserved_identifier": { + "type": "PREC_DYNAMIC", + "value": 1, + "content": { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "actual" + }, + { + "type": "STRING", + "value": "annotation" + }, + { + "type": "STRING", + "value": "constructor" + }, + { + "type": "STRING", + "value": "const" + }, + { + "type": "STRING", + "value": "data" + }, + { + "type": "STRING", + "value": "enum" + }, + { + "type": "STRING", + "value": "expect" + }, + { + "type": "STRING", + "value": "inner" + }, + { + "type": "STRING", + "value": "get" + }, + { + "type": "STRING", + "value": "set" + }, + { + "type": "STRING", + "value": "operator" + }, + { + "type": "STRING", + "value": "value" + } + ] + }, + "named": true, + "value": "identifier" + } + }, + "shebang": { + "type": "PATTERN", + "value": "#!.*" + }, + "line_comment": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "//" + }, + { + "type": "PATTERN", + "value": ".*" + } + ] + } + } + }, + "extras": [ + { + "type": "PATTERN", + "value": "\\s" + }, + { + "type": "SYMBOL", + "name": "line_comment" + }, + { + "type": "SYMBOL", + "name": "block_comment" + } + ], + "conflicts": [ + [ + "class_body", + "enum_class_body" + ], + [ + "binary_expression", + "call_expression" + ], + [ + "binary_expression", + "in_expression", + "call_expression" + ], + [ + "binary_expression", + "infix_expression", + "call_expression" + ], + [ + "binary_expression", + "range_expression", + "call_expression" + ], + [ + "user_type" + ], + [ + "_simple_user_type", + "primary_expression" + ], + [ + "type", + "_receiver_type" + ], + [ + "modifiers", + "annotated_lambda" + ], + [ + "modifiers", + "annotated_expression" + ], + [ + "delegation_specifier", + "type_modifiers" + ], + [ + "annotated_expression", + "type_modifiers" + ], + [ + "annotated_expression", + "type_modifiers", + "when_subject" + ], + [ + "annotated_expression", + "type_modifiers", + "modifiers" + ], + [ + "parameter_modifiers", + "type_modifiers" + ], + [ + "function_modifier", + "type_modifiers" + ], + [ + "function_modifier", + "_reserved_identifier" + ], + [ + "variable_declaration", + "type_modifiers" + ], + [ + "variable_declaration", + "type_modifiers", + "modifiers", + "annotated_expression" + ], + [ + "variable_declaration", + "type_modifiers", + "annotated_expression" + ], + [ + "variable_declaration" + ], + [ + "function_value_parameters", + "function_type_parameters" + ], + [ + "parenthesized_type", + "function_type_parameters" + ], + [ + "multi_variable_declaration", + "function_type_parameters" + ], + [ + "class_modifier", + "_reserved_identifier" + ], + [ + "platform_modifier", + "_reserved_identifier" + ], + [ + "property_modifier", + "_reserved_identifier" + ], + [ + "explicit_delegation", + "expression" + ], + [ + "qualified_identifier" + ], + [ + "constructor_invocation", + "_unescaped_annotation" + ], + [ + "nullable_type" + ], + [ + "non_nullable_type" + ], + [ + "function_type" + ], + [ + "_receiver_type" + ] + ], + "precedences": [ + [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "lambda_literal" + } + ], + [ + { + "type": "SYMBOL", + "name": "function_type" + }, + { + "type": "SYMBOL", + "name": "nullable_type" + } + ], + [ + { + "type": "SYMBOL", + "name": "function_type" + }, + { + "type": "SYMBOL", + "name": "non_nullable_type" + } + ] + ], + "externals": [ + { + "type": "SYMBOL", + "name": "_semi" + }, + { + "type": "SYMBOL", + "name": "_class_member_semi" + }, + { + "type": "SYMBOL", + "name": "block_comment" + }, + { + "type": "SYMBOL", + "name": "_not_is" + }, + { + "type": "SYMBOL", + "name": "_in" + }, + { + "type": "SYMBOL", + "name": "_q_dot" + }, + { + "type": "SYMBOL", + "name": "_multiline_string_content" + }, + { + "type": "STRING", + "value": "constructor" + }, + { + "type": "STRING", + "value": "get" + }, + { + "type": "STRING", + "value": "set" + }, + { + "type": "STRING", + "value": "$" + } + ], + "inline": [ + "_statements", + "_identifier" + ], + "supertypes": [ + "class_member_declaration", + "declaration", + "expression", + "primary_expression", + "type" + ] +} |
