{
  "name": "php",
  "word": "name",
  "rules": {
    "program": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "text"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "php_tag"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_statement"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "php_tag": {
      "type": "PATTERN",
      "value": "<\\?([pP][hH][pP]|=)?"
    },
    "text_interpolation": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "?>"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "text"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "php_tag"
            },
            {
              "type": "SYMBOL",
              "name": "_eof"
            }
          ]
        }
      ]
    },
    "text": {
      "type": "REPEAT1",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "TOKEN",
            "content": {
              "type": "PREC",
              "value": -1,
              "content": {
                "type": "PATTERN",
                "value": "<"
              }
            }
          },
          {
            "type": "PATTERN",
            "value": "[^\\s<][^<]*"
          }
        ]
      }
    },
    "_statement": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "empty_statement"
        },
        {
          "type": "SYMBOL",
          "name": "compound_statement"
        },
        {
          "type": "SYMBOL",
          "name": "named_label_statement"
        },
        {
          "type": "SYMBOL",
          "name": "expression_statement"
        },
        {
          "type": "SYMBOL",
          "name": "if_statement"
        },
        {
          "type": "SYMBOL",
          "name": "switch_statement"
        },
        {
          "type": "SYMBOL",
          "name": "while_statement"
        },
        {
          "type": "SYMBOL",
          "name": "do_statement"
        },
        {
          "type": "SYMBOL",
          "name": "for_statement"
        },
        {
          "type": "SYMBOL",
          "name": "foreach_statement"
        },
        {
          "type": "SYMBOL",
          "name": "goto_statement"
        },
        {
          "type": "SYMBOL",
          "name": "continue_statement"
        },
        {
          "type": "SYMBOL",
          "name": "break_statement"
        },
        {
          "type": "SYMBOL",
          "name": "return_statement"
        },
        {
          "type": "SYMBOL",
          "name": "throw_statement"
        },
        {
          "type": "SYMBOL",
          "name": "try_statement"
        },
        {
          "type": "SYMBOL",
          "name": "declare_statement"
        },
        {
          "type": "SYMBOL",
          "name": "echo_statement"
        },
        {
          "type": "SYMBOL",
          "name": "unset_statement"
        },
        {
          "type": "SYMBOL",
          "name": "const_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "function_definition"
        },
        {
          "type": "SYMBOL",
          "name": "class_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "interface_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "trait_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "namespace_definition"
        },
        {
          "type": "SYMBOL",
          "name": "namespace_use_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "global_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "function_static_declaration"
        }
      ]
    },
    "empty_statement": {
      "type": "PREC",
      "value": -1,
      "content": {
        "type": "STRING",
        "value": ";"
      }
    },
    "function_static_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[sS][tT][aA][tT][iI][cC]"
          },
          "named": false,
          "value": "static"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "static_variable_declaration"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "static_variable_declaration"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "static_variable_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "variable_name"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "="
                },
                {
                  "type": "FIELD",
                  "name": "value",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expression"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "global_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[gG][lL][oO][bB][aA][lL]"
          },
          "named": false,
          "value": "global"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_variable_name"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_variable_name"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "namespace_definition": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[nN][aA][mM][eE][sS][pP][aA][cC][eE]"
          },
          "named": false,
          "value": "namespace"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "FIELD",
                  "name": "name",
                  "content": {
                    "type": "SYMBOL",
                    "name": "namespace_name"
                  }
                },
                {
                  "type": "SYMBOL",
                  "name": "_semicolon"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "FIELD",
                  "name": "name",
                  "content": {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "namespace_name"
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  }
                },
                {
                  "type": "FIELD",
                  "name": "body",
                  "content": {
                    "type": "SYMBOL",
                    "name": "compound_statement"
                  }
                }
              ]
            }
          ]
        }
      ]
    },
    "namespace_use_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[uU][sS][eE]"
          },
          "named": false,
          "value": "use"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "PATTERN",
                    "value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
                  },
                  "named": false,
                  "value": "function"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "PATTERN",
                    "value": "[cC][oO][nN][sS][tT]"
                  },
                  "named": false,
                  "value": "const"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "namespace_use_clause"
                    },
                    {
                      "type": "REPEAT",
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "STRING",
                            "value": ","
                          },
                          {
                            "type": "SYMBOL",
                            "name": "namespace_use_clause"
                          }
                        ]
                      }
                    }
                  ]
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "\\"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                },
                {
                  "type": "SYMBOL",
                  "name": "namespace_name"
                },
                {
                  "type": "STRING",
                  "value": "\\"
                },
                {
                  "type": "SYMBOL",
                  "name": "namespace_use_group"
                }
              ]
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "namespace_use_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "qualified_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "namespace_aliasing_clause"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "qualified_name": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "namespace_name_as_prefix"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "name"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_reserved_identifier"
              },
              "named": true,
              "value": "name"
            }
          ]
        }
      ]
    },
    "namespace_name_as_prefix": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "\\"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "STRING",
                  "value": "\\"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "namespace_name"
            },
            {
              "type": "STRING",
              "value": "\\"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "PATTERN",
                "value": "[nN][aA][mM][eE][sS][pP][aA][cC][eE]"
              },
              "named": false,
              "value": "namespace"
            },
            {
              "type": "STRING",
              "value": "\\"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "PATTERN",
                "value": "[nN][aA][mM][eE][sS][pP][aA][cC][eE]"
              },
              "named": false,
              "value": "namespace"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "STRING",
                  "value": "\\"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "namespace_name"
            },
            {
              "type": "STRING",
              "value": "\\"
            }
          ]
        }
      ]
    },
    "namespace_name": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "name"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "\\"
              },
              {
                "type": "SYMBOL",
                "name": "name"
              }
            ]
          }
        }
      ]
    },
    "namespace_aliasing_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[aA][sS]"
          },
          "named": false,
          "value": "as"
        },
        {
          "type": "SYMBOL",
          "name": "name"
        }
      ]
    },
    "namespace_use_group": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "namespace_use_group_clause"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "namespace_use_group_clause"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "namespace_use_group_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "PATTERN",
                    "value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
                  },
                  "named": false,
                  "value": "function"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "PATTERN",
                    "value": "[cC][oO][nN][sS][tT]"
                  },
                  "named": false,
                  "value": "const"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "namespace_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "namespace_aliasing_clause"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "trait_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[tT][rR][aA][iI][tT]"
          },
          "named": false,
          "value": "trait"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "name"
          }
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "declaration_list"
          }
        }
      ]
    },
    "interface_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[iI][nN][tT][eE][rR][fF][aA][cC][eE]"
          },
          "named": false,
          "value": "interface"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "name"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "base_clause"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "declaration_list"
          }
        }
      ]
    },
    "base_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[eE][xX][tT][eE][nN][dD][sS]"
          },
          "named": false,
          "value": "extends"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "qualified_name"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "qualified_name"
                  }
                ]
              }
            }
          ]
        }
      ]
    },
    "class_declaration": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "class_modifier"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "PATTERN",
              "value": "[cC][lL][aA][sS][sS]"
            },
            "named": false,
            "value": "class"
          },
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "name"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "base_clause"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "class_interface_clause"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "FIELD",
            "name": "body",
            "content": {
              "type": "SYMBOL",
              "name": "declaration_list"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_semicolon"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "declaration_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_member_declaration"
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "class_modifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[aA][bB][sS][tT][rR][aA][cC][tT]"
          },
          "named": false,
          "value": "abstract"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[fF][iI][nN][aA][lL]"
          },
          "named": false,
          "value": "final"
        }
      ]
    },
    "class_interface_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[iI][mM][pP][lL][eE][mM][eE][nN][tT][sS]"
          },
          "named": false,
          "value": "implements"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "qualified_name"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "qualified_name"
                  }
                ]
              }
            }
          ]
        }
      ]
    },
    "_member_declaration": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "const_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "property_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "method_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "use_declaration"
        }
      ]
    },
    "const_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "visibility_modifier"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[cC][oO][nN][sS][tT]"
          },
          "named": false,
          "value": "const"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "const_element"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "const_element"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "property_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT1",
          "content": {
            "type": "SYMBOL",
            "name": "_modifier"
          }
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "property_element"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "property_element"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "_modifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "var_modifier"
        },
        {
          "type": "SYMBOL",
          "name": "visibility_modifier"
        },
        {
          "type": "SYMBOL",
          "name": "static_modifier"
        },
        {
          "type": "SYMBOL",
          "name": "class_modifier"
        }
      ]
    },
    "property_element": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "variable_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "property_initializer"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "property_initializer": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        }
      ]
    },
    "method_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_modifier"
          }
        },
        {
          "type": "SYMBOL",
          "name": "_function_definition_header"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "FIELD",
              "name": "body",
              "content": {
                "type": "SYMBOL",
                "name": "compound_statement"
              }
            },
            {
              "type": "SYMBOL",
              "name": "_semicolon"
            }
          ]
        }
      ]
    },
    "var_modifier": {
      "type": "PATTERN",
      "value": "[vV][aA][rR]"
    },
    "static_modifier": {
      "type": "ALIAS",
      "content": {
        "type": "PATTERN",
        "value": "[sS][tT][aA][tT][iI][cC]"
      },
      "named": false,
      "value": "static"
    },
    "use_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[uU][sS][eE]"
          },
          "named": false,
          "value": "use"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "qualified_name"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "qualified_name"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "use_list"
            },
            {
              "type": "SYMBOL",
              "name": "_semicolon"
            }
          ]
        }
      ]
    },
    "use_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "use_instead_of_clause"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "use_as_clause"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_semicolon"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "use_instead_of_clause": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "class_constant_access_expression"
              },
              {
                "type": "SYMBOL",
                "name": "name"
              }
            ]
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "PATTERN",
              "value": "[iI][nN][sS][tT][eE][aA][dD][oO][fF]"
            },
            "named": false,
            "value": "insteadof"
          },
          {
            "type": "SYMBOL",
            "name": "name"
          }
        ]
      }
    },
    "use_as_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "class_constant_access_expression"
            },
            {
              "type": "SYMBOL",
              "name": "name"
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[aA][sS]"
          },
          "named": false,
          "value": "as"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "visibility_modifier"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                },
                {
                  "type": "SYMBOL",
                  "name": "name"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "visibility_modifier"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "name"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    "visibility_modifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[pP][uU][bB][lL][iI][cC]"
          },
          "named": false,
          "value": "public"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[pP][rR][oO][tT][eE][cC][tT][eE][dD]"
          },
          "named": false,
          "value": "protected"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[pP][rR][iI][vV][aA][tT][eE]"
          },
          "named": false,
          "value": "private"
        }
      ]
    },
    "function_definition": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_function_definition_header"
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "compound_statement"
          }
        }
      ]
    },
    "_function_definition_header": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
          },
          "named": false,
          "value": "function"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "&"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "name"
              },
              {
                "type": "ALIAS",
                "content": {
                  "type": "SYMBOL",
                  "name": "_reserved_identifier"
                },
                "named": true,
                "value": "name"
              }
            ]
          }
        },
        {
          "type": "FIELD",
          "name": "parameters",
          "content": {
            "type": "SYMBOL",
            "name": "formal_parameters"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_return_type"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "formal_parameters": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "simple_parameter"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "variadic_parameter"
                    }
                  ]
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "simple_parameter"
                          },
                          {
                            "type": "SYMBOL",
                            "name": "variadic_parameter"
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "simple_parameter": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "type",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_type"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "&"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "variable_name"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "="
                },
                {
                  "type": "FIELD",
                  "name": "default_value",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expression"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "variadic_parameter": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "type",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_type"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "&"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "..."
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "variable_name"
          }
        }
      ]
    },
    "_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "optional_type"
        },
        {
          "type": "SYMBOL",
          "name": "_type_name"
        },
        {
          "type": "SYMBOL",
          "name": "primitive_type"
        }
      ]
    },
    "_type_name": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "qualified_name"
      },
      "named": true,
      "value": "type_name"
    },
    "optional_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "?"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_type_name"
            },
            {
              "type": "SYMBOL",
              "name": "primitive_type"
            }
          ]
        }
      ]
    },
    "primitive_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "array"
        },
        {
          "type": "STRING",
          "value": "callable"
        },
        {
          "type": "STRING",
          "value": "iterable"
        },
        {
          "type": "STRING",
          "value": "bool"
        },
        {
          "type": "STRING",
          "value": "float"
        },
        {
          "type": "STRING",
          "value": "int"
        },
        {
          "type": "STRING",
          "value": "string"
        },
        {
          "type": "STRING",
          "value": "void"
        }
      ]
    },
    "cast_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "array"
        },
        {
          "type": "STRING",
          "value": "binary"
        },
        {
          "type": "STRING",
          "value": "bool"
        },
        {
          "type": "STRING",
          "value": "boolean"
        },
        {
          "type": "STRING",
          "value": "double"
        },
        {
          "type": "STRING",
          "value": "int"
        },
        {
          "type": "STRING",
          "value": "integer"
        },
        {
          "type": "STRING",
          "value": "float"
        },
        {
          "type": "STRING",
          "value": "object"
        },
        {
          "type": "STRING",
          "value": "real"
        },
        {
          "type": "STRING",
          "value": "string"
        },
        {
          "type": "STRING",
          "value": "unset"
        }
      ]
    },
    "_return_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "FIELD",
          "name": "return_type",
          "content": {
            "type": "SYMBOL",
            "name": "_type"
          }
        }
      ]
    },
    "const_element": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "name"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_reserved_identifier"
              },
              "named": true,
              "value": "name"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        }
      ]
    },
    "echo_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[eE][cC][hH][oO]"
          },
          "named": false,
          "value": "echo"
        },
        {
          "type": "SYMBOL",
          "name": "_expressions"
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "unset_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "unset"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_variable"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_variable"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "declare_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "declare_directive"
        },
        {
          "type": "STRING",
          "value": ")"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_statement"
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ":"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_statement"
                  }
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "PATTERN",
                    "value": "[eE][nN][dD][dD][eE][cC][lL][aA][rR][eE]"
                  },
                  "named": false,
                  "value": "enddeclare"
                },
                {
                  "type": "SYMBOL",
                  "name": "_semicolon"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_semicolon"
            }
          ]
        }
      ]
    },
    "declare_directive": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "ticks"
            },
            {
              "type": "STRING",
              "value": "encoding"
            },
            {
              "type": "STRING",
              "value": "strict_types"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "_literal"
        }
      ]
    },
    "_literal": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "integer"
        },
        {
          "type": "SYMBOL",
          "name": "float"
        },
        {
          "type": "SYMBOL",
          "name": "_string"
        },
        {
          "type": "SYMBOL",
          "name": "boolean"
        },
        {
          "type": "SYMBOL",
          "name": "null"
        }
      ]
    },
    "float": {
      "type": "PATTERN",
      "value": "\\d*((\\.\\d*)?([eE][\\+-]?\\d+)|(\\.\\d*)([eE][\\+-]?\\d+)?)"
    },
    "try_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[tT][rR][yY]"
          },
          "named": false,
          "value": "try"
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "compound_statement"
          }
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "catch_clause"
              },
              {
                "type": "SYMBOL",
                "name": "finally_clause"
              }
            ]
          }
        }
      ]
    },
    "catch_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[cC][aA][tT][cC][hH]"
          },
          "named": false,
          "value": "catch"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "FIELD",
          "name": "type",
          "content": {
            "type": "SYMBOL",
            "name": "_type_name"
          }
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "variable_name"
          }
        },
        {
          "type": "STRING",
          "value": ")"
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "compound_statement"
          }
        }
      ]
    },
    "finally_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[fF][iI][nN][aA][lL][lL][yY]"
          },
          "named": false,
          "value": "finally"
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "compound_statement"
          }
        }
      ]
    },
    "goto_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[gG][oO][tT][oO]"
          },
          "named": false,
          "value": "goto"
        },
        {
          "type": "SYMBOL",
          "name": "name"
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "continue_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[cC][oO][nN][tT][iI][nN][uU][eE]"
          },
          "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": "[bB][rR][eE][aA][kK]"
          },
          "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*"
          },
          {
            "type": "PATTERN",
            "value": "0[0-7]*"
          },
          {
            "type": "PATTERN",
            "value": "0[xX][0-9a-fA-F]+"
          },
          {
            "type": "PATTERN",
            "value": "0[bB][01]+"
          }
        ]
      }
    },
    "return_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[rR][eE][tT][uU][rR][nN]"
          },
          "named": false,
          "value": "return"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_expression"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "throw_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[tT][hH][rR][oO][wW]"
          },
          "named": false,
          "value": "throw"
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        },
        {
          "type": "SYMBOL",
          "name": "_semicolon"
        }
      ]
    },
    "while_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[wW][hH][iI][lL][eE]"
          },
          "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": "[eE][nN][dD][wW][hH][iI][lL][eE]"
                  },
                  "named": false,
                  "value": "endwhile"
                },
                {
                  "type": "SYMBOL",
                  "name": "_semicolon"
                }
              ]
            }
          ]
        }
      ]
    },
    "do_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[dD][oO]"
          },
          "named": false,
          "value": "do"
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "_statement"
          }
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[wW][hH][iI][lL][eE]"
          },
          "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": "[fF][oO][rR]"
          },
          "named": false,
          "value": "for"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_expressions"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ";"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_expressions"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ";"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_expressions"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_semicolon"
            },
            {
              "type": "SYMBOL",
              "name": "_statement"
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ":"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_statement"
                  }
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "PATTERN",
                    "value": "[eE][nN][dD][fF][oO][rR]"
                  },
                  "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": "[fF][oO][rR][eE][aA][cC][hH]"
          },
          "named": false,
          "value": "foreach"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[aA][sS]"
          },
          "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": "[eE][nN][dD][fF][oO][rR][eE][aA][cC][hH]"
                  },
                  "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": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "STRING",
                  "value": "&"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_expression"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "list_literal"
        }
      ]
    },
    "if_statement": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "ALIAS",
            "content": {
              "type": "PATTERN",
              "value": "[iI][fF]"
            },
            "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": "[eE][nN][dD][iI][fF]"
                    },
                    "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": "[eE][lL][sS][eE][iI][fF]"
          },
          "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": "[eE][lL][sS][eE]"
          },
          "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": "[eE][lL][sS][eE][iI][fF]"
          },
          "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": "[eE][lL][sS][eE]"
          },
          "named": false,
          "value": "else"
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "colon_block"
          }
        }
      ]
    },
    "switch_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[sS][wW][iI][tT][cC][hH]"
          },
          "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": "[eE][nN][dD][sS][wW][iI][tT][cC][hH]"
              },
              "named": false,
              "value": "endswitch"
            },
            {
              "type": "SYMBOL",
              "name": "_semicolon"
            }
          ]
        }
      ]
    },
    "case_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[cC][aA][sS][eE]"
          },
          "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": "[dD][eE][fF][aA][uU][lL][tT]"
          },
          "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": "augmented_assignment_expression"
        },
        {
          "type": "SYMBOL",
          "name": "assignment_expression"
        },
        {
          "type": "SYMBOL",
          "name": "yield_expression"
        },
        {
          "type": "SYMBOL",
          "name": "_unary_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": "exponentiation_expression"
        },
        {
          "type": "SYMBOL",
          "name": "unary_op_expression"
        },
        {
          "type": "SYMBOL",
          "name": "cast_expression"
        }
      ]
    },
    "unary_op_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "@"
            },
            {
              "type": "SYMBOL",
              "name": "_expression"
            }
          ]
        },
        {
          "type": "PREC_LEFT",
          "value": 17,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "+"
                  },
                  {
                    "type": "STRING",
                    "value": "-"
                  },
                  {
                    "type": "STRING",
                    "value": "~"
                  },
                  {
                    "type": "STRING",
                    "value": "!"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expression"
              }
            ]
          }
        }
      ]
    },
    "exponentiation_expression": {
      "type": "PREC_RIGHT",
      "value": 16,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "clone_expression"
              },
              {
                "type": "SYMBOL",
                "name": "_primary_expression"
              }
            ]
          },
          {
            "type": "STRING",
            "value": "**"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "exponentiation_expression"
              },
              {
                "type": "SYMBOL",
                "name": "clone_expression"
              },
              {
                "type": "SYMBOL",
                "name": "_primary_expression"
              }
            ]
          }
        ]
      }
    },
    "clone_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "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": "array_creation_expression"
        },
        {
          "type": "SYMBOL",
          "name": "print_intrinsic"
        },
        {
          "type": "SYMBOL",
          "name": "anonymous_function_creation_expression"
        },
        {
          "type": "SYMBOL",
          "name": "object_creation_expression"
        },
        {
          "type": "SYMBOL",
          "name": "update_expression"
        },
        {
          "type": "SYMBOL",
          "name": "shell_command_expression"
        },
        {
          "type": "SYMBOL",
          "name": "parenthesized_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": "SYMBOL",
              "name": "name"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_reserved_identifier"
              },
              "named": true,
              "value": "name"
            }
          ]
        }
      ]
    },
    "print_intrinsic": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "print"
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        }
      ]
    },
    "anonymous_function_creation_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "PATTERN",
                "value": "[sS][tT][aA][tT][iI][cC]"
              },
              "named": false,
              "value": "static"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
          },
          "named": false,
          "value": "function"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "&"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "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"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "compound_statement"
          }
        }
      ]
    },
    "anonymous_function_use_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[uU][sS][eE]"
          },
          "named": false,
          "value": "use"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "&"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                },
                {
                  "type": "SYMBOL",
                  "name": "variable_name"
                }
              ]
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "STRING",
                            "value": "&"
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      },
                      {
                        "type": "SYMBOL",
                        "name": "variable_name"
                      }
                    ]
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "object_creation_expression": {
      "type": "PREC_RIGHT",
      "value": 21,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "new"
              },
              {
                "type": "SYMBOL",
                "name": "_class_type_designator"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "arguments"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "new"
              },
              {
                "type": "ALIAS",
                "content": {
                  "type": "PATTERN",
                  "value": "[cC][lL][aA][sS][sS]"
                },
                "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": "SYMBOL",
                "name": "declaration_list"
              }
            ]
          }
        ]
      }
    },
    "_class_type_designator": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "qualified_name"
        },
        {
          "type": "SYMBOL",
          "name": "subscript_expression"
        },
        {
          "type": "SYMBOL",
          "name": "member_access_expression"
        },
        {
          "type": "SYMBOL",
          "name": "scoped_property_access_expression"
        },
        {
          "type": "SYMBOL",
          "name": "_variable_name"
        }
      ]
    },
    "update_expression": {
      "type": "PREC_LEFT",
      "value": 19,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_variable"
              },
              {
                "type": "STRING",
                "value": "++"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_variable"
              },
              {
                "type": "STRING",
                "value": "--"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "++"
              },
              {
                "type": "SYMBOL",
                "name": "_variable"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "--"
              },
              {
                "type": "SYMBOL",
                "name": "_variable"
              }
            ]
          }
        ]
      }
    },
    "shell_command_expression": {
      "type": "TOKEN",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "`"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "PATTERN",
                      "value": "\\\\\"|\\\\\\\\|\\\\\\$|\\\\e|\\\\f|\\\\n|\\\\r|\\\\t|\\\\v"
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "\\"
                        },
                        {
                          "type": "PATTERN",
                          "value": "[0-7]"
                        },
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "PATTERN",
                              "value": "[0-7]"
                            },
                            {
                              "type": "BLANK"
                            }
                          ]
                        },
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "PATTERN",
                              "value": "[0-7]"
                            },
                            {
                              "type": "BLANK"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "PATTERN",
                          "value": "\\\\[xX]"
                        },
                        {
                          "type": "PATTERN",
                          "value": "\\d|a-f|A-F"
                        },
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "PATTERN",
                              "value": "\\d|a-f|A-F"
                            },
                            {
                              "type": "BLANK"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "\\u{"
                        },
                        {
                          "type": "REPEAT1",
                          "content": {
                            "type": "PATTERN",
                            "value": "\\d|a-f|A-F"
                          }
                        },
                        {
                          "type": "STRING",
                          "value": "}"
                        }
                      ]
                    }
                  ]
                },
                {
                  "type": "PATTERN",
                  "value": "[^\"\\\\]|\\\\[^\"\\\\$efnrtv0-7]"
                }
              ]
            }
          },
          {
            "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": "SYMBOL",
              "name": "_unary_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": "SYMBOL",
                  "name": "array_creation_expression"
                }
              ]
            }
          },
          {
            "type": "STRING",
            "value": "="
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "&"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "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": "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": "_callable_variable"
        },
        {
          "type": "SYMBOL",
          "name": "scoped_property_access_expression"
        },
        {
          "type": "SYMBOL",
          "name": "member_access_expression"
        }
      ]
    },
    "member_access_expression": {
      "type": "PREC",
      "value": 23,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "object",
            "content": {
              "type": "SYMBOL",
              "name": "_dereferencable_expression"
            }
          },
          {
            "type": "STRING",
            "value": "->"
          },
          {
            "type": "SYMBOL",
            "name": "_member_name"
          }
        ]
      }
    },
    "scoped_property_access_expression": {
      "type": "PREC",
      "value": 23,
      "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": "_variable_name"
            }
          }
        ]
      }
    },
    "list_literal": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "list"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "list_literal"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "_variable"
                            }
                          ]
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_expression"
                            },
                            {
                              "type": "STRING",
                              "value": "=>"
                            },
                            {
                              "type": "CHOICE",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "list_literal"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "_variable"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "CHOICE",
                            "members": [
                              {
                                "type": "CHOICE",
                                "members": [
                                  {
                                    "type": "SYMBOL",
                                    "name": "list_literal"
                                  },
                                  {
                                    "type": "SYMBOL",
                                    "name": "_variable"
                                  }
                                ]
                              },
                              {
                                "type": "SEQ",
                                "members": [
                                  {
                                    "type": "SYMBOL",
                                    "name": "_expression"
                                  },
                                  {
                                    "type": "STRING",
                                    "value": "=>"
                                  },
                                  {
                                    "type": "CHOICE",
                                    "members": [
                                      {
                                        "type": "SYMBOL",
                                        "name": "list_literal"
                                      },
                                      {
                                        "type": "SYMBOL",
                                        "name": "_variable"
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "_callable_variable": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_variable_name"
        },
        {
          "type": "SYMBOL",
          "name": "subscript_expression"
        },
        {
          "type": "SYMBOL",
          "name": "member_call_expression"
        },
        {
          "type": "SYMBOL",
          "name": "scoped_call_expression"
        },
        {
          "type": "SYMBOL",
          "name": "function_call_expression"
        }
      ]
    },
    "function_call_expression": {
      "type": "PREC",
      "value": 22,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "function",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "qualified_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": "array_creation_expression"
        },
        {
          "type": "SYMBOL",
          "name": "_string"
        }
      ]
    },
    "scoped_call_expression": {
      "type": "PREC",
      "value": 22,
      "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": "qualified_name"
        },
        {
          "type": "SYMBOL",
          "name": "_dereferencable_expression"
        }
      ]
    },
    "relative_scope": {
      "type": "PREC",
      "value": 20,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "STRING",
            "value": "self"
          },
          {
            "type": "STRING",
            "value": "parent"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "PATTERN",
              "value": "[sS][tT][aA][tT][iI][cC]"
            },
            "named": false,
            "value": "static"
          }
        ]
      }
    },
    "arguments": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "variadic_unpacking"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_expression"
                    }
                  ]
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "variadic_unpacking"
                          },
                          {
                            "type": "SYMBOL",
                            "name": "_expression"
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "member_call_expression": {
      "type": "PREC",
      "value": 22,
      "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": "ALIAS",
                "content": {
                  "type": "SYMBOL",
                  "name": "_reserved_identifier"
                },
                "named": true,
                "value": "name"
              },
              {
                "type": "SYMBOL",
                "name": "name"
              },
              {
                "type": "SYMBOL",
                "name": "_variable_name"
              }
            ]
          }
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "{"
            },
            {
              "type": "FIELD",
              "name": "name",
              "content": {
                "type": "SYMBOL",
                "name": "_expression"
              }
            },
            {
              "type": "STRING",
              "value": "}"
            }
          ]
        }
      ]
    },
    "subscript_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_dereferencable_expression"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "["
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_expression"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "]"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "SYMBOL",
                  "name": "_expression"
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        }
      ]
    },
    "_dereferencable_expression": {
      "type": "PREC",
      "value": 24,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_variable"
          },
          {
            "type": "SYMBOL",
            "name": "class_constant_access_expression"
          },
          {
            "type": "SYMBOL",
            "name": "parenthesized_expression"
          },
          {
            "type": "SYMBOL",
            "name": "array_creation_expression"
          },
          {
            "type": "SYMBOL",
            "name": "_string"
          }
        ]
      }
    },
    "array_creation_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "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": "]"
            }
          ]
        }
      ]
    },
    "string": {
      "type": "TOKEN",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "PATTERN",
                    "value": "[bB]"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "STRING",
                "value": "'"
              },
              {
                "type": "REPEAT",
                "content": {
                  "type": "PATTERN",
                  "value": "\\\\'|\\\\\\\\|\\\\?[^'\\\\]"
                }
              },
              {
                "type": "STRING",
                "value": "'"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "PATTERN",
                    "value": "[bB]"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "STRING",
                "value": "\""
              },
              {
                "type": "REPEAT",
                "content": {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "PATTERN",
                          "value": "\\\\\"|\\\\\\\\|\\\\\\$|\\\\e|\\\\f|\\\\n|\\\\r|\\\\t|\\\\v"
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "\\"
                            },
                            {
                              "type": "PATTERN",
                              "value": "[0-7]"
                            },
                            {
                              "type": "CHOICE",
                              "members": [
                                {
                                  "type": "PATTERN",
                                  "value": "[0-7]"
                                },
                                {
                                  "type": "BLANK"
                                }
                              ]
                            },
                            {
                              "type": "CHOICE",
                              "members": [
                                {
                                  "type": "PATTERN",
                                  "value": "[0-7]"
                                },
                                {
                                  "type": "BLANK"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "PATTERN",
                              "value": "\\\\[xX]"
                            },
                            {
                              "type": "PATTERN",
                              "value": "\\d|a-f|A-F"
                            },
                            {
                              "type": "CHOICE",
                              "members": [
                                {
                                  "type": "PATTERN",
                                  "value": "\\d|a-f|A-F"
                                },
                                {
                                  "type": "BLANK"
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "\\u{"
                            },
                            {
                              "type": "REPEAT1",
                              "content": {
                                "type": "PATTERN",
                                "value": "\\d|a-f|A-F"
                              }
                            },
                            {
                              "type": "STRING",
                              "value": "}"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "PATTERN",
                      "value": "[^\"\\\\]|\\\\[^\"\\\\$efnrtv0-7]"
                    }
                  ]
                }
              },
              {
                "type": "STRING",
                "value": "\""
              }
            ]
          }
        ]
      }
    },
    "boolean": {
      "type": "PATTERN",
      "value": "[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee]"
    },
    "null": {
      "type": "PATTERN",
      "value": "[nN][uU][lL][lL]"
    },
    "_string": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "SYMBOL",
          "name": "heredoc"
        }
      ]
    },
    "dynamic_variable_name": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "$"
            },
            {
              "type": "SYMBOL",
              "name": "_variable_name"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "$"
            },
            {
              "type": "STRING",
              "value": "{"
            },
            {
              "type": "SYMBOL",
              "name": "_expression"
            },
            {
              "type": "STRING",
              "value": "}"
            }
          ]
        }
      ]
    },
    "_variable_name": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "dynamic_variable_name"
        },
        {
          "type": "SYMBOL",
          "name": "variable_name"
        }
      ]
    },
    "variable_name": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$"
        },
        {
          "type": "SYMBOL",
          "name": "name"
        }
      ]
    },
    "yield_expression": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "yield"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "array_element_initializer"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "from"
                      },
                      {
                        "type": "SYMBOL",
                        "name": "_expression"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "array_element_initializer": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "&"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expression"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expression"
              },
              {
                "type": "STRING",
                "value": "=>"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "&"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expression"
              }
            ]
          }
        ]
      }
    },
    "binary_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC",
          "value": 18,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_unary_expression"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "STRING",
                  "value": "instanceof"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_class_type_designator"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_RIGHT",
          "value": 6,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expression"
              },
              {
                "type": "STRING",
                "value": "??"
              },
              {
                "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|AND"
                  },
                  "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|OR"
                  },
                  "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|XOR"
                  },
                  "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": 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": 15,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_expression"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "STRING",
                  "value": "-"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_expression"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 15,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_expression"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "STRING",
                  "value": "."
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_expression"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 16,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_expression"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "STRING",
                  "value": "*"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_expression"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 16,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_expression"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "STRING",
                  "value": "/"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_expression"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 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"
                }
              }
            ]
          }
        }
      ]
    },
    "include_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[iI][nN][cC][lL][uU][dD][eE]"
          },
          "named": false,
          "value": "include"
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        }
      ]
    },
    "include_once_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[iI][nN][cC][lL][uU][dD][eE][__][oO][nN][cC][eE]"
          },
          "named": false,
          "value": "include_once"
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        }
      ]
    },
    "require_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[rR][eE][qQ][uU][iI][rR][eE]"
          },
          "named": false,
          "value": "require"
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        }
      ]
    },
    "require_once_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[rR][eE][qQ][uU][iI][rR][eE][__][oO][nN][cC][eE]"
          },
          "named": false,
          "value": "require_once"
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        }
      ]
    },
    "name": {
      "type": "PATTERN",
      "value": "[_a-zA-Z\\u00A1-\\u00ff][_a-zA-Z\\u00A1-\\u00ff\\d]*"
    },
    "_reserved_identifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "self"
        },
        {
          "type": "STRING",
          "value": "parent"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[sS][tT][aA][tT][iI][cC]"
          },
          "named": false,
          "value": "static"
        }
      ]
    },
    "comment": {
      "type": "TOKEN",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "//"
                  },
                  {
                    "type": "STRING",
                    "value": "#"
                  }
                ]
              },
              {
                "type": "REPEAT",
                "content": {
                  "type": "PATTERN",
                  "value": "[^?\\r?\\n]|\\?[^>\\r\\n]"
                }
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "PATTERN",
                    "value": "\\?\\r?\\n"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          },
          {
            "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\\uFEFF\\u2060\\u200B\\u00A0]"
    },
    {
      "type": "SYMBOL",
      "name": "text_interpolation"
    }
  ],
  "conflicts": [
    [
      "simple_parameter",
      "name"
    ],
    [
      "variadic_parameter",
      "name"
    ],
    [
      "qualified_name",
      "namespace_name"
    ],
    [
      "namespace_name"
    ],
    [
      "namespace_aliasing_clause",
      "name"
    ],
    [
      "namespace_name_as_prefix"
    ],
    [
      "namespace_use_declaration",
      "namespace_name_as_prefix"
    ]
  ],
  "precedences": [],
  "externals": [
    {
      "type": "SYMBOL",
      "name": "_automatic_semicolon"
    },
    {
      "type": "SYMBOL",
      "name": "heredoc"
    },
    {
      "type": "SYMBOL",
      "name": "_eof"
    }
  ],
  "inline": [
    "_statement",
    "_semicolon",
    "_member_name",
    "_variable",
    "_callable_variable",
    "_callable_expression",
    "_foreach_value",
    "_literal",
    "ReferenceError",
    "_class_type_designator",
    "_variable_name",
    "_type_name"
  ],
  "supertypes": [
    "_statement",
    "_expression",
    "_primary_expression",
    "_type",
    "_literal"
  ]
}

