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