{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "php",
"word": "name",
"rules": {
"program": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "text"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "php_tag"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"php_tag": {
"type": "PATTERN",
"value": "<\\?([pP][hH][pP]|=)?"
},
"php_end_tag": {
"type": "STRING",
"value": "?>"
},
"text_interpolation": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "php_end_tag"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "text"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "php_tag"
},
{
"type": "SYMBOL",
"name": "_eof"
}
]
}
]
},
"text": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "<"
}
}
},
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^\\s<][^<]*"
}
}
}
]
}
},
"statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "empty_statement"
},
{
"type": "SYMBOL",
"name": "compound_statement"
},
{
"type": "SYMBOL",
"name": "named_label_statement"
},
{
"type": "SYMBOL",
"name": "expression_statement"
},
{
"type": "SYMBOL",
"name": "if_statement"
},
{
"type": "SYMBOL",
"name": "switch_statement"
},
{
"type": "SYMBOL",
"name": "while_statement"
},
{
"type": "SYMBOL",
"name": "do_statement"
},
{
"type": "SYMBOL",
"name": "for_statement"
},
{
"type": "SYMBOL",
"name": "foreach_statement"
},
{
"type": "SYMBOL",
"name": "goto_statement"
},
{
"type": "SYMBOL",
"name": "continue_statement"
},
{
"type": "SYMBOL",
"name": "break_statement"
},
{
"type": "SYMBOL",
"name": "return_statement"
},
{
"type": "SYMBOL",
"name": "try_statement"
},
{
"type": "SYMBOL",
"name": "declare_statement"
},
{
"type": "SYMBOL",
"name": "echo_statement"
},
{
"type": "SYMBOL",
"name": "exit_statement"
},
{
"type": "SYMBOL",
"name": "unset_statement"
},
{
"type": "SYMBOL",
"name": "const_declaration"
},
{
"type": "SYMBOL",
"name": "function_definition"
},
{
"type": "SYMBOL",
"name": "class_declaration"
},
{
"type": "SYMBOL",
"name": "interface_declaration"
},
{
"type": "SYMBOL",
"name": "trait_declaration"
},
{
"type": "SYMBOL",
"name": "enum_declaration"
},
{
"type": "SYMBOL",
"name": "namespace_definition"
},
{
"type": "SYMBOL",
"name": "namespace_use_declaration"
},
{
"type": "SYMBOL",
"name": "global_declaration"
},
{
"type": "SYMBOL",
"name": "function_static_declaration"
}
]
},
"empty_statement": {
"type": "PREC",
"value": -1,
"content": {
"type": "STRING",
"value": ";"
}
},
"reference_modifier": {
"type": "STRING",
"value": "&"
},
"function_static_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "static",
"flags": "i"
},
"named": false,
"value": "static"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "static_variable_declaration"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "static_variable_declaration"
}
]
}
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"static_variable_declaration": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "variable_name"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"global_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "global",
"flags": "i"
},
"named": false,
"value": "global"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_variable"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_simple_variable"
}
]
}
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"namespace_definition": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "namespace",
"flags": "i"
},
"named": false,
"value": "namespace"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "namespace_name"
}
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "namespace_name"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "compound_statement"
}
}
]
}
]
}
]
},
"namespace_use_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "use",
"flags": "i"
},
"named": false,
"value": "use"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "namespace_use_clause"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "namespace_use_clause"
}
]
}
}
]
},
{
"type": "SYMBOL",
"name": "_namespace_use_group"
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"namespace_use_clause": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_namespace_use_type"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "name"
},
{
"type": "SYMBOL",
"name": "qualified_name"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "as",
"flags": "i"
},
"named": false,
"value": "as"
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "name"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_namespace_use_type": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "function",
"flags": "i"
},
"named": false,
"value": "function"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "const",
"flags": "i"
},
"named": false,
"value": "const"
}
]
},
"qualified_name": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "prefix",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "namespace_name"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "\\"
}
]
}
},
{
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "classes"
}
]
},
"relative_name": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "prefix",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "namespace",
"flags": "i"
},
"named": false,
"value": "namespace"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "SYMBOL",
"name": "namespace_name"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "\\"
}
]
}
},
{
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "classes"
}
]
},
"_name": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "static",
"flags": "i"
},
"named": true,
"value": "name"
},
{
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "classes"
},
{
"type": "SYMBOL",
"name": "qualified_name"
},
{
"type": "SYMBOL",
"name": "relative_name"
}
]
},
"namespace_name": {
"type": "SEQ",
"members": [
{
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "nothing"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "nothing"
}
]
}
}
]
},
"_namespace_use_group": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_namespace_use_type"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "namespace_name"
},
{
"type": "STRING",
"value": "\\"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "namespace_use_group"
}
}
]
},
"namespace_use_group": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "namespace_use_clause"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "namespace_use_clause"
}
]
}
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"trait_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "trait",
"flags": "i"
},
"named": false,
"value": "trait"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "classes"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "declaration_list"
}
}
]
},
"interface_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "interface",
"flags": "i"
},
"named": false,
"value": "interface"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "classes"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "base_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "declaration_list"
}
}
]
},
"base_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "extends",
"flags": "i"
},
"named": false,
"value": "extends"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_name"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_name"
}
]
}
}
]
}
]
},
"enum_declaration": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "enum",
"flags": "i"
},
"named": false,
"value": "enum"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "classes"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "string"
},
{
"type": "STRING",
"value": "int"
}
]
},
"named": true,
"value": "primitive_type"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_interface_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "enum_declaration_list"
}
}
]
}
},
"enum_declaration_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_enum_member_declaration"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"_enum_member_declaration": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_class_const_declaration"
},
"named": true,
"value": "const_declaration"
},
{
"type": "SYMBOL",
"name": "enum_case"
},
{
"type": "SYMBOL",
"name": "method_declaration"
},
{
"type": "SYMBOL",
"name": "use_declaration"
}
]
},
"enum_case": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "case",
"flags": "i"
},
"named": false,
"value": "case"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "nothing"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"class_declaration": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_modifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "class",
"flags": "i"
},
"named": false,
"value": "class"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "classes"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "base_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_interface_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "declaration_list"
}
}
]
}
},
"declaration_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_member_declaration"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"final_modifier": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "final",
"flags": "i"
},
"named": false,
"value": "final"
},
"abstract_modifier": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "abstract",
"flags": "i"
},
"named": false,
"value": "abstract"
},
"readonly_modifier": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "readonly",
"flags": "i"
},
"named": false,
"value": "readonly"
},
"class_interface_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "implements",
"flags": "i"
},
"named": false,
"value": "implements"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_name"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_name"
}
]
}
}
]
}
]
},
"_member_declaration": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_class_const_declaration"
},
"named": true,
"value": "const_declaration"
},
{
"type": "SYMBOL",
"name": "property_declaration"
},
{
"type": "SYMBOL",
"name": "method_declaration"
},
{
"type": "SYMBOL",
"name": "use_declaration"
}
]
},
"const_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_modifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "const",
"flags": "i"
},
"named": false,
"value": "const"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_const_element"
},
"named": true,
"value": "const_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_const_element"
},
"named": true,
"value": "const_element"
}
]
}
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"_class_const_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "final_modifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_modifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "const",
"flags": "i"
},
"named": false,
"value": "const"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_class_const_element"
},
"named": true,
"value": "const_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_class_const_element"
},
"named": true,
"value": "const_element"
}
]
}
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"property_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_modifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "property_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "property_element"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_semicolon"
},
{
"type": "SYMBOL",
"name": "property_hook_list"
}
]
}
]
},
"_modifier": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "var_modifier"
},
{
"type": "SYMBOL",
"name": "visibility_modifier"
},
{
"type": "SYMBOL",
"name": "static_modifier"
},
{
"type": "SYMBOL",
"name": "final_modifier"
},
{
"type": "SYMBOL",
"name": "abstract_modifier"
},
{
"type": "SYMBOL",
"name": "readonly_modifier"
}
]
}
},
"property_element": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "variable_name"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "default_value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"property_hook_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "property_hook"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"property_hook": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "final",
"content": {
"type": "SYMBOL",
"name": "final_modifier"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "reference_modifier",
"content": {
"type": "SYMBOL",
"name": "reference_modifier"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "name"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "formal_parameters"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_property_hook_body"
}
]
},
"_property_hook_body": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "=>"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "compound_statement"
}
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"method_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_modifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "function",
"flags": "i"
},
"named": false,
"value": "function"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "reference_modifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "nothing"
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "formal_parameters"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_return_type"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "compound_statement"
}
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
}
]
},
"var_modifier": {
"type": "PATTERN",
"value": "var",
"flags": "i"
},
"static_modifier": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "static",
"flags": "i"
},
"named": false,
"value": "static"
},
"use_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "use",
"flags": "i"
},
"named": false,
"value": "use"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_name"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_name"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "use_list"
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
}
]
},
"use_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "use_instead_of_clause"
},
{
"type": "SYMBOL",
"name": "use_as_clause"
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"use_instead_of_clause": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "class_constant_access_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "insteadof",
"flags": "i"
},
"named": false,
"value": "insteadof"
},
{
"type": "SYMBOL",
"name": "name"
}
]
}
},
"use_as_clause": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_constant_access_expression"
},
{
"type": "SYMBOL",
"name": "name"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "as",
"flags": "i"
},
"named": false,
"value": "as"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "visibility_modifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "name"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "visibility_modifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "name"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
]
},
"visibility_modifier": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "public",
"flags": "i"
},
"named": false,
"value": "public"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "protected",
"flags": "i"
},
"named": false,
"value": "protected"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "private",
"flags": "i"
},
"named": false,
"value": "private"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "("
}
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "name"
},
"named": true,
"value": "operation"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": ")"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"function_definition": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attribute_list"
}
},
{
"type": "BLANK"
}
]
},
{
"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": "name"
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "formal_parameters"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_return_type"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "compound_statement"
}
}
]
},
"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": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "classes"
},
{
"type": "SYMBOL",
"name": "qualified_name"
},
{
"type": "SYMBOL",
"name": "relative_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": "PATTERN",
"value": "never",
"flags": "i"
},
"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": "STRING",
"value": "bool"
},
{
"type": "PATTERN",
"value": "callable",
"flags": "i"
},
{
"type": "PATTERN",
"value": "false",
"flags": "i"
},
{
"type": "STRING",
"value": "float"
},
{
"type": "STRING",
"value": "int"
},
{
"type": "PATTERN",
"value": "iterable",
"flags": "i"
},
{
"type": "PATTERN",
"value": "mixed",
"flags": "i"
},
{
"type": "STRING",
"value": "null"
},
{
"type": "STRING",
"value": "object"
},
{
"type": "STRING",
"value": "string"
},
{
"type": "PATTERN",
"value": "true",
"flags": "i"
},
{
"type": "PATTERN",
"value": "void",
"flags": "i"
}
]
},
"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": "float",
"flags": "i"
},
{
"type": "PATTERN",
"value": "int",
"flags": "i"
},
{
"type": "PATTERN",
"value": "integer",
"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": "name"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"_class_const_element": {
"type": "SEQ",
"members": [
{
"type": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "nothing"
},
{
"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": 20,
"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": 22,
"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": "relative_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"
}
]
},
"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": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "nothing"
},
{
"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": 24,
"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": 24,
"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": 22,
"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": 26,
"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": 26,
"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": 26,
"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": 26,
"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": 26,
"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": 26,
"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": 25,
"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": 25,
"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": 23,
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "self",
"flags": "i"
},
"named": false,
"value": "self"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "parent",
"flags": "i"
},
"named": false,
"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": "relative_scope"
},
"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": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "nothing"
},
{
"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": "PATTERN",
"value": "parent",
"flags": "i"
},
{
"type": "PATTERN",
"value": "self",
"flags": "i"
},
{
"type": "PATTERN",
"value": "true|false",
"flags": "i"
}
]
},
"named": true,
"value": "name"
}
},
{
"type": "STRING",
"value": ":"
}
]
},
"member_call_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"
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
}
},
"nullsafe_member_call_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"
},
{
"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": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "nothing"
},
{
"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": 27,
"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": 27,
"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": 26,
"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": 27,
"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": "RESERVED",
"content": {
"type": "SYMBOL",
"name": "name"
},
"context_name": "nothing"
}
]
},
"by_ref": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "&"
},
{
"type": "SYMBOL",
"name": "_variable"
}
]
},
"yield_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "yield",
"flags": "i"
},
"named": false,
"value": "yield"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "array_element_initializer"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "yield from",
"flags": "i"
},
"named": false,
"value": "yield from"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
]
}
},
"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": 21,
"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": 19,
"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": 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": 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": 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": 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": 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": 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"
}
}
]
}
}
]
},
"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]*"
},
"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"
],
"reserved": {
"global": [
{
"type": "PATTERN",
"value": "abstract",
"flags": "i"
},
{
"type": "PATTERN",
"value": "and",
"flags": "i"
},
{
"type": "PATTERN",
"value": "as",
"flags": "i"
},
{
"type": "PATTERN",
"value": "break",
"flags": "i"
},
{
"type": "PATTERN",
"value": "callable",
"flags": "i"
},
{
"type": "PATTERN",
"value": "case",
"flags": "i"
},
{
"type": "PATTERN",
"value": "catch",
"flags": "i"
},
{
"type": "PATTERN",
"value": "class",
"flags": "i"
},
{
"type": "PATTERN",
"value": "clone",
"flags": "i"
},
{
"type": "PATTERN",
"value": "const",
"flags": "i"
},
{
"type": "PATTERN",
"value": "continue",
"flags": "i"
},
{
"type": "PATTERN",
"value": "declare",
"flags": "i"
},
{
"type": "PATTERN",
"value": "default",
"flags": "i"
},
{
"type": "PATTERN",
"value": "do",
"flags": "i"
},
{
"type": "PATTERN",
"value": "echo",
"flags": "i"
},
{
"type": "PATTERN",
"value": "else",
"flags": "i"
},
{
"type": "PATTERN",
"value": "elseif",
"flags": "i"
},
{
"type": "PATTERN",
"value": "enddeclare",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endfor",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endforeach",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endif",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endswitch",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endwhile",
"flags": "i"
},
{
"type": "PATTERN",
"value": "extends",
"flags": "i"
},
{
"type": "PATTERN",
"value": "final",
"flags": "i"
},
{
"type": "PATTERN",
"value": "finally",
"flags": "i"
},
{
"type": "PATTERN",
"value": "fn",
"flags": "i"
},
{
"type": "PATTERN",
"value": "for",
"flags": "i"
},
{
"type": "PATTERN",
"value": "foreach",
"flags": "i"
},
{
"type": "PATTERN",
"value": "function",
"flags": "i"
},
{
"type": "PATTERN",
"value": "global",
"flags": "i"
},
{
"type": "PATTERN",
"value": "goto",
"flags": "i"
},
{
"type": "PATTERN",
"value": "if",
"flags": "i"
},
{
"type": "PATTERN",
"value": "implements",
"flags": "i"
},
{
"type": "PATTERN",
"value": "include",
"flags": "i"
},
{
"type": "PATTERN",
"value": "include_once",
"flags": "i"
},
{
"type": "PATTERN",
"value": "instanceof",
"flags": "i"
},
{
"type": "PATTERN",
"value": "insteadof",
"flags": "i"
},
{
"type": "PATTERN",
"value": "interface",
"flags": "i"
},
{
"type": "PATTERN",
"value": "match",
"flags": "i"
},
{
"type": "PATTERN",
"value": "namespace",
"flags": "i"
},
{
"type": "PATTERN",
"value": "new",
"flags": "i"
},
{
"type": "PATTERN",
"value": "or",
"flags": "i"
},
{
"type": "PATTERN",
"value": "print",
"flags": "i"
},
{
"type": "PATTERN",
"value": "private",
"flags": "i"
},
{
"type": "PATTERN",
"value": "protected",
"flags": "i"
},
{
"type": "PATTERN",
"value": "public",
"flags": "i"
},
{
"type": "PATTERN",
"value": "readonly",
"flags": "i"
},
{
"type": "PATTERN",
"value": "require",
"flags": "i"
},
{
"type": "PATTERN",
"value": "require_once",
"flags": "i"
},
{
"type": "PATTERN",
"value": "return",
"flags": "i"
},
{
"type": "PATTERN",
"value": "static",
"flags": "i"
},
{
"type": "PATTERN",
"value": "switch",
"flags": "i"
},
{
"type": "PATTERN",
"value": "throw",
"flags": "i"
},
{
"type": "PATTERN",
"value": "trait",
"flags": "i"
},
{
"type": "PATTERN",
"value": "try",
"flags": "i"
},
{
"type": "PATTERN",
"value": "use",
"flags": "i"
},
{
"type": "PATTERN",
"value": "var",
"flags": "i"
},
{
"type": "PATTERN",
"value": "while",
"flags": "i"
},
{
"type": "PATTERN",
"value": "xor",
"flags": "i"
},
{
"type": "PATTERN",
"value": "yield from",
"flags": "i"
},
{
"type": "PATTERN",
"value": "yield",
"flags": "i"
}
],
"classes": [
{
"type": "PATTERN",
"value": "abstract",
"flags": "i"
},
{
"type": "PATTERN",
"value": "and",
"flags": "i"
},
{
"type": "PATTERN",
"value": "as",
"flags": "i"
},
{
"type": "PATTERN",
"value": "break",
"flags": "i"
},
{
"type": "PATTERN",
"value": "callable",
"flags": "i"
},
{
"type": "PATTERN",
"value": "case",
"flags": "i"
},
{
"type": "PATTERN",
"value": "catch",
"flags": "i"
},
{
"type": "PATTERN",
"value": "class",
"flags": "i"
},
{
"type": "PATTERN",
"value": "clone",
"flags": "i"
},
{
"type": "PATTERN",
"value": "const",
"flags": "i"
},
{
"type": "PATTERN",
"value": "continue",
"flags": "i"
},
{
"type": "PATTERN",
"value": "declare",
"flags": "i"
},
{
"type": "PATTERN",
"value": "default",
"flags": "i"
},
{
"type": "PATTERN",
"value": "do",
"flags": "i"
},
{
"type": "PATTERN",
"value": "echo",
"flags": "i"
},
{
"type": "PATTERN",
"value": "else",
"flags": "i"
},
{
"type": "PATTERN",
"value": "elseif",
"flags": "i"
},
{
"type": "PATTERN",
"value": "enddeclare",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endfor",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endforeach",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endif",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endswitch",
"flags": "i"
},
{
"type": "PATTERN",
"value": "endwhile",
"flags": "i"
},
{
"type": "PATTERN",
"value": "extends",
"flags": "i"
},
{
"type": "PATTERN",
"value": "final",
"flags": "i"
},
{
"type": "PATTERN",
"value": "finally",
"flags": "i"
},
{
"type": "PATTERN",
"value": "fn",
"flags": "i"
},
{
"type": "PATTERN",
"value": "for",
"flags": "i"
},
{
"type": "PATTERN",
"value": "foreach",
"flags": "i"
},
{
"type": "PATTERN",
"value": "function",
"flags": "i"
},
{
"type": "PATTERN",
"value": "global",
"flags": "i"
},
{
"type": "PATTERN",
"value": "goto",
"flags": "i"
},
{
"type": "PATTERN",
"value": "if",
"flags": "i"
},
{
"type": "PATTERN",
"value": "implements",
"flags": "i"
},
{
"type": "PATTERN",
"value": "include",
"flags": "i"
},
{
"type": "PATTERN",
"value": "include_once",
"flags": "i"
},
{
"type": "PATTERN",
"value": "instanceof",
"flags": "i"
},
{
"type": "PATTERN",
"value": "insteadof",
"flags": "i"
},
{
"type": "PATTERN",
"value": "interface",
"flags": "i"
},
{
"type": "PATTERN",
"value": "match",
"flags": "i"
},
{
"type": "PATTERN",
"value": "namespace",
"flags": "i"
},
{
"type": "PATTERN",
"value": "new",
"flags": "i"
},
{
"type": "PATTERN",
"value": "or",
"flags": "i"
},
{
"type": "PATTERN",
"value": "print",
"flags": "i"
},
{
"type": "PATTERN",
"value": "private",
"flags": "i"
},
{
"type": "PATTERN",
"value": "protected",
"flags": "i"
},
{
"type": "PATTERN",
"value": "public",
"flags": "i"
},
{
"type": "PATTERN",
"value": "readonly",
"flags": "i"
},
{
"type": "PATTERN",
"value": "require",
"flags": "i"
},
{
"type": "PATTERN",
"value": "require_once",
"flags": "i"
},
{
"type": "PATTERN",
"value": "return",
"flags": "i"
},
{
"type": "PATTERN",
"value": "static",
"flags": "i"
},
{
"type": "PATTERN",
"value": "switch",
"flags": "i"
},
{
"type": "PATTERN",
"value": "throw",
"flags": "i"
},
{
"type": "PATTERN",
"value": "trait",
"flags": "i"
},
{
"type": "PATTERN",
"value": "try",
"flags": "i"
},
{
"type": "PATTERN",
"value": "use",
"flags": "i"
},
{
"type": "PATTERN",
"value": "var",
"flags": "i"
},
{
"type": "PATTERN",
"value": "while",
"flags": "i"
},
{
"type": "PATTERN",
"value": "xor",
"flags": "i"
},
{
"type": "PATTERN",
"value": "yield from",
"flags": "i"
},
{
"type": "PATTERN",
"value": "yield",
"flags": "i"
},
{
"type": "PATTERN",
"value": "bool",
"flags": "i"
},
{
"type": "PATTERN",
"value": "false",
"flags": "i"
},
{
"type": "PATTERN",
"value": "float",
"flags": "i"
},
{
"type": "PATTERN",
"value": "int",
"flags": "i"
},
{
"type": "PATTERN",
"value": "iterable",
"flags": "i"
},
{
"type": "PATTERN",
"value": "mixed",
"flags": "i"
},
{
"type": "PATTERN",
"value": "never",
"flags": "i"
},
{
"type": "PATTERN",
"value": "null",
"flags": "i"
},
{
"type": "PATTERN",
"value": "object",
"flags": "i"
},
{
"type": "PATTERN",
"value": "string",
"flags": "i"
},
{
"type": "PATTERN",
"value": "true",
"flags": "i"
},
{
"type": "PATTERN",
"value": "void",
"flags": "i"
}
],
"nothing": []
}
}