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