diff options
Diffstat (limited to 'vendor/tree-sitter-php/src/grammar.json')
| -rw-r--r-- | vendor/tree-sitter-php/src/grammar.json | 9242 |
1 files changed, 9242 insertions, 0 deletions
diff --git a/vendor/tree-sitter-php/src/grammar.json b/vendor/tree-sitter-php/src/grammar.json new file mode 100644 index 0000000..4b3aa4e --- /dev/null +++ b/vendor/tree-sitter-php/src/grammar.json @@ -0,0 +1,9242 @@ +{ + "name": "php", + "word": "name", + "rules": { + "program": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "text" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "php_tag" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "php_tag": { + "type": "PATTERN", + "value": "<\\?([pP][hH][pP]|=)?" + }, + "text_interpolation": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "?>" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "text" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "php_tag" + }, + { + "type": "SYMBOL", + "name": "_eof" + } + ] + } + ] + }, + "text": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "TOKEN", + "content": { + "type": "PREC", + "value": -1, + "content": { + "type": "PATTERN", + "value": "<" + } + } + }, + { + "type": "TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "[^\\s<][^<]*" + } + } + } + ] + } + }, + "statement": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "empty_statement" + }, + { + "type": "SYMBOL", + "name": "compound_statement" + }, + { + "type": "SYMBOL", + "name": "named_label_statement" + }, + { + "type": "SYMBOL", + "name": "expression_statement" + }, + { + "type": "SYMBOL", + "name": "if_statement" + }, + { + "type": "SYMBOL", + "name": "switch_statement" + }, + { + "type": "SYMBOL", + "name": "while_statement" + }, + { + "type": "SYMBOL", + "name": "do_statement" + }, + { + "type": "SYMBOL", + "name": "for_statement" + }, + { + "type": "SYMBOL", + "name": "foreach_statement" + }, + { + "type": "SYMBOL", + "name": "goto_statement" + }, + { + "type": "SYMBOL", + "name": "continue_statement" + }, + { + "type": "SYMBOL", + "name": "break_statement" + }, + { + "type": "SYMBOL", + "name": "return_statement" + }, + { + "type": "SYMBOL", + "name": "try_statement" + }, + { + "type": "SYMBOL", + "name": "declare_statement" + }, + { + "type": "SYMBOL", + "name": "echo_statement" + }, + { + "type": "SYMBOL", + "name": "exit_statement" + }, + { + "type": "SYMBOL", + "name": "unset_statement" + }, + { + "type": "SYMBOL", + "name": "const_declaration" + }, + { + "type": "SYMBOL", + "name": "function_definition" + }, + { + "type": "SYMBOL", + "name": "class_declaration" + }, + { + "type": "SYMBOL", + "name": "interface_declaration" + }, + { + "type": "SYMBOL", + "name": "trait_declaration" + }, + { + "type": "SYMBOL", + "name": "enum_declaration" + }, + { + "type": "SYMBOL", + "name": "namespace_definition" + }, + { + "type": "SYMBOL", + "name": "namespace_use_declaration" + }, + { + "type": "SYMBOL", + "name": "global_declaration" + }, + { + "type": "SYMBOL", + "name": "function_static_declaration" + } + ] + }, + "empty_statement": { + "type": "PREC", + "value": -1, + "content": { + "type": "STRING", + "value": ";" + } + }, + "reference_modifier": { + "type": "STRING", + "value": "&" + }, + "function_static_declaration": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "static", + "flags": "i" + }, + "named": false, + "value": "static" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "static_variable_declaration" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "static_variable_declaration" + } + ] + } + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "static_variable_declaration": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "variable_name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "global_declaration": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "global", + "flags": "i" + }, + "named": false, + "value": "global" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_simple_variable" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_simple_variable" + } + ] + } + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "namespace_definition": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "namespace", + "flags": "i" + }, + "named": false, + "value": "namespace" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "namespace_name" + } + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "namespace_name" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + } + ] + } + ] + } + ] + }, + "namespace_use_declaration": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "use", + "flags": "i" + }, + "named": false, + "value": "use" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "namespace_use_clause" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "namespace_use_clause" + } + ] + } + } + ] + }, + { + "type": "SYMBOL", + "name": "_namespace_use_group" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "namespace_use_clause": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_namespace_use_type" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "_name" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "as", + "flags": "i" + }, + "named": false, + "value": "as" + }, + { + "type": "FIELD", + "name": "alias", + "content": { + "type": "SYMBOL", + "name": "name" + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "_namespace_use_type": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "function", + "flags": "i" + }, + "named": false, + "value": "function" + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "const", + "flags": "i" + }, + "named": false, + "value": "const" + } + ] + }, + "qualified_name": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "prefix", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "namespace_name" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "\\" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + }, + "_name": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "SYMBOL", + "name": "qualified_name" + } + ] + }, + "namespace_name": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + } + } + ] + }, + "_namespace_use_group": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_namespace_use_type" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "namespace_name" + }, + { + "type": "STRING", + "value": "\\" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "namespace_use_group" + } + } + ] + }, + "namespace_use_group": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "namespace_use_clause" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "namespace_use_clause" + } + ] + } + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "trait_declaration": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "trait", + "flags": "i" + }, + "named": false, + "value": "trait" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "declaration_list" + } + } + ] + }, + "interface_declaration": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "interface", + "flags": "i" + }, + "named": false, + "value": "interface" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "base_clause" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "declaration_list" + } + } + ] + }, + "base_clause": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "extends", + "flags": "i" + }, + "named": false, + "value": "extends" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_name" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_name" + } + ] + } + } + ] + } + ] + }, + "enum_declaration": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "enum", + "flags": "i" + }, + "named": false, + "value": "enum" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "string" + }, + { + "type": "STRING", + "value": "int" + } + ] + }, + "named": true, + "value": "primitive_type" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "class_interface_clause" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "enum_declaration_list" + } + } + ] + } + }, + "enum_declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_enum_member_declaration" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_enum_member_declaration": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "enum_case" + }, + { + "type": "SYMBOL", + "name": "method_declaration" + }, + { + "type": "SYMBOL", + "name": "use_declaration" + } + ] + }, + "enum_case": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "case", + "flags": "i" + }, + "named": false, + "value": "case" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_string" + }, + { + "type": "SYMBOL", + "name": "integer" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "class_declaration": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_modifier" + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "class", + "flags": "i" + }, + "named": false, + "value": "class" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "base_clause" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "class_interface_clause" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "declaration_list" + } + } + ] + } + }, + "declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_member_declaration" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "final_modifier": { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "final", + "flags": "i" + }, + "named": false, + "value": "final" + }, + "abstract_modifier": { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "abstract", + "flags": "i" + }, + "named": false, + "value": "abstract" + }, + "readonly_modifier": { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "readonly", + "flags": "i" + }, + "named": false, + "value": "readonly" + }, + "class_interface_clause": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "implements", + "flags": "i" + }, + "named": false, + "value": "implements" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_name" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_name" + } + ] + } + } + ] + } + ] + }, + "_member_declaration": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_class_const_declaration" + }, + "named": true, + "value": "const_declaration" + }, + { + "type": "SYMBOL", + "name": "property_declaration" + }, + { + "type": "SYMBOL", + "name": "method_declaration" + }, + { + "type": "SYMBOL", + "name": "use_declaration" + } + ] + }, + "const_declaration": { + "type": "SYMBOL", + "name": "_const_declaration" + }, + "_class_const_declaration": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "final_modifier" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_const_declaration" + } + ] + }, + "_const_declaration": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_modifier" + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "const", + "flags": "i" + }, + "named": false, + "value": "const" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "type" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "const_element" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "const_element" + } + ] + } + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "property_declaration": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "_modifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "type" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "property_element" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "property_element" + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_semicolon" + }, + { + "type": "SYMBOL", + "name": "property_hook_list" + } + ] + } + ] + }, + "_modifier": { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "var_modifier" + }, + { + "type": "SYMBOL", + "name": "visibility_modifier" + }, + { + "type": "SYMBOL", + "name": "static_modifier" + }, + { + "type": "SYMBOL", + "name": "final_modifier" + }, + { + "type": "SYMBOL", + "name": "abstract_modifier" + }, + { + "type": "SYMBOL", + "name": "readonly_modifier" + } + ] + } + }, + "property_element": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "variable_name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "default_value", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "property_hook_list": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "property_hook" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "property_hook": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "final", + "content": { + "type": "SYMBOL", + "name": "final_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "reference_modifier", + "content": { + "type": "SYMBOL", + "name": "reference_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "formal_parameters" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_property_hook_body" + } + ] + }, + "_property_hook_body": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=>" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "method_declaration": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_modifier" + } + }, + { + "type": "SYMBOL", + "name": "_function_definition_header" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + ] + }, + "var_modifier": { + "type": "PATTERN", + "value": "var", + "flags": "i" + }, + "static_modifier": { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "static", + "flags": "i" + }, + "named": false, + "value": "static" + }, + "use_declaration": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "use", + "flags": "i" + }, + "named": false, + "value": "use" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_name" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_name" + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "use_list" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + ] + }, + "use_list": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "use_instead_of_clause" + }, + { + "type": "SYMBOL", + "name": "use_as_clause" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "use_instead_of_clause": { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "class_constant_access_expression" + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "insteadof", + "flags": "i" + }, + "named": false, + "value": "insteadof" + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + } + }, + "use_as_clause": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "class_constant_access_expression" + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "as", + "flags": "i" + }, + "named": false, + "value": "as" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "visibility_modifier" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "visibility_modifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + } + ] + }, + "visibility_modifier": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "public", + "flags": "i" + }, + "named": false, + "value": "public" + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "protected", + "flags": "i" + }, + "named": false, + "value": "protected" + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "private", + "flags": "i" + }, + "named": false, + "value": "private" + } + ] + }, + "function_definition": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_function_definition_header" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + } + ] + }, + "_function_definition_header": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "function", + "flags": "i" + }, + "named": false, + "value": "function" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "reference_modifier" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_identifier" + } + }, + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "formal_parameters" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_return_type" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "anonymous_function": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_anonymous_function_header" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + } + ] + }, + "anonymous_function_use_clause": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "use", + "flags": "i" + }, + "named": false, + "value": "use" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "by_ref" + }, + { + "type": "SYMBOL", + "name": "variable_name" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "by_ref" + }, + { + "type": "SYMBOL", + "name": "variable_name" + } + ] + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "_anonymous_function_header": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "static_modifier", + "content": { + "type": "SYMBOL", + "name": "static_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "function", + "flags": "i" + }, + "named": false, + "value": "function" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "reference_modifier", + "content": { + "type": "SYMBOL", + "name": "reference_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "formal_parameters" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "anonymous_function_use_clause" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_return_type" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "_arrow_function_header": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "static_modifier", + "content": { + "type": "SYMBOL", + "name": "static_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "fn", + "flags": "i" + }, + "named": false, + "value": "fn" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "reference_modifier", + "content": { + "type": "SYMBOL", + "name": "reference_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "formal_parameters" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_return_type" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "arrow_function": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_arrow_function_header" + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + "formal_parameters": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "simple_parameter" + }, + { + "type": "SYMBOL", + "name": "variadic_parameter" + }, + { + "type": "SYMBOL", + "name": "property_promotion_parameter" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "simple_parameter" + }, + { + "type": "SYMBOL", + "name": "variadic_parameter" + }, + { + "type": "SYMBOL", + "name": "property_promotion_parameter" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "property_promotion_parameter": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "visibility", + "content": { + "type": "SYMBOL", + "name": "visibility_modifier" + } + }, + { + "type": "FIELD", + "name": "readonly", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "readonly_modifier" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "by_ref" + }, + { + "type": "SYMBOL", + "name": "variable_name" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "default_value", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "property_hook_list" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "simple_parameter": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "reference_modifier", + "content": { + "type": "SYMBOL", + "name": "reference_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "variable_name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "default_value", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "variadic_parameter": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "reference_modifier", + "content": { + "type": "SYMBOL", + "name": "reference_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "..." + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "variable_name" + } + } + ] + }, + "type": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_types" + }, + { + "type": "SYMBOL", + "name": "union_type" + }, + { + "type": "SYMBOL", + "name": "intersection_type" + }, + { + "type": "SYMBOL", + "name": "disjunctive_normal_form_type" + } + ] + }, + "_types": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "optional_type" + }, + { + "type": "SYMBOL", + "name": "named_type" + }, + { + "type": "SYMBOL", + "name": "primitive_type" + } + ] + }, + "named_type": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "SYMBOL", + "name": "qualified_name" + } + ] + }, + "optional_type": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "?" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "named_type" + }, + { + "type": "SYMBOL", + "name": "primitive_type" + } + ] + } + ] + }, + "bottom_type": { + "type": "STRING", + "value": "never" + }, + "union_type": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_types" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "|" + }, + { + "type": "SYMBOL", + "name": "_types" + } + ] + } + } + ] + }, + "intersection_type": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_types" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "TOKEN", + "content": { + "type": "STRING", + "value": "&" + } + }, + { + "type": "SYMBOL", + "name": "_types" + } + ] + } + } + ] + }, + "disjunctive_normal_form_type": { + "type": "PREC_DYNAMIC", + "value": -1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "intersection_type" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "SYMBOL", + "name": "_types" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "|" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "intersection_type" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "SYMBOL", + "name": "_types" + } + ] + } + ] + } + } + ] + } + }, + "primitive_type": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "array" + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "callable", + "flags": "i" + }, + "named": false, + "value": "callable" + }, + { + "type": "STRING", + "value": "iterable" + }, + { + "type": "STRING", + "value": "bool" + }, + { + "type": "STRING", + "value": "float" + }, + { + "type": "STRING", + "value": "int" + }, + { + "type": "STRING", + "value": "string" + }, + { + "type": "STRING", + "value": "void" + }, + { + "type": "STRING", + "value": "mixed" + }, + { + "type": "STRING", + "value": "false" + }, + { + "type": "STRING", + "value": "null" + }, + { + "type": "STRING", + "value": "true" + } + ] + }, + "cast_type": { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "array", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "binary", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "bool", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "boolean", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "double", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "int", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "integer", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "float", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "object", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "real", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "string", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "unset", + "flags": "i" + } + ] + }, + "_return_type": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "return_type", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "SYMBOL", + "name": "bottom_type" + } + ] + } + } + ] + }, + "const_element": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "echo_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "echo", + "flags": "i" + }, + "named": false, + "value": "echo" + }, + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "exit_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "exit", + "flags": "i" + }, + "named": false, + "value": "exit" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "unset_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "unset" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_variable" + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "declare_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "declare", + "flags": "i" + }, + "named": false, + "value": "declare" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "declare_directive" + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "statement" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "enddeclare", + "flags": "i" + }, + "named": false, + "value": "enddeclare" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + ] + } + ] + }, + "declare_directive": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "ticks" + }, + { + "type": "STRING", + "value": "encoding" + }, + { + "type": "STRING", + "value": "strict_types" + } + ] + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "literal" + } + ] + }, + "literal": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "integer" + }, + { + "type": "SYMBOL", + "name": "float" + }, + { + "type": "SYMBOL", + "name": "_string" + }, + { + "type": "SYMBOL", + "name": "boolean" + }, + { + "type": "SYMBOL", + "name": "null" + } + ] + }, + "float": { + "type": "PATTERN", + "value": "\\d*(_\\d+)*((\\.\\d*(_\\d+)*)?([eE][\\+-]?\\d+(_\\d+)*)|(\\.\\d*(_\\d+)*)([eE][\\+-]?\\d+(_\\d+)*)?)" + }, + "try_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "try", + "flags": "i" + }, + "named": false, + "value": "try" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + }, + { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "catch_clause" + }, + { + "type": "SYMBOL", + "name": "finally_clause" + } + ] + } + } + ] + }, + "catch_clause": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "catch", + "flags": "i" + }, + "named": false, + "value": "catch" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "type_list" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "variable_name" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + } + ] + }, + "type_list": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "named_type" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "|" + }, + { + "type": "SYMBOL", + "name": "named_type" + } + ] + } + } + ] + }, + "finally_clause": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "finally", + "flags": "i" + }, + "named": false, + "value": "finally" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "compound_statement" + } + } + ] + }, + "goto_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "goto", + "flags": "i" + }, + "named": false, + "value": "goto" + }, + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "continue_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "continue", + "flags": "i" + }, + "named": false, + "value": "continue" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "break_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "break", + "flags": "i" + }, + "named": false, + "value": "break" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "integer": { + "type": "TOKEN", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[1-9]\\d*(_\\d+)*" + }, + { + "type": "PATTERN", + "value": "0[oO]?[0-7]*(_[0-7]+)*" + }, + { + "type": "PATTERN", + "value": "0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)*" + }, + { + "type": "PATTERN", + "value": "0[bB][01]+(_[01]+)*" + } + ] + } + }, + "return_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "return", + "flags": "i" + }, + "named": false, + "value": "return" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "throw_expression": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "throw", + "flags": "i" + }, + "named": false, + "value": "throw" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "while_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "while", + "flags": "i" + }, + "named": false, + "value": "while" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "colon_block" + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "endwhile", + "flags": "i" + }, + "named": false, + "value": "endwhile" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + ] + } + ] + }, + "do_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "do", + "flags": "i" + }, + "named": false, + "value": "do" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "while", + "flags": "i" + }, + "named": false, + "value": "while" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "for_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "for", + "flags": "i" + }, + "named": false, + "value": "for" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "initialize", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": ";" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": ";" + }, + { + "type": "FIELD", + "name": "update", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_semicolon" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "endfor", + "flags": "i" + }, + "named": false, + "value": "endfor" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + ] + } + ] + }, + "_expressions": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "sequence_expression" + } + ] + }, + "sequence_expression": { + "type": "PREC", + "value": -1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "sequence_expression" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + ] + } + }, + "foreach_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "foreach", + "flags": "i" + }, + "named": false, + "value": "foreach" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "as", + "flags": "i" + }, + "named": false, + "value": "as" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "foreach_pair" + }, + "named": true, + "value": "pair" + }, + { + "type": "SYMBOL", + "name": "_foreach_value" + } + ] + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_semicolon" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "colon_block" + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "endforeach", + "flags": "i" + }, + "named": false, + "value": "endforeach" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + ] + } + ] + }, + "foreach_pair": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "SYMBOL", + "name": "_foreach_value" + } + ] + }, + "_foreach_value": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "by_ref" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "list_literal" + } + ] + }, + "if_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "if", + "flags": "i" + }, + "named": false, + "value": "if" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "SYMBOL", + "name": "else_if_clause" + } + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "SYMBOL", + "name": "else_clause" + } + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "colon_block" + } + }, + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "else_if_clause_2" + }, + "named": true, + "value": "else_if_clause" + } + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "else_clause_2" + }, + "named": true, + "value": "else_clause" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "endif", + "flags": "i" + }, + "named": false, + "value": "endif" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + ] + } + ] + }, + "colon_block": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "else_if_clause": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "elseif", + "flags": "i" + }, + "named": false, + "value": "elseif" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "else_clause": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "else", + "flags": "i" + }, + "named": false, + "value": "else" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "else_if_clause_2": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "elseif", + "flags": "i" + }, + "named": false, + "value": "elseif" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "colon_block" + } + } + ] + }, + "else_clause_2": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "else", + "flags": "i" + }, + "named": false, + "value": "else" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "colon_block" + } + } + ] + }, + "match_expression": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "match", + "flags": "i" + }, + "named": false, + "value": "match" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "match_block" + } + } + ] + }, + "match_block": { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "match_conditional_expression" + }, + { + "type": "SYMBOL", + "name": "match_default_expression" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "match_conditional_expression" + }, + { + "type": "SYMBOL", + "name": "match_default_expression" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + } + }, + "match_condition_list": { + "type": "SEQ", + "members": [ + { + "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" + } + ] + } + ] + }, + "match_conditional_expression": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "conditional_expressions", + "content": { + "type": "SYMBOL", + "name": "match_condition_list" + } + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "FIELD", + "name": "return_expression", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + "match_default_expression": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "default", + "flags": "i" + }, + "named": false, + "value": "default" + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "FIELD", + "name": "return_expression", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + "switch_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "switch", + "flags": "i" + }, + "named": false, + "value": "switch" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "switch_block" + } + } + ] + }, + "switch_block": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "case_statement" + }, + { + "type": "SYMBOL", + "name": "default_statement" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "case_statement" + }, + { + "type": "SYMBOL", + "name": "default_statement" + } + ] + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "endswitch", + "flags": "i" + }, + "named": false, + "value": "endswitch" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + ] + }, + "case_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "case", + "flags": "i" + }, + "named": false, + "value": "case" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "default_statement": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "default", + "flags": "i" + }, + "named": false, + "value": "default" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "compound_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "named_label_statement": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "STRING", + "value": ":" + } + ] + }, + "expression_statement": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "conditional_expression" + }, + { + "type": "SYMBOL", + "name": "match_expression" + }, + { + "type": "SYMBOL", + "name": "augmented_assignment_expression" + }, + { + "type": "SYMBOL", + "name": "assignment_expression" + }, + { + "type": "SYMBOL", + "name": "reference_assignment_expression" + }, + { + "type": "SYMBOL", + "name": "yield_expression" + }, + { + "type": "SYMBOL", + "name": "_unary_expression" + }, + { + "type": "SYMBOL", + "name": "error_suppression_expression" + }, + { + "type": "SYMBOL", + "name": "binary_expression" + }, + { + "type": "SYMBOL", + "name": "include_expression" + }, + { + "type": "SYMBOL", + "name": "include_once_expression" + }, + { + "type": "SYMBOL", + "name": "require_expression" + }, + { + "type": "SYMBOL", + "name": "require_once_expression" + } + ] + }, + "_unary_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "clone_expression" + }, + { + "type": "SYMBOL", + "name": "primary_expression" + }, + { + "type": "SYMBOL", + "name": "unary_op_expression" + }, + { + "type": "SYMBOL", + "name": "cast_expression" + } + ] + }, + "unary_op_expression": { + "type": "PREC_LEFT", + "value": 19, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "~" + }, + { + "type": "STRING", + "value": "!" + } + ] + } + }, + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + "error_suppression_expression": { + "type": "PREC", + "value": 21, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "@" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + }, + "clone_expression": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "clone", + "flags": "i" + }, + "named": false, + "value": "clone" + }, + { + "type": "SYMBOL", + "name": "primary_expression" + } + ] + }, + "primary_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "SYMBOL", + "name": "literal" + }, + { + "type": "SYMBOL", + "name": "class_constant_access_expression" + }, + { + "type": "SYMBOL", + "name": "qualified_name" + }, + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "SYMBOL", + "name": "array_creation_expression" + }, + { + "type": "SYMBOL", + "name": "print_intrinsic" + }, + { + "type": "SYMBOL", + "name": "anonymous_function" + }, + { + "type": "SYMBOL", + "name": "arrow_function" + }, + { + "type": "SYMBOL", + "name": "object_creation_expression" + }, + { + "type": "SYMBOL", + "name": "update_expression" + }, + { + "type": "SYMBOL", + "name": "shell_command_expression" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + }, + { + "type": "SYMBOL", + "name": "throw_expression" + }, + { + "type": "SYMBOL", + "name": "arrow_function" + } + ] + }, + "parenthesized_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "class_constant_access_expression": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_scope_resolution_qualifier" + }, + { + "type": "STRING", + "value": "::" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "expression" + }, + "named": true, + "value": "name" + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] + } + ] + }, + "print_intrinsic": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "print", + "flags": "i" + }, + "named": false, + "value": "print" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "object_creation_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_new_dereferencable_expression" + }, + { + "type": "SYMBOL", + "name": "_new_non_dereferencable_expression" + } + ] + }, + "_new_non_dereferencable_expression": { + "type": "PREC_RIGHT", + "value": 23, + "content": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "new", + "flags": "i" + }, + "named": false, + "value": "new" + }, + { + "type": "SYMBOL", + "name": "_class_name_reference" + } + ] + } + }, + "_new_dereferencable_expression": { + "type": "PREC_RIGHT", + "value": 23, + "content": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "new", + "flags": "i" + }, + "named": false, + "value": "new" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_class_name_reference" + }, + { + "type": "SYMBOL", + "name": "arguments" + } + ] + }, + { + "type": "SYMBOL", + "name": "anonymous_class" + } + ] + } + ] + } + }, + "_class_name_reference": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_name" + }, + { + "type": "SYMBOL", + "name": "_new_variable" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + ] + }, + "anonymous_class": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "attributes", + "content": { + "type": "SYMBOL", + "name": "attribute_list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_modifier" + } + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "class", + "flags": "i" + }, + "named": false, + "value": "class" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "arguments" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "base_clause" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "class_interface_clause" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "declaration_list" + } + } + ] + } + }, + "update_expression": { + "type": "PREC_LEFT", + "value": 21, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "--" + }, + { + "type": "STRING", + "value": "++" + } + ] + } + }, + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "_variable" + } + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "_variable" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "--" + }, + { + "type": "STRING", + "value": "++" + } + ] + } + } + ] + } + ] + } + }, + "cast_expression": { + "type": "PREC", + "value": -1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "cast_type" + } + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_unary_expression" + }, + { + "type": "SYMBOL", + "name": "include_expression" + }, + { + "type": "SYMBOL", + "name": "include_once_expression" + }, + { + "type": "SYMBOL", + "name": "error_suppression_expression" + } + ] + } + } + ] + } + }, + "cast_variable": { + "type": "PREC", + "value": -1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "cast_type" + } + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_variable" + } + } + ] + } + }, + "assignment_expression": { + "type": "PREC_RIGHT", + "value": 4, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "SYMBOL", + "name": "list_literal" + } + ] + } + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + "reference_assignment_expression": { + "type": "PREC_RIGHT", + "value": 4, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "SYMBOL", + "name": "list_literal" + } + ] + } + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "STRING", + "value": "&" + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + "conditional_expression": { + "type": "PREC_LEFT", + "value": 5, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "STRING", + "value": "?" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + "augmented_assignment_expression": { + "type": "PREC_RIGHT", + "value": 4, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_variable" + } + }, + { + "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": "STRING", + "value": ".=" + }, + { + "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" + } + } + ] + } + }, + "_variable": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "cast_variable" + }, + "named": true, + "value": "cast_expression" + }, + { + "type": "SYMBOL", + "name": "_new_variable" + }, + { + "type": "SYMBOL", + "name": "_callable_variable" + }, + { + "type": "SYMBOL", + "name": "scoped_property_access_expression" + }, + { + "type": "SYMBOL", + "name": "member_access_expression" + }, + { + "type": "SYMBOL", + "name": "nullsafe_member_access_expression" + } + ] + }, + "_variable_member_access_expression": { + "type": "PREC", + "value": 25, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "SYMBOL", + "name": "_new_variable" + } + }, + { + "type": "STRING", + "value": "->" + }, + { + "type": "SYMBOL", + "name": "_member_name" + } + ] + } + }, + "member_access_expression": { + "type": "PREC", + "value": 25, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "SYMBOL", + "name": "_dereferencable_expression" + } + }, + { + "type": "STRING", + "value": "->" + }, + { + "type": "SYMBOL", + "name": "_member_name" + } + ] + } + }, + "_variable_nullsafe_member_access_expression": { + "type": "PREC", + "value": 25, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "SYMBOL", + "name": "_new_variable" + } + }, + { + "type": "STRING", + "value": "?->" + }, + { + "type": "SYMBOL", + "name": "_member_name" + } + ] + } + }, + "nullsafe_member_access_expression": { + "type": "PREC", + "value": 25, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "SYMBOL", + "name": "_dereferencable_expression" + } + }, + { + "type": "STRING", + "value": "?->" + }, + { + "type": "SYMBOL", + "name": "_member_name" + } + ] + } + }, + "_variable_scoped_property_access_expression": { + "type": "PREC", + "value": 25, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "scope", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_name" + }, + { + "type": "SYMBOL", + "name": "_new_variable" + } + ] + } + }, + { + "type": "STRING", + "value": "::" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_simple_variable" + } + } + ] + } + }, + "scoped_property_access_expression": { + "type": "PREC", + "value": 25, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "scope", + "content": { + "type": "SYMBOL", + "name": "_scope_resolution_qualifier" + } + }, + { + "type": "STRING", + "value": "::" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_simple_variable" + } + } + ] + } + }, + "list_literal": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_list_destructing" + }, + { + "type": "SYMBOL", + "name": "_array_destructing" + } + ] + }, + "_list_destructing": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "list", + "flags": "i" + }, + "named": false, + "value": "list" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_list_destructing" + }, + "named": true, + "value": "list_literal" + }, + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "SYMBOL", + "name": "by_ref" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_list_destructing" + }, + "named": true, + "value": "list_literal" + }, + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "SYMBOL", + "name": "by_ref" + } + ] + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_list_destructing" + }, + "named": true, + "value": "list_literal" + }, + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "SYMBOL", + "name": "by_ref" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_list_destructing" + }, + "named": true, + "value": "list_literal" + }, + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "SYMBOL", + "name": "by_ref" + } + ] + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "_array_destructing": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_array_destructing_element" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_array_destructing_element" + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "_array_destructing_element": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_array_destructing" + }, + "named": true, + "value": "list_literal" + }, + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "SYMBOL", + "name": "by_ref" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_array_destructing" + }, + "named": true, + "value": "list_literal" + }, + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "SYMBOL", + "name": "by_ref" + } + ] + } + ] + } + ] + }, + "function_call_expression": { + "type": "PREC", + "value": 24, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "function", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_name" + }, + { + "type": "SYMBOL", + "name": "_callable_expression" + } + ] + } + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "arguments" + } + } + ] + } + }, + "_callable_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_callable_variable" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + }, + { + "type": "SYMBOL", + "name": "_dereferencable_scalar" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_new_dereferencable_expression" + }, + "named": true, + "value": "object_creation_expression" + } + ] + }, + "scoped_call_expression": { + "type": "PREC", + "value": 24, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "scope", + "content": { + "type": "SYMBOL", + "name": "_scope_resolution_qualifier" + } + }, + { + "type": "STRING", + "value": "::" + }, + { + "type": "SYMBOL", + "name": "_member_name" + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "arguments" + } + } + ] + } + }, + "_scope_resolution_qualifier": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "relative_scope" + }, + { + "type": "SYMBOL", + "name": "_name" + }, + { + "type": "SYMBOL", + "name": "_dereferencable_expression" + } + ] + }, + "relative_scope": { + "type": "PREC", + "value": 22, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "self" + }, + { + "type": "STRING", + "value": "parent" + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "static", + "flags": "i" + }, + "named": false, + "value": "static" + } + ] + } + }, + "variadic_placeholder": { + "type": "STRING", + "value": "..." + }, + "arguments": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "argument" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "argument" + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SYMBOL", + "name": "variadic_placeholder" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "argument": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_argument_name" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "reference_modifier", + "content": { + "type": "SYMBOL", + "name": "reference_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_reserved_identifier" + }, + "named": true, + "value": "name" + }, + { + "type": "SYMBOL", + "name": "variadic_unpacking" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + ] + }, + "_argument_name": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "PATTERN", + "value": "array", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "fn", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "function", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "match", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "namespace", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "null", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "static", + "flags": "i" + }, + { + "type": "PATTERN", + "value": "throw", + "flags": "i" + }, + { + "type": "STRING", + "value": "parent" + }, + { + "type": "STRING", + "value": "self" + }, + { + "type": "PATTERN", + "value": "true|false", + "flags": "i" + } + ] + }, + "named": true, + "value": "name" + } + }, + { + "type": "STRING", + "value": ":" + } + ] + }, + "member_call_expression": { + "type": "PREC", + "value": 24, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "SYMBOL", + "name": "_dereferencable_expression" + } + }, + { + "type": "STRING", + "value": "->" + }, + { + "type": "SYMBOL", + "name": "_member_name" + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "arguments" + } + } + ] + } + }, + "nullsafe_member_call_expression": { + "type": "PREC", + "value": 24, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "SYMBOL", + "name": "_dereferencable_expression" + } + }, + { + "type": "STRING", + "value": "?->" + }, + { + "type": "SYMBOL", + "name": "_member_name" + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "arguments" + } + } + ] + } + }, + "variadic_unpacking": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "..." + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "_member_name": { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "SYMBOL", + "name": "_simple_variable" + } + ] + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] + }, + "_variable_subscript_expression": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_new_variable" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + } + ] + }, + "_dereferencable_subscript_expression": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_dereferencable_expression" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + } + ] + }, + "_dereferencable_expression": { + "type": "PREC", + "value": 26, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_variable" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_new_dereferencable_expression" + }, + "named": true, + "value": "object_creation_expression" + }, + { + "type": "SYMBOL", + "name": "class_constant_access_expression" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + }, + { + "type": "SYMBOL", + "name": "_dereferencable_scalar" + }, + { + "type": "SYMBOL", + "name": "_name" + } + ] + } + }, + "_dereferencable_scalar": { + "type": "PREC", + "value": 26, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "array_creation_expression" + }, + { + "type": "SYMBOL", + "name": "_string" + } + ] + } + }, + "array_creation_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "array", + "flags": "i" + }, + "named": false, + "value": "array" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "array_element_initializer" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "array_element_initializer" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "array_element_initializer" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "array_element_initializer" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + } + ] + }, + "attribute_group": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "#[" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "attribute" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "attribute" + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "attribute_list": { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "attribute_group" + } + }, + "attribute": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_name" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "arguments" + } + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "_complex_string_part": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_simple_string_member_access_expression": { + "type": "PREC", + "value": 25, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "SYMBOL", + "name": "variable_name" + } + }, + { + "type": "STRING", + "value": "->" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + } + ] + } + }, + "_simple_string_subscript_unary_expression": { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "-" + }, + { + "type": "SYMBOL", + "name": "integer" + } + ] + } + }, + "_simple_string_array_access_argument": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "integer" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_simple_string_subscript_unary_expression" + }, + "named": true, + "value": "unary_op_expression" + }, + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "SYMBOL", + "name": "variable_name" + } + ] + }, + "_simple_string_subscript_expression": { + "type": "PREC", + "value": 26, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "variable_name" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_simple_string_array_access_argument" + }, + { + "type": "STRING", + "value": "]" + } + ] + } + ] + } + }, + "_simple_string_part": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_simple_string_member_access_expression" + }, + "named": true, + "value": "member_access_expression" + }, + { + "type": "SYMBOL", + "name": "_simple_variable" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_simple_string_subscript_expression" + }, + "named": true, + "value": "subscript_expression" + } + ] + }, + "escape_sequence": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "n" + }, + { + "type": "STRING", + "value": "r" + }, + { + "type": "STRING", + "value": "t" + }, + { + "type": "STRING", + "value": "v" + }, + { + "type": "STRING", + "value": "e" + }, + { + "type": "STRING", + "value": "f" + }, + { + "type": "STRING", + "value": "\\" + }, + { + "type": "PATTERN", + "value": "\\$" + }, + { + "type": "STRING", + "value": "\"" + }, + { + "type": "STRING", + "value": "`" + }, + { + "type": "PATTERN", + "value": "[0-7]{1,3}" + }, + { + "type": "PATTERN", + "value": "x[0-9A-Fa-f]{1,2}" + }, + { + "type": "PATTERN", + "value": "u\\{[0-9A-Fa-f]+\\}" + } + ] + } + ] + } + }, + "_interpolated_string_body": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "escape_sequence" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "variable_name" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "encapsed_string_chars_after_variable" + }, + "named": true, + "value": "string_content" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "encapsed_string_chars" + }, + "named": true, + "value": "string_content" + }, + { + "type": "SYMBOL", + "name": "_simple_string_part" + }, + { + "type": "SYMBOL", + "name": "_complex_string_part" + }, + { + "type": "ALIAS", + "content": { + "type": "STRING", + "value": "\\u" + }, + "named": true, + "value": "string_content" + } + ] + } + }, + "_interpolated_string_body_heredoc": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "escape_sequence" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "variable_name" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "encapsed_string_chars_after_variable_heredoc" + }, + "named": true, + "value": "string_content" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "encapsed_string_chars_heredoc" + }, + "named": true, + "value": "string_content" + }, + { + "type": "SYMBOL", + "name": "_simple_string_part" + }, + { + "type": "SYMBOL", + "name": "_complex_string_part" + }, + { + "type": "ALIAS", + "content": { + "type": "STRING", + "value": "\\u" + }, + "named": true, + "value": "string_content" + } + ] + } + }, + "encapsed_string": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[bB]\"" + }, + { + "type": "STRING", + "value": "\"" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_interpolated_string_body" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "\"" + } + ] + } + }, + "string": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[bB]'" + }, + { + "type": "STRING", + "value": "'" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "TOKEN", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "\\\\" + }, + { + "type": "STRING", + "value": "\\'" + } + ] + } + }, + "named": true, + "value": "escape_sequence" + }, + { + "type": "SYMBOL", + "name": "string_content" + } + ] + } + }, + { + "type": "STRING", + "value": "'" + } + ] + }, + "string_content": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "REPEAT1", + "content": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "\\\\?[^'\\\\]+" + } + } + } + } + }, + "heredoc_body": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_new_line" + }, + { + "type": "REPEAT1", + "content": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_new_line" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_interpolated_string_body_heredoc" + } + ] + } + } + } + ] + }, + "heredoc": { + "type": "SEQ", + "members": [ + { + "type": "TOKEN", + "content": { + "type": "STRING", + "value": "<<<" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "\"" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "identifier", + "content": { + "type": "SYMBOL", + "name": "heredoc_start" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": "\"" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "heredoc_body" + } + }, + { + "type": "SYMBOL", + "name": "_new_line" + } + ] + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "heredoc_body" + }, + { + "type": "BLANK" + } + ] + } + } + ] + }, + { + "type": "FIELD", + "name": "end_tag", + "content": { + "type": "SYMBOL", + "name": "heredoc_end" + } + } + ] + }, + "_new_line": { + "type": "PATTERN", + "value": "\\r?\\n|\\r" + }, + "nowdoc_body": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_new_line" + }, + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "nowdoc_string" + } + } + ] + }, + "nowdoc": { + "type": "SEQ", + "members": [ + { + "type": "TOKEN", + "content": { + "type": "STRING", + "value": "<<<" + } + }, + { + "type": "STRING", + "value": "'" + }, + { + "type": "FIELD", + "name": "identifier", + "content": { + "type": "SYMBOL", + "name": "heredoc_start" + } + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": "'" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "nowdoc_body" + } + }, + { + "type": "SYMBOL", + "name": "_new_line" + } + ] + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "nowdoc_body" + }, + { + "type": "BLANK" + } + ] + } + } + ] + }, + { + "type": "FIELD", + "name": "end_tag", + "content": { + "type": "SYMBOL", + "name": "heredoc_end" + } + } + ] + }, + "_interpolated_execution_operator_body": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "escape_sequence" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "variable_name" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "execution_string_chars_after_variable" + }, + "named": true, + "value": "string_content" + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "execution_string_chars" + }, + "named": true, + "value": "string_content" + }, + { + "type": "SYMBOL", + "name": "_simple_string_part" + }, + { + "type": "SYMBOL", + "name": "_complex_string_part" + }, + { + "type": "ALIAS", + "content": { + "type": "STRING", + "value": "\\u" + }, + "named": true, + "value": "string_content" + } + ] + } + }, + "shell_command_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "`" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_interpolated_execution_operator_body" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "`" + } + ] + }, + "boolean": { + "type": "PATTERN", + "value": "true|false", + "flags": "i" + }, + "null": { + "type": "PATTERN", + "value": "null", + "flags": "i" + }, + "_string": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "encapsed_string" + }, + { + "type": "SYMBOL", + "name": "string" + }, + { + "type": "SYMBOL", + "name": "heredoc" + }, + { + "type": "SYMBOL", + "name": "nowdoc" + } + ] + }, + "dynamic_variable_name": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "$" + }, + { + "type": "SYMBOL", + "name": "_simple_variable" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "$" + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] + }, + "_simple_variable": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "variable_name" + }, + { + "type": "SYMBOL", + "name": "dynamic_variable_name" + } + ] + }, + "_new_variable": { + "type": "PREC", + "value": 1, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_simple_variable" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_variable_subscript_expression" + }, + "named": true, + "value": "subscript_expression" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_variable_member_access_expression" + }, + "named": true, + "value": "member_access_expression" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_variable_nullsafe_member_access_expression" + }, + "named": true, + "value": "nullsafe_member_access_expression" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_variable_scoped_property_access_expression" + }, + "named": true, + "value": "scoped_property_access_expression" + } + ] + } + }, + "_callable_variable": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_simple_variable" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_dereferencable_subscript_expression" + }, + "named": true, + "value": "subscript_expression" + }, + { + "type": "SYMBOL", + "name": "member_call_expression" + }, + { + "type": "SYMBOL", + "name": "nullsafe_member_call_expression" + }, + { + "type": "SYMBOL", + "name": "function_call_expression" + }, + { + "type": "SYMBOL", + "name": "scoped_call_expression" + } + ] + }, + "variable_name": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "$" + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + }, + "by_ref": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "&" + }, + { + "type": "SYMBOL", + "name": "_variable" + } + ] + }, + "yield_expression": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "yield", + "flags": "i" + }, + "named": false, + "value": "yield" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "array_element_initializer" + }, + { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "from", + "flags": "i" + }, + "named": false, + "value": "from" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "array_element_initializer": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "by_ref" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "by_ref" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + ] + }, + { + "type": "SYMBOL", + "name": "variadic_unpacking" + } + ] + } + }, + "binary_expression": { + "type": "CHOICE", + "members": [ + { + "type": "PREC", + "value": 20, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_unary_expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "instanceof", + "flags": "i" + }, + "named": false, + "value": "instanceof" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_class_name_reference" + } + } + ] + } + }, + { + "type": "PREC_RIGHT", + "value": 6, + "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_RIGHT", + "value": 18, + "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": "ALIAS", + "content": { + "type": "PATTERN", + "value": "and", + "flags": "i" + }, + "named": false, + "value": "and" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "or", + "flags": "i" + }, + "named": false, + "value": "or" + } + }, + { + "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": "ALIAS", + "content": { + "type": "PATTERN", + "value": "xor", + "flags": "i" + }, + "named": false, + "value": "xor" + } + }, + { + "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" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 8, + "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": 9, + "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": 12, + "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": 12, + "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": 12, + "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": 12, + "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": 12, + "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": 13, + "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": 13, + "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": 13, + "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": 13, + "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": 12, + "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": 15, + "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": 15, + "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": 16, + "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": 16, + "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": 14, + "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": 17, + "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": 17, + "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": 17, + "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" + } + } + ] + } + } + ] + }, + "include_expression": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "include", + "flags": "i" + }, + "named": false, + "value": "include" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "include_once_expression": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "include_once", + "flags": "i" + }, + "named": false, + "value": "include_once" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "require_expression": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "require", + "flags": "i" + }, + "named": false, + "value": "require" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "require_once_expression": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "require_once", + "flags": "i" + }, + "named": false, + "value": "require_once" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "name": { + "type": "PATTERN", + "value": "[_a-zA-Z\\u0080-\\u009f\\u00a1-\\u200a\\u200c-\\u205f\\u2061-\\ufefe\\uff00-\\uffff][_a-zA-Z\\u0080-\\u009f\\u00a1-\\u200a\\u200c-\\u205f\\u2061-\\ufefe\\uff00-\\uffff\\d]*" + }, + "_reserved_identifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "self" + }, + { + "type": "STRING", + "value": "parent" + }, + { + "type": "ALIAS", + "content": { + "type": "PATTERN", + "value": "static", + "flags": "i" + }, + "named": false, + "value": "static" + } + ] + }, + "_identifier": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_reserved_identifier" + }, + "named": true, + "value": "name" + } + ] + }, + "comment": { + "type": "TOKEN", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "//" + }, + { + "type": "PATTERN", + "value": "#[^?\\[?\\r?\\n]" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "PATTERN", + "value": "[^?\\r?\\n]|\\?[^>\\r\\n]" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "\\?\\r?\\n" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "STRING", + "value": "#" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "/*" + }, + { + "type": "PATTERN", + "value": "[^*]*\\*+([^/*][^*]*\\*+)*" + }, + { + "type": "STRING", + "value": "/" + } + ] + } + ] + } + }, + "_semicolon": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_automatic_semicolon" + }, + { + "type": "STRING", + "value": ";" + } + ] + } + }, + "extras": [ + { + "type": "SYMBOL", + "name": "comment" + }, + { + "type": "PATTERN", + "value": "[\\s\\u00A0\\u200B\\u2060\\uFEFF]" + }, + { + "type": "SYMBOL", + "name": "text_interpolation" + } + ], + "conflicts": [ + [ + "_array_destructing", + "array_creation_expression" + ], + [ + "_array_destructing_element", + "array_element_initializer" + ], + [ + "primary_expression", + "_array_destructing_element" + ], + [ + "type", + "union_type", + "intersection_type", + "disjunctive_normal_form_type" + ], + [ + "union_type", + "disjunctive_normal_form_type" + ], + [ + "intersection_type" + ], + [ + "if_statement" + ], + [ + "namespace_name" + ], + [ + "heredoc_body" + ] + ], + "precedences": [], + "externals": [ + { + "type": "SYMBOL", + "name": "_automatic_semicolon" + }, + { + "type": "SYMBOL", + "name": "encapsed_string_chars" + }, + { + "type": "SYMBOL", + "name": "encapsed_string_chars_after_variable" + }, + { + "type": "SYMBOL", + "name": "execution_string_chars" + }, + { + "type": "SYMBOL", + "name": "execution_string_chars_after_variable" + }, + { + "type": "SYMBOL", + "name": "encapsed_string_chars_heredoc" + }, + { + "type": "SYMBOL", + "name": "encapsed_string_chars_after_variable_heredoc" + }, + { + "type": "SYMBOL", + "name": "_eof" + }, + { + "type": "SYMBOL", + "name": "heredoc_start" + }, + { + "type": "SYMBOL", + "name": "heredoc_end" + }, + { + "type": "SYMBOL", + "name": "nowdoc_string" + }, + { + "type": "SYMBOL", + "name": "sentinel_error" + } + ], + "inline": [ + "_variable", + "_namespace_use_type" + ], + "supertypes": [ + "statement", + "expression", + "primary_expression", + "type", + "literal" + ] +} |
