summaryrefslogtreecommitdiff
path: root/vendor/tree-sitter-php/src/grammar.json
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/tree-sitter-php/src/grammar.json')
-rw-r--r--vendor/tree-sitter-php/src/grammar.json9242
1 files changed, 9242 insertions, 0 deletions
diff --git a/vendor/tree-sitter-php/src/grammar.json b/vendor/tree-sitter-php/src/grammar.json
new file mode 100644
index 0000000..4b3aa4e
--- /dev/null
+++ b/vendor/tree-sitter-php/src/grammar.json
@@ -0,0 +1,9242 @@
+{
+ "name": "php",
+ "word": "name",
+ "rules": {
+ "program": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "text"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "php_tag"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "php_tag": {
+ "type": "PATTERN",
+ "value": "<\\?([pP][hH][pP]|=)?"
+ },
+ "text_interpolation": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "?>"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "text"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "php_tag"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_eof"
+ }
+ ]
+ }
+ ]
+ },
+ "text": {
+ "type": "REPEAT1",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": -1,
+ "content": {
+ "type": "PATTERN",
+ "value": "<"
+ }
+ }
+ },
+ {
+ "type": "TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "PATTERN",
+ "value": "[^\\s<][^<]*"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "statement": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "empty_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "compound_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "named_label_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "if_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "switch_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "while_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "do_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "for_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "foreach_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "goto_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "continue_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "break_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "return_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "try_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "declare_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "echo_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "exit_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "unset_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "const_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "function_definition"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "class_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "interface_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "trait_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "enum_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "namespace_definition"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "namespace_use_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "global_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "function_static_declaration"
+ }
+ ]
+ },
+ "empty_statement": {
+ "type": "PREC",
+ "value": -1,
+ "content": {
+ "type": "STRING",
+ "value": ";"
+ }
+ },
+ "reference_modifier": {
+ "type": "STRING",
+ "value": "&"
+ },
+ "function_static_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "static",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "static"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "static_variable_declaration"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "static_variable_declaration"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "static_variable_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "global_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "global",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "global"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_simple_variable"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_simple_variable"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "namespace_definition": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "namespace",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "namespace"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "namespace_name"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "namespace_name"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "compound_statement"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "namespace_use_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "use",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "use"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "namespace_use_clause"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "namespace_use_clause"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_namespace_use_group"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "namespace_use_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_namespace_use_type"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "as",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "as"
+ },
+ {
+ "type": "FIELD",
+ "name": "alias",
+ "content": {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "_namespace_use_type": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "function",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "function"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "const",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "const"
+ }
+ ]
+ },
+ "qualified_name": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "prefix",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "namespace_name"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "\\"
+ }
+ ]
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ ]
+ },
+ "_name": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_identifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "qualified_name"
+ }
+ ]
+ },
+ "namespace_name": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "\\"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "\\"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "_namespace_use_group": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_namespace_use_type"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "namespace_name"
+ },
+ {
+ "type": "STRING",
+ "value": "\\"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "namespace_use_group"
+ }
+ }
+ ]
+ },
+ "namespace_use_group": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "namespace_use_clause"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "namespace_use_clause"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "trait_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "trait",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "trait"
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "declaration_list"
+ }
+ }
+ ]
+ },
+ "interface_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "interface",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "interface"
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "base_clause"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "declaration_list"
+ }
+ }
+ ]
+ },
+ "base_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "extends",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "extends"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "enum_declaration": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "enum",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "enum"
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "string"
+ },
+ {
+ "type": "STRING",
+ "value": "int"
+ }
+ ]
+ },
+ "named": true,
+ "value": "primitive_type"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "class_interface_clause"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "enum_declaration_list"
+ }
+ }
+ ]
+ }
+ },
+ "enum_declaration_list": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_enum_member_declaration"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "_enum_member_declaration": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "enum_case"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "method_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "use_declaration"
+ }
+ ]
+ },
+ "enum_case": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "case",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "case"
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "integer"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "class_declaration": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_modifier"
+ }
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "class",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "class"
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "base_clause"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "class_interface_clause"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "declaration_list"
+ }
+ }
+ ]
+ }
+ },
+ "declaration_list": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_member_declaration"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "final_modifier": {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "final",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "final"
+ },
+ "abstract_modifier": {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "abstract",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "abstract"
+ },
+ "readonly_modifier": {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "readonly",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "readonly"
+ },
+ "class_interface_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "implements",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "implements"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "_member_declaration": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_class_const_declaration"
+ },
+ "named": true,
+ "value": "const_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "property_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "method_declaration"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "use_declaration"
+ }
+ ]
+ },
+ "const_declaration": {
+ "type": "SYMBOL",
+ "name": "_const_declaration"
+ },
+ "_class_const_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "final_modifier"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_const_declaration"
+ }
+ ]
+ },
+ "_const_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_modifier"
+ }
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "const",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "const"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "SYMBOL",
+ "name": "type"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "const_element"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "const_element"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "property_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_modifier"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "SYMBOL",
+ "name": "type"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "property_element"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "property_element"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "property_hook_list"
+ }
+ ]
+ }
+ ]
+ },
+ "_modifier": {
+ "type": "PREC_LEFT",
+ "value": 0,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "var_modifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "visibility_modifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "static_modifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "final_modifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "abstract_modifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "readonly_modifier"
+ }
+ ]
+ }
+ },
+ "property_element": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "FIELD",
+ "name": "default_value",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "property_hook_list": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "property_hook"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "property_hook": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "final",
+ "content": {
+ "type": "SYMBOL",
+ "name": "final_modifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "reference_modifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "reference_modifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "parameters",
+ "content": {
+ "type": "SYMBOL",
+ "name": "formal_parameters"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_property_hook_body"
+ }
+ ]
+ },
+ "_property_hook_body": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "compound_statement"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "method_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_modifier"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_function_definition_header"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "compound_statement"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ }
+ ]
+ },
+ "var_modifier": {
+ "type": "PATTERN",
+ "value": "var",
+ "flags": "i"
+ },
+ "static_modifier": {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "static",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "static"
+ },
+ "use_declaration": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "use",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "use"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "use_list"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ }
+ ]
+ },
+ "use_list": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "use_instead_of_clause"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "use_as_clause"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "use_instead_of_clause": {
+ "type": "PREC_LEFT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "class_constant_access_expression"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "insteadof",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "insteadof"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ ]
+ }
+ },
+ "use_as_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "class_constant_access_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "as",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "as"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "visibility_modifier"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "visibility_modifier"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "visibility_modifier": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "public",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "public"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "protected",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "protected"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "private",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "private"
+ }
+ ]
+ },
+ "function_definition": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_function_definition_header"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "compound_statement"
+ }
+ }
+ ]
+ },
+ "_function_definition_header": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "function",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "function"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "reference_modifier"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_identifier"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "parameters",
+ "content": {
+ "type": "SYMBOL",
+ "name": "formal_parameters"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_return_type"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "anonymous_function": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_anonymous_function_header"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "compound_statement"
+ }
+ }
+ ]
+ },
+ "anonymous_function_use_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "use",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "use"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "_anonymous_function_header": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "static_modifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "static_modifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "function",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "function"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "reference_modifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "reference_modifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "parameters",
+ "content": {
+ "type": "SYMBOL",
+ "name": "formal_parameters"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "anonymous_function_use_clause"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_return_type"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "_arrow_function_header": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "static_modifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "static_modifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "fn",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "fn"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "reference_modifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "reference_modifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "parameters",
+ "content": {
+ "type": "SYMBOL",
+ "name": "formal_parameters"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_return_type"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "arrow_function": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_arrow_function_header"
+ },
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ },
+ "formal_parameters": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "simple_parameter"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variadic_parameter"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "property_promotion_parameter"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "simple_parameter"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variadic_parameter"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "property_promotion_parameter"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "property_promotion_parameter": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "visibility",
+ "content": {
+ "type": "SYMBOL",
+ "name": "visibility_modifier"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "readonly",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "readonly_modifier"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "type"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ ]
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "FIELD",
+ "name": "default_value",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "property_hook_list"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "simple_parameter": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "type"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "reference_modifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "reference_modifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "FIELD",
+ "name": "default_value",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "variadic_parameter": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "type"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "reference_modifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "reference_modifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "..."
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ }
+ ]
+ },
+ "type": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_types"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "union_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "intersection_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "disjunctive_normal_form_type"
+ }
+ ]
+ },
+ "_types": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "optional_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "named_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "primitive_type"
+ }
+ ]
+ },
+ "named_type": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "qualified_name"
+ }
+ ]
+ },
+ "optional_type": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "?"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "named_type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "primitive_type"
+ }
+ ]
+ }
+ ]
+ },
+ "bottom_type": {
+ "type": "STRING",
+ "value": "never"
+ },
+ "union_type": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_types"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "|"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_types"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "intersection_type": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_types"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "TOKEN",
+ "content": {
+ "type": "STRING",
+ "value": "&"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_types"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "disjunctive_normal_form_type": {
+ "type": "PREC_DYNAMIC",
+ "value": -1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "intersection_type"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_types"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "|"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "intersection_type"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_types"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "primitive_type": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "array"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "callable",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "callable"
+ },
+ {
+ "type": "STRING",
+ "value": "iterable"
+ },
+ {
+ "type": "STRING",
+ "value": "bool"
+ },
+ {
+ "type": "STRING",
+ "value": "float"
+ },
+ {
+ "type": "STRING",
+ "value": "int"
+ },
+ {
+ "type": "STRING",
+ "value": "string"
+ },
+ {
+ "type": "STRING",
+ "value": "void"
+ },
+ {
+ "type": "STRING",
+ "value": "mixed"
+ },
+ {
+ "type": "STRING",
+ "value": "false"
+ },
+ {
+ "type": "STRING",
+ "value": "null"
+ },
+ {
+ "type": "STRING",
+ "value": "true"
+ }
+ ]
+ },
+ "cast_type": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "array",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "binary",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "bool",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "boolean",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "double",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "int",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "integer",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "float",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "object",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "real",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "string",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "unset",
+ "flags": "i"
+ }
+ ]
+ },
+ "_return_type": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "FIELD",
+ "name": "return_type",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "type"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "bottom_type"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "const_element": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_identifier"
+ },
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ "echo_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "echo",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "echo"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_expressions"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "exit_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "exit",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "exit"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "unset_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "unset"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "declare_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "declare",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "declare"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "declare_directive"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "enddeclare",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "enddeclare"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "declare_directive": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "ticks"
+ },
+ {
+ "type": "STRING",
+ "value": "encoding"
+ },
+ {
+ "type": "STRING",
+ "value": "strict_types"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "SYMBOL",
+ "name": "literal"
+ }
+ ]
+ },
+ "literal": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "integer"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "float"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "boolean"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "null"
+ }
+ ]
+ },
+ "float": {
+ "type": "PATTERN",
+ "value": "\\d*(_\\d+)*((\\.\\d*(_\\d+)*)?([eE][\\+-]?\\d+(_\\d+)*)|(\\.\\d*(_\\d+)*)([eE][\\+-]?\\d+(_\\d+)*)?)"
+ },
+ "try_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "try",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "try"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "compound_statement"
+ }
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "catch_clause"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "finally_clause"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "catch_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "catch",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "catch"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "SYMBOL",
+ "name": "type_list"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "compound_statement"
+ }
+ }
+ ]
+ },
+ "type_list": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "named_type"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "|"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "named_type"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "finally_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "finally",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "finally"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "compound_statement"
+ }
+ }
+ ]
+ },
+ "goto_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "goto",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "goto"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "continue_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "continue",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "continue"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "break_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "break",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "break"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "integer": {
+ "type": "TOKEN",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[1-9]\\d*(_\\d+)*"
+ },
+ {
+ "type": "PATTERN",
+ "value": "0[oO]?[0-7]*(_[0-7]+)*"
+ },
+ {
+ "type": "PATTERN",
+ "value": "0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)*"
+ },
+ {
+ "type": "PATTERN",
+ "value": "0[bB][01]+(_[01]+)*"
+ }
+ ]
+ }
+ },
+ "return_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "return",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "return"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "throw_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "throw",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "throw"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ "while_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "while",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "while"
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "colon_block"
+ }
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "endwhile",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "endwhile"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "do_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "do",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "do"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "while",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "while"
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "for_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "for",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "for"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "FIELD",
+ "name": "initialize",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_expressions"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_expressions"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ },
+ {
+ "type": "FIELD",
+ "name": "update",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_expressions"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ }
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "endfor",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "endfor"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "_expressions": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "sequence_expression"
+ }
+ ]
+ },
+ "sequence_expression": {
+ "type": "PREC",
+ "value": -1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "sequence_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "foreach_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "foreach",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "foreach"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "as",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "as"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "foreach_pair"
+ },
+ "named": true,
+ "value": "pair"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_foreach_value"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "colon_block"
+ }
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "endforeach",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "endforeach"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "foreach_pair": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_foreach_value"
+ }
+ ]
+ },
+ "_foreach_value": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "list_literal"
+ }
+ ]
+ },
+ "if_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "if",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "if"
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "FIELD",
+ "name": "alternative",
+ "content": {
+ "type": "SYMBOL",
+ "name": "else_if_clause"
+ }
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "alternative",
+ "content": {
+ "type": "SYMBOL",
+ "name": "else_clause"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "colon_block"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "FIELD",
+ "name": "alternative",
+ "content": {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "else_if_clause_2"
+ },
+ "named": true,
+ "value": "else_if_clause"
+ }
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "alternative",
+ "content": {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "else_clause_2"
+ },
+ "named": true,
+ "value": "else_clause"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "endif",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "endif"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "colon_block": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ }
+ ]
+ },
+ "else_if_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "elseif",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "elseif"
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ }
+ ]
+ },
+ "else_clause": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "else",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "else"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ }
+ ]
+ },
+ "else_if_clause_2": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "elseif",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "elseif"
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "colon_block"
+ }
+ }
+ ]
+ },
+ "else_clause_2": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "else",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "else"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "colon_block"
+ }
+ }
+ ]
+ },
+ "match_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "match",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "match"
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "match_block"
+ }
+ }
+ ]
+ },
+ "match_block": {
+ "type": "PREC_LEFT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "match_conditional_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "match_default_expression"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "match_conditional_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "match_default_expression"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ }
+ },
+ "match_condition_list": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "match_conditional_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "conditional_expressions",
+ "content": {
+ "type": "SYMBOL",
+ "name": "match_condition_list"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "FIELD",
+ "name": "return_expression",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ },
+ "match_default_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "default",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "default"
+ },
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "FIELD",
+ "name": "return_expression",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ },
+ "switch_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "switch",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "switch"
+ },
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "switch_block"
+ }
+ }
+ ]
+ },
+ "switch_block": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "case_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "default_statement"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "case_statement"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "default_statement"
+ }
+ ]
+ }
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "endswitch",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "endswitch"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ }
+ ]
+ },
+ "case_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "case",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "case"
+ },
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ }
+ ]
+ },
+ "default_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "default",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "default"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ }
+ ]
+ },
+ "compound_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "statement"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "named_label_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "STRING",
+ "value": ":"
+ }
+ ]
+ },
+ "expression_statement": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_semicolon"
+ }
+ ]
+ },
+ "expression": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "conditional_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "match_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "augmented_assignment_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "assignment_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "reference_assignment_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "yield_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_unary_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "error_suppression_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "binary_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "include_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "include_once_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "require_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "require_once_expression"
+ }
+ ]
+ },
+ "_unary_expression": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "clone_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "primary_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "unary_op_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "cast_expression"
+ }
+ ]
+ },
+ "unary_op_expression": {
+ "type": "PREC_LEFT",
+ "value": 19,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "+"
+ },
+ {
+ "type": "STRING",
+ "value": "-"
+ },
+ {
+ "type": "STRING",
+ "value": "~"
+ },
+ {
+ "type": "STRING",
+ "value": "!"
+ }
+ ]
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "argument",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ "error_suppression_expression": {
+ "type": "PREC",
+ "value": 21,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "@"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ },
+ "clone_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "clone",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "clone"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "primary_expression"
+ }
+ ]
+ },
+ "primary_expression": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "literal"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "class_constant_access_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "qualified_name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "array_creation_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "print_intrinsic"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "anonymous_function"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "arrow_function"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "object_creation_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "update_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "shell_command_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "throw_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "arrow_function"
+ }
+ ]
+ },
+ "parenthesized_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "class_constant_access_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_scope_resolution_qualifier"
+ },
+ {
+ "type": "STRING",
+ "value": "::"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_identifier"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ "named": true,
+ "value": "name"
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "print_intrinsic": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "print",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "print"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ "object_creation_expression": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_new_dereferencable_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_new_non_dereferencable_expression"
+ }
+ ]
+ },
+ "_new_non_dereferencable_expression": {
+ "type": "PREC_RIGHT",
+ "value": 23,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "new",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "new"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_class_name_reference"
+ }
+ ]
+ }
+ },
+ "_new_dereferencable_expression": {
+ "type": "PREC_RIGHT",
+ "value": 23,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "new",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "new"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_class_name_reference"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "arguments"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "anonymous_class"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "_class_name_reference": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_new_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ }
+ ]
+ },
+ "anonymous_class": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "attributes",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_list"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_modifier"
+ }
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "class",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "class"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "arguments"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "base_clause"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "class_interface_clause"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "SYMBOL",
+ "name": "declaration_list"
+ }
+ }
+ ]
+ }
+ },
+ "update_expression": {
+ "type": "PREC_LEFT",
+ "value": 21,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "--"
+ },
+ {
+ "type": "STRING",
+ "value": "++"
+ }
+ ]
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "argument",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable"
+ }
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "argument",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "--"
+ },
+ {
+ "type": "STRING",
+ "value": "++"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "cast_expression": {
+ "type": "PREC",
+ "value": -1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "SYMBOL",
+ "name": "cast_type"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_unary_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "include_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "include_once_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "error_suppression_expression"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "cast_variable": {
+ "type": "PREC",
+ "value": -1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "FIELD",
+ "name": "type",
+ "content": {
+ "type": "SYMBOL",
+ "name": "cast_type"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ },
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable"
+ }
+ }
+ ]
+ }
+ },
+ "assignment_expression": {
+ "type": "PREC_RIGHT",
+ "value": 4,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "list_literal"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ "reference_assignment_expression": {
+ "type": "PREC_RIGHT",
+ "value": 4,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "list_literal"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "="
+ },
+ {
+ "type": "STRING",
+ "value": "&"
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ "conditional_expression": {
+ "type": "PREC_LEFT",
+ "value": 5,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "condition",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "?"
+ },
+ {
+ "type": "FIELD",
+ "name": "body",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "FIELD",
+ "name": "alternative",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ "augmented_assignment_expression": {
+ "type": "PREC_RIGHT",
+ "value": 4,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "**="
+ },
+ {
+ "type": "STRING",
+ "value": "*="
+ },
+ {
+ "type": "STRING",
+ "value": "/="
+ },
+ {
+ "type": "STRING",
+ "value": "%="
+ },
+ {
+ "type": "STRING",
+ "value": "+="
+ },
+ {
+ "type": "STRING",
+ "value": "-="
+ },
+ {
+ "type": "STRING",
+ "value": ".="
+ },
+ {
+ "type": "STRING",
+ "value": "<<="
+ },
+ {
+ "type": "STRING",
+ "value": ">>="
+ },
+ {
+ "type": "STRING",
+ "value": "&="
+ },
+ {
+ "type": "STRING",
+ "value": "^="
+ },
+ {
+ "type": "STRING",
+ "value": "|="
+ },
+ {
+ "type": "STRING",
+ "value": "??="
+ }
+ ]
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ "_variable": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "cast_variable"
+ },
+ "named": true,
+ "value": "cast_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_new_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_callable_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "scoped_property_access_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "member_access_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "nullsafe_member_access_expression"
+ }
+ ]
+ },
+ "_variable_member_access_expression": {
+ "type": "PREC",
+ "value": 25,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "object",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_new_variable"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "->"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_member_name"
+ }
+ ]
+ }
+ },
+ "member_access_expression": {
+ "type": "PREC",
+ "value": 25,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "object",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_dereferencable_expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "->"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_member_name"
+ }
+ ]
+ }
+ },
+ "_variable_nullsafe_member_access_expression": {
+ "type": "PREC",
+ "value": 25,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "object",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_new_variable"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "?->"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_member_name"
+ }
+ ]
+ }
+ },
+ "nullsafe_member_access_expression": {
+ "type": "PREC",
+ "value": 25,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "object",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_dereferencable_expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "?->"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_member_name"
+ }
+ ]
+ }
+ },
+ "_variable_scoped_property_access_expression": {
+ "type": "PREC",
+ "value": 25,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "scope",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_new_variable"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "::"
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_simple_variable"
+ }
+ }
+ ]
+ }
+ },
+ "scoped_property_access_expression": {
+ "type": "PREC",
+ "value": 25,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "scope",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_scope_resolution_qualifier"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "::"
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_simple_variable"
+ }
+ }
+ ]
+ }
+ },
+ "list_literal": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_list_destructing"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_array_destructing"
+ }
+ ]
+ },
+ "_list_destructing": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "list",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "list"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_list_destructing"
+ },
+ "named": true,
+ "value": "list_literal"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_list_destructing"
+ },
+ "named": true,
+ "value": "list_literal"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_list_destructing"
+ },
+ "named": true,
+ "value": "list_literal"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_list_destructing"
+ },
+ "named": true,
+ "value": "list_literal"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "_array_destructing": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_array_destructing_element"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_array_destructing_element"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ }
+ ]
+ },
+ "_array_destructing_element": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_array_destructing"
+ },
+ "named": true,
+ "value": "list_literal"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_array_destructing"
+ },
+ "named": true,
+ "value": "list_literal"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "function_call_expression": {
+ "type": "PREC",
+ "value": 24,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "function",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_callable_expression"
+ }
+ ]
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "arguments",
+ "content": {
+ "type": "SYMBOL",
+ "name": "arguments"
+ }
+ }
+ ]
+ }
+ },
+ "_callable_expression": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_callable_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_dereferencable_scalar"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_new_dereferencable_expression"
+ },
+ "named": true,
+ "value": "object_creation_expression"
+ }
+ ]
+ },
+ "scoped_call_expression": {
+ "type": "PREC",
+ "value": 24,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "scope",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_scope_resolution_qualifier"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "::"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_member_name"
+ },
+ {
+ "type": "FIELD",
+ "name": "arguments",
+ "content": {
+ "type": "SYMBOL",
+ "name": "arguments"
+ }
+ }
+ ]
+ }
+ },
+ "_scope_resolution_qualifier": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "relative_scope"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_dereferencable_expression"
+ }
+ ]
+ },
+ "relative_scope": {
+ "type": "PREC",
+ "value": 22,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "self"
+ },
+ {
+ "type": "STRING",
+ "value": "parent"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "static",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "static"
+ }
+ ]
+ }
+ },
+ "variadic_placeholder": {
+ "type": "STRING",
+ "value": "..."
+ },
+ "arguments": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "argument"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "argument"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variadic_placeholder"
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "argument": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_argument_name"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "reference_modifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "reference_modifier"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_reserved_identifier"
+ },
+ "named": true,
+ "value": "name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variadic_unpacking"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ ]
+ },
+ "_argument_name": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "ALIAS",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "PATTERN",
+ "value": "array",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "fn",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "function",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "match",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "namespace",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "null",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "static",
+ "flags": "i"
+ },
+ {
+ "type": "PATTERN",
+ "value": "throw",
+ "flags": "i"
+ },
+ {
+ "type": "STRING",
+ "value": "parent"
+ },
+ {
+ "type": "STRING",
+ "value": "self"
+ },
+ {
+ "type": "PATTERN",
+ "value": "true|false",
+ "flags": "i"
+ }
+ ]
+ },
+ "named": true,
+ "value": "name"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ":"
+ }
+ ]
+ },
+ "member_call_expression": {
+ "type": "PREC",
+ "value": 24,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "object",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_dereferencable_expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "->"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_member_name"
+ },
+ {
+ "type": "FIELD",
+ "name": "arguments",
+ "content": {
+ "type": "SYMBOL",
+ "name": "arguments"
+ }
+ }
+ ]
+ }
+ },
+ "nullsafe_member_call_expression": {
+ "type": "PREC",
+ "value": 24,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "object",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_dereferencable_expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "?->"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_member_name"
+ },
+ {
+ "type": "FIELD",
+ "name": "arguments",
+ "content": {
+ "type": "SYMBOL",
+ "name": "arguments"
+ }
+ }
+ ]
+ }
+ },
+ "variadic_unpacking": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "..."
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ "_member_name": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_identifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_simple_variable"
+ }
+ ]
+ }
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ }
+ ]
+ },
+ "_variable_subscript_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_new_variable"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ }
+ ]
+ }
+ ]
+ },
+ "_dereferencable_subscript_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_dereferencable_expression"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ }
+ ]
+ }
+ ]
+ },
+ "_dereferencable_expression": {
+ "type": "PREC",
+ "value": 26,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_new_dereferencable_expression"
+ },
+ "named": true,
+ "value": "object_creation_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "class_constant_access_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "parenthesized_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_dereferencable_scalar"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ }
+ ]
+ }
+ },
+ "_dereferencable_scalar": {
+ "type": "PREC",
+ "value": 26,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "array_creation_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_string"
+ }
+ ]
+ }
+ },
+ "array_creation_expression": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "array",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "array"
+ },
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "array_element_initializer"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "array_element_initializer"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "array_element_initializer"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "array_element_initializer"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ }
+ ]
+ }
+ ]
+ },
+ "attribute_group": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "#["
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "attribute"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "SYMBOL",
+ "name": "attribute"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ","
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ }
+ ]
+ },
+ "attribute_list": {
+ "type": "REPEAT1",
+ "content": {
+ "type": "SYMBOL",
+ "name": "attribute_group"
+ }
+ },
+ "attribute": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_name"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "parameters",
+ "content": {
+ "type": "SYMBOL",
+ "name": "arguments"
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ "_complex_string_part": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "_simple_string_member_access_expression": {
+ "type": "PREC",
+ "value": 25,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "object",
+ "content": {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "->"
+ },
+ {
+ "type": "FIELD",
+ "name": "name",
+ "content": {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ }
+ ]
+ }
+ },
+ "_simple_string_subscript_unary_expression": {
+ "type": "PREC_LEFT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "-"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "integer"
+ }
+ ]
+ }
+ },
+ "_simple_string_array_access_argument": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "integer"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_simple_string_subscript_unary_expression"
+ },
+ "named": true,
+ "value": "unary_op_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ }
+ ]
+ },
+ "_simple_string_subscript_expression": {
+ "type": "PREC",
+ "value": 26,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_simple_string_array_access_argument"
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "_simple_string_part": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_simple_string_member_access_expression"
+ },
+ "named": true,
+ "value": "member_access_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_simple_variable"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_simple_string_subscript_expression"
+ },
+ "named": true,
+ "value": "subscript_expression"
+ }
+ ]
+ },
+ "escape_sequence": {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "\\"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "n"
+ },
+ {
+ "type": "STRING",
+ "value": "r"
+ },
+ {
+ "type": "STRING",
+ "value": "t"
+ },
+ {
+ "type": "STRING",
+ "value": "v"
+ },
+ {
+ "type": "STRING",
+ "value": "e"
+ },
+ {
+ "type": "STRING",
+ "value": "f"
+ },
+ {
+ "type": "STRING",
+ "value": "\\"
+ },
+ {
+ "type": "PATTERN",
+ "value": "\\$"
+ },
+ {
+ "type": "STRING",
+ "value": "\""
+ },
+ {
+ "type": "STRING",
+ "value": "`"
+ },
+ {
+ "type": "PATTERN",
+ "value": "[0-7]{1,3}"
+ },
+ {
+ "type": "PATTERN",
+ "value": "x[0-9A-Fa-f]{1,2}"
+ },
+ {
+ "type": "PATTERN",
+ "value": "u\\{[0-9A-Fa-f]+\\}"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "_interpolated_string_body": {
+ "type": "REPEAT1",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "escape_sequence"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "encapsed_string_chars_after_variable"
+ },
+ "named": true,
+ "value": "string_content"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "encapsed_string_chars"
+ },
+ "named": true,
+ "value": "string_content"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_simple_string_part"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_complex_string_part"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "STRING",
+ "value": "\\u"
+ },
+ "named": true,
+ "value": "string_content"
+ }
+ ]
+ }
+ },
+ "_interpolated_string_body_heredoc": {
+ "type": "REPEAT1",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "escape_sequence"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "encapsed_string_chars_after_variable_heredoc"
+ },
+ "named": true,
+ "value": "string_content"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "encapsed_string_chars_heredoc"
+ },
+ "named": true,
+ "value": "string_content"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_simple_string_part"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_complex_string_part"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "STRING",
+ "value": "\\u"
+ },
+ "named": true,
+ "value": "string_content"
+ }
+ ]
+ }
+ },
+ "encapsed_string": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[bB]\""
+ },
+ {
+ "type": "STRING",
+ "value": "\""
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_interpolated_string_body"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "\""
+ }
+ ]
+ }
+ },
+ "string": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[bB]'"
+ },
+ {
+ "type": "STRING",
+ "value": "'"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "TOKEN",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "\\\\"
+ },
+ {
+ "type": "STRING",
+ "value": "\\'"
+ }
+ ]
+ }
+ },
+ "named": true,
+ "value": "escape_sequence"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "string_content"
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "'"
+ }
+ ]
+ },
+ "string_content": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "REPEAT1",
+ "content": {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "PATTERN",
+ "value": "\\\\?[^'\\\\]+"
+ }
+ }
+ }
+ }
+ },
+ "heredoc_body": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_new_line"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_new_line"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_interpolated_string_body_heredoc"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "heredoc": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "TOKEN",
+ "content": {
+ "type": "STRING",
+ "value": "<<<"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "\""
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "identifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "heredoc_start"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "STRING",
+ "value": "\""
+ }
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "SYMBOL",
+ "name": "heredoc_body"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_new_line"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "heredoc_body"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "end_tag",
+ "content": {
+ "type": "SYMBOL",
+ "name": "heredoc_end"
+ }
+ }
+ ]
+ },
+ "_new_line": {
+ "type": "PATTERN",
+ "value": "\\r?\\n|\\r"
+ },
+ "nowdoc_body": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_new_line"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "SYMBOL",
+ "name": "nowdoc_string"
+ }
+ }
+ ]
+ },
+ "nowdoc": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "TOKEN",
+ "content": {
+ "type": "STRING",
+ "value": "<<<"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "'"
+ },
+ {
+ "type": "FIELD",
+ "name": "identifier",
+ "content": {
+ "type": "SYMBOL",
+ "name": "heredoc_start"
+ }
+ },
+ {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "STRING",
+ "value": "'"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "SYMBOL",
+ "name": "nowdoc_body"
+ }
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_new_line"
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "nowdoc_body"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "FIELD",
+ "name": "end_tag",
+ "content": {
+ "type": "SYMBOL",
+ "name": "heredoc_end"
+ }
+ }
+ ]
+ },
+ "_interpolated_execution_operator_body": {
+ "type": "REPEAT1",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "escape_sequence"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "execution_string_chars_after_variable"
+ },
+ "named": true,
+ "value": "string_content"
+ }
+ ]
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "execution_string_chars"
+ },
+ "named": true,
+ "value": "string_content"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_simple_string_part"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_complex_string_part"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "STRING",
+ "value": "\\u"
+ },
+ "named": true,
+ "value": "string_content"
+ }
+ ]
+ }
+ },
+ "shell_command_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "`"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_interpolated_execution_operator_body"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "`"
+ }
+ ]
+ },
+ "boolean": {
+ "type": "PATTERN",
+ "value": "true|false",
+ "flags": "i"
+ },
+ "null": {
+ "type": "PATTERN",
+ "value": "null",
+ "flags": "i"
+ },
+ "_string": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "encapsed_string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "heredoc"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "nowdoc"
+ }
+ ]
+ },
+ "dynamic_variable_name": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "$"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_simple_variable"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "$"
+ },
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ }
+ ]
+ },
+ "_simple_variable": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "variable_name"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "dynamic_variable_name"
+ }
+ ]
+ },
+ "_new_variable": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_simple_variable"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable_subscript_expression"
+ },
+ "named": true,
+ "value": "subscript_expression"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable_member_access_expression"
+ },
+ "named": true,
+ "value": "member_access_expression"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable_nullsafe_member_access_expression"
+ },
+ "named": true,
+ "value": "nullsafe_member_access_expression"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_variable_scoped_property_access_expression"
+ },
+ "named": true,
+ "value": "scoped_property_access_expression"
+ }
+ ]
+ }
+ },
+ "_callable_variable": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_simple_variable"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_dereferencable_subscript_expression"
+ },
+ "named": true,
+ "value": "subscript_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "member_call_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "nullsafe_member_call_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "function_call_expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "scoped_call_expression"
+ }
+ ]
+ },
+ "variable_name": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "$"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ }
+ ]
+ },
+ "by_ref": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "&"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_variable"
+ }
+ ]
+ },
+ "yield_expression": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "yield",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "yield"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "array_element_initializer"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "from",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "from"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "array_element_initializer": {
+ "type": "PREC_RIGHT",
+ "value": 0,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "STRING",
+ "value": "=>"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "by_ref"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SYMBOL",
+ "name": "variadic_unpacking"
+ }
+ ]
+ }
+ },
+ "binary_expression": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PREC",
+ "value": 20,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_unary_expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "instanceof",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "instanceof"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_class_name_reference"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_RIGHT",
+ "value": 6,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "??"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_RIGHT",
+ "value": 18,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "**"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 3,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "and",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "and"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "or",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "or"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 2,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "xor",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "xor"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 7,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "||"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 8,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "&&"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 9,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "|"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 10,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "^"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 11,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "&"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 12,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "=="
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 12,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "!="
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 12,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "<>"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 12,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "==="
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 12,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "!=="
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 13,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "<"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 13,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": ">"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 13,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "<="
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 13,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": ">="
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 12,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "<=>"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 15,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "<<"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 15,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": ">>"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 16,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "+"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 16,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "-"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 14,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "."
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 17,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "*"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 17,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "/"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "PREC_LEFT",
+ "value": 17,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "left",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "operator",
+ "content": {
+ "type": "STRING",
+ "value": "%"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "right",
+ "content": {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "include_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "include",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "include"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ "include_once_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "include_once",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "include_once"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ "require_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "require",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "require"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ "require_once_expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "require_once",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "require_once"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ }
+ ]
+ },
+ "name": {
+ "type": "PATTERN",
+ "value": "[_a-zA-Z\\u0080-\\u009f\\u00a1-\\u200a\\u200c-\\u205f\\u2061-\\ufefe\\uff00-\\uffff][_a-zA-Z\\u0080-\\u009f\\u00a1-\\u200a\\u200c-\\u205f\\u2061-\\ufefe\\uff00-\\uffff\\d]*"
+ },
+ "_reserved_identifier": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "self"
+ },
+ {
+ "type": "STRING",
+ "value": "parent"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "PATTERN",
+ "value": "static",
+ "flags": "i"
+ },
+ "named": false,
+ "value": "static"
+ }
+ ]
+ },
+ "_identifier": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "name"
+ },
+ {
+ "type": "ALIAS",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_reserved_identifier"
+ },
+ "named": true,
+ "value": "name"
+ }
+ ]
+ },
+ "comment": {
+ "type": "TOKEN",
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "//"
+ },
+ {
+ "type": "PATTERN",
+ "value": "#[^?\\[?\\r?\\n]"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "[^?\\r?\\n]|\\?[^>\\r\\n]"
+ }
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\?\\r?\\n"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "#"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "/*"
+ },
+ {
+ "type": "PATTERN",
+ "value": "[^*]*\\*+([^/*][^*]*\\*+)*"
+ },
+ {
+ "type": "STRING",
+ "value": "/"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "_semicolon": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_automatic_semicolon"
+ },
+ {
+ "type": "STRING",
+ "value": ";"
+ }
+ ]
+ }
+ },
+ "extras": [
+ {
+ "type": "SYMBOL",
+ "name": "comment"
+ },
+ {
+ "type": "PATTERN",
+ "value": "[\\s\\u00A0\\u200B\\u2060\\uFEFF]"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "text_interpolation"
+ }
+ ],
+ "conflicts": [
+ [
+ "_array_destructing",
+ "array_creation_expression"
+ ],
+ [
+ "_array_destructing_element",
+ "array_element_initializer"
+ ],
+ [
+ "primary_expression",
+ "_array_destructing_element"
+ ],
+ [
+ "type",
+ "union_type",
+ "intersection_type",
+ "disjunctive_normal_form_type"
+ ],
+ [
+ "union_type",
+ "disjunctive_normal_form_type"
+ ],
+ [
+ "intersection_type"
+ ],
+ [
+ "if_statement"
+ ],
+ [
+ "namespace_name"
+ ],
+ [
+ "heredoc_body"
+ ]
+ ],
+ "precedences": [],
+ "externals": [
+ {
+ "type": "SYMBOL",
+ "name": "_automatic_semicolon"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "encapsed_string_chars"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "encapsed_string_chars_after_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "execution_string_chars"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "execution_string_chars_after_variable"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "encapsed_string_chars_heredoc"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "encapsed_string_chars_after_variable_heredoc"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_eof"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "heredoc_start"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "heredoc_end"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "nowdoc_string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "sentinel_error"
+ }
+ ],
+ "inline": [
+ "_variable",
+ "_namespace_use_type"
+ ],
+ "supertypes": [
+ "statement",
+ "expression",
+ "primary_expression",
+ "type",
+ "literal"
+ ]
+}