[
{
"type": "expression",
"named": true,
"subtypes": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "augmented_assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "cast_expression",
"named": true
},
{
"type": "clone_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "error_suppression_expression",
"named": true
},
{
"type": "include_expression",
"named": true
},
{
"type": "include_once_expression",
"named": true
},
{
"type": "match_expression",
"named": true
},
{
"type": "primary_expression",
"named": true
},
{
"type": "reference_assignment_expression",
"named": true
},
{
"type": "require_expression",
"named": true
},
{
"type": "require_once_expression",
"named": true
},
{
"type": "unary_op_expression",
"named": true
},
{
"type": "yield_expression",
"named": true
}
]
},
{
"type": "literal",
"named": true,
"subtypes": [
{
"type": "boolean",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "null",
"named": true
},
{
"type": "string",
"named": true
}
]
},
{
"type": "primary_expression",
"named": true,
"subtypes": [
{
"type": "anonymous_function",
"named": true
},
{
"type": "array_creation_expression",
"named": true
},
{
"type": "arrow_function",
"named": true
},
{
"type": "cast_expression",
"named": true
},
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "print_intrinsic",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "shell_command_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "throw_expression",
"named": true
},
{
"type": "update_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
{
"type": "statement",
"named": true,
"subtypes": [
{
"type": "break_statement",
"named": true
},
{
"type": "class_declaration",
"named": true
},
{
"type": "compound_statement",
"named": true
},
{
"type": "const_declaration",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "declare_statement",
"named": true
},
{
"type": "do_statement",
"named": true
},
{
"type": "echo_statement",
"named": true
},
{
"type": "empty_statement",
"named": true
},
{
"type": "enum_declaration",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "foreach_statement",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "function_static_declaration",
"named": true
},
{
"type": "global_declaration",
"named": true
},
{
"type": "goto_statement",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "interface_declaration",
"named": true
},
{
"type": "named_label_statement",
"named": true
},
{
"type": "namespace_definition",
"named": true
},
{
"type": "namespace_use_declaration",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "trait_declaration",
"named": true
},
{
"type": "try_statement",
"named": true
},
{
"type": "unset_statement",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
},
{
"type": "type",
"named": true,
"subtypes": [
{
"type": "disjunctive_normal_form_type",
"named": true
},
{
"type": "intersection_type",
"named": true
},
{
"type": "named_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "primitive_type",
"named": true
},
{
"type": "union_type",
"named": true
}
]
},
{
"type": "abstract_modifier",
"named": true,
"fields": {}
},
{
"type": "anonymous_class",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "declaration_list",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract_modifier",
"named": true
},
{
"type": "arguments",
"named": true
},
{
"type": "base_clause",
"named": true
},
{
"type": "class_interface_clause",
"named": true
},
{
"type": "final_modifier",
"named": true
},
{
"type": "readonly_modifier",
"named": true
},
{
"type": "static_modifier",
"named": true
},
{
"type": "var_modifier",
"named": true
},
{
"type": "visibility_modifier",
"named": true
}
]
}
},
{
"type": "anonymous_function",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "compound_statement",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"reference_modifier": {
"multiple": false,
"required": false,
"types": [
{
"type": "reference_modifier",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "bottom_type",
"named": true
},
{
"type": "type",
"named": true
}
]
},
"static_modifier": {
"multiple": false,
"required": false,
"types": [
{
"type": "static_modifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "anonymous_function_use_clause",
"named": true
}
]
}
},
{
"type": "anonymous_function_use_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "by_ref",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "argument",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "name",
"named": true
}
]
},
"reference_modifier": {
"multiple": false,
"required": false,
"types": [
{
"type": "reference_modifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "variadic_unpacking",
"named": true
}
]
}
},
{
"type": "arguments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "argument",
"named": true
},
{
"type": "variadic_placeholder",
"named": true
}
]
}
},
{
"type": "array_creation_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_element_initializer",
"named": true
}
]
}
},
{
"type": "array_element_initializer",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "by_ref",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "variadic_unpacking",
"named": true
}
]
}
},
{
"type": "arrow_function",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"reference_modifier": {
"multiple": false,
"required": false,
"types": [
{
"type": "reference_modifier",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "bottom_type",
"named": true
},
{
"type": "type",
"named": true
}
]
},
"static_modifier": {
"multiple": false,
"required": false,
"types": [
{
"type": "static_modifier",
"named": true
}
]
}
}
},
{
"type": "assignment_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "cast_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "list_literal",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "attribute",
"named": true,
"fields": {
"parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "arguments",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
}
]
}
},
{
"type": "attribute_group",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "attribute",
"named": true
}
]
}
},
{
"type": "attribute_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "attribute_group",
"named": true
}
]
}
},
{
"type": "augmented_assignment_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "cast_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "%=",
"named": false
},
{
"type": "&=",
"named": false
},
{
"type": "**=",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": ".=",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": "<<=",
"named": false
},
{
"type": ">>=",
"named": false
},
{
"type": "??=",
"named": false
},
{
"type": "^=",
"named": false
},
{
"type": "|=",
"named": false
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "base_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "name",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
}
]
}
},
{
"type": "binary_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "!=",
"named": false
},
{
"type": "!==",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "&&",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "**",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": ".",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "<=>",
"named": false
},
{
"type": "<>",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": "===",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": "??",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "and",
"named": false
},
{
"type": "instanceof",
"named": false
},
{
"type": "or",
"named": false
},
{
"type": "xor",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "|>",
"named": false
},
{
"type": "||",
"named": false
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
}
},
{
"type": "boolean",
"named": true,
"fields": {}
},
{
"type": "break_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "by_ref",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "cast_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "case_statement",
"named": true,
"fields": {
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "cast_expression",
"named": true,
"fields": {
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "cast_type",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "clone_expression",
"named": true
},
{
"type": "error_suppression_expression",
"named": true
},
{
"type": "include_expression",
"named": true
},
{
"type": "include_once_expression",
"named": true
},
{
"type": "primary_expression",
"named": true
},
{
"type": "unary_op_expression",
"named": true
}
]
}
}
},
{
"type": "cast_type",
"named": true,
"fields": {}
},
{
"type": "catch_clause",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "compound_statement",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "variable_name",
"named": true
}
]
},
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_list",
"named": true
}
]
}
}
},
{
"type": "class_constant_access_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_creation_expression",
"named": true
},
{
"type": "cast_expression",
"named": true
},
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "relative_scope",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "class_declaration",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "declaration_list",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract_modifier",
"named": true
},
{
"type": "base_clause",
"named": true
},
{
"type": "class_interface_clause",
"named": true
},
{
"type": "final_modifier",
"named": true
},
{
"type": "readonly_modifier",
"named": true
},
{
"type": "static_modifier",
"named": true
},
{
"type": "var_modifier",
"named": true
},
{
"type": "visibility_modifier",
"named": true
}
]
}
},
{
"type": "class_interface_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "name",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
}
]
}
},
{
"type": "clone_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
}
},
{
"type": "colon_block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "compound_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "conditional_expression",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "const_declaration",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "abstract_modifier",
"named": true
},
{
"type": "const_element",
"named": true
},
{
"type": "final_modifier",
"named": true
},
{
"type": "readonly_modifier",
"named": true
},
{
"type": "static_modifier",
"named": true
},
{
"type": "var_modifier",
"named": true
},
{
"type": "visibility_modifier",
"named": true
}
]
}
},
{
"type": "const_element",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "name",
"named": true
}
]
}
},
{
"type": "continue_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "declaration_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "const_declaration",
"named": true
},
{
"type": "method_declaration",
"named": true
},
{
"type": "property_declaration",
"named": true
},
{
"type": "use_declaration",
"named": true
}
]
}
},
{
"type": "declare_directive",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "literal",
"named": true
}
]
}
},
{
"type": "declare_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "declare_directive",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "default_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "disjunctive_normal_form_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "intersection_type",
"named": true
},
{
"type": "named_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "primitive_type",
"named": true
}
]
}
},
{
"type": "do_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "parenthesized_expression",
"named": true
}
]
}
}
},
{
"type": "dynamic_variable_name",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "echo_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "sequence_expression",
"named": true
}
]
}
},
{
"type": "else_clause",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "colon_block",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
}
},
{
"type": "else_if_clause",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "colon_block",
"named": true
},
{
"type": "statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "parenthesized_expression",
"named": true
}
]
}
}
},
{
"type": "empty_statement",
"named": true,
"fields": {}
},
{
"type": "encapsed_string",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "escape_sequence",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "string_content",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "enum_case",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "enum_declaration",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "enum_declaration_list",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "class_interface_clause",
"named": true
},
{
"type": "primitive_type",
"named": true
}
]
}
},
{
"type": "enum_declaration_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "const_declaration",
"named": true
},
{
"type": "enum_case",
"named": true
},
{
"type": "method_declaration",
"named": true
},
{
"type": "use_declaration",
"named": true
}
]
}
},
{
"type": "error_suppression_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "exit_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "expression_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "final_modifier",
"named": true,
"fields": {}
},
{
"type": "finally_clause",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "compound_statement",
"named": true
}
]
}
}
},
{
"type": "for_statement",
"named": true,
"fields": {
"body": {
"multiple": true,
"required": false,
"types": [
{
"type": "statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "sequence_expression",
"named": true
}
]
},
"initialize": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "sequence_expression",
"named": true
}
]
},
"update": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "sequence_expression",
"named": true
}
]
}
}
},
{
"type": "foreach_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "colon_block",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "by_ref",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "list_literal",
"named": true
},
{
"type": "pair",
"named": true
}
]
}
},
{
"type": "formal_parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "property_promotion_parameter",
"named": true
},
{
"type": "simple_parameter",
"named": true
},
{
"type": "variadic_parameter",
"named": true
}
]
}
},
{
"type": "function_call_expression",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "arguments",
"named": true
}
]
},
"function": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_creation_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
}
},
{
"type": "function_definition",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "compound_statement",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "bottom_type",
"named": true
},
{
"type": "type",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "reference_modifier",
"named": true
}
]
}
},
{
"type": "function_static_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "static_variable_declaration",
"named": true
}
]
}
},
{
"type": "global_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "goto_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
{
"type": "heredoc",
"named": true,
"fields": {
"end_tag": {
"multiple": false,
"required": true,
"types": [
{
"type": "heredoc_end",
"named": true
}
]
},
"identifier": {
"multiple": false,
"required": true,
"types": [
{
"type": "heredoc_start",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "heredoc_body",
"named": true
}
]
}
}
},
{
"type": "heredoc_body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "escape_sequence",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "string_content",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "if_statement",
"named": true,
"fields": {
"alternative": {
"multiple": true,
"required": false,
"types": [
{
"type": "else_clause",
"named": true
},
{
"type": "else_if_clause",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "colon_block",
"named": true
},
{
"type": "statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "parenthesized_expression",
"named": true
}
]
}
}
},
{
"type": "include_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "include_once_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "interface_declaration",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "declaration_list",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "base_clause",
"named": true
}
]
}
},
{
"type": "intersection_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "named_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "primitive_type",
"named": true
}
]
}
},
{
"type": "list_literal",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "by_ref",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "list_literal",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "match_block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "match_conditional_expression",
"named": true
},
{
"type": "match_default_expression",
"named": true
}
]
}
},
{
"type": "match_condition_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "match_conditional_expression",
"named": true,
"fields": {
"conditional_expressions": {
"multiple": false,
"required": true,
"types": [
{
"type": "match_condition_list",
"named": true
}
]
},
"return_expression": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "match_default_expression",
"named": true,
"fields": {
"return_expression": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "match_expression",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "match_block",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "parenthesized_expression",
"named": true
}
]
}
}
},
{
"type": "member_access_expression",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"object": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_creation_expression",
"named": true
},
{
"type": "cast_expression",
"named": true
},
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
}
},
{
"type": "member_call_expression",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "arguments",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"object": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_creation_expression",
"named": true
},
{
"type": "cast_expression",
"named": true
},
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
}
},
{
"type": "method_declaration",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "compound_statement",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "bottom_type",
"named": true
},
{
"type": "type",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract_modifier",
"named": true
},
{
"type": "final_modifier",
"named": true
},
{
"type": "readonly_modifier",
"named": true
},
{
"type": "reference_modifier",
"named": true
},
{
"type": "static_modifier",
"named": true
},
{
"type": "var_modifier",
"named": true
},
{
"type": "visibility_modifier",
"named": true
}
]
}
},
{
"type": "name",
"named": true,
"fields": {}
},
{
"type": "named_label_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
{
"type": "named_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
}
]
}
},
{
"type": "namespace_definition",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "compound_statement",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "namespace_name",
"named": true
}
]
}
}
},
{
"type": "namespace_name",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
{
"type": "namespace_use_clause",
"named": true,
"fields": {
"alias": {
"multiple": false,
"required": false,
"types": [
{
"type": "name",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "const",
"named": false
},
{
"type": "function",
"named": false
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "namespace_use_declaration",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "namespace_use_group",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "const",
"named": false
},
{
"type": "function",
"named": false
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "namespace_name",
"named": true
},
{
"type": "namespace_use_clause",
"named": true
}
]
}
},
{
"type": "namespace_use_group",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "namespace_use_clause",
"named": true
}
]
}
},
{
"type": "nowdoc",
"named": true,
"fields": {
"end_tag": {
"multiple": false,
"required": true,
"types": [
{
"type": "heredoc_end",
"named": true
}
]
},
"identifier": {
"multiple": false,
"required": true,
"types": [
{
"type": "heredoc_start",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "nowdoc_body",
"named": true
}
]
}
}
},
{
"type": "nowdoc_body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "nowdoc_string",
"named": true
}
]
}
},
{
"type": "null",
"named": true,
"fields": {}
},
{
"type": "nullsafe_member_access_expression",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"object": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_creation_expression",
"named": true
},
{
"type": "cast_expression",
"named": true
},
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
}
},
{
"type": "nullsafe_member_call_expression",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "arguments",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"object": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_creation_expression",
"named": true
},
{
"type": "cast_expression",
"named": true
},
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
}
},
{
"type": "object_creation_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "anonymous_class",
"named": true
},
{
"type": "arguments",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "optional_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "named_type",
"named": true
},
{
"type": "primitive_type",
"named": true
}
]
}
},
{
"type": "pair",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "by_ref",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "list_literal",
"named": true
}
]
}
},
{
"type": "parenthesized_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "primitive_type",
"named": true,
"fields": {}
},
{
"type": "print_intrinsic",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "program",
"named": true,
"root": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "php_tag",
"named": true
},
{
"type": "statement",
"named": true
},
{
"type": "text",
"named": true
}
]
}
},
{
"type": "property_declaration",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "abstract_modifier",
"named": true
},
{
"type": "final_modifier",
"named": true
},
{
"type": "property_element",
"named": true
},
{
"type": "property_hook_list",
"named": true
},
{
"type": "readonly_modifier",
"named": true
},
{
"type": "static_modifier",
"named": true
},
{
"type": "var_modifier",
"named": true
},
{
"type": "visibility_modifier",
"named": true
}
]
}
},
{
"type": "property_element",
"named": true,
"fields": {
"default_value": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "variable_name",
"named": true
}
]
}
}
},
{
"type": "property_hook",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "compound_statement",
"named": true
},
{
"type": "expression",
"named": true
}
]
},
"final": {
"multiple": false,
"required": false,
"types": [
{
"type": "final_modifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"reference_modifier": {
"multiple": false,
"required": false,
"types": [
{
"type": "reference_modifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
{
"type": "property_hook_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "property_hook",
"named": true
}
]
}
},
{
"type": "property_promotion_parameter",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"default_value": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "by_ref",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"readonly": {
"multiple": false,
"required": false,
"types": [
{
"type": "readonly_modifier",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type",
"named": true
}
]
},
"visibility": {
"multiple": false,
"required": true,
"types": [
{
"type": "visibility_modifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "property_hook_list",
"named": true
}
]
}
},
{
"type": "qualified_name",
"named": true,
"fields": {
"prefix": {
"multiple": true,
"required": true,
"types": [
{
"type": "\\",
"named": false
},
{
"type": "namespace_name",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
{
"type": "readonly_modifier",
"named": true,
"fields": {}
},
{
"type": "reference_assignment_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "cast_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "list_literal",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "reference_modifier",
"named": true,
"fields": {}
},
{
"type": "relative_name",
"named": true,
"fields": {
"prefix": {
"multiple": true,
"required": true,
"types": [
{
"type": "\\",
"named": false
},
{
"type": "namespace",
"named": false
},
{
"type": "namespace_name",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
{
"type": "relative_scope",
"named": true,
"fields": {}
},
{
"type": "require_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "require_once_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "return_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "scoped_call_expression",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "arguments",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"scope": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_creation_expression",
"named": true
},
{
"type": "cast_expression",
"named": true
},
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "relative_scope",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
}
},
{
"type": "scoped_property_access_expression",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"scope": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_creation_expression",
"named": true
},
{
"type": "cast_expression",
"named": true
},
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "relative_scope",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
}
},
{
"type": "sequence_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "sequence_expression",
"named": true
}
]
}
},
{
"type": "shell_command_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "escape_sequence",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "string_content",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "simple_parameter",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"default_value": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "variable_name",
"named": true
}
]
},
"reference_modifier": {
"multiple": false,
"required": false,
"types": [
{
"type": "reference_modifier",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type",
"named": true
}
]
}
}
},
{
"type": "static_modifier",
"named": true,
"fields": {}
},
{
"type": "static_variable_declaration",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "variable_name",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "string",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_sequence",
"named": true
},
{
"type": "string_content",
"named": true
}
]
}
},
{
"type": "string_content",
"named": true,
"fields": {}
},
{
"type": "subscript_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_creation_expression",
"named": true
},
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "encapsed_string",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "heredoc",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "nowdoc",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "object_creation_expression",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "switch_block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "case_statement",
"named": true
},
{
"type": "default_statement",
"named": true
}
]
}
},
{
"type": "switch_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "switch_block",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "parenthesized_expression",
"named": true
}
]
}
}
},
{
"type": "text",
"named": true,
"fields": {}
},
{
"type": "text_interpolation",
"named": true,
"extra": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "php_end_tag",
"named": true
},
{
"type": "php_tag",
"named": true
},
{
"type": "text",
"named": true
}
]
}
},
{
"type": "throw_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "trait_declaration",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "declaration_list",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
}
},
{
"type": "try_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "compound_statement",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "catch_clause",
"named": true
},
{
"type": "finally_clause",
"named": true
}
]
}
},
{
"type": "type_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "named_type",
"named": true
}
]
}
},
{
"type": "unary_op_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": false,
"types": [
{
"type": "!",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "~",
"named": false
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "integer",
"named": true
}
]
}
},
{
"type": "union_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "named_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "primitive_type",
"named": true
}
]
}
},
{
"type": "unset_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "cast_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
}
},
{
"type": "update_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "cast_expression",
"named": true
},
{
"type": "dynamic_variable_name",
"named": true
},
{
"type": "function_call_expression",
"named": true
},
{
"type": "member_access_expression",
"named": true
},
{
"type": "member_call_expression",
"named": true
},
{
"type": "nullsafe_member_access_expression",
"named": true
},
{
"type": "nullsafe_member_call_expression",
"named": true
},
{
"type": "scoped_call_expression",
"named": true
},
{
"type": "scoped_property_access_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "variable_name",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "++",
"named": false
},
{
"type": "--",
"named": false
}
]
}
}
},
{
"type": "use_as_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "name",
"named": true
},
{
"type": "visibility_modifier",
"named": true
}
]
}
},
{
"type": "use_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "name",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "relative_name",
"named": true
},
{
"type": "use_list",
"named": true
}
]
}
},
{
"type": "use_instead_of_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "class_constant_access_expression",
"named": true
},
{
"type": "name",
"named": true
}
]
}
},
{
"type": "use_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "use_as_clause",
"named": true
},
{
"type": "use_instead_of_clause",
"named": true
}
]
}
},
{
"type": "variable_name",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "name",
"named": true
}
]
}
},
{
"type": "variadic_parameter",
"named": true,
"fields": {
"attributes": {
"multiple": false,
"required": false,
"types": [
{
"type": "attribute_list",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "variable_name",
"named": true
}
]
},
"reference_modifier": {
"multiple": false,
"required": false,
"types": [
{
"type": "reference_modifier",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type",
"named": true
}
]
}
}
},
{
"type": "variadic_placeholder",
"named": true,
"fields": {}
},
{
"type": "variadic_unpacking",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "visibility_modifier",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "operation",
"named": true
}
]
}
},
{
"type": "while_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "colon_block",
"named": true
},
{
"type": "statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "parenthesized_expression",
"named": true
}
]
}
}
},
{
"type": "yield_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_element_initializer",
"named": true
},
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "!",
"named": false
},
{
"type": "!=",
"named": false
},
{
"type": "!==",
"named": false
},
{
"type": "\"",
"named": false
},
{
"type": "#[",
"named": false
},
{
"type": "$",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "%=",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "&&",
"named": false
},
{
"type": "&=",
"named": false
},
{
"type": "'",
"named": false
},
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "**",
"named": false
},
{
"type": "**=",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "++",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "--",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": "->",
"named": false
},
{
"type": ".",
"named": false
},
{
"type": "...",
"named": false
},
{
"type": ".=",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": ":",
"named": false
},
{
"type": "::",
"named": false
},
{
"type": ";",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<<<",
"named": false
},
{
"type": "<<=",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "<=>",
"named": false
},
{
"type": "<>",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": "===",
"named": false
},
{
"type": "=>",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": ">>=",
"named": false
},
{
"type": "?",
"named": false
},
{
"type": "?->",
"named": false
},
{
"type": "??",
"named": false
},
{
"type": "??=",
"named": false
},
{
"type": "@",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "\\",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "^=",
"named": false
},
{
"type": "`",
"named": false
},
{
"type": "abstract",
"named": false
},
{
"type": "and",
"named": false
},
{
"type": "array",
"named": false
},
{
"type": "as",
"named": false
},
{
"type": "bool",
"named": false
},
{
"type": "bottom_type",
"named": true
},
{
"type": "break",
"named": false
},
{
"type": "case",
"named": false
},
{
"type": "catch",
"named": false
},
{
"type": "class",
"named": false
},
{
"type": "clone",
"named": false
},
{
"type": "comment",
"named": true,
"extra": true
},
{
"type": "const",
"named": false
},
{
"type": "continue",
"named": false
},
{
"type": "declare",
"named": false
},
{
"type": "default",
"named": false
},
{
"type": "do",
"named": false
},
{
"type": "echo",
"named": false
},
{
"type": "else",
"named": false
},
{
"type": "elseif",
"named": false
},
{
"type": "encoding",
"named": false
},
{
"type": "enddeclare",
"named": false
},
{
"type": "endfor",
"named": false
},
{
"type": "endforeach",
"named": false
},
{
"type": "endif",
"named": false
},
{
"type": "endswitch",
"named": false
},
{
"type": "endwhile",
"named": false
},
{
"type": "enum",
"named": false
},
{
"type": "escape_sequence",
"named": true
},
{
"type": "exit",
"named": false
},
{
"type": "extends",
"named": false
},
{
"type": "final",
"named": false
},
{
"type": "finally",
"named": false
},
{
"type": "float",
"named": false
},
{
"type": "float",
"named": true
},
{
"type": "fn",
"named": false
},
{
"type": "for",
"named": false
},
{
"type": "foreach",
"named": false
},
{
"type": "function",
"named": false
},
{
"type": "global",
"named": false
},
{
"type": "goto",
"named": false
},
{
"type": "heredoc_end",
"named": true
},
{
"type": "heredoc_start",
"named": true
},
{
"type": "if",
"named": false
},
{
"type": "implements",
"named": false
},
{
"type": "include",
"named": false
},
{
"type": "include_once",
"named": false
},
{
"type": "instanceof",
"named": false
},
{
"type": "insteadof",
"named": false
},
{
"type": "int",
"named": false
},
{
"type": "integer",
"named": true
},
{
"type": "interface",
"named": false
},
{
"type": "list",
"named": false
},
{
"type": "match",
"named": false
},
{
"type": "namespace",
"named": false
},
{
"type": "new",
"named": false
},
{
"type": "nowdoc_string",
"named": true
},
{
"type": "null",
"named": false
},
{
"type": "object",
"named": false
},
{
"type": "operation",
"named": true
},
{
"type": "or",
"named": false
},
{
"type": "parent",
"named": false
},
{
"type": "php_end_tag",
"named": true
},
{
"type": "php_tag",
"named": true
},
{
"type": "print",
"named": false
},
{
"type": "private",
"named": false
},
{
"type": "protected",
"named": false
},
{
"type": "public",
"named": false
},
{
"type": "readonly",
"named": false
},
{
"type": "require",
"named": false
},
{
"type": "require_once",
"named": false
},
{
"type": "return",
"named": false
},
{
"type": "self",
"named": false
},
{
"type": "static",
"named": false
},
{
"type": "strict_types",
"named": false
},
{
"type": "string",
"named": false
},
{
"type": "switch",
"named": false
},
{
"type": "throw",
"named": false
},
{
"type": "ticks",
"named": false
},
{
"type": "trait",
"named": false
},
{
"type": "try",
"named": false
},
{
"type": "unset",
"named": false
},
{
"type": "use",
"named": false
},
{
"type": "var_modifier",
"named": true
},
{
"type": "while",
"named": false
},
{
"type": "xor",
"named": false
},
{
"type": "yield",
"named": false
},
{
"type": "yield from",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "|=",
"named": false
},
{
"type": "|>",
"named": false
},
{
"type": "||",
"named": false
},
{
"type": "}",
"named": false
},
{
"type": "~",
"named": false
}
]