[
  {
    "type": "expression",
    "named": true,
    "subtypes": [
      {
        "type": "assignment_expression",
        "named": true
      },
      {
        "type": "augmented_assignment_expression",
        "named": true
      },
      {
        "type": "binary_expression",
        "named": true
      },
      {
        "type": "cast_expression",
        "named": true
      },
      {
        "type": "clone_expression",
        "named": true
      },
      {
        "type": "conditional_expression",
        "named": true
      },
      {
        "type": "error_suppression_expression",
        "named": true
      },
      {
        "type": "include_expression",
        "named": true
      },
      {
        "type": "include_once_expression",
        "named": true
      },
      {
        "type": "match_expression",
        "named": true
      },
      {
        "type": "primary_expression",
        "named": true
      },
      {
        "type": "reference_assignment_expression",
        "named": true
      },
      {
        "type": "require_expression",
        "named": true
      },
      {
        "type": "require_once_expression",
        "named": true
      },
      {
        "type": "unary_op_expression",
        "named": true
      },
      {
        "type": "yield_expression",
        "named": true
      }
    ]
  },
  {
    "type": "literal",
    "named": true,
    "subtypes": [
      {
        "type": "boolean",
        "named": true
      },
      {
        "type": "encapsed_string",
        "named": true
      },
      {
        "type": "float",
        "named": true
      },
      {
        "type": "heredoc",
        "named": true
      },
      {
        "type": "integer",
        "named": true
      },
      {
        "type": "nowdoc",
        "named": true
      },
      {
        "type": "null",
        "named": true
      },
      {
        "type": "string",
        "named": true
      }
    ]
  },
  {
    "type": "primary_expression",
    "named": true,
    "subtypes": [
      {
        "type": "anonymous_function",
        "named": true
      },
      {
        "type": "array_creation_expression",
        "named": true
      },
      {
        "type": "arrow_function",
        "named": true
      },
      {
        "type": "cast_expression",
        "named": true
      },
      {
        "type": "class_constant_access_expression",
        "named": true
      },
      {
        "type": "dynamic_variable_name",
        "named": true
      },
      {
        "type": "function_call_expression",
        "named": true
      },
      {
        "type": "literal",
        "named": true
      },
      {
        "type": "member_access_expression",
        "named": true
      },
      {
        "type": "member_call_expression",
        "named": true
      },
      {
        "type": "name",
        "named": true
      },
      {
        "type": "nullsafe_member_access_expression",
        "named": true
      },
      {
        "type": "nullsafe_member_call_expression",
        "named": true
      },
      {
        "type": "object_creation_expression",
        "named": true
      },
      {
        "type": "parenthesized_expression",
        "named": true
      },
      {
        "type": "print_intrinsic",
        "named": true
      },
      {
        "type": "qualified_name",
        "named": true
      },
      {
        "type": "relative_name",
        "named": true
      },
      {
        "type": "scoped_call_expression",
        "named": true
      },
      {
        "type": "scoped_property_access_expression",
        "named": true
      },
      {
        "type": "shell_command_expression",
        "named": true
      },
      {
        "type": "subscript_expression",
        "named": true
      },
      {
        "type": "throw_expression",
        "named": true
      },
      {
        "type": "update_expression",
        "named": true
      },
      {
        "type": "variable_name",
        "named": true
      }
    ]
  },
  {
    "type": "statement",
    "named": true,
    "subtypes": [
      {
        "type": "break_statement",
        "named": true
      },
      {
        "type": "class_declaration",
        "named": true
      },
      {
        "type": "compound_statement",
        "named": true
      },
      {
        "type": "const_declaration",
        "named": true
      },
      {
        "type": "continue_statement",
        "named": true
      },
      {
        "type": "declare_statement",
        "named": true
      },
      {
        "type": "do_statement",
        "named": true
      },
      {
        "type": "echo_statement",
        "named": true
      },
      {
        "type": "empty_statement",
        "named": true
      },
      {
        "type": "enum_declaration",
        "named": true
      },
      {
        "type": "exit_statement",
        "named": true
      },
      {
        "type": "expression_statement",
        "named": true
      },
      {
        "type": "for_statement",
        "named": true
      },
      {
        "type": "foreach_statement",
        "named": true
      },
      {
        "type": "function_definition",
        "named": true
      },
      {
        "type": "function_static_declaration",
        "named": true
      },
      {
        "type": "global_declaration",
        "named": true
      },
      {
        "type": "goto_statement",
        "named": true
      },
      {
        "type": "if_statement",
        "named": true
      },
      {
        "type": "interface_declaration",
        "named": true
      },
      {
        "type": "named_label_statement",
        "named": true
      },
      {
        "type": "namespace_definition",
        "named": true
      },
      {
        "type": "namespace_use_declaration",
        "named": true
      },
      {
        "type": "return_statement",
        "named": true
      },
      {
        "type": "switch_statement",
        "named": true
      },
      {
        "type": "trait_declaration",
        "named": true
      },
      {
        "type": "try_statement",
        "named": true
      },
      {
        "type": "unset_statement",
        "named": true
      },
      {
        "type": "while_statement",
        "named": true
      }
    ]
  },
  {
    "type": "type",
    "named": true,
    "subtypes": [
      {
        "type": "disjunctive_normal_form_type",
        "named": true
      },
      {
        "type": "intersection_type",
        "named": true
      },
      {
        "type": "named_type",
        "named": true
      },
      {
        "type": "optional_type",
        "named": true
      },
      {
        "type": "primitive_type",
        "named": true
      },
      {
        "type": "union_type",
        "named": true
      }
    ]
  },
  {
    "type": "abstract_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "anonymous_class",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "declaration_list",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "abstract_modifier",
          "named": true
        },
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "base_clause",
          "named": true
        },
        {
          "type": "class_interface_clause",
          "named": true
        },
        {
          "type": "final_modifier",
          "named": true
        },
        {
          "type": "readonly_modifier",
          "named": true
        },
        {
          "type": "static_modifier",
          "named": true
        },
        {
          "type": "var_modifier",
          "named": true
        },
        {
          "type": "visibility_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anonymous_function",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      },
      "reference_modifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "reference_modifier",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "bottom_type",
            "named": true
          },
          {
            "type": "type",
            "named": true
          }
        ]
      },
      "static_modifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "static_modifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "anonymous_function_use_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anonymous_function_use_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "by_ref",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "argument",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "name",
            "named": true
          }
        ]
      },
      "reference_modifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "reference_modifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "name",
          "named": true
        },
        {
          "type": "variadic_unpacking",
          "named": true
        }
      ]
    }
  },
  {
    "type": "arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "argument",
          "named": true
        },
        {
          "type": "variadic_placeholder",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_creation_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "array_element_initializer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_element_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "by_ref",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "variadic_unpacking",
          "named": true
        }
      ]
    }
  },
  {
    "type": "arrow_function",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      },
      "reference_modifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "reference_modifier",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "bottom_type",
            "named": true
          },
          {
            "type": "type",
            "named": true
          }
        ]
      },
      "static_modifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "static_modifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "assignment_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "list_literal",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "attribute",
    "named": true,
    "fields": {
      "parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "arguments",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        },
        {
          "type": "qualified_name",
          "named": true
        },
        {
          "type": "relative_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "attribute_group",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "attribute_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "attribute_group",
          "named": true
        }
      ]
    }
  },
  {
    "type": "augmented_assignment_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "%=",
            "named": false
          },
          {
            "type": "&=",
            "named": false
          },
          {
            "type": "**=",
            "named": false
          },
          {
            "type": "*=",
            "named": false
          },
          {
            "type": "+=",
            "named": false
          },
          {
            "type": "-=",
            "named": false
          },
          {
            "type": ".=",
            "named": false
          },
          {
            "type": "/=",
            "named": false
          },
          {
            "type": "<<=",
            "named": false
          },
          {
            "type": ">>=",
            "named": false
          },
          {
            "type": "??=",
            "named": false
          },
          {
            "type": "^=",
            "named": false
          },
          {
            "type": "|=",
            "named": false
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "base_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        },
        {
          "type": "qualified_name",
          "named": true
        },
        {
          "type": "relative_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "binary_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "!=",
            "named": false
          },
          {
            "type": "!==",
            "named": false
          },
          {
            "type": "%",
            "named": false
          },
          {
            "type": "&",
            "named": false
          },
          {
            "type": "&&",
            "named": false
          },
          {
            "type": "*",
            "named": false
          },
          {
            "type": "**",
            "named": false
          },
          {
            "type": "+",
            "named": false
          },
          {
            "type": "-",
            "named": false
          },
          {
            "type": ".",
            "named": false
          },
          {
            "type": "/",
            "named": false
          },
          {
            "type": "<",
            "named": false
          },
          {
            "type": "<<",
            "named": false
          },
          {
            "type": "<=",
            "named": false
          },
          {
            "type": "<=>",
            "named": false
          },
          {
            "type": "<>",
            "named": false
          },
          {
            "type": "==",
            "named": false
          },
          {
            "type": "===",
            "named": false
          },
          {
            "type": ">",
            "named": false
          },
          {
            "type": ">=",
            "named": false
          },
          {
            "type": ">>",
            "named": false
          },
          {
            "type": "??",
            "named": false
          },
          {
            "type": "^",
            "named": false
          },
          {
            "type": "and",
            "named": false
          },
          {
            "type": "instanceof",
            "named": false
          },
          {
            "type": "or",
            "named": false
          },
          {
            "type": "xor",
            "named": false
          },
          {
            "type": "|",
            "named": false
          },
          {
            "type": "|>",
            "named": false
          },
          {
            "type": "||",
            "named": false
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "qualified_name",
            "named": true
          },
          {
            "type": "relative_name",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "boolean",
    "named": true,
    "fields": {}
  },
  {
    "type": "break_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "by_ref",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "function_call_expression",
          "named": true
        },
        {
          "type": "member_access_expression",
          "named": true
        },
        {
          "type": "member_call_expression",
          "named": true
        },
        {
          "type": "nullsafe_member_access_expression",
          "named": true
        },
        {
          "type": "nullsafe_member_call_expression",
          "named": true
        },
        {
          "type": "scoped_call_expression",
          "named": true
        },
        {
          "type": "scoped_property_access_expression",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "case_statement",
    "named": true,
    "fields": {
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "cast_expression",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "cast_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "clone_expression",
            "named": true
          },
          {
            "type": "error_suppression_expression",
            "named": true
          },
          {
            "type": "include_expression",
            "named": true
          },
          {
            "type": "include_once_expression",
            "named": true
          },
          {
            "type": "primary_expression",
            "named": true
          },
          {
            "type": "unary_op_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "cast_type",
    "named": true,
    "fields": {}
  },
  {
    "type": "catch_clause",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_list",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "class_constant_access_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_creation_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "class_constant_access_expression",
          "named": true
        },
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "encapsed_string",
          "named": true
        },
        {
          "type": "function_call_expression",
          "named": true
        },
        {
          "type": "heredoc",
          "named": true
        },
        {
          "type": "member_access_expression",
          "named": true
        },
        {
          "type": "member_call_expression",
          "named": true
        },
        {
          "type": "name",
          "named": true
        },
        {
          "type": "nowdoc",
          "named": true
        },
        {
          "type": "nullsafe_member_access_expression",
          "named": true
        },
        {
          "type": "nullsafe_member_call_expression",
          "named": true
        },
        {
          "type": "object_creation_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "qualified_name",
          "named": true
        },
        {
          "type": "relative_name",
          "named": true
        },
        {
          "type": "relative_scope",
          "named": true
        },
        {
          "type": "scoped_call_expression",
          "named": true
        },
        {
          "type": "scoped_property_access_expression",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_declaration",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "declaration_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "name",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "abstract_modifier",
          "named": true
        },
        {
          "type": "base_clause",
          "named": true
        },
        {
          "type": "class_interface_clause",
          "named": true
        },
        {
          "type": "final_modifier",
          "named": true
        },
        {
          "type": "readonly_modifier",
          "named": true
        },
        {
          "type": "static_modifier",
          "named": true
        },
        {
          "type": "var_modifier",
          "named": true
        },
        {
          "type": "visibility_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_interface_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        },
        {
          "type": "qualified_name",
          "named": true
        },
        {
          "type": "relative_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "clone_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "primary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "colon_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "compound_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "conditional_expression",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "const_declaration",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "abstract_modifier",
          "named": true
        },
        {
          "type": "const_element",
          "named": true
        },
        {
          "type": "final_modifier",
          "named": true
        },
        {
          "type": "readonly_modifier",
          "named": true
        },
        {
          "type": "static_modifier",
          "named": true
        },
        {
          "type": "var_modifier",
          "named": true
        },
        {
          "type": "visibility_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "const_element",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "continue_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declaration_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "const_declaration",
          "named": true
        },
        {
          "type": "method_declaration",
          "named": true
        },
        {
          "type": "property_declaration",
          "named": true
        },
        {
          "type": "use_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declare_directive",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declare_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "declare_directive",
          "named": true
        },
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "default_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "disjunctive_normal_form_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "intersection_type",
          "named": true
        },
        {
          "type": "named_type",
          "named": true
        },
        {
          "type": "optional_type",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "do_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "dynamic_variable_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "echo_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "sequence_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "else_clause",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "colon_block",
            "named": true
          },
          {
            "type": "statement",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "else_if_clause",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "colon_block",
            "named": true
          },
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "empty_statement",
    "named": true,
    "fields": {}
  },
  {
    "type": "encapsed_string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "member_access_expression",
          "named": true
        },
        {
          "type": "string_content",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_case",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "name",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "enum_declaration",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "enum_declaration_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "name",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "class_interface_clause",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_declaration_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "const_declaration",
          "named": true
        },
        {
          "type": "enum_case",
          "named": true
        },
        {
          "type": "method_declaration",
          "named": true
        },
        {
          "type": "use_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "error_suppression_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "exit_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "expression_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "final_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "finally_clause",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "for_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "sequence_expression",
            "named": true
          }
        ]
      },
      "initialize": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "sequence_expression",
            "named": true
          }
        ]
      },
      "update": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "sequence_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "foreach_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "colon_block",
            "named": true
          },
          {
            "type": "statement",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "by_ref",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "list_literal",
          "named": true
        },
        {
          "type": "pair",
          "named": true
        }
      ]
    }
  },
  {
    "type": "formal_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "property_promotion_parameter",
          "named": true
        },
        {
          "type": "simple_parameter",
          "named": true
        },
        {
          "type": "variadic_parameter",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_call_expression",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "arguments",
            "named": true
          }
        ]
      },
      "function": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_creation_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "encapsed_string",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "heredoc",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "nowdoc",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "object_creation_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "qualified_name",
            "named": true
          },
          {
            "type": "relative_name",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "function_definition",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "name",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "bottom_type",
            "named": true
          },
          {
            "type": "type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "reference_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_static_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "static_variable_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "global_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "goto_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "heredoc",
    "named": true,
    "fields": {
      "end_tag": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "heredoc_end",
            "named": true
          }
        ]
      },
      "identifier": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "heredoc_start",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "heredoc_body",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "heredoc_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "member_access_expression",
          "named": true
        },
        {
          "type": "string_content",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "if_statement",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "else_clause",
            "named": true
          },
          {
            "type": "else_if_clause",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "colon_block",
            "named": true
          },
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "include_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "include_once_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "interface_declaration",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "declaration_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "name",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "base_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "intersection_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "named_type",
          "named": true
        },
        {
          "type": "optional_type",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "list_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "by_ref",
          "named": true
        },
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "function_call_expression",
          "named": true
        },
        {
          "type": "list_literal",
          "named": true
        },
        {
          "type": "member_access_expression",
          "named": true
        },
        {
          "type": "member_call_expression",
          "named": true
        },
        {
          "type": "nullsafe_member_access_expression",
          "named": true
        },
        {
          "type": "nullsafe_member_call_expression",
          "named": true
        },
        {
          "type": "scoped_call_expression",
          "named": true
        },
        {
          "type": "scoped_property_access_expression",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "match_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "match_conditional_expression",
          "named": true
        },
        {
          "type": "match_default_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "match_condition_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "match_conditional_expression",
    "named": true,
    "fields": {
      "conditional_expressions": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "match_condition_list",
            "named": true
          }
        ]
      },
      "return_expression": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "match_default_expression",
    "named": true,
    "fields": {
      "return_expression": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "match_expression",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "match_block",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "member_access_expression",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "object": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_creation_expression",
            "named": true
          },
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "class_constant_access_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "encapsed_string",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "heredoc",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "nowdoc",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "object_creation_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "qualified_name",
            "named": true
          },
          {
            "type": "relative_name",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "member_call_expression",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "arguments",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "object": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_creation_expression",
            "named": true
          },
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "class_constant_access_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "encapsed_string",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "heredoc",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "nowdoc",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "object_creation_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "qualified_name",
            "named": true
          },
          {
            "type": "relative_name",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "method_declaration",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "name",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "bottom_type",
            "named": true
          },
          {
            "type": "type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "abstract_modifier",
          "named": true
        },
        {
          "type": "final_modifier",
          "named": true
        },
        {
          "type": "readonly_modifier",
          "named": true
        },
        {
          "type": "reference_modifier",
          "named": true
        },
        {
          "type": "static_modifier",
          "named": true
        },
        {
          "type": "var_modifier",
          "named": true
        },
        {
          "type": "visibility_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "name",
    "named": true,
    "fields": {}
  },
  {
    "type": "named_label_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "named_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        },
        {
          "type": "qualified_name",
          "named": true
        },
        {
          "type": "relative_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "namespace_definition",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "namespace_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "namespace_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "namespace_use_clause",
    "named": true,
    "fields": {
      "alias": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "name",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "const",
            "named": false
          },
          {
            "type": "function",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        },
        {
          "type": "qualified_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "namespace_use_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "namespace_use_group",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "const",
            "named": false
          },
          {
            "type": "function",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "namespace_name",
          "named": true
        },
        {
          "type": "namespace_use_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "namespace_use_group",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "namespace_use_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "nowdoc",
    "named": true,
    "fields": {
      "end_tag": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "heredoc_end",
            "named": true
          }
        ]
      },
      "identifier": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "heredoc_start",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "nowdoc_body",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "nowdoc_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "nowdoc_string",
          "named": true
        }
      ]
    }
  },
  {
    "type": "null",
    "named": true,
    "fields": {}
  },
  {
    "type": "nullsafe_member_access_expression",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "object": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_creation_expression",
            "named": true
          },
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "class_constant_access_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "encapsed_string",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "heredoc",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "nowdoc",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "object_creation_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "qualified_name",
            "named": true
          },
          {
            "type": "relative_name",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "nullsafe_member_call_expression",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "arguments",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "object": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_creation_expression",
            "named": true
          },
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "class_constant_access_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "encapsed_string",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "heredoc",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "nowdoc",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "object_creation_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "qualified_name",
            "named": true
          },
          {
            "type": "relative_name",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "object_creation_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "anonymous_class",
          "named": true
        },
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "member_access_expression",
          "named": true
        },
        {
          "type": "name",
          "named": true
        },
        {
          "type": "nullsafe_member_access_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "qualified_name",
          "named": true
        },
        {
          "type": "relative_name",
          "named": true
        },
        {
          "type": "scoped_property_access_expression",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "optional_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "named_type",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pair",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "by_ref",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "list_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthesized_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "primitive_type",
    "named": true,
    "fields": {}
  },
  {
    "type": "print_intrinsic",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "program",
    "named": true,
    "root": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "php_end_tag",
          "named": true
        },
        {
          "type": "php_tag",
          "named": true
        },
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "property_declaration",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "abstract_modifier",
          "named": true
        },
        {
          "type": "final_modifier",
          "named": true
        },
        {
          "type": "property_element",
          "named": true
        },
        {
          "type": "property_hook_list",
          "named": true
        },
        {
          "type": "readonly_modifier",
          "named": true
        },
        {
          "type": "static_modifier",
          "named": true
        },
        {
          "type": "var_modifier",
          "named": true
        },
        {
          "type": "visibility_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "property_element",
    "named": true,
    "fields": {
      "default_value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "property_hook",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "final": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "final_modifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      },
      "reference_modifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "reference_modifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "property_hook_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "property_hook",
          "named": true
        }
      ]
    }
  },
  {
    "type": "property_promotion_parameter",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "default_value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "by_ref",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "readonly": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "readonly_modifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      },
      "visibility": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "visibility_modifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "property_hook_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "qualified_name",
    "named": true,
    "fields": {
      "prefix": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "\\",
            "named": false
          },
          {
            "type": "namespace_name",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "readonly_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "reference_assignment_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "list_literal",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "reference_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "relative_name",
    "named": true,
    "fields": {
      "prefix": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "\\",
            "named": false
          },
          {
            "type": "namespace",
            "named": false
          },
          {
            "type": "namespace_name",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "relative_scope",
    "named": true,
    "fields": {}
  },
  {
    "type": "require_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "require_once_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "return_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "scoped_call_expression",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "arguments",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "scope": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_creation_expression",
            "named": true
          },
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "class_constant_access_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "encapsed_string",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "heredoc",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "nowdoc",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "object_creation_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "qualified_name",
            "named": true
          },
          {
            "type": "relative_name",
            "named": true
          },
          {
            "type": "relative_scope",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "scoped_property_access_expression",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "scope": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_creation_expression",
            "named": true
          },
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "class_constant_access_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "encapsed_string",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "heredoc",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "name",
            "named": true
          },
          {
            "type": "nowdoc",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "object_creation_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "qualified_name",
            "named": true
          },
          {
            "type": "relative_name",
            "named": true
          },
          {
            "type": "relative_scope",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "sequence_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "sequence_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "shell_command_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "member_access_expression",
          "named": true
        },
        {
          "type": "string_content",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "simple_parameter",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "default_value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "reference_modifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "reference_modifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "static_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "static_variable_declaration",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "string_content",
          "named": true
        }
      ]
    }
  },
  {
    "type": "string_content",
    "named": true,
    "fields": {}
  },
  {
    "type": "subscript_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_creation_expression",
          "named": true
        },
        {
          "type": "class_constant_access_expression",
          "named": true
        },
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "encapsed_string",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "function_call_expression",
          "named": true
        },
        {
          "type": "heredoc",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "member_access_expression",
          "named": true
        },
        {
          "type": "member_call_expression",
          "named": true
        },
        {
          "type": "name",
          "named": true
        },
        {
          "type": "nowdoc",
          "named": true
        },
        {
          "type": "nullsafe_member_access_expression",
          "named": true
        },
        {
          "type": "nullsafe_member_call_expression",
          "named": true
        },
        {
          "type": "object_creation_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "qualified_name",
          "named": true
        },
        {
          "type": "relative_name",
          "named": true
        },
        {
          "type": "scoped_call_expression",
          "named": true
        },
        {
          "type": "scoped_property_access_expression",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "switch_block",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "throw_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "trait_declaration",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "declaration_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "try_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "compound_statement",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "catch_clause",
          "named": true
        },
        {
          "type": "finally_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "named_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unary_op_expression",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "!",
            "named": false
          },
          {
            "type": "+",
            "named": false
          },
          {
            "type": "-",
            "named": false
          },
          {
            "type": "~",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "integer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "union_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "named_type",
          "named": true
        },
        {
          "type": "optional_type",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unset_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "dynamic_variable_name",
          "named": true
        },
        {
          "type": "function_call_expression",
          "named": true
        },
        {
          "type": "member_access_expression",
          "named": true
        },
        {
          "type": "member_call_expression",
          "named": true
        },
        {
          "type": "nullsafe_member_access_expression",
          "named": true
        },
        {
          "type": "nullsafe_member_call_expression",
          "named": true
        },
        {
          "type": "scoped_call_expression",
          "named": true
        },
        {
          "type": "scoped_property_access_expression",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "update_expression",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "cast_expression",
            "named": true
          },
          {
            "type": "dynamic_variable_name",
            "named": true
          },
          {
            "type": "function_call_expression",
            "named": true
          },
          {
            "type": "member_access_expression",
            "named": true
          },
          {
            "type": "member_call_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_access_expression",
            "named": true
          },
          {
            "type": "nullsafe_member_call_expression",
            "named": true
          },
          {
            "type": "scoped_call_expression",
            "named": true
          },
          {
            "type": "scoped_property_access_expression",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "++",
            "named": false
          },
          {
            "type": "--",
            "named": false
          }
        ]
      }
    }
  },
  {
    "type": "use_as_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "class_constant_access_expression",
          "named": true
        },
        {
          "type": "name",
          "named": true
        },
        {
          "type": "visibility_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "use_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        },
        {
          "type": "qualified_name",
          "named": true
        },
        {
          "type": "relative_name",
          "named": true
        },
        {
          "type": "use_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "use_instead_of_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "class_constant_access_expression",
          "named": true
        },
        {
          "type": "name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "use_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "use_as_clause",
          "named": true
        },
        {
          "type": "use_instead_of_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "variable_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "variadic_parameter",
    "named": true,
    "fields": {
      "attributes": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "attribute_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "variable_name",
            "named": true
          }
        ]
      },
      "reference_modifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "reference_modifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "variadic_placeholder",
    "named": true,
    "fields": {}
  },
  {
    "type": "variadic_unpacking",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "visibility_modifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "operation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "while_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "colon_block",
            "named": true
          },
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "yield_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "array_element_initializer",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "!=",
    "named": false
  },
  {
    "type": "!==",
    "named": false
  },
  {
    "type": "\"",
    "named": false
  },
  {
    "type": "#[",
    "named": false
  },
  {
    "type": "$",
    "named": false
  },
  {
    "type": "%",
    "named": false
  },
  {
    "type": "%=",
    "named": false
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "&&",
    "named": false
  },
  {
    "type": "&=",
    "named": false
  },
  {
    "type": "'",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": "*",
    "named": false
  },
  {
    "type": "**",
    "named": false
  },
  {
    "type": "**=",
    "named": false
  },
  {
    "type": "*=",
    "named": false
  },
  {
    "type": "+",
    "named": false
  },
  {
    "type": "++",
    "named": false
  },
  {
    "type": "+=",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "-",
    "named": false
  },
  {
    "type": "--",
    "named": false
  },
  {
    "type": "-=",
    "named": false
  },
  {
    "type": "->",
    "named": false
  },
  {
    "type": ".",
    "named": false
  },
  {
    "type": "...",
    "named": false
  },
  {
    "type": ".=",
    "named": false
  },
  {
    "type": "/",
    "named": false
  },
  {
    "type": "/=",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": "::",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": "<<",
    "named": false
  },
  {
    "type": "<<<",
    "named": false
  },
  {
    "type": "<<=",
    "named": false
  },
  {
    "type": "<=",
    "named": false
  },
  {
    "type": "<=>",
    "named": false
  },
  {
    "type": "<>",
    "named": false
  },
  {
    "type": "=",
    "named": false
  },
  {
    "type": "==",
    "named": false
  },
  {
    "type": "===",
    "named": false
  },
  {
    "type": "=>",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": ">=",
    "named": false
  },
  {
    "type": ">>",
    "named": false
  },
  {
    "type": ">>=",
    "named": false
  },
  {
    "type": "?",
    "named": false
  },
  {
    "type": "?->",
    "named": false
  },
  {
    "type": "??",
    "named": false
  },
  {
    "type": "??=",
    "named": false
  },
  {
    "type": "@",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "\\",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "^",
    "named": false
  },
  {
    "type": "^=",
    "named": false
  },
  {
    "type": "`",
    "named": false
  },
  {
    "type": "abstract",
    "named": false
  },
  {
    "type": "and",
    "named": false
  },
  {
    "type": "array",
    "named": false
  },
  {
    "type": "as",
    "named": false
  },
  {
    "type": "bool",
    "named": false
  },
  {
    "type": "bottom_type",
    "named": true
  },
  {
    "type": "break",
    "named": false
  },
  {
    "type": "case",
    "named": false
  },
  {
    "type": "catch",
    "named": false
  },
  {
    "type": "class",
    "named": false
  },
  {
    "type": "clone",
    "named": false
  },
  {
    "type": "comment",
    "named": true,
    "extra": true
  },
  {
    "type": "const",
    "named": false
  },
  {
    "type": "continue",
    "named": false
  },
  {
    "type": "declare",
    "named": false
  },
  {
    "type": "default",
    "named": false
  },
  {
    "type": "do",
    "named": false
  },
  {
    "type": "echo",
    "named": false
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "elseif",
    "named": false
  },
  {
    "type": "encoding",
    "named": false
  },
  {
    "type": "enddeclare",
    "named": false
  },
  {
    "type": "endfor",
    "named": false
  },
  {
    "type": "endforeach",
    "named": false
  },
  {
    "type": "endif",
    "named": false
  },
  {
    "type": "endswitch",
    "named": false
  },
  {
    "type": "endwhile",
    "named": false
  },
  {
    "type": "enum",
    "named": false
  },
  {
    "type": "escape_sequence",
    "named": true
  },
  {
    "type": "exit",
    "named": false
  },
  {
    "type": "extends",
    "named": false
  },
  {
    "type": "final",
    "named": false
  },
  {
    "type": "finally",
    "named": false
  },
  {
    "type": "float",
    "named": false
  },
  {
    "type": "float",
    "named": true
  },
  {
    "type": "fn",
    "named": false
  },
  {
    "type": "for",
    "named": false
  },
  {
    "type": "foreach",
    "named": false
  },
  {
    "type": "function",
    "named": false
  },
  {
    "type": "global",
    "named": false
  },
  {
    "type": "goto",
    "named": false
  },
  {
    "type": "heredoc_end",
    "named": true
  },
  {
    "type": "heredoc_start",
    "named": true
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "implements",
    "named": false
  },
  {
    "type": "include",
    "named": false
  },
  {
    "type": "include_once",
    "named": false
  },
  {
    "type": "instanceof",
    "named": false
  },
  {
    "type": "insteadof",
    "named": false
  },
  {
    "type": "int",
    "named": false
  },
  {
    "type": "integer",
    "named": true
  },
  {
    "type": "interface",
    "named": false
  },
  {
    "type": "list",
    "named": false
  },
  {
    "type": "match",
    "named": false
  },
  {
    "type": "namespace",
    "named": false
  },
  {
    "type": "new",
    "named": false
  },
  {
    "type": "nowdoc_string",
    "named": true
  },
  {
    "type": "null",
    "named": false
  },
  {
    "type": "object",
    "named": false
  },
  {
    "type": "operation",
    "named": true
  },
  {
    "type": "or",
    "named": false
  },
  {
    "type": "parent",
    "named": false
  },
  {
    "type": "php_end_tag",
    "named": true
  },
  {
    "type": "php_tag",
    "named": true
  },
  {
    "type": "print",
    "named": false
  },
  {
    "type": "private",
    "named": false
  },
  {
    "type": "protected",
    "named": false
  },
  {
    "type": "public",
    "named": false
  },
  {
    "type": "readonly",
    "named": false
  },
  {
    "type": "require",
    "named": false
  },
  {
    "type": "require_once",
    "named": false
  },
  {
    "type": "return",
    "named": false
  },
  {
    "type": "self",
    "named": false
  },
  {
    "type": "static",
    "named": false
  },
  {
    "type": "strict_types",
    "named": false
  },
  {
    "type": "string",
    "named": false
  },
  {
    "type": "switch",
    "named": false
  },
  {
    "type": "throw",
    "named": false
  },
  {
    "type": "ticks",
    "named": false
  },
  {
    "type": "trait",
    "named": false
  },
  {
    "type": "try",
    "named": false
  },
  {
    "type": "unset",
    "named": false
  },
  {
    "type": "use",
    "named": false
  },
  {
    "type": "var_modifier",
    "named": true
  },
  {
    "type": "while",
    "named": false
  },
  {
    "type": "xor",
    "named": false
  },
  {
    "type": "yield",
    "named": false
  },
  {
    "type": "yield from",
    "named": false
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "|",
    "named": false
  },
  {
    "type": "|=",
    "named": false
  },
  {
    "type": "|>",
    "named": false
  },
  {
    "type": "||",
    "named": false
  },
  {
    "type": "}",
    "named": false
  },
  {
    "type": "~",
    "named": false
  }
]