tree-sitter-php
Version:
PHP grammar for tree-sitter
2,616 lines • 114 kB
JSON
[
{
"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":