{ "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" ] }