UNPKG

tree-sitter-php

Version:
2,232 lines 233 kB
{ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "php", "word": "name", "rules": { "program": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "text" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "php_tag" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } } ] }, { "type": "BLANK" } ] } ] }, "php_tag": { "type": "PATTERN", "value": "<\\?([pP][hH][pP]|=)?" }, "php_end_tag": { "type": "STRING", "value": "?>" }, "text_interpolation": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "php_end_tag" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "text" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "php_tag" }, { "type": "SYMBOL", "name": "_eof" } ] } ] }, "text": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": -1, "content": { "type": "PATTERN", "value": "<" } } }, { "type": "TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "[^\\s<][^<]*" } } } ] } }, "statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "empty_statement" }, { "type": "SYMBOL", "name": "compound_statement" }, { "type": "SYMBOL", "name": "named_label_statement" }, { "type": "SYMBOL", "name": "expression_statement" }, { "type": "SYMBOL", "name": "if_statement" }, { "type": "SYMBOL", "name": "switch_statement" }, { "type": "SYMBOL", "name": "while_statement" }, { "type": "SYMBOL", "name": "do_statement" }, { "type": "SYMBOL", "name": "for_statement" }, { "type": "SYMBOL", "name": "foreach_statement" }, { "type": "SYMBOL", "name": "goto_statement" }, { "type": "SYMBOL", "name": "continue_statement" }, { "type": "SYMBOL", "name": "break_statement" }, { "type": "SYMBOL", "name": "return_statement" }, { "type": "SYMBOL", "name": "try_statement" }, { "type": "SYMBOL", "name": "declare_statement" }, { "type": "SYMBOL", "name": "echo_statement" }, { "type": "SYMBOL", "name": "exit_statement" }, { "type": "SYMBOL", "name": "unset_statement" }, { "type": "SYMBOL", "name": "const_declaration" }, { "type": "SYMBOL", "name": "function_definition" }, { "type": "SYMBOL", "name": "class_declaration" }, { "type": "SYMBOL", "name": "interface_declaration" }, { "type": "SYMBOL", "name": "trait_declaration" }, { "type": "SYMBOL", "name": "enum_declaration" }, { "type": "SYMBOL", "name": "namespace_definition" }, { "type": "SYMBOL", "name": "namespace_use_declaration" }, { "type": "SYMBOL", "name": "global_declaration" }, { "type": "SYMBOL", "name": "function_static_declaration" } ] }, "empty_statement": { "type": "PREC", "value": -1, "content": { "type": "STRING", "value": ";" } }, "reference_modifier": { "type": "STRING", "value": "&" }, "function_static_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "static", "flags": "i" }, "named": false, "value": "static" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "static_variable_declaration" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "static_variable_declaration" } ] } } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "static_variable_declaration": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "variable_name" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "BLANK" } ] } ] }, "global_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "global", "flags": "i" }, "named": false, "value": "global" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_simple_variable" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_simple_variable" } ] } } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "namespace_definition": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "namespace", "flags": "i" }, "named": false, "value": "namespace" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "namespace_name" } }, { "type": "SYMBOL", "name": "_semicolon" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "namespace_name" }, { "type": "BLANK" } ] } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] } ] } ] }, "namespace_use_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "use", "flags": "i" }, "named": false, "value": "use" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "namespace_use_clause" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "namespace_use_clause" } ] } } ] }, { "type": "SYMBOL", "name": "_namespace_use_group" } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "namespace_use_clause": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_namespace_use_type" }, { "type": "BLANK" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "name" }, { "type": "SYMBOL", "name": "qualified_name" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "as", "flags": "i" }, "named": false, "value": "as" }, { "type": "FIELD", "name": "alias", "content": { "type": "SYMBOL", "name": "name" } } ] }, { "type": "BLANK" } ] } ] }, "_namespace_use_type": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "function", "flags": "i" }, "named": false, "value": "function" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "const", "flags": "i" }, "named": false, "value": "const" } ] }, "qualified_name": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "prefix", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "\\" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "namespace_name" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "\\" } ] } }, { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "classes" } ] }, "relative_name": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "prefix", "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "namespace", "flags": "i" }, "named": false, "value": "namespace" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "SYMBOL", "name": "namespace_name" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "\\" } ] } }, { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "classes" } ] }, "_name": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "static", "flags": "i" }, "named": true, "value": "name" }, { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "classes" }, { "type": "SYMBOL", "name": "qualified_name" }, { "type": "SYMBOL", "name": "relative_name" } ] }, "namespace_name": { "type": "SEQ", "members": [ { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "nothing" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "nothing" } ] } } ] }, "_namespace_use_group": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_namespace_use_type" }, { "type": "BLANK" } ] } }, { "type": "SYMBOL", "name": "namespace_name" }, { "type": "STRING", "value": "\\" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "namespace_use_group" } } ] }, "namespace_use_group": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "namespace_use_clause" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "namespace_use_clause" } ] } } ] }, { "type": "STRING", "value": "}" } ] }, "trait_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "trait", "flags": "i" }, "named": false, "value": "trait" }, { "type": "FIELD", "name": "name", "content": { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "classes" } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "declaration_list" } } ] }, "interface_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "interface", "flags": "i" }, "named": false, "value": "interface" }, { "type": "FIELD", "name": "name", "content": { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "classes" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "base_clause" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "declaration_list" } } ] }, "base_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "extends", "flags": "i" }, "named": false, "value": "extends" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_name" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_name" } ] } } ] } ] }, "enum_declaration": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "enum", "flags": "i" }, "named": false, "value": "enum" }, { "type": "FIELD", "name": "name", "content": { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "classes" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "string" }, { "type": "STRING", "value": "int" } ] }, "named": true, "value": "primitive_type" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class_interface_clause" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "enum_declaration_list" } } ] } }, "enum_declaration_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_enum_member_declaration" } }, { "type": "STRING", "value": "}" } ] }, "_enum_member_declaration": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_class_const_declaration" }, "named": true, "value": "const_declaration" }, { "type": "SYMBOL", "name": "enum_case" }, { "type": "SYMBOL", "name": "method_declaration" }, { "type": "SYMBOL", "name": "use_declaration" } ] }, "enum_case": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "case", "flags": "i" }, "named": false, "value": "case" }, { "type": "FIELD", "name": "name", "content": { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "nothing" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "class_declaration": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_modifier" } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "class", "flags": "i" }, "named": false, "value": "class" }, { "type": "FIELD", "name": "name", "content": { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "classes" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "base_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class_interface_clause" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "declaration_list" } } ] } }, "declaration_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_member_declaration" } }, { "type": "STRING", "value": "}" } ] }, "final_modifier": { "type": "ALIAS", "content": { "type": "PATTERN", "value": "final", "flags": "i" }, "named": false, "value": "final" }, "abstract_modifier": { "type": "ALIAS", "content": { "type": "PATTERN", "value": "abstract", "flags": "i" }, "named": false, "value": "abstract" }, "readonly_modifier": { "type": "ALIAS", "content": { "type": "PATTERN", "value": "readonly", "flags": "i" }, "named": false, "value": "readonly" }, "class_interface_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "implements", "flags": "i" }, "named": false, "value": "implements" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_name" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_name" } ] } } ] } ] }, "_member_declaration": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_class_const_declaration" }, "named": true, "value": "const_declaration" }, { "type": "SYMBOL", "name": "property_declaration" }, { "type": "SYMBOL", "name": "method_declaration" }, { "type": "SYMBOL", "name": "use_declaration" } ] }, "const_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_modifier" } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "const", "flags": "i" }, "named": false, "value": "const" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type" } }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_const_element" }, "named": true, "value": "const_element" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_const_element" }, "named": true, "value": "const_element" } ] } } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "_class_const_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "final_modifier" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_modifier" } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "const", "flags": "i" }, "named": false, "value": "const" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type" } }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_class_const_element" }, "named": true, "value": "const_element" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_class_const_element" }, "named": true, "value": "const_element" } ] } } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "property_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_modifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type" } }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "property_element" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "property_element" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_semicolon" }, { "type": "SYMBOL", "name": "property_hook_list" } ] } ] }, "_modifier": { "type": "PREC_LEFT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_modifier" }, { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "SYMBOL", "name": "static_modifier" }, { "type": "SYMBOL", "name": "final_modifier" }, { "type": "SYMBOL", "name": "abstract_modifier" }, { "type": "SYMBOL", "name": "readonly_modifier" } ] } }, "property_element": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "variable_name" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "default_value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "BLANK" } ] } ] }, "property_hook_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "property_hook" } }, { "type": "STRING", "value": "}" } ] }, "property_hook": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "final", "content": { "type": "SYMBOL", "name": "final_modifier" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "reference_modifier", "content": { "type": "SYMBOL", "name": "reference_modifier" } }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "name" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "formal_parameters" } }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_property_hook_body" } ] }, "_property_hook_body": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=>" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "SYMBOL", "name": "_semicolon" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "method_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attributes", "content": { "type": "SYMBOL", "name": "attribute_list" } }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_modifier" } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "function", "flags": "i" }, "named": false, "value": "function" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "reference_modifier" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "RESERVED", "content": { "type": "SYMBOL", "name": "name" }, "context_name": "nothing" } }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "formal_parameters" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_return_type" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } }, { "type": "SYMBOL", "name": "_semicolon" } ] } ] }, "var_modifier": { "type": "PATTERN", "value": "var", "flags": "i" }, "static_modifier": { "type": "ALIAS", "content": { "type": "PATTERN", "value": "static", "flags": "i" }, "named": false, "value": "static" }, "use_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "use", "flags": "i" }, "named": false, "value": "use" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_name" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_name" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "use_list" }, { "type": "SYMBOL", "name": "_semicolon" } ] } ] }, "use_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "use_instead_of_clause" }, { "type": "SYMBOL", "name": "use_as_clause" } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] } }, { "type": "STRING", "value": "}" } ] }, "use_instead_of_clause": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "class_constant_access_expression" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "insteadof", "flags": "i" }, "named": false, "value": "insteadof" }, { "type": "SYMBOL", "name": "name" } ] } }, "use_as_clause": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class_constant_access_expression" }, { "type": "SYMBOL", "name": "name" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "as", "flags": "i" }, "named": false, "value": "as" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "name" } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "name" }, { "type": "BLANK" } ] } ] } ] } ] }, "visibility_modifier": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "public", "flags": "i" }, "named": false, "value": "public" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "protected", "flags": "i" }, "named": false, "value": "protected" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "private