UNPKG

tree-sitter-php

Version:
2,266 lines 155 kB
{ "name": "php", "word": "name", "rules": { "program": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "text" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "php_tag" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_statement" } } ] }, { "type": "BLANK" } ] } ] }, "php_tag": { "type": "PATTERN", "value": "<\\?([pP][hH][pP]|=)?" }, "text_interpolation": { "type": "SEQ", "members": [ { "type": "STRING", "value": "?>" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "text" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "php_tag" }, { "type": "SYMBOL", "name": "_eof" } ] } ] }, "text": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "TOKEN", "content": { "type": "PREC", "value": -1, "content": { "type": "PATTERN", "value": "<" } } }, { "type": "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": "throw_statement" }, { "type": "SYMBOL", "name": "try_statement" }, { "type": "SYMBOL", "name": "declare_statement" }, { "type": "SYMBOL", "name": "echo_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": "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": ";" } }, "function_static_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[sS][tT][aA][tT][iI][cC]" }, "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": "[gG][lL][oO][bB][aA][lL]" }, "named": false, "value": "global" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_variable_name" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_variable_name" } ] } } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "namespace_definition": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[nN][aA][mM][eE][sS][pP][aA][cC][eE]" }, "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": "[uU][sS][eE]" }, "named": false, "value": "use" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[fF][uU][nN][cC][tT][iI][oO][nN]" }, "named": false, "value": "function" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[cC][oO][nN][sS][tT]" }, "named": false, "value": "const" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "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": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "\\" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "namespace_name" }, { "type": "STRING", "value": "\\" }, { "type": "SYMBOL", "name": "namespace_use_group" } ] } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "namespace_use_clause": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "qualified_name" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "namespace_aliasing_clause" }, { "type": "BLANK" } ] } ] }, "qualified_name": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "namespace_name_as_prefix" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "name" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_reserved_identifier" }, "named": true, "value": "name" } ] } ] }, "namespace_name_as_prefix": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "\\" }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "\\" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "namespace_name" }, { "type": "STRING", "value": "\\" } ] }, { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[nN][aA][mM][eE][sS][pP][aA][cC][eE]" }, "named": false, "value": "namespace" }, { "type": "STRING", "value": "\\" } ] }, { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[nN][aA][mM][eE][sS][pP][aA][cC][eE]" }, "named": false, "value": "namespace" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "\\" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "namespace_name" }, { "type": "STRING", "value": "\\" } ] } ] }, "namespace_name": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "name" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "SYMBOL", "name": "name" } ] } } ] }, "namespace_aliasing_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[aA][sS]" }, "named": false, "value": "as" }, { "type": "SYMBOL", "name": "name" } ] }, "namespace_use_group": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "namespace_use_group_clause" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "namespace_use_group_clause" } ] } } ] }, { "type": "STRING", "value": "}" } ] }, "namespace_use_group_clause": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[fF][uU][nN][cC][tT][iI][oO][nN]" }, "named": false, "value": "function" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[cC][oO][nN][sS][tT]" }, "named": false, "value": "const" } ] }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "namespace_name" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "namespace_aliasing_clause" }, { "type": "BLANK" } ] } ] }, "trait_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[tT][rR][aA][iI][tT]" }, "named": false, "value": "trait" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "name" } }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "declaration_list" } } ] }, "interface_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[iI][nN][tT][eE][rR][fF][aA][cC][eE]" }, "named": false, "value": "interface" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "name" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "base_clause" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "declaration_list" } } ] }, "base_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[eE][xX][tT][eE][nN][dD][sS]" }, "named": false, "value": "extends" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "qualified_name" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "qualified_name" } ] } } ] } ] }, "class_declaration": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class_modifier" }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[cC][lL][aA][sS][sS]" }, "named": false, "value": "class" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "name" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "base_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class_interface_clause" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "declaration_list" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_semicolon" }, { "type": "BLANK" } ] } ] } }, "declaration_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_member_declaration" } }, { "type": "STRING", "value": "}" } ] }, "class_modifier": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[aA][bB][sS][tT][rR][aA][cC][tT]" }, "named": false, "value": "abstract" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[fF][iI][nN][aA][lL]" }, "named": false, "value": "final" } ] }, "class_interface_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[iI][mM][pP][lL][eE][mM][eE][nN][tT][sS]" }, "named": false, "value": "implements" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "qualified_name" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "qualified_name" } ] } } ] } ] }, "_member_declaration": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "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": "SYMBOL", "name": "visibility_modifier" }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[cC][oO][nN][sS][tT]" }, "named": false, "value": "const" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "const_element" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "const_element" } ] } } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "property_declaration": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_modifier" } }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "property_element" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "property_element" } ] } } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "_modifier": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_modifier" }, { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "SYMBOL", "name": "static_modifier" }, { "type": "SYMBOL", "name": "class_modifier" } ] }, "property_element": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "variable_name" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "property_initializer" }, { "type": "BLANK" } ] } ] }, "property_initializer": { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "SYMBOL", "name": "_expression" } ] }, "method_declaration": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_modifier" } }, { "type": "SYMBOL", "name": "_function_definition_header" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } }, { "type": "SYMBOL", "name": "_semicolon" } ] } ] }, "var_modifier": { "type": "PATTERN", "value": "[vV][aA][rR]" }, "static_modifier": { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[sS][tT][aA][tT][iI][cC]" }, "named": false, "value": "static" }, "use_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[uU][sS][eE]" }, "named": false, "value": "use" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "qualified_name" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "qualified_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": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class_constant_access_expression" }, { "type": "SYMBOL", "name": "name" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[iI][nN][sS][tT][eE][aA][dD][oO][fF]" }, "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": "[aA][sS]" }, "named": false, "value": "as" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "name" } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "visibility_modifier" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "name" }, { "type": "BLANK" } ] } ] } ] } ] }, "visibility_modifier": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[pP][uU][bB][lL][iI][cC]" }, "named": false, "value": "public" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[pP][rR][oO][tT][eE][cC][tT][eE][dD]" }, "named": false, "value": "protected" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[pP][rR][iI][vV][aA][tT][eE]" }, "named": false, "value": "private" } ] }, "function_definition": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_function_definition_header" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] }, "_function_definition_header": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[fF][uU][nN][cC][tT][iI][oO][nN]" }, "named": false, "value": "function" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "name" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_reserved_identifier" }, "named": true, "value": "name" } ] } }, { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "formal_parameters" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_return_type" }, { "type": "BLANK" } ] } ] }, "formal_parameters": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "simple_parameter" }, { "type": "SYMBOL", "name": "variadic_parameter" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "simple_parameter" }, { "type": "SYMBOL", "name": "variadic_parameter" } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "simple_parameter": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type" }, { "type": "BLANK" } ] } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "variable_name" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "default_value", "content": { "type": "SYMBOL", "name": "_expression" } } ] }, { "type": "BLANK" } ] } ] }, "variadic_parameter": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "type", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type" }, { "type": "BLANK" } ] } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "..." }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "variable_name" } } ] }, "_type": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "optional_type" }, { "type": "SYMBOL", "name": "_type_name" }, { "type": "SYMBOL", "name": "primitive_type" } ] }, "_type_name": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "qualified_name" }, "named": true, "value": "type_name" }, "optional_type": { "type": "SEQ", "members": [ { "type": "STRING", "value": "?" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_name" }, { "type": "SYMBOL", "name": "primitive_type" } ] } ] }, "primitive_type": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "array" }, { "type": "STRING", "value": "callable" }, { "type": "STRING", "value": "iterable" }, { "type": "STRING", "value": "bool" }, { "type": "STRING", "value": "float" }, { "type": "STRING", "value": "int" }, { "type": "STRING", "value": "string" }, { "type": "STRING", "value": "void" } ] }, "cast_type": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "array" }, { "type": "STRING", "value": "binary" }, { "type": "STRING", "value": "bool" }, { "type": "STRING", "value": "boolean" }, { "type": "STRING", "value": "double" }, { "type": "STRING", "value": "int" }, { "type": "STRING", "value": "integer" }, { "type": "STRING", "value": "float" }, { "type": "STRING", "value": "object" }, { "type": "STRING", "value": "real" }, { "type": "STRING", "value": "string" }, { "type": "STRING", "value": "unset" } ] }, "_return_type": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "return_type", "content": { "type": "SYMBOL", "name": "_type" } } ] }, "const_element": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "name" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_reserved_identifier" }, "named": true, "value": "name" } ] }, { "type": "STRING", "value": "=" }, { "type": "SYMBOL", "name": "_expression" } ] }, "echo_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[eE][cC][hH][oO]" }, "named": false, "value": "echo" }, { "type": "SYMBOL", "name": "_expressions" }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "unset_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "unset" }, { "type": "STRING", "value": "(" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_variable" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_variable" } ] } } ] }, { "type": "STRING", "value": ")" }, { "type": "SYMBOL", "name": "_semicolon" } ] }, "declare_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "declare" }, { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "declare_directive" }, { "type": "STRING", "value": ")" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_statement" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_statement" } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[eE][nN][dD][dD][eE][cC][lL][aA][rR][eE]" }, "named": false, "value": "enddeclare" }, { "type": "SYMBOL", "name": "_semicolon" } ] }, { "type": "SYMBOL", "name": "_semicolon" } ] } ] }, "declare_directive": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "ticks" }, { "type": "STRING", "value": "encoding" }, { "type": "STRING", "value": "strict_types" } ] }, { "type": "STRING", "value": "=" }, { "type": "SYMBOL", "name": "_literal" } ] }, "_literal": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "integer" }, { "type": "SYMBOL", "name": "float" }, { "type": "SYMBOL", "name": "_string" }, { "type": "SYMBOL", "name": "boolean" }, { "type": "SYMBOL", "name": "null" } ] }, "float": { "type": "PATTERN", "value": "\\d*((\\.\\d*)?([eE][\\+-]?\\d+)|(\\.\\d*)([eE][\\+-]?\\d+)?)" }, "try_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[tT][rR][yY]" }, "named": false, "value": "try" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } }, { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "catch_clause" }, { "type": "SYMBOL", "name": "finally_clause" } ] } } ] }, "catch_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[cC][aA][tT][cC][hH]" }, "named": false, "value": "catch" }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "_type_name" } }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "variable_name" } }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "compound_statement" } } ] }, "finally_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[fF][iI][nN][aA][lL][lL][yY]" }, "named": false, "value": "finally" }, { "type": "FIELD"