1{
   2  "name": "php",
   3  "word": "name",
   4  "rules": {
   5    "program": {
   6      "type": "SEQ",
   7      "members": [
   8        {
   9          "type": "CHOICE",
  10          "members": [
  11            {
  12              "type": "SYMBOL",
  13              "name": "text"
  14            },
  15            {
  16              "type": "BLANK"
  17            }
  18          ]
  19        },
  20        {
  21          "type": "CHOICE",
  22          "members": [
  23            {
  24              "type": "SEQ",
  25              "members": [
  26                {
  27                  "type": "SYMBOL",
  28                  "name": "php_tag"
  29                },
  30                {
  31                  "type": "REPEAT",
  32                  "content": {
  33                    "type": "SYMBOL",
  34                    "name": "statement"
  35                  }
  36                }
  37              ]
  38            },
  39            {
  40              "type": "BLANK"
  41            }
  42          ]
  43        }
  44      ]
  45    },
  46    "php_tag": {
  47      "type": "PATTERN",
  48      "value": "<\\?([pP][hH][pP]|=)?"
  49    },
  50    "text_interpolation": {
  51      "type": "SEQ",
  52      "members": [
  53        {
  54          "type": "STRING",
  55          "value": "?>"
  56        },
  57        {
  58          "type": "CHOICE",
  59          "members": [
  60            {
  61              "type": "SYMBOL",
  62              "name": "text"
  63            },
  64            {
  65              "type": "BLANK"
  66            }
  67          ]
  68        },
  69        {
  70          "type": "CHOICE",
  71          "members": [
  72            {
  73              "type": "SYMBOL",
  74              "name": "php_tag"
  75            },
  76            {
  77              "type": "SYMBOL",
  78              "name": "_eof"
  79            }
  80          ]
  81        }
  82      ]
  83    },
  84    "text": {
  85      "type": "REPEAT1",
  86      "content": {
  87        "type": "CHOICE",
  88        "members": [
  89          {
  90            "type": "TOKEN",
  91            "content": {
  92              "type": "PREC",
  93              "value": -1,
  94              "content": {
  95                "type": "PATTERN",
  96                "value": "<"
  97              }
  98            }
  99          },
 100          {
 101            "type": "TOKEN",
 102            "content": {
 103              "type": "PREC",
 104              "value": 1,
 105              "content": {
 106                "type": "PATTERN",
 107                "value": "[^\\s<][^<]*"
 108              }
 109            }
 110          }
 111        ]
 112      }
 113    },
 114    "statement": {
 115      "type": "CHOICE",
 116      "members": [
 117        {
 118          "type": "SYMBOL",
 119          "name": "empty_statement"
 120        },
 121        {
 122          "type": "SYMBOL",
 123          "name": "compound_statement"
 124        },
 125        {
 126          "type": "SYMBOL",
 127          "name": "named_label_statement"
 128        },
 129        {
 130          "type": "SYMBOL",
 131          "name": "expression_statement"
 132        },
 133        {
 134          "type": "SYMBOL",
 135          "name": "if_statement"
 136        },
 137        {
 138          "type": "SYMBOL",
 139          "name": "switch_statement"
 140        },
 141        {
 142          "type": "SYMBOL",
 143          "name": "while_statement"
 144        },
 145        {
 146          "type": "SYMBOL",
 147          "name": "do_statement"
 148        },
 149        {
 150          "type": "SYMBOL",
 151          "name": "for_statement"
 152        },
 153        {
 154          "type": "SYMBOL",
 155          "name": "foreach_statement"
 156        },
 157        {
 158          "type": "SYMBOL",
 159          "name": "goto_statement"
 160        },
 161        {
 162          "type": "SYMBOL",
 163          "name": "continue_statement"
 164        },
 165        {
 166          "type": "SYMBOL",
 167          "name": "break_statement"
 168        },
 169        {
 170          "type": "SYMBOL",
 171          "name": "return_statement"
 172        },
 173        {
 174          "type": "SYMBOL",
 175          "name": "try_statement"
 176        },
 177        {
 178          "type": "SYMBOL",
 179          "name": "declare_statement"
 180        },
 181        {
 182          "type": "SYMBOL",
 183          "name": "echo_statement"
 184        },
 185        {
 186          "type": "SYMBOL",
 187          "name": "exit_statement"
 188        },
 189        {
 190          "type": "SYMBOL",
 191          "name": "unset_statement"
 192        },
 193        {
 194          "type": "SYMBOL",
 195          "name": "const_declaration"
 196        },
 197        {
 198          "type": "SYMBOL",
 199          "name": "function_definition"
 200        },
 201        {
 202          "type": "SYMBOL",
 203          "name": "class_declaration"
 204        },
 205        {
 206          "type": "SYMBOL",
 207          "name": "interface_declaration"
 208        },
 209        {
 210          "type": "SYMBOL",
 211          "name": "trait_declaration"
 212        },
 213        {
 214          "type": "SYMBOL",
 215          "name": "enum_declaration"
 216        },
 217        {
 218          "type": "SYMBOL",
 219          "name": "namespace_definition"
 220        },
 221        {
 222          "type": "SYMBOL",
 223          "name": "namespace_use_declaration"
 224        },
 225        {
 226          "type": "SYMBOL",
 227          "name": "global_declaration"
 228        },
 229        {
 230          "type": "SYMBOL",
 231          "name": "function_static_declaration"
 232        }
 233      ]
 234    },
 235    "empty_statement": {
 236      "type": "PREC",
 237      "value": -1,
 238      "content": {
 239        "type": "STRING",
 240        "value": ";"
 241      }
 242    },
 243    "reference_modifier": {
 244      "type": "STRING",
 245      "value": "&"
 246    },
 247    "function_static_declaration": {
 248      "type": "SEQ",
 249      "members": [
 250        {
 251          "type": "ALIAS",
 252          "content": {
 253            "type": "PATTERN",
 254            "value": "static",
 255            "flags": "i"
 256          },
 257          "named": false,
 258          "value": "static"
 259        },
 260        {
 261          "type": "SEQ",
 262          "members": [
 263            {
 264              "type": "SYMBOL",
 265              "name": "static_variable_declaration"
 266            },
 267            {
 268              "type": "REPEAT",
 269              "content": {
 270                "type": "SEQ",
 271                "members": [
 272                  {
 273                    "type": "STRING",
 274                    "value": ","
 275                  },
 276                  {
 277                    "type": "SYMBOL",
 278                    "name": "static_variable_declaration"
 279                  }
 280                ]
 281              }
 282            }
 283          ]
 284        },
 285        {
 286          "type": "SYMBOL",
 287          "name": "_semicolon"
 288        }
 289      ]
 290    },
 291    "static_variable_declaration": {
 292      "type": "SEQ",
 293      "members": [
 294        {
 295          "type": "FIELD",
 296          "name": "name",
 297          "content": {
 298            "type": "SYMBOL",
 299            "name": "variable_name"
 300          }
 301        },
 302        {
 303          "type": "CHOICE",
 304          "members": [
 305            {
 306              "type": "SEQ",
 307              "members": [
 308                {
 309                  "type": "STRING",
 310                  "value": "="
 311                },
 312                {
 313                  "type": "FIELD",
 314                  "name": "value",
 315                  "content": {
 316                    "type": "SYMBOL",
 317                    "name": "expression"
 318                  }
 319                }
 320              ]
 321            },
 322            {
 323              "type": "BLANK"
 324            }
 325          ]
 326        }
 327      ]
 328    },
 329    "global_declaration": {
 330      "type": "SEQ",
 331      "members": [
 332        {
 333          "type": "ALIAS",
 334          "content": {
 335            "type": "PATTERN",
 336            "value": "global",
 337            "flags": "i"
 338          },
 339          "named": false,
 340          "value": "global"
 341        },
 342        {
 343          "type": "SEQ",
 344          "members": [
 345            {
 346              "type": "SYMBOL",
 347              "name": "_simple_variable"
 348            },
 349            {
 350              "type": "REPEAT",
 351              "content": {
 352                "type": "SEQ",
 353                "members": [
 354                  {
 355                    "type": "STRING",
 356                    "value": ","
 357                  },
 358                  {
 359                    "type": "SYMBOL",
 360                    "name": "_simple_variable"
 361                  }
 362                ]
 363              }
 364            }
 365          ]
 366        },
 367        {
 368          "type": "SYMBOL",
 369          "name": "_semicolon"
 370        }
 371      ]
 372    },
 373    "namespace_definition": {
 374      "type": "SEQ",
 375      "members": [
 376        {
 377          "type": "ALIAS",
 378          "content": {
 379            "type": "PATTERN",
 380            "value": "namespace",
 381            "flags": "i"
 382          },
 383          "named": false,
 384          "value": "namespace"
 385        },
 386        {
 387          "type": "CHOICE",
 388          "members": [
 389            {
 390              "type": "SEQ",
 391              "members": [
 392                {
 393                  "type": "FIELD",
 394                  "name": "name",
 395                  "content": {
 396                    "type": "SYMBOL",
 397                    "name": "namespace_name"
 398                  }
 399                },
 400                {
 401                  "type": "SYMBOL",
 402                  "name": "_semicolon"
 403                }
 404              ]
 405            },
 406            {
 407              "type": "SEQ",
 408              "members": [
 409                {
 410                  "type": "FIELD",
 411                  "name": "name",
 412                  "content": {
 413                    "type": "CHOICE",
 414                    "members": [
 415                      {
 416                        "type": "SYMBOL",
 417                        "name": "namespace_name"
 418                      },
 419                      {
 420                        "type": "BLANK"
 421                      }
 422                    ]
 423                  }
 424                },
 425                {
 426                  "type": "FIELD",
 427                  "name": "body",
 428                  "content": {
 429                    "type": "SYMBOL",
 430                    "name": "compound_statement"
 431                  }
 432                }
 433              ]
 434            }
 435          ]
 436        }
 437      ]
 438    },
 439    "namespace_use_declaration": {
 440      "type": "SEQ",
 441      "members": [
 442        {
 443          "type": "ALIAS",
 444          "content": {
 445            "type": "PATTERN",
 446            "value": "use",
 447            "flags": "i"
 448          },
 449          "named": false,
 450          "value": "use"
 451        },
 452        {
 453          "type": "CHOICE",
 454          "members": [
 455            {
 456              "type": "SEQ",
 457              "members": [
 458                {
 459                  "type": "SYMBOL",
 460                  "name": "namespace_use_clause"
 461                },
 462                {
 463                  "type": "REPEAT",
 464                  "content": {
 465                    "type": "SEQ",
 466                    "members": [
 467                      {
 468                        "type": "STRING",
 469                        "value": ","
 470                      },
 471                      {
 472                        "type": "SYMBOL",
 473                        "name": "namespace_use_clause"
 474                      }
 475                    ]
 476                  }
 477                }
 478              ]
 479            },
 480            {
 481              "type": "SYMBOL",
 482              "name": "_namespace_use_group"
 483            }
 484          ]
 485        },
 486        {
 487          "type": "SYMBOL",
 488          "name": "_semicolon"
 489        }
 490      ]
 491    },
 492    "namespace_use_clause": {
 493      "type": "SEQ",
 494      "members": [
 495        {
 496          "type": "FIELD",
 497          "name": "type",
 498          "content": {
 499            "type": "CHOICE",
 500            "members": [
 501              {
 502                "type": "SYMBOL",
 503                "name": "_namespace_use_type"
 504              },
 505              {
 506                "type": "BLANK"
 507              }
 508            ]
 509          }
 510        },
 511        {
 512          "type": "SYMBOL",
 513          "name": "_name"
 514        },
 515        {
 516          "type": "CHOICE",
 517          "members": [
 518            {
 519              "type": "SEQ",
 520              "members": [
 521                {
 522                  "type": "ALIAS",
 523                  "content": {
 524                    "type": "PATTERN",
 525                    "value": "as",
 526                    "flags": "i"
 527                  },
 528                  "named": false,
 529                  "value": "as"
 530                },
 531                {
 532                  "type": "FIELD",
 533                  "name": "alias",
 534                  "content": {
 535                    "type": "SYMBOL",
 536                    "name": "name"
 537                  }
 538                }
 539              ]
 540            },
 541            {
 542              "type": "BLANK"
 543            }
 544          ]
 545        }
 546      ]
 547    },
 548    "_namespace_use_type": {
 549      "type": "CHOICE",
 550      "members": [
 551        {
 552          "type": "ALIAS",
 553          "content": {
 554            "type": "PATTERN",
 555            "value": "function",
 556            "flags": "i"
 557          },
 558          "named": false,
 559          "value": "function"
 560        },
 561        {
 562          "type": "ALIAS",
 563          "content": {
 564            "type": "PATTERN",
 565            "value": "const",
 566            "flags": "i"
 567          },
 568          "named": false,
 569          "value": "const"
 570        }
 571      ]
 572    },
 573    "qualified_name": {
 574      "type": "SEQ",
 575      "members": [
 576        {
 577          "type": "FIELD",
 578          "name": "prefix",
 579          "content": {
 580            "type": "SEQ",
 581            "members": [
 582              {
 583                "type": "CHOICE",
 584                "members": [
 585                  {
 586                    "type": "SYMBOL",
 587                    "name": "namespace_name"
 588                  },
 589                  {
 590                    "type": "BLANK"
 591                  }
 592                ]
 593              },
 594              {
 595                "type": "STRING",
 596                "value": "\\"
 597              }
 598            ]
 599          }
 600        },
 601        {
 602          "type": "SYMBOL",
 603          "name": "name"
 604        }
 605      ]
 606    },
 607    "_name": {
 608      "type": "CHOICE",
 609      "members": [
 610        {
 611          "type": "SYMBOL",
 612          "name": "_identifier"
 613        },
 614        {
 615          "type": "SYMBOL",
 616          "name": "qualified_name"
 617        }
 618      ]
 619    },
 620    "namespace_name": {
 621      "type": "SEQ",
 622      "members": [
 623        {
 624          "type": "CHOICE",
 625          "members": [
 626            {
 627              "type": "STRING",
 628              "value": "\\"
 629            },
 630            {
 631              "type": "BLANK"
 632            }
 633          ]
 634        },
 635        {
 636          "type": "SYMBOL",
 637          "name": "name"
 638        },
 639        {
 640          "type": "REPEAT",
 641          "content": {
 642            "type": "SEQ",
 643            "members": [
 644              {
 645                "type": "STRING",
 646                "value": "\\"
 647              },
 648              {
 649                "type": "SYMBOL",
 650                "name": "name"
 651              }
 652            ]
 653          }
 654        }
 655      ]
 656    },
 657    "_namespace_use_group": {
 658      "type": "SEQ",
 659      "members": [
 660        {
 661          "type": "FIELD",
 662          "name": "type",
 663          "content": {
 664            "type": "CHOICE",
 665            "members": [
 666              {
 667                "type": "SYMBOL",
 668                "name": "_namespace_use_type"
 669              },
 670              {
 671                "type": "BLANK"
 672              }
 673            ]
 674          }
 675        },
 676        {
 677          "type": "SYMBOL",
 678          "name": "namespace_name"
 679        },
 680        {
 681          "type": "STRING",
 682          "value": "\\"
 683        },
 684        {
 685          "type": "FIELD",
 686          "name": "body",
 687          "content": {
 688            "type": "SYMBOL",
 689            "name": "namespace_use_group"
 690          }
 691        }
 692      ]
 693    },
 694    "namespace_use_group": {
 695      "type": "SEQ",
 696      "members": [
 697        {
 698          "type": "STRING",
 699          "value": "{"
 700        },
 701        {
 702          "type": "SEQ",
 703          "members": [
 704            {
 705              "type": "SYMBOL",
 706              "name": "namespace_use_clause"
 707            },
 708            {
 709              "type": "REPEAT",
 710              "content": {
 711                "type": "SEQ",
 712                "members": [
 713                  {
 714                    "type": "STRING",
 715                    "value": ","
 716                  },
 717                  {
 718                    "type": "SYMBOL",
 719                    "name": "namespace_use_clause"
 720                  }
 721                ]
 722              }
 723            }
 724          ]
 725        },
 726        {
 727          "type": "STRING",
 728          "value": "}"
 729        }
 730      ]
 731    },
 732    "trait_declaration": {
 733      "type": "SEQ",
 734      "members": [
 735        {
 736          "type": "CHOICE",
 737          "members": [
 738            {
 739              "type": "FIELD",
 740              "name": "attributes",
 741              "content": {
 742                "type": "SYMBOL",
 743                "name": "attribute_list"
 744              }
 745            },
 746            {
 747              "type": "BLANK"
 748            }
 749          ]
 750        },
 751        {
 752          "type": "ALIAS",
 753          "content": {
 754            "type": "PATTERN",
 755            "value": "trait",
 756            "flags": "i"
 757          },
 758          "named": false,
 759          "value": "trait"
 760        },
 761        {
 762          "type": "FIELD",
 763          "name": "name",
 764          "content": {
 765            "type": "SYMBOL",
 766            "name": "name"
 767          }
 768        },
 769        {
 770          "type": "FIELD",
 771          "name": "body",
 772          "content": {
 773            "type": "SYMBOL",
 774            "name": "declaration_list"
 775          }
 776        }
 777      ]
 778    },
 779    "interface_declaration": {
 780      "type": "SEQ",
 781      "members": [
 782        {
 783          "type": "CHOICE",
 784          "members": [
 785            {
 786              "type": "FIELD",
 787              "name": "attributes",
 788              "content": {
 789                "type": "SYMBOL",
 790                "name": "attribute_list"
 791              }
 792            },
 793            {
 794              "type": "BLANK"
 795            }
 796          ]
 797        },
 798        {
 799          "type": "ALIAS",
 800          "content": {
 801            "type": "PATTERN",
 802            "value": "interface",
 803            "flags": "i"
 804          },
 805          "named": false,
 806          "value": "interface"
 807        },
 808        {
 809          "type": "FIELD",
 810          "name": "name",
 811          "content": {
 812            "type": "SYMBOL",
 813            "name": "name"
 814          }
 815        },
 816        {
 817          "type": "CHOICE",
 818          "members": [
 819            {
 820              "type": "SYMBOL",
 821              "name": "base_clause"
 822            },
 823            {
 824              "type": "BLANK"
 825            }
 826          ]
 827        },
 828        {
 829          "type": "FIELD",
 830          "name": "body",
 831          "content": {
 832            "type": "SYMBOL",
 833            "name": "declaration_list"
 834          }
 835        }
 836      ]
 837    },
 838    "base_clause": {
 839      "type": "SEQ",
 840      "members": [
 841        {
 842          "type": "ALIAS",
 843          "content": {
 844            "type": "PATTERN",
 845            "value": "extends",
 846            "flags": "i"
 847          },
 848          "named": false,
 849          "value": "extends"
 850        },
 851        {
 852          "type": "SEQ",
 853          "members": [
 854            {
 855              "type": "SYMBOL",
 856              "name": "_name"
 857            },
 858            {
 859              "type": "REPEAT",
 860              "content": {
 861                "type": "SEQ",
 862                "members": [
 863                  {
 864                    "type": "STRING",
 865                    "value": ","
 866                  },
 867                  {
 868                    "type": "SYMBOL",
 869                    "name": "_name"
 870                  }
 871                ]
 872              }
 873            }
 874          ]
 875        }
 876      ]
 877    },
 878    "enum_declaration": {
 879      "type": "PREC_RIGHT",
 880      "value": 0,
 881      "content": {
 882        "type": "SEQ",
 883        "members": [
 884          {
 885            "type": "CHOICE",
 886            "members": [
 887              {
 888                "type": "FIELD",
 889                "name": "attributes",
 890                "content": {
 891                  "type": "SYMBOL",
 892                  "name": "attribute_list"
 893                }
 894              },
 895              {
 896                "type": "BLANK"
 897              }
 898            ]
 899          },
 900          {
 901            "type": "ALIAS",
 902            "content": {
 903              "type": "PATTERN",
 904              "value": "enum",
 905              "flags": "i"
 906            },
 907            "named": false,
 908            "value": "enum"
 909          },
 910          {
 911            "type": "FIELD",
 912            "name": "name",
 913            "content": {
 914              "type": "SYMBOL",
 915              "name": "name"
 916            }
 917          },
 918          {
 919            "type": "CHOICE",
 920            "members": [
 921              {
 922                "type": "SEQ",
 923                "members": [
 924                  {
 925                    "type": "STRING",
 926                    "value": ":"
 927                  },
 928                  {
 929                    "type": "ALIAS",
 930                    "content": {
 931                      "type": "CHOICE",
 932                      "members": [
 933                        {
 934                          "type": "STRING",
 935                          "value": "string"
 936                        },
 937                        {
 938                          "type": "STRING",
 939                          "value": "int"
 940                        }
 941                      ]
 942                    },
 943                    "named": true,
 944                    "value": "primitive_type"
 945                  }
 946                ]
 947              },
 948              {
 949                "type": "BLANK"
 950              }
 951            ]
 952          },
 953          {
 954            "type": "CHOICE",
 955            "members": [
 956              {
 957                "type": "SYMBOL",
 958                "name": "class_interface_clause"
 959              },
 960              {
 961                "type": "BLANK"
 962              }
 963            ]
 964          },
 965          {
 966            "type": "FIELD",
 967            "name": "body",
 968            "content": {
 969              "type": "SYMBOL",
 970              "name": "enum_declaration_list"
 971            }
 972          }
 973        ]
 974      }
 975    },
 976    "enum_declaration_list": {
 977      "type": "SEQ",
 978      "members": [
 979        {
 980          "type": "STRING",
 981          "value": "{"
 982        },
 983        {
 984          "type": "REPEAT",
 985          "content": {
 986            "type": "SYMBOL",
 987            "name": "_enum_member_declaration"
 988          }
 989        },
 990        {
 991          "type": "STRING",
 992          "value": "}"
 993        }
 994      ]
 995    },
 996    "_enum_member_declaration": {
 997      "type": "CHOICE",
 998      "members": [
 999        {
1000          "type": "SYMBOL",
1001          "name": "enum_case"
1002        },
1003        {
1004          "type": "SYMBOL",
1005          "name": "method_declaration"
1006        },
1007        {
1008          "type": "SYMBOL",
1009          "name": "use_declaration"
1010        }
1011      ]
1012    },
1013    "enum_case": {
1014      "type": "SEQ",
1015      "members": [
1016        {
1017          "type": "CHOICE",
1018          "members": [
1019            {
1020              "type": "FIELD",
1021              "name": "attributes",
1022              "content": {
1023                "type": "SYMBOL",
1024                "name": "attribute_list"
1025              }
1026            },
1027            {
1028              "type": "BLANK"
1029            }
1030          ]
1031        },
1032        {
1033          "type": "ALIAS",
1034          "content": {
1035            "type": "PATTERN",
1036            "value": "case",
1037            "flags": "i"
1038          },
1039          "named": false,
1040          "value": "case"
1041        },
1042        {
1043          "type": "FIELD",
1044          "name": "name",
1045          "content": {
1046            "type": "SYMBOL",
1047            "name": "name"
1048          }
1049        },
1050        {
1051          "type": "CHOICE",
1052          "members": [
1053            {
1054              "type": "SEQ",
1055              "members": [
1056                {
1057                  "type": "STRING",
1058                  "value": "="
1059                },
1060                {
1061                  "type": "FIELD",
1062                  "name": "value",
1063                  "content": {
1064                    "type": "CHOICE",
1065                    "members": [
1066                      {
1067                        "type": "SYMBOL",
1068                        "name": "_string"
1069                      },
1070                      {
1071                        "type": "SYMBOL",
1072                        "name": "integer"
1073                      }
1074                    ]
1075                  }
1076                }
1077              ]
1078            },
1079            {
1080              "type": "BLANK"
1081            }
1082          ]
1083        },
1084        {
1085          "type": "SYMBOL",
1086          "name": "_semicolon"
1087        }
1088      ]
1089    },
1090    "class_declaration": {
1091      "type": "PREC_RIGHT",
1092      "value": 0,
1093      "content": {
1094        "type": "SEQ",
1095        "members": [
1096          {
1097            "type": "CHOICE",
1098            "members": [
1099              {
1100                "type": "FIELD",
1101                "name": "attributes",
1102                "content": {
1103                  "type": "SYMBOL",
1104                  "name": "attribute_list"
1105                }
1106              },
1107              {
1108                "type": "BLANK"
1109              }
1110            ]
1111          },
1112          {
1113            "type": "REPEAT",
1114            "content": {
1115              "type": "SYMBOL",
1116              "name": "_modifier"
1117            }
1118          },
1119          {
1120            "type": "ALIAS",
1121            "content": {
1122              "type": "PATTERN",
1123              "value": "class",
1124              "flags": "i"
1125            },
1126            "named": false,
1127            "value": "class"
1128          },
1129          {
1130            "type": "FIELD",
1131            "name": "name",
1132            "content": {
1133              "type": "SYMBOL",
1134              "name": "name"
1135            }
1136          },
1137          {
1138            "type": "CHOICE",
1139            "members": [
1140              {
1141                "type": "SYMBOL",
1142                "name": "base_clause"
1143              },
1144              {
1145                "type": "BLANK"
1146              }
1147            ]
1148          },
1149          {
1150            "type": "CHOICE",
1151            "members": [
1152              {
1153                "type": "SYMBOL",
1154                "name": "class_interface_clause"
1155              },
1156              {
1157                "type": "BLANK"
1158              }
1159            ]
1160          },
1161          {
1162            "type": "FIELD",
1163            "name": "body",
1164            "content": {
1165              "type": "SYMBOL",
1166              "name": "declaration_list"
1167            }
1168          }
1169        ]
1170      }
1171    },
1172    "declaration_list": {
1173      "type": "SEQ",
1174      "members": [
1175        {
1176          "type": "STRING",
1177          "value": "{"
1178        },
1179        {
1180          "type": "REPEAT",
1181          "content": {
1182            "type": "SYMBOL",
1183            "name": "_member_declaration"
1184          }
1185        },
1186        {
1187          "type": "STRING",
1188          "value": "}"
1189        }
1190      ]
1191    },
1192    "final_modifier": {
1193      "type": "ALIAS",
1194      "content": {
1195        "type": "PATTERN",
1196        "value": "final",
1197        "flags": "i"
1198      },
1199      "named": false,
1200      "value": "final"
1201    },
1202    "abstract_modifier": {
1203      "type": "ALIAS",
1204      "content": {
1205        "type": "PATTERN",
1206        "value": "abstract",
1207        "flags": "i"
1208      },
1209      "named": false,
1210      "value": "abstract"
1211    },
1212    "readonly_modifier": {
1213      "type": "ALIAS",
1214      "content": {
1215        "type": "PATTERN",
1216        "value": "readonly",
1217        "flags": "i"
1218      },
1219      "named": false,
1220      "value": "readonly"
1221    },
1222    "class_interface_clause": {
1223      "type": "SEQ",
1224      "members": [
1225        {
1226          "type": "ALIAS",
1227          "content": {
1228            "type": "PATTERN",
1229            "value": "implements",
1230            "flags": "i"
1231          },
1232          "named": false,
1233          "value": "implements"
1234        },
1235        {
1236          "type": "SEQ",
1237          "members": [
1238            {
1239              "type": "SYMBOL",
1240              "name": "_name"
1241            },
1242            {
1243              "type": "REPEAT",
1244              "content": {
1245                "type": "SEQ",
1246                "members": [
1247                  {
1248                    "type": "STRING",
1249                    "value": ","
1250                  },
1251                  {
1252                    "type": "SYMBOL",
1253                    "name": "_name"
1254                  }
1255                ]
1256              }
1257            }
1258          ]
1259        }
1260      ]
1261    },
1262    "_member_declaration": {
1263      "type": "CHOICE",
1264      "members": [
1265        {
1266          "type": "ALIAS",
1267          "content": {
1268            "type": "SYMBOL",
1269            "name": "_class_const_declaration"
1270          },
1271          "named": true,
1272          "value": "const_declaration"
1273        },
1274        {
1275          "type": "SYMBOL",
1276          "name": "property_declaration"
1277        },
1278        {
1279          "type": "SYMBOL",
1280          "name": "method_declaration"
1281        },
1282        {
1283          "type": "SYMBOL",
1284          "name": "use_declaration"
1285        }
1286      ]
1287    },
1288    "const_declaration": {
1289      "type": "SYMBOL",
1290      "name": "_const_declaration"
1291    },
1292    "_class_const_declaration": {
1293      "type": "SEQ",
1294      "members": [
1295        {
1296          "type": "CHOICE",
1297          "members": [
1298            {
1299              "type": "FIELD",
1300              "name": "attributes",
1301              "content": {
1302                "type": "SYMBOL",
1303                "name": "attribute_list"
1304              }
1305            },
1306            {
1307              "type": "BLANK"
1308            }
1309          ]
1310        },
1311        {
1312          "type": "CHOICE",
1313          "members": [
1314            {
1315              "type": "SYMBOL",
1316              "name": "final_modifier"
1317            },
1318            {
1319              "type": "BLANK"
1320            }
1321          ]
1322        },
1323        {
1324          "type": "SYMBOL",
1325          "name": "_const_declaration"
1326        }
1327      ]
1328    },
1329    "_const_declaration": {
1330      "type": "SEQ",
1331      "members": [
1332        {
1333          "type": "REPEAT",
1334          "content": {
1335            "type": "SYMBOL",
1336            "name": "_modifier"
1337          }
1338        },
1339        {
1340          "type": "ALIAS",
1341          "content": {
1342            "type": "PATTERN",
1343            "value": "const",
1344            "flags": "i"
1345          },
1346          "named": false,
1347          "value": "const"
1348        },
1349        {
1350          "type": "CHOICE",
1351          "members": [
1352            {
1353              "type": "FIELD",
1354              "name": "type",
1355              "content": {
1356                "type": "SYMBOL",
1357                "name": "type"
1358              }
1359            },
1360            {
1361              "type": "BLANK"
1362            }
1363          ]
1364        },
1365        {
1366          "type": "SEQ",
1367          "members": [
1368            {
1369              "type": "SYMBOL",
1370              "name": "const_element"
1371            },
1372            {
1373              "type": "REPEAT",
1374              "content": {
1375                "type": "SEQ",
1376                "members": [
1377                  {
1378                    "type": "STRING",
1379                    "value": ","
1380                  },
1381                  {
1382                    "type": "SYMBOL",
1383                    "name": "const_element"
1384                  }
1385                ]
1386              }
1387            }
1388          ]
1389        },
1390        {
1391          "type": "SYMBOL",
1392          "name": "_semicolon"
1393        }
1394      ]
1395    },
1396    "property_declaration": {
1397      "type": "SEQ",
1398      "members": [
1399        {
1400          "type": "CHOICE",
1401          "members": [
1402            {
1403              "type": "FIELD",
1404              "name": "attributes",
1405              "content": {
1406                "type": "SYMBOL",
1407                "name": "attribute_list"
1408              }
1409            },
1410            {
1411              "type": "BLANK"
1412            }
1413          ]
1414        },
1415        {
1416          "type": "REPEAT1",
1417          "content": {
1418            "type": "SYMBOL",
1419            "name": "_modifier"
1420          }
1421        },
1422        {
1423          "type": "CHOICE",
1424          "members": [
1425            {
1426              "type": "FIELD",
1427              "name": "type",
1428              "content": {
1429                "type": "SYMBOL",
1430                "name": "type"
1431              }
1432            },
1433            {
1434              "type": "BLANK"
1435            }
1436          ]
1437        },
1438        {
1439          "type": "SEQ",
1440          "members": [
1441            {
1442              "type": "SYMBOL",
1443              "name": "property_element"
1444            },
1445            {
1446              "type": "REPEAT",
1447              "content": {
1448                "type": "SEQ",
1449                "members": [
1450                  {
1451                    "type": "STRING",
1452                    "value": ","
1453                  },
1454                  {
1455                    "type": "SYMBOL",
1456                    "name": "property_element"
1457                  }
1458                ]
1459              }
1460            }
1461          ]
1462        },
1463        {
1464          "type": "CHOICE",
1465          "members": [
1466            {
1467              "type": "SYMBOL",
1468              "name": "_semicolon"
1469            },
1470            {
1471              "type": "SYMBOL",
1472              "name": "property_hook_list"
1473            }
1474          ]
1475        }
1476      ]
1477    },
1478    "_modifier": {
1479      "type": "PREC_LEFT",
1480      "value": 0,
1481      "content": {
1482        "type": "CHOICE",
1483        "members": [
1484          {
1485            "type": "SYMBOL",
1486            "name": "var_modifier"
1487          },
1488          {
1489            "type": "SYMBOL",
1490            "name": "visibility_modifier"
1491          },
1492          {
1493            "type": "SYMBOL",
1494            "name": "static_modifier"
1495          },
1496          {
1497            "type": "SYMBOL",
1498            "name": "final_modifier"
1499          },
1500          {
1501            "type": "SYMBOL",
1502            "name": "abstract_modifier"
1503          },
1504          {
1505            "type": "SYMBOL",
1506            "name": "readonly_modifier"
1507          }
1508        ]
1509      }
1510    },
1511    "property_element": {
1512      "type": "SEQ",
1513      "members": [
1514        {
1515          "type": "FIELD",
1516          "name": "name",
1517          "content": {
1518            "type": "SYMBOL",
1519            "name": "variable_name"
1520          }
1521        },
1522        {
1523          "type": "CHOICE",
1524          "members": [
1525            {
1526              "type": "SEQ",
1527              "members": [
1528                {
1529                  "type": "STRING",
1530                  "value": "="
1531                },
1532                {
1533                  "type": "FIELD",
1534                  "name": "default_value",
1535                  "content": {
1536                    "type": "SYMBOL",
1537                    "name": "expression"
1538                  }
1539                }
1540              ]
1541            },
1542            {
1543              "type": "BLANK"
1544            }
1545          ]
1546        }
1547      ]
1548    },
1549    "property_hook_list": {
1550      "type": "SEQ",
1551      "members": [
1552        {
1553          "type": "STRING",
1554          "value": "{"
1555        },
1556        {
1557          "type": "REPEAT",
1558          "content": {
1559            "type": "SYMBOL",
1560            "name": "property_hook"
1561          }
1562        },
1563        {
1564          "type": "STRING",
1565          "value": "}"
1566        }
1567      ]
1568    },
1569    "property_hook": {
1570      "type": "SEQ",
1571      "members": [
1572        {
1573          "type": "CHOICE",
1574          "members": [
1575            {
1576              "type": "FIELD",
1577              "name": "attributes",
1578              "content": {
1579                "type": "SYMBOL",
1580                "name": "attribute_list"
1581              }
1582            },
1583            {
1584              "type": "BLANK"
1585            }
1586          ]
1587        },
1588        {
1589          "type": "CHOICE",
1590          "members": [
1591            {
1592              "type": "FIELD",
1593              "name": "final",
1594              "content": {
1595                "type": "SYMBOL",
1596                "name": "final_modifier"
1597              }
1598            },
1599            {
1600              "type": "BLANK"
1601            }
1602          ]
1603        },
1604        {
1605          "type": "CHOICE",
1606          "members": [
1607            {
1608              "type": "FIELD",
1609              "name": "reference_modifier",
1610              "content": {
1611                "type": "SYMBOL",
1612                "name": "reference_modifier"
1613              }
1614            },
1615            {
1616              "type": "BLANK"
1617            }
1618          ]
1619        },
1620        {
1621          "type": "SYMBOL",
1622          "name": "name"
1623        },
1624        {
1625          "type": "CHOICE",
1626          "members": [
1627            {
1628              "type": "FIELD",
1629              "name": "parameters",
1630              "content": {
1631                "type": "SYMBOL",
1632                "name": "formal_parameters"
1633              }
1634            },
1635            {
1636              "type": "BLANK"
1637            }
1638          ]
1639        },
1640        {
1641          "type": "SYMBOL",
1642          "name": "_property_hook_body"
1643        }
1644      ]
1645    },
1646    "_property_hook_body": {
1647      "type": "CHOICE",
1648      "members": [
1649        {
1650          "type": "SEQ",
1651          "members": [
1652            {
1653              "type": "STRING",
1654              "value": "=>"
1655            },
1656            {
1657              "type": "FIELD",
1658              "name": "body",
1659              "content": {
1660                "type": "SYMBOL",
1661                "name": "expression"
1662              }
1663            },
1664            {
1665              "type": "SYMBOL",
1666              "name": "_semicolon"
1667            }
1668          ]
1669        },
1670        {
1671          "type": "FIELD",
1672          "name": "body",
1673          "content": {
1674            "type": "SYMBOL",
1675            "name": "compound_statement"
1676          }
1677        },
1678        {
1679          "type": "SYMBOL",
1680          "name": "_semicolon"
1681        }
1682      ]
1683    },
1684    "method_declaration": {
1685      "type": "SEQ",
1686      "members": [
1687        {
1688          "type": "CHOICE",
1689          "members": [
1690            {
1691              "type": "FIELD",
1692              "name": "attributes",
1693              "content": {
1694                "type": "SYMBOL",
1695                "name": "attribute_list"
1696              }
1697            },
1698            {
1699              "type": "BLANK"
1700            }
1701          ]
1702        },
1703        {
1704          "type": "REPEAT",
1705          "content": {
1706            "type": "SYMBOL",
1707            "name": "_modifier"
1708          }
1709        },
1710        {
1711          "type": "SYMBOL",
1712          "name": "_function_definition_header"
1713        },
1714        {
1715          "type": "CHOICE",
1716          "members": [
1717            {
1718              "type": "FIELD",
1719              "name": "body",
1720              "content": {
1721                "type": "SYMBOL",
1722                "name": "compound_statement"
1723              }
1724            },
1725            {
1726              "type": "SYMBOL",
1727              "name": "_semicolon"
1728            }
1729          ]
1730        }
1731      ]
1732    },
1733    "var_modifier": {
1734      "type": "PATTERN",
1735      "value": "var",
1736      "flags": "i"
1737    },
1738    "static_modifier": {
1739      "type": "ALIAS",
1740      "content": {
1741        "type": "PATTERN",
1742        "value": "static",
1743        "flags": "i"
1744      },
1745      "named": false,
1746      "value": "static"
1747    },
1748    "use_declaration": {
1749      "type": "SEQ",
1750      "members": [
1751        {
1752          "type": "ALIAS",
1753          "content": {
1754            "type": "PATTERN",
1755            "value": "use",
1756            "flags": "i"
1757          },
1758          "named": false,
1759          "value": "use"
1760        },
1761        {
1762          "type": "SEQ",
1763          "members": [
1764            {
1765              "type": "SYMBOL",
1766              "name": "_name"
1767            },
1768            {
1769              "type": "REPEAT",
1770              "content": {
1771                "type": "SEQ",
1772                "members": [
1773                  {
1774                    "type": "STRING",
1775                    "value": ","
1776                  },
1777                  {
1778                    "type": "SYMBOL",
1779                    "name": "_name"
1780                  }
1781                ]
1782              }
1783            }
1784          ]
1785        },
1786        {
1787          "type": "CHOICE",
1788          "members": [
1789            {
1790              "type": "SYMBOL",
1791              "name": "use_list"
1792            },
1793            {
1794              "type": "SYMBOL",
1795              "name": "_semicolon"
1796            }
1797          ]
1798        }
1799      ]
1800    },
1801    "use_list": {
1802      "type": "SEQ",
1803      "members": [
1804        {
1805          "type": "STRING",
1806          "value": "{"
1807        },
1808        {
1809          "type": "REPEAT",
1810          "content": {
1811            "type": "SEQ",
1812            "members": [
1813              {
1814                "type": "CHOICE",
1815                "members": [
1816                  {
1817                    "type": "SYMBOL",
1818                    "name": "use_instead_of_clause"
1819                  },
1820                  {
1821                    "type": "SYMBOL",
1822                    "name": "use_as_clause"
1823                  }
1824                ]
1825              },
1826              {
1827                "type": "SYMBOL",
1828                "name": "_semicolon"
1829              }
1830            ]
1831          }
1832        },
1833        {
1834          "type": "STRING",
1835          "value": "}"
1836        }
1837      ]
1838    },
1839    "use_instead_of_clause": {
1840      "type": "PREC_LEFT",
1841      "value": 0,
1842      "content": {
1843        "type": "SEQ",
1844        "members": [
1845          {
1846            "type": "SYMBOL",
1847            "name": "class_constant_access_expression"
1848          },
1849          {
1850            "type": "ALIAS",
1851            "content": {
1852              "type": "PATTERN",
1853              "value": "insteadof",
1854              "flags": "i"
1855            },
1856            "named": false,
1857            "value": "insteadof"
1858          },
1859          {
1860            "type": "SYMBOL",
1861            "name": "name"
1862          }
1863        ]
1864      }
1865    },
1866    "use_as_clause": {
1867      "type": "SEQ",
1868      "members": [
1869        {
1870          "type": "CHOICE",
1871          "members": [
1872            {
1873              "type": "SYMBOL",
1874              "name": "class_constant_access_expression"
1875            },
1876            {
1877              "type": "SYMBOL",
1878              "name": "name"
1879            }
1880          ]
1881        },
1882        {
1883          "type": "ALIAS",
1884          "content": {
1885            "type": "PATTERN",
1886            "value": "as",
1887            "flags": "i"
1888          },
1889          "named": false,
1890          "value": "as"
1891        },
1892        {
1893          "type": "CHOICE",
1894          "members": [
1895            {
1896              "type": "SEQ",
1897              "members": [
1898                {
1899                  "type": "CHOICE",
1900                  "members": [
1901                    {
1902                      "type": "SYMBOL",
1903                      "name": "visibility_modifier"
1904                    },
1905                    {
1906                      "type": "BLANK"
1907                    }
1908                  ]
1909                },
1910                {
1911                  "type": "SYMBOL",
1912                  "name": "name"
1913                }
1914              ]
1915            },
1916            {
1917              "type": "SEQ",
1918              "members": [
1919                {
1920                  "type": "SYMBOL",
1921                  "name": "visibility_modifier"
1922                },
1923                {
1924                  "type": "CHOICE",
1925                  "members": [
1926                    {
1927                      "type": "SYMBOL",
1928                      "name": "name"
1929                    },
1930                    {
1931                      "type": "BLANK"
1932                    }
1933                  ]
1934                }
1935              ]
1936            }
1937          ]
1938        }
1939      ]
1940    },
1941    "visibility_modifier": {
1942      "type": "CHOICE",
1943      "members": [
1944        {
1945          "type": "ALIAS",
1946          "content": {
1947            "type": "PATTERN",
1948            "value": "public",
1949            "flags": "i"
1950          },
1951          "named": false,
1952          "value": "public"
1953        },
1954        {
1955          "type": "ALIAS",
1956          "content": {
1957            "type": "PATTERN",
1958            "value": "protected",
1959            "flags": "i"
1960          },
1961          "named": false,
1962          "value": "protected"
1963        },
1964        {
1965          "type": "ALIAS",
1966          "content": {
1967            "type": "PATTERN",
1968            "value": "private",
1969            "flags": "i"
1970          },
1971          "named": false,
1972          "value": "private"
1973        }
1974      ]
1975    },
1976    "function_definition": {
1977      "type": "SEQ",
1978      "members": [
1979        {
1980          "type": "CHOICE",
1981          "members": [
1982            {
1983              "type": "FIELD",
1984              "name": "attributes",
1985              "content": {
1986                "type": "SYMBOL",
1987                "name": "attribute_list"
1988              }
1989            },
1990            {
1991              "type": "BLANK"
1992            }
1993          ]
1994        },
1995        {
1996          "type": "SYMBOL",
1997          "name": "_function_definition_header"
1998        },
1999        {
2000          "type": "FIELD",
2001          "name": "body",
2002          "content": {
2003            "type": "SYMBOL",
2004            "name": "compound_statement"
2005          }
2006        }
2007      ]
2008    },
2009    "_function_definition_header": {
2010      "type": "SEQ",
2011      "members": [
2012        {
2013          "type": "ALIAS",
2014          "content": {
2015            "type": "PATTERN",
2016            "value": "function",
2017            "flags": "i"
2018          },
2019          "named": false,
2020          "value": "function"
2021        },
2022        {
2023          "type": "CHOICE",
2024          "members": [
2025            {
2026              "type": "SYMBOL",
2027              "name": "reference_modifier"
2028            },
2029            {
2030              "type": "BLANK"
2031            }
2032          ]
2033        },
2034        {
2035          "type": "FIELD",
2036          "name": "name",
2037          "content": {
2038            "type": "SYMBOL",
2039            "name": "_identifier"
2040          }
2041        },
2042        {
2043          "type": "FIELD",
2044          "name": "parameters",
2045          "content": {
2046            "type": "SYMBOL",
2047            "name": "formal_parameters"
2048          }
2049        },
2050        {
2051          "type": "CHOICE",
2052          "members": [
2053            {
2054              "type": "SYMBOL",
2055              "name": "_return_type"
2056            },
2057            {
2058              "type": "BLANK"
2059            }
2060          ]
2061        }
2062      ]
2063    },
2064    "anonymous_function": {
2065      "type": "SEQ",
2066      "members": [
2067        {
2068          "type": "SYMBOL",
2069          "name": "_anonymous_function_header"
2070        },
2071        {
2072          "type": "FIELD",
2073          "name": "body",
2074          "content": {
2075            "type": "SYMBOL",
2076            "name": "compound_statement"
2077          }
2078        }
2079      ]
2080    },
2081    "anonymous_function_use_clause": {
2082      "type": "SEQ",
2083      "members": [
2084        {
2085          "type": "ALIAS",
2086          "content": {
2087            "type": "PATTERN",
2088            "value": "use",
2089            "flags": "i"
2090          },
2091          "named": false,
2092          "value": "use"
2093        },
2094        {
2095          "type": "STRING",
2096          "value": "("
2097        },
2098        {
2099          "type": "SEQ",
2100          "members": [
2101            {
2102              "type": "CHOICE",
2103              "members": [
2104                {
2105                  "type": "SYMBOL",
2106                  "name": "by_ref"
2107                },
2108                {
2109                  "type": "SYMBOL",
2110                  "name": "variable_name"
2111                }
2112              ]
2113            },
2114            {
2115              "type": "REPEAT",
2116              "content": {
2117                "type": "SEQ",
2118                "members": [
2119                  {
2120                    "type": "STRING",
2121                    "value": ","
2122                  },
2123                  {
2124                    "type": "CHOICE",
2125                    "members": [
2126                      {
2127                        "type": "SYMBOL",
2128                        "name": "by_ref"
2129                      },
2130                      {
2131                        "type": "SYMBOL",
2132                        "name": "variable_name"
2133                      }
2134                    ]
2135                  }
2136                ]
2137              }
2138            }
2139          ]
2140        },
2141        {
2142          "type": "CHOICE",
2143          "members": [
2144            {
2145              "type": "STRING",
2146              "value": ","
2147            },
2148            {
2149              "type": "BLANK"
2150            }
2151          ]
2152        },
2153        {
2154          "type": "STRING",
2155          "value": ")"
2156        }
2157      ]
2158    },
2159    "_anonymous_function_header": {
2160      "type": "SEQ",
2161      "members": [
2162        {
2163          "type": "CHOICE",
2164          "members": [
2165            {
2166              "type": "FIELD",
2167              "name": "attributes",
2168              "content": {
2169                "type": "SYMBOL",
2170                "name": "attribute_list"
2171              }
2172            },
2173            {
2174              "type": "BLANK"
2175            }
2176          ]
2177        },
2178        {
2179          "type": "CHOICE",
2180          "members": [
2181            {
2182              "type": "FIELD",
2183              "name": "static_modifier",
2184              "content": {
2185                "type": "SYMBOL",
2186                "name": "static_modifier"
2187              }
2188            },
2189            {
2190              "type": "BLANK"
2191            }
2192          ]
2193        },
2194        {
2195          "type": "ALIAS",
2196          "content": {
2197            "type": "PATTERN",
2198            "value": "function",
2199            "flags": "i"
2200          },
2201          "named": false,
2202          "value": "function"
2203        },
2204        {
2205          "type": "CHOICE",
2206          "members": [
2207            {
2208              "type": "FIELD",
2209              "name": "reference_modifier",
2210              "content": {
2211                "type": "SYMBOL",
2212                "name": "reference_modifier"
2213              }
2214            },
2215            {
2216              "type": "BLANK"
2217            }
2218          ]
2219        },
2220        {
2221          "type": "FIELD",
2222          "name": "parameters",
2223          "content": {
2224            "type": "SYMBOL",
2225            "name": "formal_parameters"
2226          }
2227        },
2228        {
2229          "type": "CHOICE",
2230          "members": [
2231            {
2232              "type": "SYMBOL",
2233              "name": "anonymous_function_use_clause"
2234            },
2235            {
2236              "type": "BLANK"
2237            }
2238          ]
2239        },
2240        {
2241          "type": "CHOICE",
2242          "members": [
2243            {
2244              "type": "SYMBOL",
2245              "name": "_return_type"
2246            },
2247            {
2248              "type": "BLANK"
2249            }
2250          ]
2251        }
2252      ]
2253    },
2254    "_arrow_function_header": {
2255      "type": "SEQ",
2256      "members": [
2257        {
2258          "type": "CHOICE",
2259          "members": [
2260            {
2261              "type": "FIELD",
2262              "name": "attributes",
2263              "content": {
2264                "type": "SYMBOL",
2265                "name": "attribute_list"
2266              }
2267            },
2268            {
2269              "type": "BLANK"
2270            }
2271          ]
2272        },
2273        {
2274          "type": "CHOICE",
2275          "members": [
2276            {
2277              "type": "FIELD",
2278              "name": "static_modifier",
2279              "content": {
2280                "type": "SYMBOL",
2281                "name": "static_modifier"
2282              }
2283            },
2284            {
2285              "type": "BLANK"
2286            }
2287          ]
2288        },
2289        {
2290          "type": "ALIAS",
2291          "content": {
2292            "type": "PATTERN",
2293            "value": "fn",
2294            "flags": "i"
2295          },
2296          "named": false,
2297          "value": "fn"
2298        },
2299        {
2300          "type": "CHOICE",
2301          "members": [
2302            {
2303              "type": "FIELD",
2304              "name": "reference_modifier",
2305              "content": {
2306                "type": "SYMBOL",
2307                "name": "reference_modifier"
2308              }
2309            },
2310            {
2311              "type": "BLANK"
2312            }
2313          ]
2314        },
2315        {
2316          "type": "FIELD",
2317          "name": "parameters",
2318          "content": {
2319            "type": "SYMBOL",
2320            "name": "formal_parameters"
2321          }
2322        },
2323        {
2324          "type": "CHOICE",
2325          "members": [
2326            {
2327              "type": "SYMBOL",
2328              "name": "_return_type"
2329            },
2330            {
2331              "type": "BLANK"
2332            }
2333          ]
2334        }
2335      ]
2336    },
2337    "arrow_function": {
2338      "type": "SEQ",
2339      "members": [
2340        {
2341          "type": "SYMBOL",
2342          "name": "_arrow_function_header"
2343        },
2344        {
2345          "type": "STRING",
2346          "value": "=>"
2347        },
2348        {
2349          "type": "FIELD",
2350          "name": "body",
2351          "content": {
2352            "type": "SYMBOL",
2353            "name": "expression"
2354          }
2355        }
2356      ]
2357    },
2358    "formal_parameters": {
2359      "type": "SEQ",
2360      "members": [
2361        {
2362          "type": "STRING",
2363          "value": "("
2364        },
2365        {
2366          "type": "CHOICE",
2367          "members": [
2368            {
2369              "type": "SEQ",
2370              "members": [
2371                {
2372                  "type": "CHOICE",
2373                  "members": [
2374                    {
2375                      "type": "SYMBOL",
2376                      "name": "simple_parameter"
2377                    },
2378                    {
2379                      "type": "SYMBOL",
2380                      "name": "variadic_parameter"
2381                    },
2382                    {
2383                      "type": "SYMBOL",
2384                      "name": "property_promotion_parameter"
2385                    }
2386                  ]
2387                },
2388                {
2389                  "type": "REPEAT",
2390                  "content": {
2391                    "type": "SEQ",
2392                    "members": [
2393                      {
2394                        "type": "STRING",
2395                        "value": ","
2396                      },
2397                      {
2398                        "type": "CHOICE",
2399                        "members": [
2400                          {
2401                            "type": "SYMBOL",
2402                            "name": "simple_parameter"
2403                          },
2404                          {
2405                            "type": "SYMBOL",
2406                            "name": "variadic_parameter"
2407                          },
2408                          {
2409                            "type": "SYMBOL",
2410                            "name": "property_promotion_parameter"
2411                          }
2412                        ]
2413                      }
2414                    ]
2415                  }
2416                }
2417              ]
2418            },
2419            {
2420              "type": "BLANK"
2421            }
2422          ]
2423        },
2424        {
2425          "type": "CHOICE",
2426          "members": [
2427            {
2428              "type": "STRING",
2429              "value": ","
2430            },
2431            {
2432              "type": "BLANK"
2433            }
2434          ]
2435        },
2436        {
2437          "type": "STRING",
2438          "value": ")"
2439        }
2440      ]
2441    },
2442    "property_promotion_parameter": {
2443      "type": "SEQ",
2444      "members": [
2445        {
2446          "type": "CHOICE",
2447          "members": [
2448            {
2449              "type": "FIELD",
2450              "name": "attributes",
2451              "content": {
2452                "type": "SYMBOL",
2453                "name": "attribute_list"
2454              }
2455            },
2456            {
2457              "type": "BLANK"
2458            }
2459          ]
2460        },
2461        {
2462          "type": "FIELD",
2463          "name": "visibility",
2464          "content": {
2465            "type": "SYMBOL",
2466            "name": "visibility_modifier"
2467          }
2468        },
2469        {
2470          "type": "FIELD",
2471          "name": "readonly",
2472          "content": {
2473            "type": "CHOICE",
2474            "members": [
2475              {
2476                "type": "SYMBOL",
2477                "name": "readonly_modifier"
2478              },
2479              {
2480                "type": "BLANK"
2481              }
2482            ]
2483          }
2484        },
2485        {
2486          "type": "FIELD",
2487          "name": "type",
2488          "content": {
2489            "type": "CHOICE",
2490            "members": [
2491              {
2492                "type": "SYMBOL",
2493                "name": "type"
2494              },
2495              {
2496                "type": "BLANK"
2497              }
2498            ]
2499          }
2500        },
2501        {
2502          "type": "FIELD",
2503          "name": "name",
2504          "content": {
2505            "type": "CHOICE",
2506            "members": [
2507              {
2508                "type": "SYMBOL",
2509                "name": "by_ref"
2510              },
2511              {
2512                "type": "SYMBOL",
2513                "name": "variable_name"
2514              }
2515            ]
2516          }
2517        },
2518        {
2519          "type": "CHOICE",
2520          "members": [
2521            {
2522              "type": "SEQ",
2523              "members": [
2524                {
2525                  "type": "STRING",
2526                  "value": "="
2527                },
2528                {
2529                  "type": "FIELD",
2530                  "name": "default_value",
2531                  "content": {
2532                    "type": "SYMBOL",
2533                    "name": "expression"
2534                  }
2535                }
2536              ]
2537            },
2538            {
2539              "type": "BLANK"
2540            }
2541          ]
2542        },
2543        {
2544          "type": "CHOICE",
2545          "members": [
2546            {
2547              "type": "SYMBOL",
2548              "name": "property_hook_list"
2549            },
2550            {
2551              "type": "BLANK"
2552            }
2553          ]
2554        }
2555      ]
2556    },
2557    "simple_parameter": {
2558      "type": "SEQ",
2559      "members": [
2560        {
2561          "type": "CHOICE",
2562          "members": [
2563            {
2564              "type": "FIELD",
2565              "name": "attributes",
2566              "content": {
2567                "type": "SYMBOL",
2568                "name": "attribute_list"
2569              }
2570            },
2571            {
2572              "type": "BLANK"
2573            }
2574          ]
2575        },
2576        {
2577          "type": "FIELD",
2578          "name": "type",
2579          "content": {
2580            "type": "CHOICE",
2581            "members": [
2582              {
2583                "type": "SYMBOL",
2584                "name": "type"
2585              },
2586              {
2587                "type": "BLANK"
2588              }
2589            ]
2590          }
2591        },
2592        {
2593          "type": "CHOICE",
2594          "members": [
2595            {
2596              "type": "FIELD",
2597              "name": "reference_modifier",
2598              "content": {
2599                "type": "SYMBOL",
2600                "name": "reference_modifier"
2601              }
2602            },
2603            {
2604              "type": "BLANK"
2605            }
2606          ]
2607        },
2608        {
2609          "type": "FIELD",
2610          "name": "name",
2611          "content": {
2612            "type": "SYMBOL",
2613            "name": "variable_name"
2614          }
2615        },
2616        {
2617          "type": "CHOICE",
2618          "members": [
2619            {
2620              "type": "SEQ",
2621              "members": [
2622                {
2623                  "type": "STRING",
2624                  "value": "="
2625                },
2626                {
2627                  "type": "FIELD",
2628                  "name": "default_value",
2629                  "content": {
2630                    "type": "SYMBOL",
2631                    "name": "expression"
2632                  }
2633                }
2634              ]
2635            },
2636            {
2637              "type": "BLANK"
2638            }
2639          ]
2640        }
2641      ]
2642    },
2643    "variadic_parameter": {
2644      "type": "SEQ",
2645      "members": [
2646        {
2647          "type": "CHOICE",
2648          "members": [
2649            {
2650              "type": "FIELD",
2651              "name": "attributes",
2652              "content": {
2653                "type": "SYMBOL",
2654                "name": "attribute_list"
2655              }
2656            },
2657            {
2658              "type": "BLANK"
2659            }
2660          ]
2661        },
2662        {
2663          "type": "FIELD",
2664          "name": "type",
2665          "content": {
2666            "type": "CHOICE",
2667            "members": [
2668              {
2669                "type": "SYMBOL",
2670                "name": "type"
2671              },
2672              {
2673                "type": "BLANK"
2674              }
2675            ]
2676          }
2677        },
2678        {
2679          "type": "CHOICE",
2680          "members": [
2681            {
2682              "type": "FIELD",
2683              "name": "reference_modifier",
2684              "content": {
2685                "type": "SYMBOL",
2686                "name": "reference_modifier"
2687              }
2688            },
2689            {
2690              "type": "BLANK"
2691            }
2692          ]
2693        },
2694        {
2695          "type": "STRING",
2696          "value": "..."
2697        },
2698        {
2699          "type": "FIELD",
2700          "name": "name",
2701          "content": {
2702            "type": "SYMBOL",
2703            "name": "variable_name"
2704          }
2705        }
2706      ]
2707    },
2708    "type": {
2709      "type": "CHOICE",
2710      "members": [
2711        {
2712          "type": "SYMBOL",
2713          "name": "_types"
2714        },
2715        {
2716          "type": "SYMBOL",
2717          "name": "union_type"
2718        },
2719        {
2720          "type": "SYMBOL",
2721          "name": "intersection_type"
2722        },
2723        {
2724          "type": "SYMBOL",
2725          "name": "disjunctive_normal_form_type"
2726        }
2727      ]
2728    },
2729    "_types": {
2730      "type": "CHOICE",
2731      "members": [
2732        {
2733          "type": "SYMBOL",
2734          "name": "optional_type"
2735        },
2736        {
2737          "type": "SYMBOL",
2738          "name": "named_type"
2739        },
2740        {
2741          "type": "SYMBOL",
2742          "name": "primitive_type"
2743        }
2744      ]
2745    },
2746    "named_type": {
2747      "type": "CHOICE",
2748      "members": [
2749        {
2750          "type": "SYMBOL",
2751          "name": "name"
2752        },
2753        {
2754          "type": "SYMBOL",
2755          "name": "qualified_name"
2756        }
2757      ]
2758    },
2759    "optional_type": {
2760      "type": "SEQ",
2761      "members": [
2762        {
2763          "type": "STRING",
2764          "value": "?"
2765        },
2766        {
2767          "type": "CHOICE",
2768          "members": [
2769            {
2770              "type": "SYMBOL",
2771              "name": "named_type"
2772            },
2773            {
2774              "type": "SYMBOL",
2775              "name": "primitive_type"
2776            }
2777          ]
2778        }
2779      ]
2780    },
2781    "bottom_type": {
2782      "type": "STRING",
2783      "value": "never"
2784    },
2785    "union_type": {
2786      "type": "SEQ",
2787      "members": [
2788        {
2789          "type": "SYMBOL",
2790          "name": "_types"
2791        },
2792        {
2793          "type": "REPEAT",
2794          "content": {
2795            "type": "SEQ",
2796            "members": [
2797              {
2798                "type": "STRING",
2799                "value": "|"
2800              },
2801              {
2802                "type": "SYMBOL",
2803                "name": "_types"
2804              }
2805            ]
2806          }
2807        }
2808      ]
2809    },
2810    "intersection_type": {
2811      "type": "SEQ",
2812      "members": [
2813        {
2814          "type": "SYMBOL",
2815          "name": "_types"
2816        },
2817        {
2818          "type": "REPEAT",
2819          "content": {
2820            "type": "SEQ",
2821            "members": [
2822              {
2823                "type": "TOKEN",
2824                "content": {
2825                  "type": "STRING",
2826                  "value": "&"
2827                }
2828              },
2829              {
2830                "type": "SYMBOL",
2831                "name": "_types"
2832              }
2833            ]
2834          }
2835        }
2836      ]
2837    },
2838    "disjunctive_normal_form_type": {
2839      "type": "PREC_DYNAMIC",
2840      "value": -1,
2841      "content": {
2842        "type": "SEQ",
2843        "members": [
2844          {
2845            "type": "CHOICE",
2846            "members": [
2847              {
2848                "type": "SEQ",
2849                "members": [
2850                  {
2851                    "type": "STRING",
2852                    "value": "("
2853                  },
2854                  {
2855                    "type": "SYMBOL",
2856                    "name": "intersection_type"
2857                  },
2858                  {
2859                    "type": "STRING",
2860                    "value": ")"
2861                  }
2862                ]
2863              },
2864              {
2865                "type": "SYMBOL",
2866                "name": "_types"
2867              }
2868            ]
2869          },
2870          {
2871            "type": "REPEAT",
2872            "content": {
2873              "type": "SEQ",
2874              "members": [
2875                {
2876                  "type": "STRING",
2877                  "value": "|"
2878                },
2879                {
2880                  "type": "CHOICE",
2881                  "members": [
2882                    {
2883                      "type": "SEQ",
2884                      "members": [
2885                        {
2886                          "type": "STRING",
2887                          "value": "("
2888                        },
2889                        {
2890                          "type": "SYMBOL",
2891                          "name": "intersection_type"
2892                        },
2893                        {
2894                          "type": "STRING",
2895                          "value": ")"
2896                        }
2897                      ]
2898                    },
2899                    {
2900                      "type": "SYMBOL",
2901                      "name": "_types"
2902                    }
2903                  ]
2904                }
2905              ]
2906            }
2907          }
2908        ]
2909      }
2910    },
2911    "primitive_type": {
2912      "type": "CHOICE",
2913      "members": [
2914        {
2915          "type": "STRING",
2916          "value": "array"
2917        },
2918        {
2919          "type": "ALIAS",
2920          "content": {
2921            "type": "PATTERN",
2922            "value": "callable",
2923            "flags": "i"
2924          },
2925          "named": false,
2926          "value": "callable"
2927        },
2928        {
2929          "type": "STRING",
2930          "value": "iterable"
2931        },
2932        {
2933          "type": "STRING",
2934          "value": "bool"
2935        },
2936        {
2937          "type": "STRING",
2938          "value": "float"
2939        },
2940        {
2941          "type": "STRING",
2942          "value": "int"
2943        },
2944        {
2945          "type": "STRING",
2946          "value": "string"
2947        },
2948        {
2949          "type": "STRING",
2950          "value": "void"
2951        },
2952        {
2953          "type": "STRING",
2954          "value": "mixed"
2955        },
2956        {
2957          "type": "STRING",
2958          "value": "false"
2959        },
2960        {
2961          "type": "STRING",
2962          "value": "null"
2963        },
2964        {
2965          "type": "STRING",
2966          "value": "true"
2967        }
2968      ]
2969    },
2970    "cast_type": {
2971      "type": "CHOICE",
2972      "members": [
2973        {
2974          "type": "PATTERN",
2975          "value": "array",
2976          "flags": "i"
2977        },
2978        {
2979          "type": "PATTERN",
2980          "value": "binary",
2981          "flags": "i"
2982        },
2983        {
2984          "type": "PATTERN",
2985          "value": "bool",
2986          "flags": "i"
2987        },
2988        {
2989          "type": "PATTERN",
2990          "value": "boolean",
2991          "flags": "i"
2992        },
2993        {
2994          "type": "PATTERN",
2995          "value": "double",
2996          "flags": "i"
2997        },
2998        {
2999          "type": "PATTERN",
3000          "value": "int",
3001          "flags": "i"
3002        },
3003        {
3004          "type": "PATTERN",
3005          "value": "integer",
3006          "flags": "i"
3007        },
3008        {
3009          "type": "PATTERN",
3010          "value": "float",
3011          "flags": "i"
3012        },
3013        {
3014          "type": "PATTERN",
3015          "value": "object",
3016          "flags": "i"
3017        },
3018        {
3019          "type": "PATTERN",
3020          "value": "real",
3021          "flags": "i"
3022        },
3023        {
3024          "type": "PATTERN",
3025          "value": "string",
3026          "flags": "i"
3027        },
3028        {
3029          "type": "PATTERN",
3030          "value": "unset",
3031          "flags": "i"
3032        }
3033      ]
3034    },
3035    "_return_type": {
3036      "type": "SEQ",
3037      "members": [
3038        {
3039          "type": "STRING",
3040          "value": ":"
3041        },
3042        {
3043          "type": "FIELD",
3044          "name": "return_type",
3045          "content": {
3046            "type": "CHOICE",
3047            "members": [
3048              {
3049                "type": "SYMBOL",
3050                "name": "type"
3051              },
3052              {
3053                "type": "SYMBOL",
3054                "name": "bottom_type"
3055              }
3056            ]
3057          }
3058        }
3059      ]
3060    },
3061    "const_element": {
3062      "type": "SEQ",
3063      "members": [
3064        {
3065          "type": "SYMBOL",
3066          "name": "_identifier"
3067        },
3068        {
3069          "type": "STRING",
3070          "value": "="
3071        },
3072        {
3073          "type": "SYMBOL",
3074          "name": "expression"
3075        }
3076      ]
3077    },
3078    "echo_statement": {
3079      "type": "SEQ",
3080      "members": [
3081        {
3082          "type": "ALIAS",
3083          "content": {
3084            "type": "PATTERN",
3085            "value": "echo",
3086            "flags": "i"
3087          },
3088          "named": false,
3089          "value": "echo"
3090        },
3091        {
3092          "type": "SYMBOL",
3093          "name": "_expressions"
3094        },
3095        {
3096          "type": "SYMBOL",
3097          "name": "_semicolon"
3098        }
3099      ]
3100    },
3101    "exit_statement": {
3102      "type": "SEQ",
3103      "members": [
3104        {
3105          "type": "ALIAS",
3106          "content": {
3107            "type": "PATTERN",
3108            "value": "exit",
3109            "flags": "i"
3110          },
3111          "named": false,
3112          "value": "exit"
3113        },
3114        {
3115          "type": "CHOICE",
3116          "members": [
3117            {
3118              "type": "SEQ",
3119              "members": [
3120                {
3121                  "type": "STRING",
3122                  "value": "("
3123                },
3124                {
3125                  "type": "CHOICE",
3126                  "members": [
3127                    {
3128                      "type": "SYMBOL",
3129                      "name": "expression"
3130                    },
3131                    {
3132                      "type": "BLANK"
3133                    }
3134                  ]
3135                },
3136                {
3137                  "type": "STRING",
3138                  "value": ")"
3139                }
3140              ]
3141            },
3142            {
3143              "type": "BLANK"
3144            }
3145          ]
3146        },
3147        {
3148          "type": "SYMBOL",
3149          "name": "_semicolon"
3150        }
3151      ]
3152    },
3153    "unset_statement": {
3154      "type": "SEQ",
3155      "members": [
3156        {
3157          "type": "STRING",
3158          "value": "unset"
3159        },
3160        {
3161          "type": "STRING",
3162          "value": "("
3163        },
3164        {
3165          "type": "SEQ",
3166          "members": [
3167            {
3168              "type": "SYMBOL",
3169              "name": "_variable"
3170            },
3171            {
3172              "type": "REPEAT",
3173              "content": {
3174                "type": "SEQ",
3175                "members": [
3176                  {
3177                    "type": "STRING",
3178                    "value": ","
3179                  },
3180                  {
3181                    "type": "SYMBOL",
3182                    "name": "_variable"
3183                  }
3184                ]
3185              }
3186            }
3187          ]
3188        },
3189        {
3190          "type": "CHOICE",
3191          "members": [
3192            {
3193              "type": "STRING",
3194              "value": ","
3195            },
3196            {
3197              "type": "BLANK"
3198            }
3199          ]
3200        },
3201        {
3202          "type": "STRING",
3203          "value": ")"
3204        },
3205        {
3206          "type": "SYMBOL",
3207          "name": "_semicolon"
3208        }
3209      ]
3210    },
3211    "declare_statement": {
3212      "type": "SEQ",
3213      "members": [
3214        {
3215          "type": "ALIAS",
3216          "content": {
3217            "type": "PATTERN",
3218            "value": "declare",
3219            "flags": "i"
3220          },
3221          "named": false,
3222          "value": "declare"
3223        },
3224        {
3225          "type": "STRING",
3226          "value": "("
3227        },
3228        {
3229          "type": "SYMBOL",
3230          "name": "declare_directive"
3231        },
3232        {
3233          "type": "STRING",
3234          "value": ")"
3235        },
3236        {
3237          "type": "CHOICE",
3238          "members": [
3239            {
3240              "type": "SYMBOL",
3241              "name": "statement"
3242            },
3243            {
3244              "type": "SYMBOL",
3245              "name": "_semicolon"
3246            },
3247            {
3248              "type": "SEQ",
3249              "members": [
3250                {
3251                  "type": "STRING",
3252                  "value": ":"
3253                },
3254                {
3255                  "type": "REPEAT",
3256                  "content": {
3257                    "type": "SYMBOL",
3258                    "name": "statement"
3259                  }
3260                },
3261                {
3262                  "type": "ALIAS",
3263                  "content": {
3264                    "type": "PATTERN",
3265                    "value": "enddeclare",
3266                    "flags": "i"
3267                  },
3268                  "named": false,
3269                  "value": "enddeclare"
3270                },
3271                {
3272                  "type": "SYMBOL",
3273                  "name": "_semicolon"
3274                }
3275              ]
3276            }
3277          ]
3278        }
3279      ]
3280    },
3281    "declare_directive": {
3282      "type": "SEQ",
3283      "members": [
3284        {
3285          "type": "CHOICE",
3286          "members": [
3287            {
3288              "type": "STRING",
3289              "value": "ticks"
3290            },
3291            {
3292              "type": "STRING",
3293              "value": "encoding"
3294            },
3295            {
3296              "type": "STRING",
3297              "value": "strict_types"
3298            }
3299          ]
3300        },
3301        {
3302          "type": "STRING",
3303          "value": "="
3304        },
3305        {
3306          "type": "SYMBOL",
3307          "name": "literal"
3308        }
3309      ]
3310    },
3311    "literal": {
3312      "type": "CHOICE",
3313      "members": [
3314        {
3315          "type": "SYMBOL",
3316          "name": "integer"
3317        },
3318        {
3319          "type": "SYMBOL",
3320          "name": "float"
3321        },
3322        {
3323          "type": "SYMBOL",
3324          "name": "_string"
3325        },
3326        {
3327          "type": "SYMBOL",
3328          "name": "boolean"
3329        },
3330        {
3331          "type": "SYMBOL",
3332          "name": "null"
3333        }
3334      ]
3335    },
3336    "float": {
3337      "type": "PATTERN",
3338      "value": "\\d*(_\\d+)*((\\.\\d*(_\\d+)*)?([eE][\\+-]?\\d+(_\\d+)*)|(\\.\\d*(_\\d+)*)([eE][\\+-]?\\d+(_\\d+)*)?)"
3339    },
3340    "try_statement": {
3341      "type": "SEQ",
3342      "members": [
3343        {
3344          "type": "ALIAS",
3345          "content": {
3346            "type": "PATTERN",
3347            "value": "try",
3348            "flags": "i"
3349          },
3350          "named": false,
3351          "value": "try"
3352        },
3353        {
3354          "type": "FIELD",
3355          "name": "body",
3356          "content": {
3357            "type": "SYMBOL",
3358            "name": "compound_statement"
3359          }
3360        },
3361        {
3362          "type": "REPEAT1",
3363          "content": {
3364            "type": "CHOICE",
3365            "members": [
3366              {
3367                "type": "SYMBOL",
3368                "name": "catch_clause"
3369              },
3370              {
3371                "type": "SYMBOL",
3372                "name": "finally_clause"
3373              }
3374            ]
3375          }
3376        }
3377      ]
3378    },
3379    "catch_clause": {
3380      "type": "SEQ",
3381      "members": [
3382        {
3383          "type": "ALIAS",
3384          "content": {
3385            "type": "PATTERN",
3386            "value": "catch",
3387            "flags": "i"
3388          },
3389          "named": false,
3390          "value": "catch"
3391        },
3392        {
3393          "type": "STRING",
3394          "value": "("
3395        },
3396        {
3397          "type": "FIELD",
3398          "name": "type",
3399          "content": {
3400            "type": "SYMBOL",
3401            "name": "type_list"
3402          }
3403        },
3404        {
3405          "type": "CHOICE",
3406          "members": [
3407            {
3408              "type": "FIELD",
3409              "name": "name",
3410              "content": {
3411                "type": "SYMBOL",
3412                "name": "variable_name"
3413              }
3414            },
3415            {
3416              "type": "BLANK"
3417            }
3418          ]
3419        },
3420        {
3421          "type": "STRING",
3422          "value": ")"
3423        },
3424        {
3425          "type": "FIELD",
3426          "name": "body",
3427          "content": {
3428            "type": "SYMBOL",
3429            "name": "compound_statement"
3430          }
3431        }
3432      ]
3433    },
3434    "type_list": {
3435      "type": "SEQ",
3436      "members": [
3437        {
3438          "type": "SYMBOL",
3439          "name": "named_type"
3440        },
3441        {
3442          "type": "REPEAT",
3443          "content": {
3444            "type": "SEQ",
3445            "members": [
3446              {
3447                "type": "STRING",
3448                "value": "|"
3449              },
3450              {
3451                "type": "SYMBOL",
3452                "name": "named_type"
3453              }
3454            ]
3455          }
3456        }
3457      ]
3458    },
3459    "finally_clause": {
3460      "type": "SEQ",
3461      "members": [
3462        {
3463          "type": "ALIAS",
3464          "content": {
3465            "type": "PATTERN",
3466            "value": "finally",
3467            "flags": "i"
3468          },
3469          "named": false,
3470          "value": "finally"
3471        },
3472        {
3473          "type": "FIELD",
3474          "name": "body",
3475          "content": {
3476            "type": "SYMBOL",
3477            "name": "compound_statement"
3478          }
3479        }
3480      ]
3481    },
3482    "goto_statement": {
3483      "type": "SEQ",
3484      "members": [
3485        {
3486          "type": "ALIAS",
3487          "content": {
3488            "type": "PATTERN",
3489            "value": "goto",
3490            "flags": "i"
3491          },
3492          "named": false,
3493          "value": "goto"
3494        },
3495        {
3496          "type": "SYMBOL",
3497          "name": "name"
3498        },
3499        {
3500          "type": "SYMBOL",
3501          "name": "_semicolon"
3502        }
3503      ]
3504    },
3505    "continue_statement": {
3506      "type": "SEQ",
3507      "members": [
3508        {
3509          "type": "ALIAS",
3510          "content": {
3511            "type": "PATTERN",
3512            "value": "continue",
3513            "flags": "i"
3514          },
3515          "named": false,
3516          "value": "continue"
3517        },
3518        {
3519          "type": "CHOICE",
3520          "members": [
3521            {
3522              "type": "SYMBOL",
3523              "name": "expression"
3524            },
3525            {
3526              "type": "BLANK"
3527            }
3528          ]
3529        },
3530        {
3531          "type": "SYMBOL",
3532          "name": "_semicolon"
3533        }
3534      ]
3535    },
3536    "break_statement": {
3537      "type": "SEQ",
3538      "members": [
3539        {
3540          "type": "ALIAS",
3541          "content": {
3542            "type": "PATTERN",
3543            "value": "break",
3544            "flags": "i"
3545          },
3546          "named": false,
3547          "value": "break"
3548        },
3549        {
3550          "type": "CHOICE",
3551          "members": [
3552            {
3553              "type": "SYMBOL",
3554              "name": "expression"
3555            },
3556            {
3557              "type": "BLANK"
3558            }
3559          ]
3560        },
3561        {
3562          "type": "SYMBOL",
3563          "name": "_semicolon"
3564        }
3565      ]
3566    },
3567    "integer": {
3568      "type": "TOKEN",
3569      "content": {
3570        "type": "CHOICE",
3571        "members": [
3572          {
3573            "type": "PATTERN",
3574            "value": "[1-9]\\d*(_\\d+)*"
3575          },
3576          {
3577            "type": "PATTERN",
3578            "value": "0[oO]?[0-7]*(_[0-7]+)*"
3579          },
3580          {
3581            "type": "PATTERN",
3582            "value": "0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)*"
3583          },
3584          {
3585            "type": "PATTERN",
3586            "value": "0[bB][01]+(_[01]+)*"
3587          }
3588        ]
3589      }
3590    },
3591    "return_statement": {
3592      "type": "SEQ",
3593      "members": [
3594        {
3595          "type": "ALIAS",
3596          "content": {
3597            "type": "PATTERN",
3598            "value": "return",
3599            "flags": "i"
3600          },
3601          "named": false,
3602          "value": "return"
3603        },
3604        {
3605          "type": "CHOICE",
3606          "members": [
3607            {
3608              "type": "SYMBOL",
3609              "name": "expression"
3610            },
3611            {
3612              "type": "BLANK"
3613            }
3614          ]
3615        },
3616        {
3617          "type": "SYMBOL",
3618          "name": "_semicolon"
3619        }
3620      ]
3621    },
3622    "throw_expression": {
3623      "type": "SEQ",
3624      "members": [
3625        {
3626          "type": "ALIAS",
3627          "content": {
3628            "type": "PATTERN",
3629            "value": "throw",
3630            "flags": "i"
3631          },
3632          "named": false,
3633          "value": "throw"
3634        },
3635        {
3636          "type": "SYMBOL",
3637          "name": "expression"
3638        }
3639      ]
3640    },
3641    "while_statement": {
3642      "type": "SEQ",
3643      "members": [
3644        {
3645          "type": "ALIAS",
3646          "content": {
3647            "type": "PATTERN",
3648            "value": "while",
3649            "flags": "i"
3650          },
3651          "named": false,
3652          "value": "while"
3653        },
3654        {
3655          "type": "FIELD",
3656          "name": "condition",
3657          "content": {
3658            "type": "SYMBOL",
3659            "name": "parenthesized_expression"
3660          }
3661        },
3662        {
3663          "type": "CHOICE",
3664          "members": [
3665            {
3666              "type": "FIELD",
3667              "name": "body",
3668              "content": {
3669                "type": "SYMBOL",
3670                "name": "statement"
3671              }
3672            },
3673            {
3674              "type": "SEQ",
3675              "members": [
3676                {
3677                  "type": "FIELD",
3678                  "name": "body",
3679                  "content": {
3680                    "type": "SYMBOL",
3681                    "name": "colon_block"
3682                  }
3683                },
3684                {
3685                  "type": "ALIAS",
3686                  "content": {
3687                    "type": "PATTERN",
3688                    "value": "endwhile",
3689                    "flags": "i"
3690                  },
3691                  "named": false,
3692                  "value": "endwhile"
3693                },
3694                {
3695                  "type": "SYMBOL",
3696                  "name": "_semicolon"
3697                }
3698              ]
3699            }
3700          ]
3701        }
3702      ]
3703    },
3704    "do_statement": {
3705      "type": "SEQ",
3706      "members": [
3707        {
3708          "type": "ALIAS",
3709          "content": {
3710            "type": "PATTERN",
3711            "value": "do",
3712            "flags": "i"
3713          },
3714          "named": false,
3715          "value": "do"
3716        },
3717        {
3718          "type": "FIELD",
3719          "name": "body",
3720          "content": {
3721            "type": "SYMBOL",
3722            "name": "statement"
3723          }
3724        },
3725        {
3726          "type": "ALIAS",
3727          "content": {
3728            "type": "PATTERN",
3729            "value": "while",
3730            "flags": "i"
3731          },
3732          "named": false,
3733          "value": "while"
3734        },
3735        {
3736          "type": "FIELD",
3737          "name": "condition",
3738          "content": {
3739            "type": "SYMBOL",
3740            "name": "parenthesized_expression"
3741          }
3742        },
3743        {
3744          "type": "SYMBOL",
3745          "name": "_semicolon"
3746        }
3747      ]
3748    },
3749    "for_statement": {
3750      "type": "SEQ",
3751      "members": [
3752        {
3753          "type": "ALIAS",
3754          "content": {
3755            "type": "PATTERN",
3756            "value": "for",
3757            "flags": "i"
3758          },
3759          "named": false,
3760          "value": "for"
3761        },
3762        {
3763          "type": "STRING",
3764          "value": "("
3765        },
3766        {
3767          "type": "FIELD",
3768          "name": "initialize",
3769          "content": {
3770            "type": "CHOICE",
3771            "members": [
3772              {
3773                "type": "SYMBOL",
3774                "name": "_expressions"
3775              },
3776              {
3777                "type": "BLANK"
3778              }
3779            ]
3780          }
3781        },
3782        {
3783          "type": "STRING",
3784          "value": ";"
3785        },
3786        {
3787          "type": "FIELD",
3788          "name": "condition",
3789          "content": {
3790            "type": "CHOICE",
3791            "members": [
3792              {
3793                "type": "SYMBOL",
3794                "name": "_expressions"
3795              },
3796              {
3797                "type": "BLANK"
3798              }
3799            ]
3800          }
3801        },
3802        {
3803          "type": "STRING",
3804          "value": ";"
3805        },
3806        {
3807          "type": "FIELD",
3808          "name": "update",
3809          "content": {
3810            "type": "CHOICE",
3811            "members": [
3812              {
3813                "type": "SYMBOL",
3814                "name": "_expressions"
3815              },
3816              {
3817                "type": "BLANK"
3818              }
3819            ]
3820          }
3821        },
3822        {
3823          "type": "STRING",
3824          "value": ")"
3825        },
3826        {
3827          "type": "CHOICE",
3828          "members": [
3829            {
3830              "type": "SYMBOL",
3831              "name": "_semicolon"
3832            },
3833            {
3834              "type": "FIELD",
3835              "name": "body",
3836              "content": {
3837                "type": "SYMBOL",
3838                "name": "statement"
3839              }
3840            },
3841            {
3842              "type": "SEQ",
3843              "members": [
3844                {
3845                  "type": "STRING",
3846                  "value": ":"
3847                },
3848                {
3849                  "type": "FIELD",
3850                  "name": "body",
3851                  "content": {
3852                    "type": "REPEAT",
3853                    "content": {
3854                      "type": "SYMBOL",
3855                      "name": "statement"
3856                    }
3857                  }
3858                },
3859                {
3860                  "type": "ALIAS",
3861                  "content": {
3862                    "type": "PATTERN",
3863                    "value": "endfor",
3864                    "flags": "i"
3865                  },
3866                  "named": false,
3867                  "value": "endfor"
3868                },
3869                {
3870                  "type": "SYMBOL",
3871                  "name": "_semicolon"
3872                }
3873              ]
3874            }
3875          ]
3876        }
3877      ]
3878    },
3879    "_expressions": {
3880      "type": "CHOICE",
3881      "members": [
3882        {
3883          "type": "SYMBOL",
3884          "name": "expression"
3885        },
3886        {
3887          "type": "SYMBOL",
3888          "name": "sequence_expression"
3889        }
3890      ]
3891    },
3892    "sequence_expression": {
3893      "type": "PREC",
3894      "value": -1,
3895      "content": {
3896        "type": "SEQ",
3897        "members": [
3898          {
3899            "type": "SYMBOL",
3900            "name": "expression"
3901          },
3902          {
3903            "type": "STRING",
3904            "value": ","
3905          },
3906          {
3907            "type": "CHOICE",
3908            "members": [
3909              {
3910                "type": "SYMBOL",
3911                "name": "sequence_expression"
3912              },
3913              {
3914                "type": "SYMBOL",
3915                "name": "expression"
3916              }
3917            ]
3918          }
3919        ]
3920      }
3921    },
3922    "foreach_statement": {
3923      "type": "SEQ",
3924      "members": [
3925        {
3926          "type": "ALIAS",
3927          "content": {
3928            "type": "PATTERN",
3929            "value": "foreach",
3930            "flags": "i"
3931          },
3932          "named": false,
3933          "value": "foreach"
3934        },
3935        {
3936          "type": "STRING",
3937          "value": "("
3938        },
3939        {
3940          "type": "SYMBOL",
3941          "name": "expression"
3942        },
3943        {
3944          "type": "ALIAS",
3945          "content": {
3946            "type": "PATTERN",
3947            "value": "as",
3948            "flags": "i"
3949          },
3950          "named": false,
3951          "value": "as"
3952        },
3953        {
3954          "type": "CHOICE",
3955          "members": [
3956            {
3957              "type": "ALIAS",
3958              "content": {
3959                "type": "SYMBOL",
3960                "name": "foreach_pair"
3961              },
3962              "named": true,
3963              "value": "pair"
3964            },
3965            {
3966              "type": "SYMBOL",
3967              "name": "_foreach_value"
3968            }
3969          ]
3970        },
3971        {
3972          "type": "STRING",
3973          "value": ")"
3974        },
3975        {
3976          "type": "CHOICE",
3977          "members": [
3978            {
3979              "type": "SYMBOL",
3980              "name": "_semicolon"
3981            },
3982            {
3983              "type": "FIELD",
3984              "name": "body",
3985              "content": {
3986                "type": "SYMBOL",
3987                "name": "statement"
3988              }
3989            },
3990            {
3991              "type": "SEQ",
3992              "members": [
3993                {
3994                  "type": "FIELD",
3995                  "name": "body",
3996                  "content": {
3997                    "type": "SYMBOL",
3998                    "name": "colon_block"
3999                  }
4000                },
4001                {
4002                  "type": "ALIAS",
4003                  "content": {
4004                    "type": "PATTERN",
4005                    "value": "endforeach",
4006                    "flags": "i"
4007                  },
4008                  "named": false,
4009                  "value": "endforeach"
4010                },
4011                {
4012                  "type": "SYMBOL",
4013                  "name": "_semicolon"
4014                }
4015              ]
4016            }
4017          ]
4018        }
4019      ]
4020    },
4021    "foreach_pair": {
4022      "type": "SEQ",
4023      "members": [
4024        {
4025          "type": "SYMBOL",
4026          "name": "expression"
4027        },
4028        {
4029          "type": "STRING",
4030          "value": "=>"
4031        },
4032        {
4033          "type": "SYMBOL",
4034          "name": "_foreach_value"
4035        }
4036      ]
4037    },
4038    "_foreach_value": {
4039      "type": "CHOICE",
4040      "members": [
4041        {
4042          "type": "SYMBOL",
4043          "name": "by_ref"
4044        },
4045        {
4046          "type": "SYMBOL",
4047          "name": "expression"
4048        },
4049        {
4050          "type": "SYMBOL",
4051          "name": "list_literal"
4052        }
4053      ]
4054    },
4055    "if_statement": {
4056      "type": "SEQ",
4057      "members": [
4058        {
4059          "type": "ALIAS",
4060          "content": {
4061            "type": "PATTERN",
4062            "value": "if",
4063            "flags": "i"
4064          },
4065          "named": false,
4066          "value": "if"
4067        },
4068        {
4069          "type": "FIELD",
4070          "name": "condition",
4071          "content": {
4072            "type": "SYMBOL",
4073            "name": "parenthesized_expression"
4074          }
4075        },
4076        {
4077          "type": "CHOICE",
4078          "members": [
4079            {
4080              "type": "SEQ",
4081              "members": [
4082                {
4083                  "type": "FIELD",
4084                  "name": "body",
4085                  "content": {
4086                    "type": "SYMBOL",
4087                    "name": "statement"
4088                  }
4089                },
4090                {
4091                  "type": "REPEAT",
4092                  "content": {
4093                    "type": "FIELD",
4094                    "name": "alternative",
4095                    "content": {
4096                      "type": "SYMBOL",
4097                      "name": "else_if_clause"
4098                    }
4099                  }
4100                },
4101                {
4102                  "type": "CHOICE",
4103                  "members": [
4104                    {
4105                      "type": "FIELD",
4106                      "name": "alternative",
4107                      "content": {
4108                        "type": "SYMBOL",
4109                        "name": "else_clause"
4110                      }
4111                    },
4112                    {
4113                      "type": "BLANK"
4114                    }
4115                  ]
4116                }
4117              ]
4118            },
4119            {
4120              "type": "SEQ",
4121              "members": [
4122                {
4123                  "type": "FIELD",
4124                  "name": "body",
4125                  "content": {
4126                    "type": "SYMBOL",
4127                    "name": "colon_block"
4128                  }
4129                },
4130                {
4131                  "type": "REPEAT",
4132                  "content": {
4133                    "type": "FIELD",
4134                    "name": "alternative",
4135                    "content": {
4136                      "type": "ALIAS",
4137                      "content": {
4138                        "type": "SYMBOL",
4139                        "name": "else_if_clause_2"
4140                      },
4141                      "named": true,
4142                      "value": "else_if_clause"
4143                    }
4144                  }
4145                },
4146                {
4147                  "type": "CHOICE",
4148                  "members": [
4149                    {
4150                      "type": "FIELD",
4151                      "name": "alternative",
4152                      "content": {
4153                        "type": "ALIAS",
4154                        "content": {
4155                          "type": "SYMBOL",
4156                          "name": "else_clause_2"
4157                        },
4158                        "named": true,
4159                        "value": "else_clause"
4160                      }
4161                    },
4162                    {
4163                      "type": "BLANK"
4164                    }
4165                  ]
4166                },
4167                {
4168                  "type": "ALIAS",
4169                  "content": {
4170                    "type": "PATTERN",
4171                    "value": "endif",
4172                    "flags": "i"
4173                  },
4174                  "named": false,
4175                  "value": "endif"
4176                },
4177                {
4178                  "type": "SYMBOL",
4179                  "name": "_semicolon"
4180                }
4181              ]
4182            }
4183          ]
4184        }
4185      ]
4186    },
4187    "colon_block": {
4188      "type": "SEQ",
4189      "members": [
4190        {
4191          "type": "STRING",
4192          "value": ":"
4193        },
4194        {
4195          "type": "REPEAT",
4196          "content": {
4197            "type": "SYMBOL",
4198            "name": "statement"
4199          }
4200        }
4201      ]
4202    },
4203    "else_if_clause": {
4204      "type": "SEQ",
4205      "members": [
4206        {
4207          "type": "ALIAS",
4208          "content": {
4209            "type": "PATTERN",
4210            "value": "elseif",
4211            "flags": "i"
4212          },
4213          "named": false,
4214          "value": "elseif"
4215        },
4216        {
4217          "type": "FIELD",
4218          "name": "condition",
4219          "content": {
4220            "type": "SYMBOL",
4221            "name": "parenthesized_expression"
4222          }
4223        },
4224        {
4225          "type": "FIELD",
4226          "name": "body",
4227          "content": {
4228            "type": "SYMBOL",
4229            "name": "statement"
4230          }
4231        }
4232      ]
4233    },
4234    "else_clause": {
4235      "type": "SEQ",
4236      "members": [
4237        {
4238          "type": "ALIAS",
4239          "content": {
4240            "type": "PATTERN",
4241            "value": "else",
4242            "flags": "i"
4243          },
4244          "named": false,
4245          "value": "else"
4246        },
4247        {
4248          "type": "FIELD",
4249          "name": "body",
4250          "content": {
4251            "type": "SYMBOL",
4252            "name": "statement"
4253          }
4254        }
4255      ]
4256    },
4257    "else_if_clause_2": {
4258      "type": "SEQ",
4259      "members": [
4260        {
4261          "type": "ALIAS",
4262          "content": {
4263            "type": "PATTERN",
4264            "value": "elseif",
4265            "flags": "i"
4266          },
4267          "named": false,
4268          "value": "elseif"
4269        },
4270        {
4271          "type": "FIELD",
4272          "name": "condition",
4273          "content": {
4274            "type": "SYMBOL",
4275            "name": "parenthesized_expression"
4276          }
4277        },
4278        {
4279          "type": "FIELD",
4280          "name": "body",
4281          "content": {
4282            "type": "SYMBOL",
4283            "name": "colon_block"
4284          }
4285        }
4286      ]
4287    },
4288    "else_clause_2": {
4289      "type": "SEQ",
4290      "members": [
4291        {
4292          "type": "ALIAS",
4293          "content": {
4294            "type": "PATTERN",
4295            "value": "else",
4296            "flags": "i"
4297          },
4298          "named": false,
4299          "value": "else"
4300        },
4301        {
4302          "type": "FIELD",
4303          "name": "body",
4304          "content": {
4305            "type": "SYMBOL",
4306            "name": "colon_block"
4307          }
4308        }
4309      ]
4310    },
4311    "match_expression": {
4312      "type": "SEQ",
4313      "members": [
4314        {
4315          "type": "ALIAS",
4316          "content": {
4317            "type": "PATTERN",
4318            "value": "match",
4319            "flags": "i"
4320          },
4321          "named": false,
4322          "value": "match"
4323        },
4324        {
4325          "type": "FIELD",
4326          "name": "condition",
4327          "content": {
4328            "type": "SYMBOL",
4329            "name": "parenthesized_expression"
4330          }
4331        },
4332        {
4333          "type": "FIELD",
4334          "name": "body",
4335          "content": {
4336            "type": "SYMBOL",
4337            "name": "match_block"
4338          }
4339        }
4340      ]
4341    },
4342    "match_block": {
4343      "type": "PREC_LEFT",
4344      "value": 0,
4345      "content": {
4346        "type": "SEQ",
4347        "members": [
4348          {
4349            "type": "STRING",
4350            "value": "{"
4351          },
4352          {
4353            "type": "CHOICE",
4354            "members": [
4355              {
4356                "type": "SEQ",
4357                "members": [
4358                  {
4359                    "type": "CHOICE",
4360                    "members": [
4361                      {
4362                        "type": "SYMBOL",
4363                        "name": "match_conditional_expression"
4364                      },
4365                      {
4366                        "type": "SYMBOL",
4367                        "name": "match_default_expression"
4368                      }
4369                    ]
4370                  },
4371                  {
4372                    "type": "REPEAT",
4373                    "content": {
4374                      "type": "SEQ",
4375                      "members": [
4376                        {
4377                          "type": "STRING",
4378                          "value": ","
4379                        },
4380                        {
4381                          "type": "CHOICE",
4382                          "members": [
4383                            {
4384                              "type": "SYMBOL",
4385                              "name": "match_conditional_expression"
4386                            },
4387                            {
4388                              "type": "SYMBOL",
4389                              "name": "match_default_expression"
4390                            }
4391                          ]
4392                        }
4393                      ]
4394                    }
4395                  }
4396                ]
4397              },
4398              {
4399                "type": "BLANK"
4400              }
4401            ]
4402          },
4403          {
4404            "type": "CHOICE",
4405            "members": [
4406              {
4407                "type": "STRING",
4408                "value": ","
4409              },
4410              {
4411                "type": "BLANK"
4412              }
4413            ]
4414          },
4415          {
4416            "type": "STRING",
4417            "value": "}"
4418          }
4419        ]
4420      }
4421    },
4422    "match_condition_list": {
4423      "type": "SEQ",
4424      "members": [
4425        {
4426          "type": "SEQ",
4427          "members": [
4428            {
4429              "type": "SYMBOL",
4430              "name": "expression"
4431            },
4432            {
4433              "type": "REPEAT",
4434              "content": {
4435                "type": "SEQ",
4436                "members": [
4437                  {
4438                    "type": "STRING",
4439                    "value": ","
4440                  },
4441                  {
4442                    "type": "SYMBOL",
4443                    "name": "expression"
4444                  }
4445                ]
4446              }
4447            }
4448          ]
4449        },
4450        {
4451          "type": "CHOICE",
4452          "members": [
4453            {
4454              "type": "STRING",
4455              "value": ","
4456            },
4457            {
4458              "type": "BLANK"
4459            }
4460          ]
4461        }
4462      ]
4463    },
4464    "match_conditional_expression": {
4465      "type": "SEQ",
4466      "members": [
4467        {
4468          "type": "FIELD",
4469          "name": "conditional_expressions",
4470          "content": {
4471            "type": "SYMBOL",
4472            "name": "match_condition_list"
4473          }
4474        },
4475        {
4476          "type": "STRING",
4477          "value": "=>"
4478        },
4479        {
4480          "type": "FIELD",
4481          "name": "return_expression",
4482          "content": {
4483            "type": "SYMBOL",
4484            "name": "expression"
4485          }
4486        }
4487      ]
4488    },
4489    "match_default_expression": {
4490      "type": "SEQ",
4491      "members": [
4492        {
4493          "type": "ALIAS",
4494          "content": {
4495            "type": "PATTERN",
4496            "value": "default",
4497            "flags": "i"
4498          },
4499          "named": false,
4500          "value": "default"
4501        },
4502        {
4503          "type": "STRING",
4504          "value": "=>"
4505        },
4506        {
4507          "type": "FIELD",
4508          "name": "return_expression",
4509          "content": {
4510            "type": "SYMBOL",
4511            "name": "expression"
4512          }
4513        }
4514      ]
4515    },
4516    "switch_statement": {
4517      "type": "SEQ",
4518      "members": [
4519        {
4520          "type": "ALIAS",
4521          "content": {
4522            "type": "PATTERN",
4523            "value": "switch",
4524            "flags": "i"
4525          },
4526          "named": false,
4527          "value": "switch"
4528        },
4529        {
4530          "type": "FIELD",
4531          "name": "condition",
4532          "content": {
4533            "type": "SYMBOL",
4534            "name": "parenthesized_expression"
4535          }
4536        },
4537        {
4538          "type": "FIELD",
4539          "name": "body",
4540          "content": {
4541            "type": "SYMBOL",
4542            "name": "switch_block"
4543          }
4544        }
4545      ]
4546    },
4547    "switch_block": {
4548      "type": "CHOICE",
4549      "members": [
4550        {
4551          "type": "SEQ",
4552          "members": [
4553            {
4554              "type": "STRING",
4555              "value": "{"
4556            },
4557            {
4558              "type": "REPEAT",
4559              "content": {
4560                "type": "CHOICE",
4561                "members": [
4562                  {
4563                    "type": "SYMBOL",
4564                    "name": "case_statement"
4565                  },
4566                  {
4567                    "type": "SYMBOL",
4568                    "name": "default_statement"
4569                  }
4570                ]
4571              }
4572            },
4573            {
4574              "type": "STRING",
4575              "value": "}"
4576            }
4577          ]
4578        },
4579        {
4580          "type": "SEQ",
4581          "members": [
4582            {
4583              "type": "STRING",
4584              "value": ":"
4585            },
4586            {
4587              "type": "REPEAT",
4588              "content": {
4589                "type": "CHOICE",
4590                "members": [
4591                  {
4592                    "type": "SYMBOL",
4593                    "name": "case_statement"
4594                  },
4595                  {
4596                    "type": "SYMBOL",
4597                    "name": "default_statement"
4598                  }
4599                ]
4600              }
4601            },
4602            {
4603              "type": "ALIAS",
4604              "content": {
4605                "type": "PATTERN",
4606                "value": "endswitch",
4607                "flags": "i"
4608              },
4609              "named": false,
4610              "value": "endswitch"
4611            },
4612            {
4613              "type": "SYMBOL",
4614              "name": "_semicolon"
4615            }
4616          ]
4617        }
4618      ]
4619    },
4620    "case_statement": {
4621      "type": "SEQ",
4622      "members": [
4623        {
4624          "type": "ALIAS",
4625          "content": {
4626            "type": "PATTERN",
4627            "value": "case",
4628            "flags": "i"
4629          },
4630          "named": false,
4631          "value": "case"
4632        },
4633        {
4634          "type": "FIELD",
4635          "name": "value",
4636          "content": {
4637            "type": "SYMBOL",
4638            "name": "expression"
4639          }
4640        },
4641        {
4642          "type": "CHOICE",
4643          "members": [
4644            {
4645              "type": "STRING",
4646              "value": ":"
4647            },
4648            {
4649              "type": "STRING",
4650              "value": ";"
4651            }
4652          ]
4653        },
4654        {
4655          "type": "REPEAT",
4656          "content": {
4657            "type": "SYMBOL",
4658            "name": "statement"
4659          }
4660        }
4661      ]
4662    },
4663    "default_statement": {
4664      "type": "SEQ",
4665      "members": [
4666        {
4667          "type": "ALIAS",
4668          "content": {
4669            "type": "PATTERN",
4670            "value": "default",
4671            "flags": "i"
4672          },
4673          "named": false,
4674          "value": "default"
4675        },
4676        {
4677          "type": "CHOICE",
4678          "members": [
4679            {
4680              "type": "STRING",
4681              "value": ":"
4682            },
4683            {
4684              "type": "STRING",
4685              "value": ";"
4686            }
4687          ]
4688        },
4689        {
4690          "type": "REPEAT",
4691          "content": {
4692            "type": "SYMBOL",
4693            "name": "statement"
4694          }
4695        }
4696      ]
4697    },
4698    "compound_statement": {
4699      "type": "SEQ",
4700      "members": [
4701        {
4702          "type": "STRING",
4703          "value": "{"
4704        },
4705        {
4706          "type": "REPEAT",
4707          "content": {
4708            "type": "SYMBOL",
4709            "name": "statement"
4710          }
4711        },
4712        {
4713          "type": "STRING",
4714          "value": "}"
4715        }
4716      ]
4717    },
4718    "named_label_statement": {
4719      "type": "SEQ",
4720      "members": [
4721        {
4722          "type": "SYMBOL",
4723          "name": "name"
4724        },
4725        {
4726          "type": "STRING",
4727          "value": ":"
4728        }
4729      ]
4730    },
4731    "expression_statement": {
4732      "type": "SEQ",
4733      "members": [
4734        {
4735          "type": "SYMBOL",
4736          "name": "expression"
4737        },
4738        {
4739          "type": "SYMBOL",
4740          "name": "_semicolon"
4741        }
4742      ]
4743    },
4744    "expression": {
4745      "type": "CHOICE",
4746      "members": [
4747        {
4748          "type": "SYMBOL",
4749          "name": "conditional_expression"
4750        },
4751        {
4752          "type": "SYMBOL",
4753          "name": "match_expression"
4754        },
4755        {
4756          "type": "SYMBOL",
4757          "name": "augmented_assignment_expression"
4758        },
4759        {
4760          "type": "SYMBOL",
4761          "name": "assignment_expression"
4762        },
4763        {
4764          "type": "SYMBOL",
4765          "name": "reference_assignment_expression"
4766        },
4767        {
4768          "type": "SYMBOL",
4769          "name": "yield_expression"
4770        },
4771        {
4772          "type": "SYMBOL",
4773          "name": "_unary_expression"
4774        },
4775        {
4776          "type": "SYMBOL",
4777          "name": "error_suppression_expression"
4778        },
4779        {
4780          "type": "SYMBOL",
4781          "name": "binary_expression"
4782        },
4783        {
4784          "type": "SYMBOL",
4785          "name": "include_expression"
4786        },
4787        {
4788          "type": "SYMBOL",
4789          "name": "include_once_expression"
4790        },
4791        {
4792          "type": "SYMBOL",
4793          "name": "require_expression"
4794        },
4795        {
4796          "type": "SYMBOL",
4797          "name": "require_once_expression"
4798        }
4799      ]
4800    },
4801    "_unary_expression": {
4802      "type": "CHOICE",
4803      "members": [
4804        {
4805          "type": "SYMBOL",
4806          "name": "clone_expression"
4807        },
4808        {
4809          "type": "SYMBOL",
4810          "name": "primary_expression"
4811        },
4812        {
4813          "type": "SYMBOL",
4814          "name": "unary_op_expression"
4815        },
4816        {
4817          "type": "SYMBOL",
4818          "name": "cast_expression"
4819        }
4820      ]
4821    },
4822    "unary_op_expression": {
4823      "type": "PREC_LEFT",
4824      "value": 19,
4825      "content": {
4826        "type": "SEQ",
4827        "members": [
4828          {
4829            "type": "FIELD",
4830            "name": "operator",
4831            "content": {
4832              "type": "CHOICE",
4833              "members": [
4834                {
4835                  "type": "STRING",
4836                  "value": "+"
4837                },
4838                {
4839                  "type": "STRING",
4840                  "value": "-"
4841                },
4842                {
4843                  "type": "STRING",
4844                  "value": "~"
4845                },
4846                {
4847                  "type": "STRING",
4848                  "value": "!"
4849                }
4850              ]
4851            }
4852          },
4853          {
4854            "type": "FIELD",
4855            "name": "argument",
4856            "content": {
4857              "type": "SYMBOL",
4858              "name": "expression"
4859            }
4860          }
4861        ]
4862      }
4863    },
4864    "error_suppression_expression": {
4865      "type": "PREC",
4866      "value": 21,
4867      "content": {
4868        "type": "SEQ",
4869        "members": [
4870          {
4871            "type": "STRING",
4872            "value": "@"
4873          },
4874          {
4875            "type": "SYMBOL",
4876            "name": "expression"
4877          }
4878        ]
4879      }
4880    },
4881    "clone_expression": {
4882      "type": "SEQ",
4883      "members": [
4884        {
4885          "type": "ALIAS",
4886          "content": {
4887            "type": "PATTERN",
4888            "value": "clone",
4889            "flags": "i"
4890          },
4891          "named": false,
4892          "value": "clone"
4893        },
4894        {
4895          "type": "SYMBOL",
4896          "name": "primary_expression"
4897        }
4898      ]
4899    },
4900    "primary_expression": {
4901      "type": "CHOICE",
4902      "members": [
4903        {
4904          "type": "SYMBOL",
4905          "name": "_variable"
4906        },
4907        {
4908          "type": "SYMBOL",
4909          "name": "literal"
4910        },
4911        {
4912          "type": "SYMBOL",
4913          "name": "class_constant_access_expression"
4914        },
4915        {
4916          "type": "SYMBOL",
4917          "name": "qualified_name"
4918        },
4919        {
4920          "type": "SYMBOL",
4921          "name": "name"
4922        },
4923        {
4924          "type": "SYMBOL",
4925          "name": "array_creation_expression"
4926        },
4927        {
4928          "type": "SYMBOL",
4929          "name": "print_intrinsic"
4930        },
4931        {
4932          "type": "SYMBOL",
4933          "name": "anonymous_function"
4934        },
4935        {
4936          "type": "SYMBOL",
4937          "name": "arrow_function"
4938        },
4939        {
4940          "type": "SYMBOL",
4941          "name": "object_creation_expression"
4942        },
4943        {
4944          "type": "SYMBOL",
4945          "name": "update_expression"
4946        },
4947        {
4948          "type": "SYMBOL",
4949          "name": "shell_command_expression"
4950        },
4951        {
4952          "type": "SYMBOL",
4953          "name": "parenthesized_expression"
4954        },
4955        {
4956          "type": "SYMBOL",
4957          "name": "throw_expression"
4958        },
4959        {
4960          "type": "SYMBOL",
4961          "name": "arrow_function"
4962        }
4963      ]
4964    },
4965    "parenthesized_expression": {
4966      "type": "SEQ",
4967      "members": [
4968        {
4969          "type": "STRING",
4970          "value": "("
4971        },
4972        {
4973          "type": "SYMBOL",
4974          "name": "expression"
4975        },
4976        {
4977          "type": "STRING",
4978          "value": ")"
4979        }
4980      ]
4981    },
4982    "class_constant_access_expression": {
4983      "type": "SEQ",
4984      "members": [
4985        {
4986          "type": "SYMBOL",
4987          "name": "_scope_resolution_qualifier"
4988        },
4989        {
4990          "type": "STRING",
4991          "value": "::"
4992        },
4993        {
4994          "type": "CHOICE",
4995          "members": [
4996            {
4997              "type": "SYMBOL",
4998              "name": "_identifier"
4999            },
5000            {
5001              "type": "SEQ",
5002              "members": [
5003                {
5004                  "type": "STRING",
5005                  "value": "{"
5006                },
5007                {
5008                  "type": "ALIAS",
5009                  "content": {
5010                    "type": "SYMBOL",
5011                    "name": "expression"
5012                  },
5013                  "named": true,
5014                  "value": "name"
5015                },
5016                {
5017                  "type": "STRING",
5018                  "value": "}"
5019                }
5020              ]
5021            }
5022          ]
5023        }
5024      ]
5025    },
5026    "print_intrinsic": {
5027      "type": "SEQ",
5028      "members": [
5029        {
5030          "type": "ALIAS",
5031          "content": {
5032            "type": "PATTERN",
5033            "value": "print",
5034            "flags": "i"
5035          },
5036          "named": false,
5037          "value": "print"
5038        },
5039        {
5040          "type": "SYMBOL",
5041          "name": "expression"
5042        }
5043      ]
5044    },
5045    "object_creation_expression": {
5046      "type": "CHOICE",
5047      "members": [
5048        {
5049          "type": "SYMBOL",
5050          "name": "_new_dereferencable_expression"
5051        },
5052        {
5053          "type": "SYMBOL",
5054          "name": "_new_non_dereferencable_expression"
5055        }
5056      ]
5057    },
5058    "_new_non_dereferencable_expression": {
5059      "type": "PREC_RIGHT",
5060      "value": 23,
5061      "content": {
5062        "type": "SEQ",
5063        "members": [
5064          {
5065            "type": "ALIAS",
5066            "content": {
5067              "type": "PATTERN",
5068              "value": "new",
5069              "flags": "i"
5070            },
5071            "named": false,
5072            "value": "new"
5073          },
5074          {
5075            "type": "SYMBOL",
5076            "name": "_class_name_reference"
5077          }
5078        ]
5079      }
5080    },
5081    "_new_dereferencable_expression": {
5082      "type": "PREC_RIGHT",
5083      "value": 23,
5084      "content": {
5085        "type": "SEQ",
5086        "members": [
5087          {
5088            "type": "ALIAS",
5089            "content": {
5090              "type": "PATTERN",
5091              "value": "new",
5092              "flags": "i"
5093            },
5094            "named": false,
5095            "value": "new"
5096          },
5097          {
5098            "type": "CHOICE",
5099            "members": [
5100              {
5101                "type": "SEQ",
5102                "members": [
5103                  {
5104                    "type": "SYMBOL",
5105                    "name": "_class_name_reference"
5106                  },
5107                  {
5108                    "type": "SYMBOL",
5109                    "name": "arguments"
5110                  }
5111                ]
5112              },
5113              {
5114                "type": "SYMBOL",
5115                "name": "anonymous_class"
5116              }
5117            ]
5118          }
5119        ]
5120      }
5121    },
5122    "_class_name_reference": {
5123      "type": "CHOICE",
5124      "members": [
5125        {
5126          "type": "SYMBOL",
5127          "name": "_name"
5128        },
5129        {
5130          "type": "SYMBOL",
5131          "name": "_new_variable"
5132        },
5133        {
5134          "type": "SYMBOL",
5135          "name": "parenthesized_expression"
5136        }
5137      ]
5138    },
5139    "anonymous_class": {
5140      "type": "PREC_RIGHT",
5141      "value": 0,
5142      "content": {
5143        "type": "SEQ",
5144        "members": [
5145          {
5146            "type": "CHOICE",
5147            "members": [
5148              {
5149                "type": "FIELD",
5150                "name": "attributes",
5151                "content": {
5152                  "type": "SYMBOL",
5153                  "name": "attribute_list"
5154                }
5155              },
5156              {
5157                "type": "BLANK"
5158              }
5159            ]
5160          },
5161          {
5162            "type": "REPEAT",
5163            "content": {
5164              "type": "SYMBOL",
5165              "name": "_modifier"
5166            }
5167          },
5168          {
5169            "type": "ALIAS",
5170            "content": {
5171              "type": "PATTERN",
5172              "value": "class",
5173              "flags": "i"
5174            },
5175            "named": false,
5176            "value": "class"
5177          },
5178          {
5179            "type": "CHOICE",
5180            "members": [
5181              {
5182                "type": "SYMBOL",
5183                "name": "arguments"
5184              },
5185              {
5186                "type": "BLANK"
5187              }
5188            ]
5189          },
5190          {
5191            "type": "CHOICE",
5192            "members": [
5193              {
5194                "type": "SYMBOL",
5195                "name": "base_clause"
5196              },
5197              {
5198                "type": "BLANK"
5199              }
5200            ]
5201          },
5202          {
5203            "type": "CHOICE",
5204            "members": [
5205              {
5206                "type": "SYMBOL",
5207                "name": "class_interface_clause"
5208              },
5209              {
5210                "type": "BLANK"
5211              }
5212            ]
5213          },
5214          {
5215            "type": "FIELD",
5216            "name": "body",
5217            "content": {
5218              "type": "SYMBOL",
5219              "name": "declaration_list"
5220            }
5221          }
5222        ]
5223      }
5224    },
5225    "update_expression": {
5226      "type": "PREC_LEFT",
5227      "value": 21,
5228      "content": {
5229        "type": "CHOICE",
5230        "members": [
5231          {
5232            "type": "SEQ",
5233            "members": [
5234              {
5235                "type": "FIELD",
5236                "name": "operator",
5237                "content": {
5238                  "type": "CHOICE",
5239                  "members": [
5240                    {
5241                      "type": "STRING",
5242                      "value": "--"
5243                    },
5244                    {
5245                      "type": "STRING",
5246                      "value": "++"
5247                    }
5248                  ]
5249                }
5250              },
5251              {
5252                "type": "FIELD",
5253                "name": "argument",
5254                "content": {
5255                  "type": "SYMBOL",
5256                  "name": "_variable"
5257                }
5258              }
5259            ]
5260          },
5261          {
5262            "type": "SEQ",
5263            "members": [
5264              {
5265                "type": "FIELD",
5266                "name": "argument",
5267                "content": {
5268                  "type": "SYMBOL",
5269                  "name": "_variable"
5270                }
5271              },
5272              {
5273                "type": "FIELD",
5274                "name": "operator",
5275                "content": {
5276                  "type": "CHOICE",
5277                  "members": [
5278                    {
5279                      "type": "STRING",
5280                      "value": "--"
5281                    },
5282                    {
5283                      "type": "STRING",
5284                      "value": "++"
5285                    }
5286                  ]
5287                }
5288              }
5289            ]
5290          }
5291        ]
5292      }
5293    },
5294    "cast_expression": {
5295      "type": "PREC",
5296      "value": -1,
5297      "content": {
5298        "type": "SEQ",
5299        "members": [
5300          {
5301            "type": "STRING",
5302            "value": "("
5303          },
5304          {
5305            "type": "FIELD",
5306            "name": "type",
5307            "content": {
5308              "type": "SYMBOL",
5309              "name": "cast_type"
5310            }
5311          },
5312          {
5313            "type": "STRING",
5314            "value": ")"
5315          },
5316          {
5317            "type": "FIELD",
5318            "name": "value",
5319            "content": {
5320              "type": "CHOICE",
5321              "members": [
5322                {
5323                  "type": "SYMBOL",
5324                  "name": "_unary_expression"
5325                },
5326                {
5327                  "type": "SYMBOL",
5328                  "name": "include_expression"
5329                },
5330                {
5331                  "type": "SYMBOL",
5332                  "name": "include_once_expression"
5333                },
5334                {
5335                  "type": "SYMBOL",
5336                  "name": "error_suppression_expression"
5337                }
5338              ]
5339            }
5340          }
5341        ]
5342      }
5343    },
5344    "cast_variable": {
5345      "type": "PREC",
5346      "value": -1,
5347      "content": {
5348        "type": "SEQ",
5349        "members": [
5350          {
5351            "type": "STRING",
5352            "value": "("
5353          },
5354          {
5355            "type": "FIELD",
5356            "name": "type",
5357            "content": {
5358              "type": "SYMBOL",
5359              "name": "cast_type"
5360            }
5361          },
5362          {
5363            "type": "STRING",
5364            "value": ")"
5365          },
5366          {
5367            "type": "FIELD",
5368            "name": "value",
5369            "content": {
5370              "type": "SYMBOL",
5371              "name": "_variable"
5372            }
5373          }
5374        ]
5375      }
5376    },
5377    "assignment_expression": {
5378      "type": "PREC_RIGHT",
5379      "value": 4,
5380      "content": {
5381        "type": "SEQ",
5382        "members": [
5383          {
5384            "type": "FIELD",
5385            "name": "left",
5386            "content": {
5387              "type": "CHOICE",
5388              "members": [
5389                {
5390                  "type": "SYMBOL",
5391                  "name": "_variable"
5392                },
5393                {
5394                  "type": "SYMBOL",
5395                  "name": "list_literal"
5396                }
5397              ]
5398            }
5399          },
5400          {
5401            "type": "STRING",
5402            "value": "="
5403          },
5404          {
5405            "type": "FIELD",
5406            "name": "right",
5407            "content": {
5408              "type": "SYMBOL",
5409              "name": "expression"
5410            }
5411          }
5412        ]
5413      }
5414    },
5415    "reference_assignment_expression": {
5416      "type": "PREC_RIGHT",
5417      "value": 4,
5418      "content": {
5419        "type": "SEQ",
5420        "members": [
5421          {
5422            "type": "FIELD",
5423            "name": "left",
5424            "content": {
5425              "type": "CHOICE",
5426              "members": [
5427                {
5428                  "type": "SYMBOL",
5429                  "name": "_variable"
5430                },
5431                {
5432                  "type": "SYMBOL",
5433                  "name": "list_literal"
5434                }
5435              ]
5436            }
5437          },
5438          {
5439            "type": "STRING",
5440            "value": "="
5441          },
5442          {
5443            "type": "STRING",
5444            "value": "&"
5445          },
5446          {
5447            "type": "FIELD",
5448            "name": "right",
5449            "content": {
5450              "type": "SYMBOL",
5451              "name": "expression"
5452            }
5453          }
5454        ]
5455      }
5456    },
5457    "conditional_expression": {
5458      "type": "PREC_LEFT",
5459      "value": 5,
5460      "content": {
5461        "type": "SEQ",
5462        "members": [
5463          {
5464            "type": "FIELD",
5465            "name": "condition",
5466            "content": {
5467              "type": "SYMBOL",
5468              "name": "expression"
5469            }
5470          },
5471          {
5472            "type": "STRING",
5473            "value": "?"
5474          },
5475          {
5476            "type": "FIELD",
5477            "name": "body",
5478            "content": {
5479              "type": "CHOICE",
5480              "members": [
5481                {
5482                  "type": "SYMBOL",
5483                  "name": "expression"
5484                },
5485                {
5486                  "type": "BLANK"
5487                }
5488              ]
5489            }
5490          },
5491          {
5492            "type": "STRING",
5493            "value": ":"
5494          },
5495          {
5496            "type": "FIELD",
5497            "name": "alternative",
5498            "content": {
5499              "type": "SYMBOL",
5500              "name": "expression"
5501            }
5502          }
5503        ]
5504      }
5505    },
5506    "augmented_assignment_expression": {
5507      "type": "PREC_RIGHT",
5508      "value": 4,
5509      "content": {
5510        "type": "SEQ",
5511        "members": [
5512          {
5513            "type": "FIELD",
5514            "name": "left",
5515            "content": {
5516              "type": "SYMBOL",
5517              "name": "_variable"
5518            }
5519          },
5520          {
5521            "type": "FIELD",
5522            "name": "operator",
5523            "content": {
5524              "type": "CHOICE",
5525              "members": [
5526                {
5527                  "type": "STRING",
5528                  "value": "**="
5529                },
5530                {
5531                  "type": "STRING",
5532                  "value": "*="
5533                },
5534                {
5535                  "type": "STRING",
5536                  "value": "/="
5537                },
5538                {
5539                  "type": "STRING",
5540                  "value": "%="
5541                },
5542                {
5543                  "type": "STRING",
5544                  "value": "+="
5545                },
5546                {
5547                  "type": "STRING",
5548                  "value": "-="
5549                },
5550                {
5551                  "type": "STRING",
5552                  "value": ".="
5553                },
5554                {
5555                  "type": "STRING",
5556                  "value": "<<="
5557                },
5558                {
5559                  "type": "STRING",
5560                  "value": ">>="
5561                },
5562                {
5563                  "type": "STRING",
5564                  "value": "&="
5565                },
5566                {
5567                  "type": "STRING",
5568                  "value": "^="
5569                },
5570                {
5571                  "type": "STRING",
5572                  "value": "|="
5573                },
5574                {
5575                  "type": "STRING",
5576                  "value": "??="
5577                }
5578              ]
5579            }
5580          },
5581          {
5582            "type": "FIELD",
5583            "name": "right",
5584            "content": {
5585              "type": "SYMBOL",
5586              "name": "expression"
5587            }
5588          }
5589        ]
5590      }
5591    },
5592    "_variable": {
5593      "type": "CHOICE",
5594      "members": [
5595        {
5596          "type": "ALIAS",
5597          "content": {
5598            "type": "SYMBOL",
5599            "name": "cast_variable"
5600          },
5601          "named": true,
5602          "value": "cast_expression"
5603        },
5604        {
5605          "type": "SYMBOL",
5606          "name": "_new_variable"
5607        },
5608        {
5609          "type": "SYMBOL",
5610          "name": "_callable_variable"
5611        },
5612        {
5613          "type": "SYMBOL",
5614          "name": "scoped_property_access_expression"
5615        },
5616        {
5617          "type": "SYMBOL",
5618          "name": "member_access_expression"
5619        },
5620        {
5621          "type": "SYMBOL",
5622          "name": "nullsafe_member_access_expression"
5623        }
5624      ]
5625    },
5626    "_variable_member_access_expression": {
5627      "type": "PREC",
5628      "value": 25,
5629      "content": {
5630        "type": "SEQ",
5631        "members": [
5632          {
5633            "type": "FIELD",
5634            "name": "object",
5635            "content": {
5636              "type": "SYMBOL",
5637              "name": "_new_variable"
5638            }
5639          },
5640          {
5641            "type": "STRING",
5642            "value": "->"
5643          },
5644          {
5645            "type": "SYMBOL",
5646            "name": "_member_name"
5647          }
5648        ]
5649      }
5650    },
5651    "member_access_expression": {
5652      "type": "PREC",
5653      "value": 25,
5654      "content": {
5655        "type": "SEQ",
5656        "members": [
5657          {
5658            "type": "FIELD",
5659            "name": "object",
5660            "content": {
5661              "type": "SYMBOL",
5662              "name": "_dereferencable_expression"
5663            }
5664          },
5665          {
5666            "type": "STRING",
5667            "value": "->"
5668          },
5669          {
5670            "type": "SYMBOL",
5671            "name": "_member_name"
5672          }
5673        ]
5674      }
5675    },
5676    "_variable_nullsafe_member_access_expression": {
5677      "type": "PREC",
5678      "value": 25,
5679      "content": {
5680        "type": "SEQ",
5681        "members": [
5682          {
5683            "type": "FIELD",
5684            "name": "object",
5685            "content": {
5686              "type": "SYMBOL",
5687              "name": "_new_variable"
5688            }
5689          },
5690          {
5691            "type": "STRING",
5692            "value": "?->"
5693          },
5694          {
5695            "type": "SYMBOL",
5696            "name": "_member_name"
5697          }
5698        ]
5699      }
5700    },
5701    "nullsafe_member_access_expression": {
5702      "type": "PREC",
5703      "value": 25,
5704      "content": {
5705        "type": "SEQ",
5706        "members": [
5707          {
5708            "type": "FIELD",
5709            "name": "object",
5710            "content": {
5711              "type": "SYMBOL",
5712              "name": "_dereferencable_expression"
5713            }
5714          },
5715          {
5716            "type": "STRING",
5717            "value": "?->"
5718          },
5719          {
5720            "type": "SYMBOL",
5721            "name": "_member_name"
5722          }
5723        ]
5724      }
5725    },
5726    "_variable_scoped_property_access_expression": {
5727      "type": "PREC",
5728      "value": 25,
5729      "content": {
5730        "type": "SEQ",
5731        "members": [
5732          {
5733            "type": "FIELD",
5734            "name": "scope",
5735            "content": {
5736              "type": "CHOICE",
5737              "members": [
5738                {
5739                  "type": "SYMBOL",
5740                  "name": "_name"
5741                },
5742                {
5743                  "type": "SYMBOL",
5744                  "name": "_new_variable"
5745                }
5746              ]
5747            }
5748          },
5749          {
5750            "type": "STRING",
5751            "value": "::"
5752          },
5753          {
5754            "type": "FIELD",
5755            "name": "name",
5756            "content": {
5757              "type": "SYMBOL",
5758              "name": "_simple_variable"
5759            }
5760          }
5761        ]
5762      }
5763    },
5764    "scoped_property_access_expression": {
5765      "type": "PREC",
5766      "value": 25,
5767      "content": {
5768        "type": "SEQ",
5769        "members": [
5770          {
5771            "type": "FIELD",
5772            "name": "scope",
5773            "content": {
5774              "type": "SYMBOL",
5775              "name": "_scope_resolution_qualifier"
5776            }
5777          },
5778          {
5779            "type": "STRING",
5780            "value": "::"
5781          },
5782          {
5783            "type": "FIELD",
5784            "name": "name",
5785            "content": {
5786              "type": "SYMBOL",
5787              "name": "_simple_variable"
5788            }
5789          }
5790        ]
5791      }
5792    },
5793    "list_literal": {
5794      "type": "CHOICE",
5795      "members": [
5796        {
5797          "type": "SYMBOL",
5798          "name": "_list_destructing"
5799        },
5800        {
5801          "type": "SYMBOL",
5802          "name": "_array_destructing"
5803        }
5804      ]
5805    },
5806    "_list_destructing": {
5807      "type": "SEQ",
5808      "members": [
5809        {
5810          "type": "ALIAS",
5811          "content": {
5812            "type": "PATTERN",
5813            "value": "list",
5814            "flags": "i"
5815          },
5816          "named": false,
5817          "value": "list"
5818        },
5819        {
5820          "type": "STRING",
5821          "value": "("
5822        },
5823        {
5824          "type": "SEQ",
5825          "members": [
5826            {
5827              "type": "CHOICE",
5828              "members": [
5829                {
5830                  "type": "CHOICE",
5831                  "members": [
5832                    {
5833                      "type": "ALIAS",
5834                      "content": {
5835                        "type": "SYMBOL",
5836                        "name": "_list_destructing"
5837                      },
5838                      "named": true,
5839                      "value": "list_literal"
5840                    },
5841                    {
5842                      "type": "SYMBOL",
5843                      "name": "_variable"
5844                    },
5845                    {
5846                      "type": "SYMBOL",
5847                      "name": "by_ref"
5848                    },
5849                    {
5850                      "type": "SEQ",
5851                      "members": [
5852                        {
5853                          "type": "SYMBOL",
5854                          "name": "expression"
5855                        },
5856                        {
5857                          "type": "STRING",
5858                          "value": "=>"
5859                        },
5860                        {
5861                          "type": "CHOICE",
5862                          "members": [
5863                            {
5864                              "type": "ALIAS",
5865                              "content": {
5866                                "type": "SYMBOL",
5867                                "name": "_list_destructing"
5868                              },
5869                              "named": true,
5870                              "value": "list_literal"
5871                            },
5872                            {
5873                              "type": "SYMBOL",
5874                              "name": "_variable"
5875                            },
5876                            {
5877                              "type": "SYMBOL",
5878                              "name": "by_ref"
5879                            }
5880                          ]
5881                        }
5882                      ]
5883                    }
5884                  ]
5885                },
5886                {
5887                  "type": "BLANK"
5888                }
5889              ]
5890            },
5891            {
5892              "type": "REPEAT",
5893              "content": {
5894                "type": "SEQ",
5895                "members": [
5896                  {
5897                    "type": "STRING",
5898                    "value": ","
5899                  },
5900                  {
5901                    "type": "CHOICE",
5902                    "members": [
5903                      {
5904                        "type": "CHOICE",
5905                        "members": [
5906                          {
5907                            "type": "ALIAS",
5908                            "content": {
5909                              "type": "SYMBOL",
5910                              "name": "_list_destructing"
5911                            },
5912                            "named": true,
5913                            "value": "list_literal"
5914                          },
5915                          {
5916                            "type": "SYMBOL",
5917                            "name": "_variable"
5918                          },
5919                          {
5920                            "type": "SYMBOL",
5921                            "name": "by_ref"
5922                          },
5923                          {
5924                            "type": "SEQ",
5925                            "members": [
5926                              {
5927                                "type": "SYMBOL",
5928                                "name": "expression"
5929                              },
5930                              {
5931                                "type": "STRING",
5932                                "value": "=>"
5933                              },
5934                              {
5935                                "type": "CHOICE",
5936                                "members": [
5937                                  {
5938                                    "type": "ALIAS",
5939                                    "content": {
5940                                      "type": "SYMBOL",
5941                                      "name": "_list_destructing"
5942                                    },
5943                                    "named": true,
5944                                    "value": "list_literal"
5945                                  },
5946                                  {
5947                                    "type": "SYMBOL",
5948                                    "name": "_variable"
5949                                  },
5950                                  {
5951                                    "type": "SYMBOL",
5952                                    "name": "by_ref"
5953                                  }
5954                                ]
5955                              }
5956                            ]
5957                          }
5958                        ]
5959                      },
5960                      {
5961                        "type": "BLANK"
5962                      }
5963                    ]
5964                  }
5965                ]
5966              }
5967            }
5968          ]
5969        },
5970        {
5971          "type": "STRING",
5972          "value": ")"
5973        }
5974      ]
5975    },
5976    "_array_destructing": {
5977      "type": "SEQ",
5978      "members": [
5979        {
5980          "type": "STRING",
5981          "value": "["
5982        },
5983        {
5984          "type": "SEQ",
5985          "members": [
5986            {
5987              "type": "CHOICE",
5988              "members": [
5989                {
5990                  "type": "SYMBOL",
5991                  "name": "_array_destructing_element"
5992                },
5993                {
5994                  "type": "BLANK"
5995                }
5996              ]
5997            },
5998            {
5999              "type": "REPEAT",
6000              "content": {
6001                "type": "SEQ",
6002                "members": [
6003                  {
6004                    "type": "STRING",
6005                    "value": ","
6006                  },
6007                  {
6008                    "type": "CHOICE",
6009                    "members": [
6010                      {
6011                        "type": "SYMBOL",
6012                        "name": "_array_destructing_element"
6013                      },
6014                      {
6015                        "type": "BLANK"
6016                      }
6017                    ]
6018                  }
6019                ]
6020              }
6021            }
6022          ]
6023        },
6024        {
6025          "type": "STRING",
6026          "value": "]"
6027        }
6028      ]
6029    },
6030    "_array_destructing_element": {
6031      "type": "CHOICE",
6032      "members": [
6033        {
6034          "type": "CHOICE",
6035          "members": [
6036            {
6037              "type": "ALIAS",
6038              "content": {
6039                "type": "SYMBOL",
6040                "name": "_array_destructing"
6041              },
6042              "named": true,
6043              "value": "list_literal"
6044            },
6045            {
6046              "type": "SYMBOL",
6047              "name": "_variable"
6048            },
6049            {
6050              "type": "SYMBOL",
6051              "name": "by_ref"
6052            }
6053          ]
6054        },
6055        {
6056          "type": "SEQ",
6057          "members": [
6058            {
6059              "type": "SYMBOL",
6060              "name": "expression"
6061            },
6062            {
6063              "type": "STRING",
6064              "value": "=>"
6065            },
6066            {
6067              "type": "CHOICE",
6068              "members": [
6069                {
6070                  "type": "ALIAS",
6071                  "content": {
6072                    "type": "SYMBOL",
6073                    "name": "_array_destructing"
6074                  },
6075                  "named": true,
6076                  "value": "list_literal"
6077                },
6078                {
6079                  "type": "SYMBOL",
6080                  "name": "_variable"
6081                },
6082                {
6083                  "type": "SYMBOL",
6084                  "name": "by_ref"
6085                }
6086              ]
6087            }
6088          ]
6089        }
6090      ]
6091    },
6092    "function_call_expression": {
6093      "type": "PREC",
6094      "value": 24,
6095      "content": {
6096        "type": "SEQ",
6097        "members": [
6098          {
6099            "type": "FIELD",
6100            "name": "function",
6101            "content": {
6102              "type": "CHOICE",
6103              "members": [
6104                {
6105                  "type": "SYMBOL",
6106                  "name": "_name"
6107                },
6108                {
6109                  "type": "SYMBOL",
6110                  "name": "_callable_expression"
6111                }
6112              ]
6113            }
6114          },
6115          {
6116            "type": "FIELD",
6117            "name": "arguments",
6118            "content": {
6119              "type": "SYMBOL",
6120              "name": "arguments"
6121            }
6122          }
6123        ]
6124      }
6125    },
6126    "_callable_expression": {
6127      "type": "CHOICE",
6128      "members": [
6129        {
6130          "type": "SYMBOL",
6131          "name": "_callable_variable"
6132        },
6133        {
6134          "type": "SYMBOL",
6135          "name": "parenthesized_expression"
6136        },
6137        {
6138          "type": "SYMBOL",
6139          "name": "_dereferencable_scalar"
6140        },
6141        {
6142          "type": "ALIAS",
6143          "content": {
6144            "type": "SYMBOL",
6145            "name": "_new_dereferencable_expression"
6146          },
6147          "named": true,
6148          "value": "object_creation_expression"
6149        }
6150      ]
6151    },
6152    "scoped_call_expression": {
6153      "type": "PREC",
6154      "value": 24,
6155      "content": {
6156        "type": "SEQ",
6157        "members": [
6158          {
6159            "type": "FIELD",
6160            "name": "scope",
6161            "content": {
6162              "type": "SYMBOL",
6163              "name": "_scope_resolution_qualifier"
6164            }
6165          },
6166          {
6167            "type": "STRING",
6168            "value": "::"
6169          },
6170          {
6171            "type": "SYMBOL",
6172            "name": "_member_name"
6173          },
6174          {
6175            "type": "FIELD",
6176            "name": "arguments",
6177            "content": {
6178              "type": "SYMBOL",
6179              "name": "arguments"
6180            }
6181          }
6182        ]
6183      }
6184    },
6185    "_scope_resolution_qualifier": {
6186      "type": "CHOICE",
6187      "members": [
6188        {
6189          "type": "SYMBOL",
6190          "name": "relative_scope"
6191        },
6192        {
6193          "type": "SYMBOL",
6194          "name": "_name"
6195        },
6196        {
6197          "type": "SYMBOL",
6198          "name": "_dereferencable_expression"
6199        }
6200      ]
6201    },
6202    "relative_scope": {
6203      "type": "PREC",
6204      "value": 22,
6205      "content": {
6206        "type": "CHOICE",
6207        "members": [
6208          {
6209            "type": "STRING",
6210            "value": "self"
6211          },
6212          {
6213            "type": "STRING",
6214            "value": "parent"
6215          },
6216          {
6217            "type": "ALIAS",
6218            "content": {
6219              "type": "PATTERN",
6220              "value": "static",
6221              "flags": "i"
6222            },
6223            "named": false,
6224            "value": "static"
6225          }
6226        ]
6227      }
6228    },
6229    "variadic_placeholder": {
6230      "type": "STRING",
6231      "value": "..."
6232    },
6233    "arguments": {
6234      "type": "SEQ",
6235      "members": [
6236        {
6237          "type": "STRING",
6238          "value": "("
6239        },
6240        {
6241          "type": "CHOICE",
6242          "members": [
6243            {
6244              "type": "CHOICE",
6245              "members": [
6246                {
6247                  "type": "SEQ",
6248                  "members": [
6249                    {
6250                      "type": "SEQ",
6251                      "members": [
6252                        {
6253                          "type": "SYMBOL",
6254                          "name": "argument"
6255                        },
6256                        {
6257                          "type": "REPEAT",
6258                          "content": {
6259                            "type": "SEQ",
6260                            "members": [
6261                              {
6262                                "type": "STRING",
6263                                "value": ","
6264                              },
6265                              {
6266                                "type": "SYMBOL",
6267                                "name": "argument"
6268                              }
6269                            ]
6270                          }
6271                        }
6272                      ]
6273                    },
6274                    {
6275                      "type": "CHOICE",
6276                      "members": [
6277                        {
6278                          "type": "STRING",
6279                          "value": ","
6280                        },
6281                        {
6282                          "type": "BLANK"
6283                        }
6284                      ]
6285                    }
6286                  ]
6287                },
6288                {
6289                  "type": "SYMBOL",
6290                  "name": "variadic_placeholder"
6291                }
6292              ]
6293            },
6294            {
6295              "type": "BLANK"
6296            }
6297          ]
6298        },
6299        {
6300          "type": "STRING",
6301          "value": ")"
6302        }
6303      ]
6304    },
6305    "argument": {
6306      "type": "SEQ",
6307      "members": [
6308        {
6309          "type": "CHOICE",
6310          "members": [
6311            {
6312              "type": "SYMBOL",
6313              "name": "_argument_name"
6314            },
6315            {
6316              "type": "BLANK"
6317            }
6318          ]
6319        },
6320        {
6321          "type": "CHOICE",
6322          "members": [
6323            {
6324              "type": "FIELD",
6325              "name": "reference_modifier",
6326              "content": {
6327                "type": "SYMBOL",
6328                "name": "reference_modifier"
6329              }
6330            },
6331            {
6332              "type": "BLANK"
6333            }
6334          ]
6335        },
6336        {
6337          "type": "CHOICE",
6338          "members": [
6339            {
6340              "type": "ALIAS",
6341              "content": {
6342                "type": "SYMBOL",
6343                "name": "_reserved_identifier"
6344              },
6345              "named": true,
6346              "value": "name"
6347            },
6348            {
6349              "type": "SYMBOL",
6350              "name": "variadic_unpacking"
6351            },
6352            {
6353              "type": "SYMBOL",
6354              "name": "expression"
6355            }
6356          ]
6357        }
6358      ]
6359    },
6360    "_argument_name": {
6361      "type": "SEQ",
6362      "members": [
6363        {
6364          "type": "FIELD",
6365          "name": "name",
6366          "content": {
6367            "type": "ALIAS",
6368            "content": {
6369              "type": "CHOICE",
6370              "members": [
6371                {
6372                  "type": "SYMBOL",
6373                  "name": "name"
6374                },
6375                {
6376                  "type": "PATTERN",
6377                  "value": "array",
6378                  "flags": "i"
6379                },
6380                {
6381                  "type": "PATTERN",
6382                  "value": "fn",
6383                  "flags": "i"
6384                },
6385                {
6386                  "type": "PATTERN",
6387                  "value": "function",
6388                  "flags": "i"
6389                },
6390                {
6391                  "type": "PATTERN",
6392                  "value": "match",
6393                  "flags": "i"
6394                },
6395                {
6396                  "type": "PATTERN",
6397                  "value": "namespace",
6398                  "flags": "i"
6399                },
6400                {
6401                  "type": "PATTERN",
6402                  "value": "null",
6403                  "flags": "i"
6404                },
6405                {
6406                  "type": "PATTERN",
6407                  "value": "static",
6408                  "flags": "i"
6409                },
6410                {
6411                  "type": "PATTERN",
6412                  "value": "throw",
6413                  "flags": "i"
6414                },
6415                {
6416                  "type": "STRING",
6417                  "value": "parent"
6418                },
6419                {
6420                  "type": "STRING",
6421                  "value": "self"
6422                },
6423                {
6424                  "type": "PATTERN",
6425                  "value": "true|false",
6426                  "flags": "i"
6427                }
6428              ]
6429            },
6430            "named": true,
6431            "value": "name"
6432          }
6433        },
6434        {
6435          "type": "STRING",
6436          "value": ":"
6437        }
6438      ]
6439    },
6440    "member_call_expression": {
6441      "type": "PREC",
6442      "value": 24,
6443      "content": {
6444        "type": "SEQ",
6445        "members": [
6446          {
6447            "type": "FIELD",
6448            "name": "object",
6449            "content": {
6450              "type": "SYMBOL",
6451              "name": "_dereferencable_expression"
6452            }
6453          },
6454          {
6455            "type": "STRING",
6456            "value": "->"
6457          },
6458          {
6459            "type": "SYMBOL",
6460            "name": "_member_name"
6461          },
6462          {
6463            "type": "FIELD",
6464            "name": "arguments",
6465            "content": {
6466              "type": "SYMBOL",
6467              "name": "arguments"
6468            }
6469          }
6470        ]
6471      }
6472    },
6473    "nullsafe_member_call_expression": {
6474      "type": "PREC",
6475      "value": 24,
6476      "content": {
6477        "type": "SEQ",
6478        "members": [
6479          {
6480            "type": "FIELD",
6481            "name": "object",
6482            "content": {
6483              "type": "SYMBOL",
6484              "name": "_dereferencable_expression"
6485            }
6486          },
6487          {
6488            "type": "STRING",
6489            "value": "?->"
6490          },
6491          {
6492            "type": "SYMBOL",
6493            "name": "_member_name"
6494          },
6495          {
6496            "type": "FIELD",
6497            "name": "arguments",
6498            "content": {
6499              "type": "SYMBOL",
6500              "name": "arguments"
6501            }
6502          }
6503        ]
6504      }
6505    },
6506    "variadic_unpacking": {
6507      "type": "SEQ",
6508      "members": [
6509        {
6510          "type": "STRING",
6511          "value": "..."
6512        },
6513        {
6514          "type": "SYMBOL",
6515          "name": "expression"
6516        }
6517      ]
6518    },
6519    "_member_name": {
6520      "type": "CHOICE",
6521      "members": [
6522        {
6523          "type": "FIELD",
6524          "name": "name",
6525          "content": {
6526            "type": "CHOICE",
6527            "members": [
6528              {
6529                "type": "SYMBOL",
6530                "name": "_identifier"
6531              },
6532              {
6533                "type": "SYMBOL",
6534                "name": "_simple_variable"
6535              }
6536            ]
6537          }
6538        },
6539        {
6540          "type": "SEQ",
6541          "members": [
6542            {
6543              "type": "STRING",
6544              "value": "{"
6545            },
6546            {
6547              "type": "FIELD",
6548              "name": "name",
6549              "content": {
6550                "type": "SYMBOL",
6551                "name": "expression"
6552              }
6553            },
6554            {
6555              "type": "STRING",
6556              "value": "}"
6557            }
6558          ]
6559        }
6560      ]
6561    },
6562    "_variable_subscript_expression": {
6563      "type": "SEQ",
6564      "members": [
6565        {
6566          "type": "SYMBOL",
6567          "name": "_new_variable"
6568        },
6569        {
6570          "type": "SEQ",
6571          "members": [
6572            {
6573              "type": "STRING",
6574              "value": "["
6575            },
6576            {
6577              "type": "CHOICE",
6578              "members": [
6579                {
6580                  "type": "SYMBOL",
6581                  "name": "expression"
6582                },
6583                {
6584                  "type": "BLANK"
6585                }
6586              ]
6587            },
6588            {
6589              "type": "STRING",
6590              "value": "]"
6591            }
6592          ]
6593        }
6594      ]
6595    },
6596    "_dereferencable_subscript_expression": {
6597      "type": "SEQ",
6598      "members": [
6599        {
6600          "type": "SYMBOL",
6601          "name": "_dereferencable_expression"
6602        },
6603        {
6604          "type": "SEQ",
6605          "members": [
6606            {
6607              "type": "STRING",
6608              "value": "["
6609            },
6610            {
6611              "type": "CHOICE",
6612              "members": [
6613                {
6614                  "type": "SYMBOL",
6615                  "name": "expression"
6616                },
6617                {
6618                  "type": "BLANK"
6619                }
6620              ]
6621            },
6622            {
6623              "type": "STRING",
6624              "value": "]"
6625            }
6626          ]
6627        }
6628      ]
6629    },
6630    "_dereferencable_expression": {
6631      "type": "PREC",
6632      "value": 26,
6633      "content": {
6634        "type": "CHOICE",
6635        "members": [
6636          {
6637            "type": "SYMBOL",
6638            "name": "_variable"
6639          },
6640          {
6641            "type": "ALIAS",
6642            "content": {
6643              "type": "SYMBOL",
6644              "name": "_new_dereferencable_expression"
6645            },
6646            "named": true,
6647            "value": "object_creation_expression"
6648          },
6649          {
6650            "type": "SYMBOL",
6651            "name": "class_constant_access_expression"
6652          },
6653          {
6654            "type": "SYMBOL",
6655            "name": "parenthesized_expression"
6656          },
6657          {
6658            "type": "SYMBOL",
6659            "name": "_dereferencable_scalar"
6660          },
6661          {
6662            "type": "SYMBOL",
6663            "name": "_name"
6664          }
6665        ]
6666      }
6667    },
6668    "_dereferencable_scalar": {
6669      "type": "PREC",
6670      "value": 26,
6671      "content": {
6672        "type": "CHOICE",
6673        "members": [
6674          {
6675            "type": "SYMBOL",
6676            "name": "array_creation_expression"
6677          },
6678          {
6679            "type": "SYMBOL",
6680            "name": "_string"
6681          }
6682        ]
6683      }
6684    },
6685    "array_creation_expression": {
6686      "type": "CHOICE",
6687      "members": [
6688        {
6689          "type": "SEQ",
6690          "members": [
6691            {
6692              "type": "ALIAS",
6693              "content": {
6694                "type": "PATTERN",
6695                "value": "array",
6696                "flags": "i"
6697              },
6698              "named": false,
6699              "value": "array"
6700            },
6701            {
6702              "type": "STRING",
6703              "value": "("
6704            },
6705            {
6706              "type": "CHOICE",
6707              "members": [
6708                {
6709                  "type": "SEQ",
6710                  "members": [
6711                    {
6712                      "type": "SYMBOL",
6713                      "name": "array_element_initializer"
6714                    },
6715                    {
6716                      "type": "REPEAT",
6717                      "content": {
6718                        "type": "SEQ",
6719                        "members": [
6720                          {
6721                            "type": "STRING",
6722                            "value": ","
6723                          },
6724                          {
6725                            "type": "SYMBOL",
6726                            "name": "array_element_initializer"
6727                          }
6728                        ]
6729                      }
6730                    }
6731                  ]
6732                },
6733                {
6734                  "type": "BLANK"
6735                }
6736              ]
6737            },
6738            {
6739              "type": "CHOICE",
6740              "members": [
6741                {
6742                  "type": "STRING",
6743                  "value": ","
6744                },
6745                {
6746                  "type": "BLANK"
6747                }
6748              ]
6749            },
6750            {
6751              "type": "STRING",
6752              "value": ")"
6753            }
6754          ]
6755        },
6756        {
6757          "type": "SEQ",
6758          "members": [
6759            {
6760              "type": "STRING",
6761              "value": "["
6762            },
6763            {
6764              "type": "CHOICE",
6765              "members": [
6766                {
6767                  "type": "SEQ",
6768                  "members": [
6769                    {
6770                      "type": "SYMBOL",
6771                      "name": "array_element_initializer"
6772                    },
6773                    {
6774                      "type": "REPEAT",
6775                      "content": {
6776                        "type": "SEQ",
6777                        "members": [
6778                          {
6779                            "type": "STRING",
6780                            "value": ","
6781                          },
6782                          {
6783                            "type": "SYMBOL",
6784                            "name": "array_element_initializer"
6785                          }
6786                        ]
6787                      }
6788                    }
6789                  ]
6790                },
6791                {
6792                  "type": "BLANK"
6793                }
6794              ]
6795            },
6796            {
6797              "type": "CHOICE",
6798              "members": [
6799                {
6800                  "type": "STRING",
6801                  "value": ","
6802                },
6803                {
6804                  "type": "BLANK"
6805                }
6806              ]
6807            },
6808            {
6809              "type": "STRING",
6810              "value": "]"
6811            }
6812          ]
6813        }
6814      ]
6815    },
6816    "attribute_group": {
6817      "type": "SEQ",
6818      "members": [
6819        {
6820          "type": "STRING",
6821          "value": "#["
6822        },
6823        {
6824          "type": "SEQ",
6825          "members": [
6826            {
6827              "type": "SYMBOL",
6828              "name": "attribute"
6829            },
6830            {
6831              "type": "REPEAT",
6832              "content": {
6833                "type": "SEQ",
6834                "members": [
6835                  {
6836                    "type": "STRING",
6837                    "value": ","
6838                  },
6839                  {
6840                    "type": "SYMBOL",
6841                    "name": "attribute"
6842                  }
6843                ]
6844              }
6845            }
6846          ]
6847        },
6848        {
6849          "type": "CHOICE",
6850          "members": [
6851            {
6852              "type": "STRING",
6853              "value": ","
6854            },
6855            {
6856              "type": "BLANK"
6857            }
6858          ]
6859        },
6860        {
6861          "type": "STRING",
6862          "value": "]"
6863        }
6864      ]
6865    },
6866    "attribute_list": {
6867      "type": "REPEAT1",
6868      "content": {
6869        "type": "SYMBOL",
6870        "name": "attribute_group"
6871      }
6872    },
6873    "attribute": {
6874      "type": "SEQ",
6875      "members": [
6876        {
6877          "type": "SYMBOL",
6878          "name": "_name"
6879        },
6880        {
6881          "type": "CHOICE",
6882          "members": [
6883            {
6884              "type": "FIELD",
6885              "name": "parameters",
6886              "content": {
6887                "type": "SYMBOL",
6888                "name": "arguments"
6889              }
6890            },
6891            {
6892              "type": "BLANK"
6893            }
6894          ]
6895        }
6896      ]
6897    },
6898    "_complex_string_part": {
6899      "type": "SEQ",
6900      "members": [
6901        {
6902          "type": "STRING",
6903          "value": "{"
6904        },
6905        {
6906          "type": "SYMBOL",
6907          "name": "expression"
6908        },
6909        {
6910          "type": "STRING",
6911          "value": "}"
6912        }
6913      ]
6914    },
6915    "_simple_string_member_access_expression": {
6916      "type": "PREC",
6917      "value": 25,
6918      "content": {
6919        "type": "SEQ",
6920        "members": [
6921          {
6922            "type": "FIELD",
6923            "name": "object",
6924            "content": {
6925              "type": "SYMBOL",
6926              "name": "variable_name"
6927            }
6928          },
6929          {
6930            "type": "STRING",
6931            "value": "->"
6932          },
6933          {
6934            "type": "FIELD",
6935            "name": "name",
6936            "content": {
6937              "type": "SYMBOL",
6938              "name": "name"
6939            }
6940          }
6941        ]
6942      }
6943    },
6944    "_simple_string_subscript_unary_expression": {
6945      "type": "PREC_LEFT",
6946      "value": 0,
6947      "content": {
6948        "type": "SEQ",
6949        "members": [
6950          {
6951            "type": "STRING",
6952            "value": "-"
6953          },
6954          {
6955            "type": "SYMBOL",
6956            "name": "integer"
6957          }
6958        ]
6959      }
6960    },
6961    "_simple_string_array_access_argument": {
6962      "type": "CHOICE",
6963      "members": [
6964        {
6965          "type": "SYMBOL",
6966          "name": "integer"
6967        },
6968        {
6969          "type": "ALIAS",
6970          "content": {
6971            "type": "SYMBOL",
6972            "name": "_simple_string_subscript_unary_expression"
6973          },
6974          "named": true,
6975          "value": "unary_op_expression"
6976        },
6977        {
6978          "type": "SYMBOL",
6979          "name": "name"
6980        },
6981        {
6982          "type": "SYMBOL",
6983          "name": "variable_name"
6984        }
6985      ]
6986    },
6987    "_simple_string_subscript_expression": {
6988      "type": "PREC",
6989      "value": 26,
6990      "content": {
6991        "type": "SEQ",
6992        "members": [
6993          {
6994            "type": "SYMBOL",
6995            "name": "variable_name"
6996          },
6997          {
6998            "type": "SEQ",
6999            "members": [
7000              {
7001                "type": "STRING",
7002                "value": "["
7003              },
7004              {
7005                "type": "SYMBOL",
7006                "name": "_simple_string_array_access_argument"
7007              },
7008              {
7009                "type": "STRING",
7010                "value": "]"
7011              }
7012            ]
7013          }
7014        ]
7015      }
7016    },
7017    "_simple_string_part": {
7018      "type": "CHOICE",
7019      "members": [
7020        {
7021          "type": "ALIAS",
7022          "content": {
7023            "type": "SYMBOL",
7024            "name": "_simple_string_member_access_expression"
7025          },
7026          "named": true,
7027          "value": "member_access_expression"
7028        },
7029        {
7030          "type": "SYMBOL",
7031          "name": "_simple_variable"
7032        },
7033        {
7034          "type": "ALIAS",
7035          "content": {
7036            "type": "SYMBOL",
7037            "name": "_simple_string_subscript_expression"
7038          },
7039          "named": true,
7040          "value": "subscript_expression"
7041        }
7042      ]
7043    },
7044    "escape_sequence": {
7045      "type": "IMMEDIATE_TOKEN",
7046      "content": {
7047        "type": "SEQ",
7048        "members": [
7049          {
7050            "type": "STRING",
7051            "value": "\\"
7052          },
7053          {
7054            "type": "CHOICE",
7055            "members": [
7056              {
7057                "type": "STRING",
7058                "value": "n"
7059              },
7060              {
7061                "type": "STRING",
7062                "value": "r"
7063              },
7064              {
7065                "type": "STRING",
7066                "value": "t"
7067              },
7068              {
7069                "type": "STRING",
7070                "value": "v"
7071              },
7072              {
7073                "type": "STRING",
7074                "value": "e"
7075              },
7076              {
7077                "type": "STRING",
7078                "value": "f"
7079              },
7080              {
7081                "type": "STRING",
7082                "value": "\\"
7083              },
7084              {
7085                "type": "PATTERN",
7086                "value": "\\$"
7087              },
7088              {
7089                "type": "STRING",
7090                "value": "\""
7091              },
7092              {
7093                "type": "STRING",
7094                "value": "`"
7095              },
7096              {
7097                "type": "PATTERN",
7098                "value": "[0-7]{1,3}"
7099              },
7100              {
7101                "type": "PATTERN",
7102                "value": "x[0-9A-Fa-f]{1,2}"
7103              },
7104              {
7105                "type": "PATTERN",
7106                "value": "u\\{[0-9A-Fa-f]+\\}"
7107              }
7108            ]
7109          }
7110        ]
7111      }
7112    },
7113    "_interpolated_string_body": {
7114      "type": "REPEAT1",
7115      "content": {
7116        "type": "CHOICE",
7117        "members": [
7118          {
7119            "type": "SYMBOL",
7120            "name": "escape_sequence"
7121          },
7122          {
7123            "type": "SEQ",
7124            "members": [
7125              {
7126                "type": "SYMBOL",
7127                "name": "variable_name"
7128              },
7129              {
7130                "type": "ALIAS",
7131                "content": {
7132                  "type": "SYMBOL",
7133                  "name": "encapsed_string_chars_after_variable"
7134                },
7135                "named": true,
7136                "value": "string_content"
7137              }
7138            ]
7139          },
7140          {
7141            "type": "ALIAS",
7142            "content": {
7143              "type": "SYMBOL",
7144              "name": "encapsed_string_chars"
7145            },
7146            "named": true,
7147            "value": "string_content"
7148          },
7149          {
7150            "type": "SYMBOL",
7151            "name": "_simple_string_part"
7152          },
7153          {
7154            "type": "SYMBOL",
7155            "name": "_complex_string_part"
7156          },
7157          {
7158            "type": "ALIAS",
7159            "content": {
7160              "type": "STRING",
7161              "value": "\\u"
7162            },
7163            "named": true,
7164            "value": "string_content"
7165          }
7166        ]
7167      }
7168    },
7169    "_interpolated_string_body_heredoc": {
7170      "type": "REPEAT1",
7171      "content": {
7172        "type": "CHOICE",
7173        "members": [
7174          {
7175            "type": "SYMBOL",
7176            "name": "escape_sequence"
7177          },
7178          {
7179            "type": "SEQ",
7180            "members": [
7181              {
7182                "type": "SYMBOL",
7183                "name": "variable_name"
7184              },
7185              {
7186                "type": "ALIAS",
7187                "content": {
7188                  "type": "SYMBOL",
7189                  "name": "encapsed_string_chars_after_variable_heredoc"
7190                },
7191                "named": true,
7192                "value": "string_content"
7193              }
7194            ]
7195          },
7196          {
7197            "type": "ALIAS",
7198            "content": {
7199              "type": "SYMBOL",
7200              "name": "encapsed_string_chars_heredoc"
7201            },
7202            "named": true,
7203            "value": "string_content"
7204          },
7205          {
7206            "type": "SYMBOL",
7207            "name": "_simple_string_part"
7208          },
7209          {
7210            "type": "SYMBOL",
7211            "name": "_complex_string_part"
7212          },
7213          {
7214            "type": "ALIAS",
7215            "content": {
7216              "type": "STRING",
7217              "value": "\\u"
7218            },
7219            "named": true,
7220            "value": "string_content"
7221          }
7222        ]
7223      }
7224    },
7225    "encapsed_string": {
7226      "type": "PREC_RIGHT",
7227      "value": 0,
7228      "content": {
7229        "type": "SEQ",
7230        "members": [
7231          {
7232            "type": "CHOICE",
7233            "members": [
7234              {
7235                "type": "PATTERN",
7236                "value": "[bB]\""
7237              },
7238              {
7239                "type": "STRING",
7240                "value": "\""
7241              }
7242            ]
7243          },
7244          {
7245            "type": "CHOICE",
7246            "members": [
7247              {
7248                "type": "SYMBOL",
7249                "name": "_interpolated_string_body"
7250              },
7251              {
7252                "type": "BLANK"
7253              }
7254            ]
7255          },
7256          {
7257            "type": "STRING",
7258            "value": "\""
7259          }
7260        ]
7261      }
7262    },
7263    "string": {
7264      "type": "SEQ",
7265      "members": [
7266        {
7267          "type": "CHOICE",
7268          "members": [
7269            {
7270              "type": "PATTERN",
7271              "value": "[bB]'"
7272            },
7273            {
7274              "type": "STRING",
7275              "value": "'"
7276            }
7277          ]
7278        },
7279        {
7280          "type": "REPEAT",
7281          "content": {
7282            "type": "CHOICE",
7283            "members": [
7284              {
7285                "type": "ALIAS",
7286                "content": {
7287                  "type": "TOKEN",
7288                  "content": {
7289                    "type": "CHOICE",
7290                    "members": [
7291                      {
7292                        "type": "STRING",
7293                        "value": "\\\\"
7294                      },
7295                      {
7296                        "type": "STRING",
7297                        "value": "\\'"
7298                      }
7299                    ]
7300                  }
7301                },
7302                "named": true,
7303                "value": "escape_sequence"
7304              },
7305              {
7306                "type": "SYMBOL",
7307                "name": "string_content"
7308              }
7309            ]
7310          }
7311        },
7312        {
7313          "type": "STRING",
7314          "value": "'"
7315        }
7316      ]
7317    },
7318    "string_content": {
7319      "type": "PREC_RIGHT",
7320      "value": 0,
7321      "content": {
7322        "type": "REPEAT1",
7323        "content": {
7324          "type": "IMMEDIATE_TOKEN",
7325          "content": {
7326            "type": "PREC",
7327            "value": 1,
7328            "content": {
7329              "type": "PATTERN",
7330              "value": "\\\\?[^'\\\\]+"
7331            }
7332          }
7333        }
7334      }
7335    },
7336    "heredoc_body": {
7337      "type": "SEQ",
7338      "members": [
7339        {
7340          "type": "SYMBOL",
7341          "name": "_new_line"
7342        },
7343        {
7344          "type": "REPEAT1",
7345          "content": {
7346            "type": "PREC_RIGHT",
7347            "value": 0,
7348            "content": {
7349              "type": "SEQ",
7350              "members": [
7351                {
7352                  "type": "CHOICE",
7353                  "members": [
7354                    {
7355                      "type": "SYMBOL",
7356                      "name": "_new_line"
7357                    },
7358                    {
7359                      "type": "BLANK"
7360                    }
7361                  ]
7362                },
7363                {
7364                  "type": "SYMBOL",
7365                  "name": "_interpolated_string_body_heredoc"
7366                }
7367              ]
7368            }
7369          }
7370        }
7371      ]
7372    },
7373    "heredoc": {
7374      "type": "SEQ",
7375      "members": [
7376        {
7377          "type": "TOKEN",
7378          "content": {
7379            "type": "STRING",
7380            "value": "<<<"
7381          }
7382        },
7383        {
7384          "type": "CHOICE",
7385          "members": [
7386            {
7387              "type": "STRING",
7388              "value": "\""
7389            },
7390            {
7391              "type": "BLANK"
7392            }
7393          ]
7394        },
7395        {
7396          "type": "FIELD",
7397          "name": "identifier",
7398          "content": {
7399            "type": "SYMBOL",
7400            "name": "heredoc_start"
7401          }
7402        },
7403        {
7404          "type": "CHOICE",
7405          "members": [
7406            {
7407              "type": "IMMEDIATE_TOKEN",
7408              "content": {
7409                "type": "STRING",
7410                "value": "\""
7411              }
7412            },
7413            {
7414              "type": "BLANK"
7415            }
7416          ]
7417        },
7418        {
7419          "type": "CHOICE",
7420          "members": [
7421            {
7422              "type": "SEQ",
7423              "members": [
7424                {
7425                  "type": "FIELD",
7426                  "name": "value",
7427                  "content": {
7428                    "type": "SYMBOL",
7429                    "name": "heredoc_body"
7430                  }
7431                },
7432                {
7433                  "type": "SYMBOL",
7434                  "name": "_new_line"
7435                }
7436              ]
7437            },
7438            {
7439              "type": "FIELD",
7440              "name": "value",
7441              "content": {
7442                "type": "CHOICE",
7443                "members": [
7444                  {
7445                    "type": "SYMBOL",
7446                    "name": "heredoc_body"
7447                  },
7448                  {
7449                    "type": "BLANK"
7450                  }
7451                ]
7452              }
7453            }
7454          ]
7455        },
7456        {
7457          "type": "FIELD",
7458          "name": "end_tag",
7459          "content": {
7460            "type": "SYMBOL",
7461            "name": "heredoc_end"
7462          }
7463        }
7464      ]
7465    },
7466    "_new_line": {
7467      "type": "PATTERN",
7468      "value": "\\r?\\n|\\r"
7469    },
7470    "nowdoc_body": {
7471      "type": "SEQ",
7472      "members": [
7473        {
7474          "type": "SYMBOL",
7475          "name": "_new_line"
7476        },
7477        {
7478          "type": "REPEAT1",
7479          "content": {
7480            "type": "SYMBOL",
7481            "name": "nowdoc_string"
7482          }
7483        }
7484      ]
7485    },
7486    "nowdoc": {
7487      "type": "SEQ",
7488      "members": [
7489        {
7490          "type": "TOKEN",
7491          "content": {
7492            "type": "STRING",
7493            "value": "<<<"
7494          }
7495        },
7496        {
7497          "type": "STRING",
7498          "value": "'"
7499        },
7500        {
7501          "type": "FIELD",
7502          "name": "identifier",
7503          "content": {
7504            "type": "SYMBOL",
7505            "name": "heredoc_start"
7506          }
7507        },
7508        {
7509          "type": "IMMEDIATE_TOKEN",
7510          "content": {
7511            "type": "STRING",
7512            "value": "'"
7513          }
7514        },
7515        {
7516          "type": "CHOICE",
7517          "members": [
7518            {
7519              "type": "SEQ",
7520              "members": [
7521                {
7522                  "type": "FIELD",
7523                  "name": "value",
7524                  "content": {
7525                    "type": "SYMBOL",
7526                    "name": "nowdoc_body"
7527                  }
7528                },
7529                {
7530                  "type": "SYMBOL",
7531                  "name": "_new_line"
7532                }
7533              ]
7534            },
7535            {
7536              "type": "FIELD",
7537              "name": "value",
7538              "content": {
7539                "type": "CHOICE",
7540                "members": [
7541                  {
7542                    "type": "SYMBOL",
7543                    "name": "nowdoc_body"
7544                  },
7545                  {
7546                    "type": "BLANK"
7547                  }
7548                ]
7549              }
7550            }
7551          ]
7552        },
7553        {
7554          "type": "FIELD",
7555          "name": "end_tag",
7556          "content": {
7557            "type": "SYMBOL",
7558            "name": "heredoc_end"
7559          }
7560        }
7561      ]
7562    },
7563    "_interpolated_execution_operator_body": {
7564      "type": "REPEAT1",
7565      "content": {
7566        "type": "CHOICE",
7567        "members": [
7568          {
7569            "type": "SYMBOL",
7570            "name": "escape_sequence"
7571          },
7572          {
7573            "type": "SEQ",
7574            "members": [
7575              {
7576                "type": "SYMBOL",
7577                "name": "variable_name"
7578              },
7579              {
7580                "type": "ALIAS",
7581                "content": {
7582                  "type": "SYMBOL",
7583                  "name": "execution_string_chars_after_variable"
7584                },
7585                "named": true,
7586                "value": "string_content"
7587              }
7588            ]
7589          },
7590          {
7591            "type": "ALIAS",
7592            "content": {
7593              "type": "SYMBOL",
7594              "name": "execution_string_chars"
7595            },
7596            "named": true,
7597            "value": "string_content"
7598          },
7599          {
7600            "type": "SYMBOL",
7601            "name": "_simple_string_part"
7602          },
7603          {
7604            "type": "SYMBOL",
7605            "name": "_complex_string_part"
7606          },
7607          {
7608            "type": "ALIAS",
7609            "content": {
7610              "type": "STRING",
7611              "value": "\\u"
7612            },
7613            "named": true,
7614            "value": "string_content"
7615          }
7616        ]
7617      }
7618    },
7619    "shell_command_expression": {
7620      "type": "SEQ",
7621      "members": [
7622        {
7623          "type": "STRING",
7624          "value": "`"
7625        },
7626        {
7627          "type": "CHOICE",
7628          "members": [
7629            {
7630              "type": "SYMBOL",
7631              "name": "_interpolated_execution_operator_body"
7632            },
7633            {
7634              "type": "BLANK"
7635            }
7636          ]
7637        },
7638        {
7639          "type": "STRING",
7640          "value": "`"
7641        }
7642      ]
7643    },
7644    "boolean": {
7645      "type": "PATTERN",
7646      "value": "true|false",
7647      "flags": "i"
7648    },
7649    "null": {
7650      "type": "PATTERN",
7651      "value": "null",
7652      "flags": "i"
7653    },
7654    "_string": {
7655      "type": "CHOICE",
7656      "members": [
7657        {
7658          "type": "SYMBOL",
7659          "name": "encapsed_string"
7660        },
7661        {
7662          "type": "SYMBOL",
7663          "name": "string"
7664        },
7665        {
7666          "type": "SYMBOL",
7667          "name": "heredoc"
7668        },
7669        {
7670          "type": "SYMBOL",
7671          "name": "nowdoc"
7672        }
7673      ]
7674    },
7675    "dynamic_variable_name": {
7676      "type": "CHOICE",
7677      "members": [
7678        {
7679          "type": "SEQ",
7680          "members": [
7681            {
7682              "type": "STRING",
7683              "value": "$"
7684            },
7685            {
7686              "type": "SYMBOL",
7687              "name": "_simple_variable"
7688            }
7689          ]
7690        },
7691        {
7692          "type": "SEQ",
7693          "members": [
7694            {
7695              "type": "STRING",
7696              "value": "$"
7697            },
7698            {
7699              "type": "STRING",
7700              "value": "{"
7701            },
7702            {
7703              "type": "SYMBOL",
7704              "name": "expression"
7705            },
7706            {
7707              "type": "STRING",
7708              "value": "}"
7709            }
7710          ]
7711        }
7712      ]
7713    },
7714    "_simple_variable": {
7715      "type": "CHOICE",
7716      "members": [
7717        {
7718          "type": "SYMBOL",
7719          "name": "variable_name"
7720        },
7721        {
7722          "type": "SYMBOL",
7723          "name": "dynamic_variable_name"
7724        }
7725      ]
7726    },
7727    "_new_variable": {
7728      "type": "PREC",
7729      "value": 1,
7730      "content": {
7731        "type": "CHOICE",
7732        "members": [
7733          {
7734            "type": "SYMBOL",
7735            "name": "_simple_variable"
7736          },
7737          {
7738            "type": "ALIAS",
7739            "content": {
7740              "type": "SYMBOL",
7741              "name": "_variable_subscript_expression"
7742            },
7743            "named": true,
7744            "value": "subscript_expression"
7745          },
7746          {
7747            "type": "ALIAS",
7748            "content": {
7749              "type": "SYMBOL",
7750              "name": "_variable_member_access_expression"
7751            },
7752            "named": true,
7753            "value": "member_access_expression"
7754          },
7755          {
7756            "type": "ALIAS",
7757            "content": {
7758              "type": "SYMBOL",
7759              "name": "_variable_nullsafe_member_access_expression"
7760            },
7761            "named": true,
7762            "value": "nullsafe_member_access_expression"
7763          },
7764          {
7765            "type": "ALIAS",
7766            "content": {
7767              "type": "SYMBOL",
7768              "name": "_variable_scoped_property_access_expression"
7769            },
7770            "named": true,
7771            "value": "scoped_property_access_expression"
7772          }
7773        ]
7774      }
7775    },
7776    "_callable_variable": {
7777      "type": "CHOICE",
7778      "members": [
7779        {
7780          "type": "SYMBOL",
7781          "name": "_simple_variable"
7782        },
7783        {
7784          "type": "ALIAS",
7785          "content": {
7786            "type": "SYMBOL",
7787            "name": "_dereferencable_subscript_expression"
7788          },
7789          "named": true,
7790          "value": "subscript_expression"
7791        },
7792        {
7793          "type": "SYMBOL",
7794          "name": "member_call_expression"
7795        },
7796        {
7797          "type": "SYMBOL",
7798          "name": "nullsafe_member_call_expression"
7799        },
7800        {
7801          "type": "SYMBOL",
7802          "name": "function_call_expression"
7803        },
7804        {
7805          "type": "SYMBOL",
7806          "name": "scoped_call_expression"
7807        }
7808      ]
7809    },
7810    "variable_name": {
7811      "type": "SEQ",
7812      "members": [
7813        {
7814          "type": "STRING",
7815          "value": "$"
7816        },
7817        {
7818          "type": "SYMBOL",
7819          "name": "name"
7820        }
7821      ]
7822    },
7823    "by_ref": {
7824      "type": "SEQ",
7825      "members": [
7826        {
7827          "type": "STRING",
7828          "value": "&"
7829        },
7830        {
7831          "type": "SYMBOL",
7832          "name": "_variable"
7833        }
7834      ]
7835    },
7836    "yield_expression": {
7837      "type": "PREC_RIGHT",
7838      "value": 0,
7839      "content": {
7840        "type": "SEQ",
7841        "members": [
7842          {
7843            "type": "ALIAS",
7844            "content": {
7845              "type": "PATTERN",
7846              "value": "yield",
7847              "flags": "i"
7848            },
7849            "named": false,
7850            "value": "yield"
7851          },
7852          {
7853            "type": "CHOICE",
7854            "members": [
7855              {
7856                "type": "CHOICE",
7857                "members": [
7858                  {
7859                    "type": "SYMBOL",
7860                    "name": "array_element_initializer"
7861                  },
7862                  {
7863                    "type": "SEQ",
7864                    "members": [
7865                      {
7866                        "type": "ALIAS",
7867                        "content": {
7868                          "type": "PATTERN",
7869                          "value": "from",
7870                          "flags": "i"
7871                        },
7872                        "named": false,
7873                        "value": "from"
7874                      },
7875                      {
7876                        "type": "SYMBOL",
7877                        "name": "expression"
7878                      }
7879                    ]
7880                  }
7881                ]
7882              },
7883              {
7884                "type": "BLANK"
7885              }
7886            ]
7887          }
7888        ]
7889      }
7890    },
7891    "array_element_initializer": {
7892      "type": "PREC_RIGHT",
7893      "value": 0,
7894      "content": {
7895        "type": "CHOICE",
7896        "members": [
7897          {
7898            "type": "CHOICE",
7899            "members": [
7900              {
7901                "type": "SYMBOL",
7902                "name": "by_ref"
7903              },
7904              {
7905                "type": "SYMBOL",
7906                "name": "expression"
7907              }
7908            ]
7909          },
7910          {
7911            "type": "SEQ",
7912            "members": [
7913              {
7914                "type": "SYMBOL",
7915                "name": "expression"
7916              },
7917              {
7918                "type": "STRING",
7919                "value": "=>"
7920              },
7921              {
7922                "type": "CHOICE",
7923                "members": [
7924                  {
7925                    "type": "SYMBOL",
7926                    "name": "by_ref"
7927                  },
7928                  {
7929                    "type": "SYMBOL",
7930                    "name": "expression"
7931                  }
7932                ]
7933              }
7934            ]
7935          },
7936          {
7937            "type": "SYMBOL",
7938            "name": "variadic_unpacking"
7939          }
7940        ]
7941      }
7942    },
7943    "binary_expression": {
7944      "type": "CHOICE",
7945      "members": [
7946        {
7947          "type": "PREC",
7948          "value": 20,
7949          "content": {
7950            "type": "SEQ",
7951            "members": [
7952              {
7953                "type": "FIELD",
7954                "name": "left",
7955                "content": {
7956                  "type": "SYMBOL",
7957                  "name": "_unary_expression"
7958                }
7959              },
7960              {
7961                "type": "FIELD",
7962                "name": "operator",
7963                "content": {
7964                  "type": "ALIAS",
7965                  "content": {
7966                    "type": "PATTERN",
7967                    "value": "instanceof",
7968                    "flags": "i"
7969                  },
7970                  "named": false,
7971                  "value": "instanceof"
7972                }
7973              },
7974              {
7975                "type": "FIELD",
7976                "name": "right",
7977                "content": {
7978                  "type": "SYMBOL",
7979                  "name": "_class_name_reference"
7980                }
7981              }
7982            ]
7983          }
7984        },
7985        {
7986          "type": "PREC_RIGHT",
7987          "value": 6,
7988          "content": {
7989            "type": "SEQ",
7990            "members": [
7991              {
7992                "type": "FIELD",
7993                "name": "left",
7994                "content": {
7995                  "type": "SYMBOL",
7996                  "name": "expression"
7997                }
7998              },
7999              {
8000                "type": "FIELD",
8001                "name": "operator",
8002                "content": {
8003                  "type": "STRING",
8004                  "value": "??"
8005                }
8006              },
8007              {
8008                "type": "FIELD",
8009                "name": "right",
8010                "content": {
8011                  "type": "SYMBOL",
8012                  "name": "expression"
8013                }
8014              }
8015            ]
8016          }
8017        },
8018        {
8019          "type": "PREC_RIGHT",
8020          "value": 18,
8021          "content": {
8022            "type": "SEQ",
8023            "members": [
8024              {
8025                "type": "FIELD",
8026                "name": "left",
8027                "content": {
8028                  "type": "SYMBOL",
8029                  "name": "expression"
8030                }
8031              },
8032              {
8033                "type": "FIELD",
8034                "name": "operator",
8035                "content": {
8036                  "type": "STRING",
8037                  "value": "**"
8038                }
8039              },
8040              {
8041                "type": "FIELD",
8042                "name": "right",
8043                "content": {
8044                  "type": "SYMBOL",
8045                  "name": "expression"
8046                }
8047              }
8048            ]
8049          }
8050        },
8051        {
8052          "type": "PREC_LEFT",
8053          "value": 3,
8054          "content": {
8055            "type": "SEQ",
8056            "members": [
8057              {
8058                "type": "FIELD",
8059                "name": "left",
8060                "content": {
8061                  "type": "SYMBOL",
8062                  "name": "expression"
8063                }
8064              },
8065              {
8066                "type": "FIELD",
8067                "name": "operator",
8068                "content": {
8069                  "type": "ALIAS",
8070                  "content": {
8071                    "type": "PATTERN",
8072                    "value": "and",
8073                    "flags": "i"
8074                  },
8075                  "named": false,
8076                  "value": "and"
8077                }
8078              },
8079              {
8080                "type": "FIELD",
8081                "name": "right",
8082                "content": {
8083                  "type": "SYMBOL",
8084                  "name": "expression"
8085                }
8086              }
8087            ]
8088          }
8089        },
8090        {
8091          "type": "PREC_LEFT",
8092          "value": 1,
8093          "content": {
8094            "type": "SEQ",
8095            "members": [
8096              {
8097                "type": "FIELD",
8098                "name": "left",
8099                "content": {
8100                  "type": "SYMBOL",
8101                  "name": "expression"
8102                }
8103              },
8104              {
8105                "type": "FIELD",
8106                "name": "operator",
8107                "content": {
8108                  "type": "ALIAS",
8109                  "content": {
8110                    "type": "PATTERN",
8111                    "value": "or",
8112                    "flags": "i"
8113                  },
8114                  "named": false,
8115                  "value": "or"
8116                }
8117              },
8118              {
8119                "type": "FIELD",
8120                "name": "right",
8121                "content": {
8122                  "type": "SYMBOL",
8123                  "name": "expression"
8124                }
8125              }
8126            ]
8127          }
8128        },
8129        {
8130          "type": "PREC_LEFT",
8131          "value": 2,
8132          "content": {
8133            "type": "SEQ",
8134            "members": [
8135              {
8136                "type": "FIELD",
8137                "name": "left",
8138                "content": {
8139                  "type": "SYMBOL",
8140                  "name": "expression"
8141                }
8142              },
8143              {
8144                "type": "FIELD",
8145                "name": "operator",
8146                "content": {
8147                  "type": "ALIAS",
8148                  "content": {
8149                    "type": "PATTERN",
8150                    "value": "xor",
8151                    "flags": "i"
8152                  },
8153                  "named": false,
8154                  "value": "xor"
8155                }
8156              },
8157              {
8158                "type": "FIELD",
8159                "name": "right",
8160                "content": {
8161                  "type": "SYMBOL",
8162                  "name": "expression"
8163                }
8164              }
8165            ]
8166          }
8167        },
8168        {
8169          "type": "PREC_LEFT",
8170          "value": 7,
8171          "content": {
8172            "type": "SEQ",
8173            "members": [
8174              {
8175                "type": "FIELD",
8176                "name": "left",
8177                "content": {
8178                  "type": "SYMBOL",
8179                  "name": "expression"
8180                }
8181              },
8182              {
8183                "type": "FIELD",
8184                "name": "operator",
8185                "content": {
8186                  "type": "STRING",
8187                  "value": "||"
8188                }
8189              },
8190              {
8191                "type": "FIELD",
8192                "name": "right",
8193                "content": {
8194                  "type": "SYMBOL",
8195                  "name": "expression"
8196                }
8197              }
8198            ]
8199          }
8200        },
8201        {
8202          "type": "PREC_LEFT",
8203          "value": 8,
8204          "content": {
8205            "type": "SEQ",
8206            "members": [
8207              {
8208                "type": "FIELD",
8209                "name": "left",
8210                "content": {
8211                  "type": "SYMBOL",
8212                  "name": "expression"
8213                }
8214              },
8215              {
8216                "type": "FIELD",
8217                "name": "operator",
8218                "content": {
8219                  "type": "STRING",
8220                  "value": "&&"
8221                }
8222              },
8223              {
8224                "type": "FIELD",
8225                "name": "right",
8226                "content": {
8227                  "type": "SYMBOL",
8228                  "name": "expression"
8229                }
8230              }
8231            ]
8232          }
8233        },
8234        {
8235          "type": "PREC_LEFT",
8236          "value": 9,
8237          "content": {
8238            "type": "SEQ",
8239            "members": [
8240              {
8241                "type": "FIELD",
8242                "name": "left",
8243                "content": {
8244                  "type": "SYMBOL",
8245                  "name": "expression"
8246                }
8247              },
8248              {
8249                "type": "FIELD",
8250                "name": "operator",
8251                "content": {
8252                  "type": "STRING",
8253                  "value": "|"
8254                }
8255              },
8256              {
8257                "type": "FIELD",
8258                "name": "right",
8259                "content": {
8260                  "type": "SYMBOL",
8261                  "name": "expression"
8262                }
8263              }
8264            ]
8265          }
8266        },
8267        {
8268          "type": "PREC_LEFT",
8269          "value": 10,
8270          "content": {
8271            "type": "SEQ",
8272            "members": [
8273              {
8274                "type": "FIELD",
8275                "name": "left",
8276                "content": {
8277                  "type": "SYMBOL",
8278                  "name": "expression"
8279                }
8280              },
8281              {
8282                "type": "FIELD",
8283                "name": "operator",
8284                "content": {
8285                  "type": "STRING",
8286                  "value": "^"
8287                }
8288              },
8289              {
8290                "type": "FIELD",
8291                "name": "right",
8292                "content": {
8293                  "type": "SYMBOL",
8294                  "name": "expression"
8295                }
8296              }
8297            ]
8298          }
8299        },
8300        {
8301          "type": "PREC_LEFT",
8302          "value": 11,
8303          "content": {
8304            "type": "SEQ",
8305            "members": [
8306              {
8307                "type": "FIELD",
8308                "name": "left",
8309                "content": {
8310                  "type": "SYMBOL",
8311                  "name": "expression"
8312                }
8313              },
8314              {
8315                "type": "FIELD",
8316                "name": "operator",
8317                "content": {
8318                  "type": "STRING",
8319                  "value": "&"
8320                }
8321              },
8322              {
8323                "type": "FIELD",
8324                "name": "right",
8325                "content": {
8326                  "type": "SYMBOL",
8327                  "name": "expression"
8328                }
8329              }
8330            ]
8331          }
8332        },
8333        {
8334          "type": "PREC_LEFT",
8335          "value": 12,
8336          "content": {
8337            "type": "SEQ",
8338            "members": [
8339              {
8340                "type": "FIELD",
8341                "name": "left",
8342                "content": {
8343                  "type": "SYMBOL",
8344                  "name": "expression"
8345                }
8346              },
8347              {
8348                "type": "FIELD",
8349                "name": "operator",
8350                "content": {
8351                  "type": "STRING",
8352                  "value": "=="
8353                }
8354              },
8355              {
8356                "type": "FIELD",
8357                "name": "right",
8358                "content": {
8359                  "type": "SYMBOL",
8360                  "name": "expression"
8361                }
8362              }
8363            ]
8364          }
8365        },
8366        {
8367          "type": "PREC_LEFT",
8368          "value": 12,
8369          "content": {
8370            "type": "SEQ",
8371            "members": [
8372              {
8373                "type": "FIELD",
8374                "name": "left",
8375                "content": {
8376                  "type": "SYMBOL",
8377                  "name": "expression"
8378                }
8379              },
8380              {
8381                "type": "FIELD",
8382                "name": "operator",
8383                "content": {
8384                  "type": "STRING",
8385                  "value": "!="
8386                }
8387              },
8388              {
8389                "type": "FIELD",
8390                "name": "right",
8391                "content": {
8392                  "type": "SYMBOL",
8393                  "name": "expression"
8394                }
8395              }
8396            ]
8397          }
8398        },
8399        {
8400          "type": "PREC_LEFT",
8401          "value": 12,
8402          "content": {
8403            "type": "SEQ",
8404            "members": [
8405              {
8406                "type": "FIELD",
8407                "name": "left",
8408                "content": {
8409                  "type": "SYMBOL",
8410                  "name": "expression"
8411                }
8412              },
8413              {
8414                "type": "FIELD",
8415                "name": "operator",
8416                "content": {
8417                  "type": "STRING",
8418                  "value": "<>"
8419                }
8420              },
8421              {
8422                "type": "FIELD",
8423                "name": "right",
8424                "content": {
8425                  "type": "SYMBOL",
8426                  "name": "expression"
8427                }
8428              }
8429            ]
8430          }
8431        },
8432        {
8433          "type": "PREC_LEFT",
8434          "value": 12,
8435          "content": {
8436            "type": "SEQ",
8437            "members": [
8438              {
8439                "type": "FIELD",
8440                "name": "left",
8441                "content": {
8442                  "type": "SYMBOL",
8443                  "name": "expression"
8444                }
8445              },
8446              {
8447                "type": "FIELD",
8448                "name": "operator",
8449                "content": {
8450                  "type": "STRING",
8451                  "value": "==="
8452                }
8453              },
8454              {
8455                "type": "FIELD",
8456                "name": "right",
8457                "content": {
8458                  "type": "SYMBOL",
8459                  "name": "expression"
8460                }
8461              }
8462            ]
8463          }
8464        },
8465        {
8466          "type": "PREC_LEFT",
8467          "value": 12,
8468          "content": {
8469            "type": "SEQ",
8470            "members": [
8471              {
8472                "type": "FIELD",
8473                "name": "left",
8474                "content": {
8475                  "type": "SYMBOL",
8476                  "name": "expression"
8477                }
8478              },
8479              {
8480                "type": "FIELD",
8481                "name": "operator",
8482                "content": {
8483                  "type": "STRING",
8484                  "value": "!=="
8485                }
8486              },
8487              {
8488                "type": "FIELD",
8489                "name": "right",
8490                "content": {
8491                  "type": "SYMBOL",
8492                  "name": "expression"
8493                }
8494              }
8495            ]
8496          }
8497        },
8498        {
8499          "type": "PREC_LEFT",
8500          "value": 13,
8501          "content": {
8502            "type": "SEQ",
8503            "members": [
8504              {
8505                "type": "FIELD",
8506                "name": "left",
8507                "content": {
8508                  "type": "SYMBOL",
8509                  "name": "expression"
8510                }
8511              },
8512              {
8513                "type": "FIELD",
8514                "name": "operator",
8515                "content": {
8516                  "type": "STRING",
8517                  "value": "<"
8518                }
8519              },
8520              {
8521                "type": "FIELD",
8522                "name": "right",
8523                "content": {
8524                  "type": "SYMBOL",
8525                  "name": "expression"
8526                }
8527              }
8528            ]
8529          }
8530        },
8531        {
8532          "type": "PREC_LEFT",
8533          "value": 13,
8534          "content": {
8535            "type": "SEQ",
8536            "members": [
8537              {
8538                "type": "FIELD",
8539                "name": "left",
8540                "content": {
8541                  "type": "SYMBOL",
8542                  "name": "expression"
8543                }
8544              },
8545              {
8546                "type": "FIELD",
8547                "name": "operator",
8548                "content": {
8549                  "type": "STRING",
8550                  "value": ">"
8551                }
8552              },
8553              {
8554                "type": "FIELD",
8555                "name": "right",
8556                "content": {
8557                  "type": "SYMBOL",
8558                  "name": "expression"
8559                }
8560              }
8561            ]
8562          }
8563        },
8564        {
8565          "type": "PREC_LEFT",
8566          "value": 13,
8567          "content": {
8568            "type": "SEQ",
8569            "members": [
8570              {
8571                "type": "FIELD",
8572                "name": "left",
8573                "content": {
8574                  "type": "SYMBOL",
8575                  "name": "expression"
8576                }
8577              },
8578              {
8579                "type": "FIELD",
8580                "name": "operator",
8581                "content": {
8582                  "type": "STRING",
8583                  "value": "<="
8584                }
8585              },
8586              {
8587                "type": "FIELD",
8588                "name": "right",
8589                "content": {
8590                  "type": "SYMBOL",
8591                  "name": "expression"
8592                }
8593              }
8594            ]
8595          }
8596        },
8597        {
8598          "type": "PREC_LEFT",
8599          "value": 13,
8600          "content": {
8601            "type": "SEQ",
8602            "members": [
8603              {
8604                "type": "FIELD",
8605                "name": "left",
8606                "content": {
8607                  "type": "SYMBOL",
8608                  "name": "expression"
8609                }
8610              },
8611              {
8612                "type": "FIELD",
8613                "name": "operator",
8614                "content": {
8615                  "type": "STRING",
8616                  "value": ">="
8617                }
8618              },
8619              {
8620                "type": "FIELD",
8621                "name": "right",
8622                "content": {
8623                  "type": "SYMBOL",
8624                  "name": "expression"
8625                }
8626              }
8627            ]
8628          }
8629        },
8630        {
8631          "type": "PREC_LEFT",
8632          "value": 12,
8633          "content": {
8634            "type": "SEQ",
8635            "members": [
8636              {
8637                "type": "FIELD",
8638                "name": "left",
8639                "content": {
8640                  "type": "SYMBOL",
8641                  "name": "expression"
8642                }
8643              },
8644              {
8645                "type": "FIELD",
8646                "name": "operator",
8647                "content": {
8648                  "type": "STRING",
8649                  "value": "<=>"
8650                }
8651              },
8652              {
8653                "type": "FIELD",
8654                "name": "right",
8655                "content": {
8656                  "type": "SYMBOL",
8657                  "name": "expression"
8658                }
8659              }
8660            ]
8661          }
8662        },
8663        {
8664          "type": "PREC_LEFT",
8665          "value": 15,
8666          "content": {
8667            "type": "SEQ",
8668            "members": [
8669              {
8670                "type": "FIELD",
8671                "name": "left",
8672                "content": {
8673                  "type": "SYMBOL",
8674                  "name": "expression"
8675                }
8676              },
8677              {
8678                "type": "FIELD",
8679                "name": "operator",
8680                "content": {
8681                  "type": "STRING",
8682                  "value": "<<"
8683                }
8684              },
8685              {
8686                "type": "FIELD",
8687                "name": "right",
8688                "content": {
8689                  "type": "SYMBOL",
8690                  "name": "expression"
8691                }
8692              }
8693            ]
8694          }
8695        },
8696        {
8697          "type": "PREC_LEFT",
8698          "value": 15,
8699          "content": {
8700            "type": "SEQ",
8701            "members": [
8702              {
8703                "type": "FIELD",
8704                "name": "left",
8705                "content": {
8706                  "type": "SYMBOL",
8707                  "name": "expression"
8708                }
8709              },
8710              {
8711                "type": "FIELD",
8712                "name": "operator",
8713                "content": {
8714                  "type": "STRING",
8715                  "value": ">>"
8716                }
8717              },
8718              {
8719                "type": "FIELD",
8720                "name": "right",
8721                "content": {
8722                  "type": "SYMBOL",
8723                  "name": "expression"
8724                }
8725              }
8726            ]
8727          }
8728        },
8729        {
8730          "type": "PREC_LEFT",
8731          "value": 16,
8732          "content": {
8733            "type": "SEQ",
8734            "members": [
8735              {
8736                "type": "FIELD",
8737                "name": "left",
8738                "content": {
8739                  "type": "SYMBOL",
8740                  "name": "expression"
8741                }
8742              },
8743              {
8744                "type": "FIELD",
8745                "name": "operator",
8746                "content": {
8747                  "type": "STRING",
8748                  "value": "+"
8749                }
8750              },
8751              {
8752                "type": "FIELD",
8753                "name": "right",
8754                "content": {
8755                  "type": "SYMBOL",
8756                  "name": "expression"
8757                }
8758              }
8759            ]
8760          }
8761        },
8762        {
8763          "type": "PREC_LEFT",
8764          "value": 16,
8765          "content": {
8766            "type": "SEQ",
8767            "members": [
8768              {
8769                "type": "FIELD",
8770                "name": "left",
8771                "content": {
8772                  "type": "SYMBOL",
8773                  "name": "expression"
8774                }
8775              },
8776              {
8777                "type": "FIELD",
8778                "name": "operator",
8779                "content": {
8780                  "type": "STRING",
8781                  "value": "-"
8782                }
8783              },
8784              {
8785                "type": "FIELD",
8786                "name": "right",
8787                "content": {
8788                  "type": "SYMBOL",
8789                  "name": "expression"
8790                }
8791              }
8792            ]
8793          }
8794        },
8795        {
8796          "type": "PREC_LEFT",
8797          "value": 14,
8798          "content": {
8799            "type": "SEQ",
8800            "members": [
8801              {
8802                "type": "FIELD",
8803                "name": "left",
8804                "content": {
8805                  "type": "SYMBOL",
8806                  "name": "expression"
8807                }
8808              },
8809              {
8810                "type": "FIELD",
8811                "name": "operator",
8812                "content": {
8813                  "type": "STRING",
8814                  "value": "."
8815                }
8816              },
8817              {
8818                "type": "FIELD",
8819                "name": "right",
8820                "content": {
8821                  "type": "SYMBOL",
8822                  "name": "expression"
8823                }
8824              }
8825            ]
8826          }
8827        },
8828        {
8829          "type": "PREC_LEFT",
8830          "value": 17,
8831          "content": {
8832            "type": "SEQ",
8833            "members": [
8834              {
8835                "type": "FIELD",
8836                "name": "left",
8837                "content": {
8838                  "type": "SYMBOL",
8839                  "name": "expression"
8840                }
8841              },
8842              {
8843                "type": "FIELD",
8844                "name": "operator",
8845                "content": {
8846                  "type": "STRING",
8847                  "value": "*"
8848                }
8849              },
8850              {
8851                "type": "FIELD",
8852                "name": "right",
8853                "content": {
8854                  "type": "SYMBOL",
8855                  "name": "expression"
8856                }
8857              }
8858            ]
8859          }
8860        },
8861        {
8862          "type": "PREC_LEFT",
8863          "value": 17,
8864          "content": {
8865            "type": "SEQ",
8866            "members": [
8867              {
8868                "type": "FIELD",
8869                "name": "left",
8870                "content": {
8871                  "type": "SYMBOL",
8872                  "name": "expression"
8873                }
8874              },
8875              {
8876                "type": "FIELD",
8877                "name": "operator",
8878                "content": {
8879                  "type": "STRING",
8880                  "value": "/"
8881                }
8882              },
8883              {
8884                "type": "FIELD",
8885                "name": "right",
8886                "content": {
8887                  "type": "SYMBOL",
8888                  "name": "expression"
8889                }
8890              }
8891            ]
8892          }
8893        },
8894        {
8895          "type": "PREC_LEFT",
8896          "value": 17,
8897          "content": {
8898            "type": "SEQ",
8899            "members": [
8900              {
8901                "type": "FIELD",
8902                "name": "left",
8903                "content": {
8904                  "type": "SYMBOL",
8905                  "name": "expression"
8906                }
8907              },
8908              {
8909                "type": "FIELD",
8910                "name": "operator",
8911                "content": {
8912                  "type": "STRING",
8913                  "value": "%"
8914                }
8915              },
8916              {
8917                "type": "FIELD",
8918                "name": "right",
8919                "content": {
8920                  "type": "SYMBOL",
8921                  "name": "expression"
8922                }
8923              }
8924            ]
8925          }
8926        }
8927      ]
8928    },
8929    "include_expression": {
8930      "type": "SEQ",
8931      "members": [
8932        {
8933          "type": "ALIAS",
8934          "content": {
8935            "type": "PATTERN",
8936            "value": "include",
8937            "flags": "i"
8938          },
8939          "named": false,
8940          "value": "include"
8941        },
8942        {
8943          "type": "SYMBOL",
8944          "name": "expression"
8945        }
8946      ]
8947    },
8948    "include_once_expression": {
8949      "type": "SEQ",
8950      "members": [
8951        {
8952          "type": "ALIAS",
8953          "content": {
8954            "type": "PATTERN",
8955            "value": "include_once",
8956            "flags": "i"
8957          },
8958          "named": false,
8959          "value": "include_once"
8960        },
8961        {
8962          "type": "SYMBOL",
8963          "name": "expression"
8964        }
8965      ]
8966    },
8967    "require_expression": {
8968      "type": "SEQ",
8969      "members": [
8970        {
8971          "type": "ALIAS",
8972          "content": {
8973            "type": "PATTERN",
8974            "value": "require",
8975            "flags": "i"
8976          },
8977          "named": false,
8978          "value": "require"
8979        },
8980        {
8981          "type": "SYMBOL",
8982          "name": "expression"
8983        }
8984      ]
8985    },
8986    "require_once_expression": {
8987      "type": "SEQ",
8988      "members": [
8989        {
8990          "type": "ALIAS",
8991          "content": {
8992            "type": "PATTERN",
8993            "value": "require_once",
8994            "flags": "i"
8995          },
8996          "named": false,
8997          "value": "require_once"
8998        },
8999        {
9000          "type": "SYMBOL",
9001          "name": "expression"
9002        }
9003      ]
9004    },
9005    "name": {
9006      "type": "PATTERN",
9007      "value": "[_a-zA-Z\\u0080-\\u009f\\u00a1-\\u200a\\u200c-\\u205f\\u2061-\\ufefe\\uff00-\\uffff][_a-zA-Z\\u0080-\\u009f\\u00a1-\\u200a\\u200c-\\u205f\\u2061-\\ufefe\\uff00-\\uffff\\d]*"
9008    },
9009    "_reserved_identifier": {
9010      "type": "CHOICE",
9011      "members": [
9012        {
9013          "type": "STRING",
9014          "value": "self"
9015        },
9016        {
9017          "type": "STRING",
9018          "value": "parent"
9019        },
9020        {
9021          "type": "ALIAS",
9022          "content": {
9023            "type": "PATTERN",
9024            "value": "static",
9025            "flags": "i"
9026          },
9027          "named": false,
9028          "value": "static"
9029        }
9030      ]
9031    },
9032    "_identifier": {
9033      "type": "CHOICE",
9034      "members": [
9035        {
9036          "type": "SYMBOL",
9037          "name": "name"
9038        },
9039        {
9040          "type": "ALIAS",
9041          "content": {
9042            "type": "SYMBOL",
9043            "name": "_reserved_identifier"
9044          },
9045          "named": true,
9046          "value": "name"
9047        }
9048      ]
9049    },
9050    "comment": {
9051      "type": "TOKEN",
9052      "content": {
9053        "type": "CHOICE",
9054        "members": [
9055          {
9056            "type": "SEQ",
9057            "members": [
9058              {
9059                "type": "CHOICE",
9060                "members": [
9061                  {
9062                    "type": "STRING",
9063                    "value": "//"
9064                  },
9065                  {
9066                    "type": "PATTERN",
9067                    "value": "#[^?\\[?\\r?\\n]"
9068                  }
9069                ]
9070              },
9071              {
9072                "type": "REPEAT",
9073                "content": {
9074                  "type": "PATTERN",
9075                  "value": "[^?\\r?\\n]|\\?[^>\\r\\n]"
9076                }
9077              },
9078              {
9079                "type": "CHOICE",
9080                "members": [
9081                  {
9082                    "type": "PATTERN",
9083                    "value": "\\?\\r?\\n"
9084                  },
9085                  {
9086                    "type": "BLANK"
9087                  }
9088                ]
9089              }
9090            ]
9091          },
9092          {
9093            "type": "STRING",
9094            "value": "#"
9095          },
9096          {
9097            "type": "SEQ",
9098            "members": [
9099              {
9100                "type": "STRING",
9101                "value": "/*"
9102              },
9103              {
9104                "type": "PATTERN",
9105                "value": "[^*]*\\*+([^/*][^*]*\\*+)*"
9106              },
9107              {
9108                "type": "STRING",
9109                "value": "/"
9110              }
9111            ]
9112          }
9113        ]
9114      }
9115    },
9116    "_semicolon": {
9117      "type": "CHOICE",
9118      "members": [
9119        {
9120          "type": "SYMBOL",
9121          "name": "_automatic_semicolon"
9122        },
9123        {
9124          "type": "STRING",
9125          "value": ";"
9126        }
9127      ]
9128    }
9129  },
9130  "extras": [
9131    {
9132      "type": "SYMBOL",
9133      "name": "comment"
9134    },
9135    {
9136      "type": "PATTERN",
9137      "value": "[\\s\\u00A0\\u200B\\u2060\\uFEFF]"
9138    },
9139    {
9140      "type": "SYMBOL",
9141      "name": "text_interpolation"
9142    }
9143  ],
9144  "conflicts": [
9145    [
9146      "_array_destructing",
9147      "array_creation_expression"
9148    ],
9149    [
9150      "_array_destructing_element",
9151      "array_element_initializer"
9152    ],
9153    [
9154      "primary_expression",
9155      "_array_destructing_element"
9156    ],
9157    [
9158      "type",
9159      "union_type",
9160      "intersection_type",
9161      "disjunctive_normal_form_type"
9162    ],
9163    [
9164      "union_type",
9165      "disjunctive_normal_form_type"
9166    ],
9167    [
9168      "intersection_type"
9169    ],
9170    [
9171      "if_statement"
9172    ],
9173    [
9174      "namespace_name"
9175    ],
9176    [
9177      "heredoc_body"
9178    ]
9179  ],
9180  "precedences": [],
9181  "externals": [
9182    {
9183      "type": "SYMBOL",
9184      "name": "_automatic_semicolon"
9185    },
9186    {
9187      "type": "SYMBOL",
9188      "name": "encapsed_string_chars"
9189    },
9190    {
9191      "type": "SYMBOL",
9192      "name": "encapsed_string_chars_after_variable"
9193    },
9194    {
9195      "type": "SYMBOL",
9196      "name": "execution_string_chars"
9197    },
9198    {
9199      "type": "SYMBOL",
9200      "name": "execution_string_chars_after_variable"
9201    },
9202    {
9203      "type": "SYMBOL",
9204      "name": "encapsed_string_chars_heredoc"
9205    },
9206    {
9207      "type": "SYMBOL",
9208      "name": "encapsed_string_chars_after_variable_heredoc"
9209    },
9210    {
9211      "type": "SYMBOL",
9212      "name": "_eof"
9213    },
9214    {
9215      "type": "SYMBOL",
9216      "name": "heredoc_start"
9217    },
9218    {
9219      "type": "SYMBOL",
9220      "name": "heredoc_end"
9221    },
9222    {
9223      "type": "SYMBOL",
9224      "name": "nowdoc_string"
9225    },
9226    {
9227      "type": "SYMBOL",
9228      "name": "sentinel_error"
9229    }
9230  ],
9231  "inline": [
9232    "_variable",
9233    "_namespace_use_type"
9234  ],
9235  "supertypes": [
9236    "statement",
9237    "expression",
9238    "primary_expression",
9239    "type",
9240    "literal"
9241  ]
9242}