1{
   2  "name": "python",
   3  "word": "identifier",
   4  "rules": {
   5    "module": {
   6      "type": "REPEAT",
   7      "content": {
   8        "type": "SYMBOL",
   9        "name": "_statement"
  10      }
  11    },
  12    "_statement": {
  13      "type": "CHOICE",
  14      "members": [
  15        {
  16          "type": "SYMBOL",
  17          "name": "_simple_statements"
  18        },
  19        {
  20          "type": "SYMBOL",
  21          "name": "_compound_statement"
  22        }
  23      ]
  24    },
  25    "_simple_statements": {
  26      "type": "SEQ",
  27      "members": [
  28        {
  29          "type": "SEQ",
  30          "members": [
  31            {
  32              "type": "SYMBOL",
  33              "name": "_simple_statement"
  34            },
  35            {
  36              "type": "REPEAT",
  37              "content": {
  38                "type": "SEQ",
  39                "members": [
  40                  {
  41                    "type": "STRING",
  42                    "value": ";"
  43                  },
  44                  {
  45                    "type": "SYMBOL",
  46                    "name": "_simple_statement"
  47                  }
  48                ]
  49              }
  50            }
  51          ]
  52        },
  53        {
  54          "type": "CHOICE",
  55          "members": [
  56            {
  57              "type": "STRING",
  58              "value": ";"
  59            },
  60            {
  61              "type": "BLANK"
  62            }
  63          ]
  64        },
  65        {
  66          "type": "SYMBOL",
  67          "name": "_newline"
  68        }
  69      ]
  70    },
  71    "_simple_statement": {
  72      "type": "CHOICE",
  73      "members": [
  74        {
  75          "type": "SYMBOL",
  76          "name": "future_import_statement"
  77        },
  78        {
  79          "type": "SYMBOL",
  80          "name": "import_statement"
  81        },
  82        {
  83          "type": "SYMBOL",
  84          "name": "import_from_statement"
  85        },
  86        {
  87          "type": "SYMBOL",
  88          "name": "print_statement"
  89        },
  90        {
  91          "type": "SYMBOL",
  92          "name": "assert_statement"
  93        },
  94        {
  95          "type": "SYMBOL",
  96          "name": "expression_statement"
  97        },
  98        {
  99          "type": "SYMBOL",
 100          "name": "return_statement"
 101        },
 102        {
 103          "type": "SYMBOL",
 104          "name": "delete_statement"
 105        },
 106        {
 107          "type": "SYMBOL",
 108          "name": "raise_statement"
 109        },
 110        {
 111          "type": "SYMBOL",
 112          "name": "pass_statement"
 113        },
 114        {
 115          "type": "SYMBOL",
 116          "name": "break_statement"
 117        },
 118        {
 119          "type": "SYMBOL",
 120          "name": "continue_statement"
 121        },
 122        {
 123          "type": "SYMBOL",
 124          "name": "global_statement"
 125        },
 126        {
 127          "type": "SYMBOL",
 128          "name": "nonlocal_statement"
 129        },
 130        {
 131          "type": "SYMBOL",
 132          "name": "exec_statement"
 133        },
 134        {
 135          "type": "SYMBOL",
 136          "name": "type_alias_statement"
 137        }
 138      ]
 139    },
 140    "import_statement": {
 141      "type": "SEQ",
 142      "members": [
 143        {
 144          "type": "STRING",
 145          "value": "import"
 146        },
 147        {
 148          "type": "SYMBOL",
 149          "name": "_import_list"
 150        }
 151      ]
 152    },
 153    "import_prefix": {
 154      "type": "REPEAT1",
 155      "content": {
 156        "type": "STRING",
 157        "value": "."
 158      }
 159    },
 160    "relative_import": {
 161      "type": "SEQ",
 162      "members": [
 163        {
 164          "type": "SYMBOL",
 165          "name": "import_prefix"
 166        },
 167        {
 168          "type": "CHOICE",
 169          "members": [
 170            {
 171              "type": "SYMBOL",
 172              "name": "dotted_name"
 173            },
 174            {
 175              "type": "BLANK"
 176            }
 177          ]
 178        }
 179      ]
 180    },
 181    "future_import_statement": {
 182      "type": "SEQ",
 183      "members": [
 184        {
 185          "type": "STRING",
 186          "value": "from"
 187        },
 188        {
 189          "type": "STRING",
 190          "value": "__future__"
 191        },
 192        {
 193          "type": "STRING",
 194          "value": "import"
 195        },
 196        {
 197          "type": "CHOICE",
 198          "members": [
 199            {
 200              "type": "SYMBOL",
 201              "name": "_import_list"
 202            },
 203            {
 204              "type": "SEQ",
 205              "members": [
 206                {
 207                  "type": "STRING",
 208                  "value": "("
 209                },
 210                {
 211                  "type": "SYMBOL",
 212                  "name": "_import_list"
 213                },
 214                {
 215                  "type": "STRING",
 216                  "value": ")"
 217                }
 218              ]
 219            }
 220          ]
 221        }
 222      ]
 223    },
 224    "import_from_statement": {
 225      "type": "SEQ",
 226      "members": [
 227        {
 228          "type": "STRING",
 229          "value": "from"
 230        },
 231        {
 232          "type": "FIELD",
 233          "name": "module_name",
 234          "content": {
 235            "type": "CHOICE",
 236            "members": [
 237              {
 238                "type": "SYMBOL",
 239                "name": "relative_import"
 240              },
 241              {
 242                "type": "SYMBOL",
 243                "name": "dotted_name"
 244              }
 245            ]
 246          }
 247        },
 248        {
 249          "type": "STRING",
 250          "value": "import"
 251        },
 252        {
 253          "type": "CHOICE",
 254          "members": [
 255            {
 256              "type": "SYMBOL",
 257              "name": "wildcard_import"
 258            },
 259            {
 260              "type": "SYMBOL",
 261              "name": "_import_list"
 262            },
 263            {
 264              "type": "SEQ",
 265              "members": [
 266                {
 267                  "type": "STRING",
 268                  "value": "("
 269                },
 270                {
 271                  "type": "SYMBOL",
 272                  "name": "_import_list"
 273                },
 274                {
 275                  "type": "STRING",
 276                  "value": ")"
 277                }
 278              ]
 279            }
 280          ]
 281        }
 282      ]
 283    },
 284    "_import_list": {
 285      "type": "SEQ",
 286      "members": [
 287        {
 288          "type": "SEQ",
 289          "members": [
 290            {
 291              "type": "FIELD",
 292              "name": "name",
 293              "content": {
 294                "type": "CHOICE",
 295                "members": [
 296                  {
 297                    "type": "SYMBOL",
 298                    "name": "dotted_name"
 299                  },
 300                  {
 301                    "type": "SYMBOL",
 302                    "name": "aliased_import"
 303                  }
 304                ]
 305              }
 306            },
 307            {
 308              "type": "REPEAT",
 309              "content": {
 310                "type": "SEQ",
 311                "members": [
 312                  {
 313                    "type": "STRING",
 314                    "value": ","
 315                  },
 316                  {
 317                    "type": "FIELD",
 318                    "name": "name",
 319                    "content": {
 320                      "type": "CHOICE",
 321                      "members": [
 322                        {
 323                          "type": "SYMBOL",
 324                          "name": "dotted_name"
 325                        },
 326                        {
 327                          "type": "SYMBOL",
 328                          "name": "aliased_import"
 329                        }
 330                      ]
 331                    }
 332                  }
 333                ]
 334              }
 335            }
 336          ]
 337        },
 338        {
 339          "type": "CHOICE",
 340          "members": [
 341            {
 342              "type": "STRING",
 343              "value": ","
 344            },
 345            {
 346              "type": "BLANK"
 347            }
 348          ]
 349        }
 350      ]
 351    },
 352    "aliased_import": {
 353      "type": "SEQ",
 354      "members": [
 355        {
 356          "type": "FIELD",
 357          "name": "name",
 358          "content": {
 359            "type": "SYMBOL",
 360            "name": "dotted_name"
 361          }
 362        },
 363        {
 364          "type": "STRING",
 365          "value": "as"
 366        },
 367        {
 368          "type": "FIELD",
 369          "name": "alias",
 370          "content": {
 371            "type": "SYMBOL",
 372            "name": "identifier"
 373          }
 374        }
 375      ]
 376    },
 377    "wildcard_import": {
 378      "type": "STRING",
 379      "value": "*"
 380    },
 381    "print_statement": {
 382      "type": "CHOICE",
 383      "members": [
 384        {
 385          "type": "PREC",
 386          "value": 1,
 387          "content": {
 388            "type": "SEQ",
 389            "members": [
 390              {
 391                "type": "STRING",
 392                "value": "print"
 393              },
 394              {
 395                "type": "SYMBOL",
 396                "name": "chevron"
 397              },
 398              {
 399                "type": "REPEAT",
 400                "content": {
 401                  "type": "SEQ",
 402                  "members": [
 403                    {
 404                      "type": "STRING",
 405                      "value": ","
 406                    },
 407                    {
 408                      "type": "FIELD",
 409                      "name": "argument",
 410                      "content": {
 411                        "type": "SYMBOL",
 412                        "name": "expression"
 413                      }
 414                    }
 415                  ]
 416                }
 417              },
 418              {
 419                "type": "CHOICE",
 420                "members": [
 421                  {
 422                    "type": "STRING",
 423                    "value": ","
 424                  },
 425                  {
 426                    "type": "BLANK"
 427                  }
 428                ]
 429              }
 430            ]
 431          }
 432        },
 433        {
 434          "type": "PREC",
 435          "value": -3,
 436          "content": {
 437            "type": "PREC_DYNAMIC",
 438            "value": -1,
 439            "content": {
 440              "type": "SEQ",
 441              "members": [
 442                {
 443                  "type": "STRING",
 444                  "value": "print"
 445                },
 446                {
 447                  "type": "SEQ",
 448                  "members": [
 449                    {
 450                      "type": "FIELD",
 451                      "name": "argument",
 452                      "content": {
 453                        "type": "SYMBOL",
 454                        "name": "expression"
 455                      }
 456                    },
 457                    {
 458                      "type": "REPEAT",
 459                      "content": {
 460                        "type": "SEQ",
 461                        "members": [
 462                          {
 463                            "type": "STRING",
 464                            "value": ","
 465                          },
 466                          {
 467                            "type": "FIELD",
 468                            "name": "argument",
 469                            "content": {
 470                              "type": "SYMBOL",
 471                              "name": "expression"
 472                            }
 473                          }
 474                        ]
 475                      }
 476                    }
 477                  ]
 478                },
 479                {
 480                  "type": "CHOICE",
 481                  "members": [
 482                    {
 483                      "type": "STRING",
 484                      "value": ","
 485                    },
 486                    {
 487                      "type": "BLANK"
 488                    }
 489                  ]
 490                }
 491              ]
 492            }
 493          }
 494        }
 495      ]
 496    },
 497    "chevron": {
 498      "type": "SEQ",
 499      "members": [
 500        {
 501          "type": "STRING",
 502          "value": ">>"
 503        },
 504        {
 505          "type": "SYMBOL",
 506          "name": "expression"
 507        }
 508      ]
 509    },
 510    "assert_statement": {
 511      "type": "SEQ",
 512      "members": [
 513        {
 514          "type": "STRING",
 515          "value": "assert"
 516        },
 517        {
 518          "type": "SEQ",
 519          "members": [
 520            {
 521              "type": "SYMBOL",
 522              "name": "expression"
 523            },
 524            {
 525              "type": "REPEAT",
 526              "content": {
 527                "type": "SEQ",
 528                "members": [
 529                  {
 530                    "type": "STRING",
 531                    "value": ","
 532                  },
 533                  {
 534                    "type": "SYMBOL",
 535                    "name": "expression"
 536                  }
 537                ]
 538              }
 539            }
 540          ]
 541        }
 542      ]
 543    },
 544    "expression_statement": {
 545      "type": "CHOICE",
 546      "members": [
 547        {
 548          "type": "SYMBOL",
 549          "name": "expression"
 550        },
 551        {
 552          "type": "SEQ",
 553          "members": [
 554            {
 555              "type": "SEQ",
 556              "members": [
 557                {
 558                  "type": "SYMBOL",
 559                  "name": "expression"
 560                },
 561                {
 562                  "type": "REPEAT",
 563                  "content": {
 564                    "type": "SEQ",
 565                    "members": [
 566                      {
 567                        "type": "STRING",
 568                        "value": ","
 569                      },
 570                      {
 571                        "type": "SYMBOL",
 572                        "name": "expression"
 573                      }
 574                    ]
 575                  }
 576                }
 577              ]
 578            },
 579            {
 580              "type": "CHOICE",
 581              "members": [
 582                {
 583                  "type": "STRING",
 584                  "value": ","
 585                },
 586                {
 587                  "type": "BLANK"
 588                }
 589              ]
 590            }
 591          ]
 592        },
 593        {
 594          "type": "SYMBOL",
 595          "name": "assignment"
 596        },
 597        {
 598          "type": "SYMBOL",
 599          "name": "augmented_assignment"
 600        },
 601        {
 602          "type": "SYMBOL",
 603          "name": "yield"
 604        }
 605      ]
 606    },
 607    "named_expression": {
 608      "type": "SEQ",
 609      "members": [
 610        {
 611          "type": "FIELD",
 612          "name": "name",
 613          "content": {
 614            "type": "SYMBOL",
 615            "name": "_named_expression_lhs"
 616          }
 617        },
 618        {
 619          "type": "STRING",
 620          "value": ":="
 621        },
 622        {
 623          "type": "FIELD",
 624          "name": "value",
 625          "content": {
 626            "type": "SYMBOL",
 627            "name": "expression"
 628          }
 629        }
 630      ]
 631    },
 632    "_named_expression_lhs": {
 633      "type": "CHOICE",
 634      "members": [
 635        {
 636          "type": "SYMBOL",
 637          "name": "identifier"
 638        },
 639        {
 640          "type": "SYMBOL",
 641          "name": "keyword_identifier"
 642        }
 643      ]
 644    },
 645    "return_statement": {
 646      "type": "SEQ",
 647      "members": [
 648        {
 649          "type": "STRING",
 650          "value": "return"
 651        },
 652        {
 653          "type": "CHOICE",
 654          "members": [
 655            {
 656              "type": "SYMBOL",
 657              "name": "_expressions"
 658            },
 659            {
 660              "type": "BLANK"
 661            }
 662          ]
 663        }
 664      ]
 665    },
 666    "delete_statement": {
 667      "type": "SEQ",
 668      "members": [
 669        {
 670          "type": "STRING",
 671          "value": "del"
 672        },
 673        {
 674          "type": "SYMBOL",
 675          "name": "_expressions"
 676        }
 677      ]
 678    },
 679    "_expressions": {
 680      "type": "CHOICE",
 681      "members": [
 682        {
 683          "type": "SYMBOL",
 684          "name": "expression"
 685        },
 686        {
 687          "type": "SYMBOL",
 688          "name": "expression_list"
 689        }
 690      ]
 691    },
 692    "raise_statement": {
 693      "type": "SEQ",
 694      "members": [
 695        {
 696          "type": "STRING",
 697          "value": "raise"
 698        },
 699        {
 700          "type": "CHOICE",
 701          "members": [
 702            {
 703              "type": "SYMBOL",
 704              "name": "_expressions"
 705            },
 706            {
 707              "type": "BLANK"
 708            }
 709          ]
 710        },
 711        {
 712          "type": "CHOICE",
 713          "members": [
 714            {
 715              "type": "SEQ",
 716              "members": [
 717                {
 718                  "type": "STRING",
 719                  "value": "from"
 720                },
 721                {
 722                  "type": "FIELD",
 723                  "name": "cause",
 724                  "content": {
 725                    "type": "SYMBOL",
 726                    "name": "expression"
 727                  }
 728                }
 729              ]
 730            },
 731            {
 732              "type": "BLANK"
 733            }
 734          ]
 735        }
 736      ]
 737    },
 738    "pass_statement": {
 739      "type": "PREC_LEFT",
 740      "value": 0,
 741      "content": {
 742        "type": "STRING",
 743        "value": "pass"
 744      }
 745    },
 746    "break_statement": {
 747      "type": "PREC_LEFT",
 748      "value": 0,
 749      "content": {
 750        "type": "STRING",
 751        "value": "break"
 752      }
 753    },
 754    "continue_statement": {
 755      "type": "PREC_LEFT",
 756      "value": 0,
 757      "content": {
 758        "type": "STRING",
 759        "value": "continue"
 760      }
 761    },
 762    "_compound_statement": {
 763      "type": "CHOICE",
 764      "members": [
 765        {
 766          "type": "SYMBOL",
 767          "name": "if_statement"
 768        },
 769        {
 770          "type": "SYMBOL",
 771          "name": "for_statement"
 772        },
 773        {
 774          "type": "SYMBOL",
 775          "name": "while_statement"
 776        },
 777        {
 778          "type": "SYMBOL",
 779          "name": "try_statement"
 780        },
 781        {
 782          "type": "SYMBOL",
 783          "name": "with_statement"
 784        },
 785        {
 786          "type": "SYMBOL",
 787          "name": "function_definition"
 788        },
 789        {
 790          "type": "SYMBOL",
 791          "name": "class_definition"
 792        },
 793        {
 794          "type": "SYMBOL",
 795          "name": "decorated_definition"
 796        },
 797        {
 798          "type": "SYMBOL",
 799          "name": "match_statement"
 800        }
 801      ]
 802    },
 803    "if_statement": {
 804      "type": "SEQ",
 805      "members": [
 806        {
 807          "type": "STRING",
 808          "value": "if"
 809        },
 810        {
 811          "type": "FIELD",
 812          "name": "condition",
 813          "content": {
 814            "type": "SYMBOL",
 815            "name": "expression"
 816          }
 817        },
 818        {
 819          "type": "STRING",
 820          "value": ":"
 821        },
 822        {
 823          "type": "FIELD",
 824          "name": "consequence",
 825          "content": {
 826            "type": "SYMBOL",
 827            "name": "_suite"
 828          }
 829        },
 830        {
 831          "type": "REPEAT",
 832          "content": {
 833            "type": "FIELD",
 834            "name": "alternative",
 835            "content": {
 836              "type": "SYMBOL",
 837              "name": "elif_clause"
 838            }
 839          }
 840        },
 841        {
 842          "type": "CHOICE",
 843          "members": [
 844            {
 845              "type": "FIELD",
 846              "name": "alternative",
 847              "content": {
 848                "type": "SYMBOL",
 849                "name": "else_clause"
 850              }
 851            },
 852            {
 853              "type": "BLANK"
 854            }
 855          ]
 856        }
 857      ]
 858    },
 859    "elif_clause": {
 860      "type": "SEQ",
 861      "members": [
 862        {
 863          "type": "STRING",
 864          "value": "elif"
 865        },
 866        {
 867          "type": "FIELD",
 868          "name": "condition",
 869          "content": {
 870            "type": "SYMBOL",
 871            "name": "expression"
 872          }
 873        },
 874        {
 875          "type": "STRING",
 876          "value": ":"
 877        },
 878        {
 879          "type": "FIELD",
 880          "name": "consequence",
 881          "content": {
 882            "type": "SYMBOL",
 883            "name": "_suite"
 884          }
 885        }
 886      ]
 887    },
 888    "else_clause": {
 889      "type": "SEQ",
 890      "members": [
 891        {
 892          "type": "STRING",
 893          "value": "else"
 894        },
 895        {
 896          "type": "STRING",
 897          "value": ":"
 898        },
 899        {
 900          "type": "FIELD",
 901          "name": "body",
 902          "content": {
 903            "type": "SYMBOL",
 904            "name": "_suite"
 905          }
 906        }
 907      ]
 908    },
 909    "match_statement": {
 910      "type": "SEQ",
 911      "members": [
 912        {
 913          "type": "STRING",
 914          "value": "match"
 915        },
 916        {
 917          "type": "SEQ",
 918          "members": [
 919            {
 920              "type": "FIELD",
 921              "name": "subject",
 922              "content": {
 923                "type": "SYMBOL",
 924                "name": "expression"
 925              }
 926            },
 927            {
 928              "type": "REPEAT",
 929              "content": {
 930                "type": "SEQ",
 931                "members": [
 932                  {
 933                    "type": "STRING",
 934                    "value": ","
 935                  },
 936                  {
 937                    "type": "FIELD",
 938                    "name": "subject",
 939                    "content": {
 940                      "type": "SYMBOL",
 941                      "name": "expression"
 942                    }
 943                  }
 944                ]
 945              }
 946            }
 947          ]
 948        },
 949        {
 950          "type": "CHOICE",
 951          "members": [
 952            {
 953              "type": "STRING",
 954              "value": ","
 955            },
 956            {
 957              "type": "BLANK"
 958            }
 959          ]
 960        },
 961        {
 962          "type": "STRING",
 963          "value": ":"
 964        },
 965        {
 966          "type": "FIELD",
 967          "name": "body",
 968          "content": {
 969            "type": "ALIAS",
 970            "content": {
 971              "type": "SYMBOL",
 972              "name": "_match_block"
 973            },
 974            "named": true,
 975            "value": "block"
 976          }
 977        }
 978      ]
 979    },
 980    "_match_block": {
 981      "type": "CHOICE",
 982      "members": [
 983        {
 984          "type": "SEQ",
 985          "members": [
 986            {
 987              "type": "SYMBOL",
 988              "name": "_indent"
 989            },
 990            {
 991              "type": "REPEAT",
 992              "content": {
 993                "type": "FIELD",
 994                "name": "alternative",
 995                "content": {
 996                  "type": "SYMBOL",
 997                  "name": "case_clause"
 998                }
 999              }
1000            },
1001            {
1002              "type": "SYMBOL",
1003              "name": "_dedent"
1004            }
1005          ]
1006        },
1007        {
1008          "type": "SYMBOL",
1009          "name": "_newline"
1010        }
1011      ]
1012    },
1013    "case_clause": {
1014      "type": "SEQ",
1015      "members": [
1016        {
1017          "type": "STRING",
1018          "value": "case"
1019        },
1020        {
1021          "type": "SEQ",
1022          "members": [
1023            {
1024              "type": "SYMBOL",
1025              "name": "case_pattern"
1026            },
1027            {
1028              "type": "REPEAT",
1029              "content": {
1030                "type": "SEQ",
1031                "members": [
1032                  {
1033                    "type": "STRING",
1034                    "value": ","
1035                  },
1036                  {
1037                    "type": "SYMBOL",
1038                    "name": "case_pattern"
1039                  }
1040                ]
1041              }
1042            }
1043          ]
1044        },
1045        {
1046          "type": "CHOICE",
1047          "members": [
1048            {
1049              "type": "STRING",
1050              "value": ","
1051            },
1052            {
1053              "type": "BLANK"
1054            }
1055          ]
1056        },
1057        {
1058          "type": "CHOICE",
1059          "members": [
1060            {
1061              "type": "FIELD",
1062              "name": "guard",
1063              "content": {
1064                "type": "SYMBOL",
1065                "name": "if_clause"
1066              }
1067            },
1068            {
1069              "type": "BLANK"
1070            }
1071          ]
1072        },
1073        {
1074          "type": "STRING",
1075          "value": ":"
1076        },
1077        {
1078          "type": "FIELD",
1079          "name": "consequence",
1080          "content": {
1081            "type": "SYMBOL",
1082            "name": "_suite"
1083          }
1084        }
1085      ]
1086    },
1087    "for_statement": {
1088      "type": "SEQ",
1089      "members": [
1090        {
1091          "type": "CHOICE",
1092          "members": [
1093            {
1094              "type": "STRING",
1095              "value": "async"
1096            },
1097            {
1098              "type": "BLANK"
1099            }
1100          ]
1101        },
1102        {
1103          "type": "STRING",
1104          "value": "for"
1105        },
1106        {
1107          "type": "FIELD",
1108          "name": "left",
1109          "content": {
1110            "type": "SYMBOL",
1111            "name": "_left_hand_side"
1112          }
1113        },
1114        {
1115          "type": "STRING",
1116          "value": "in"
1117        },
1118        {
1119          "type": "FIELD",
1120          "name": "right",
1121          "content": {
1122            "type": "SYMBOL",
1123            "name": "_expressions"
1124          }
1125        },
1126        {
1127          "type": "STRING",
1128          "value": ":"
1129        },
1130        {
1131          "type": "FIELD",
1132          "name": "body",
1133          "content": {
1134            "type": "SYMBOL",
1135            "name": "_suite"
1136          }
1137        },
1138        {
1139          "type": "FIELD",
1140          "name": "alternative",
1141          "content": {
1142            "type": "CHOICE",
1143            "members": [
1144              {
1145                "type": "SYMBOL",
1146                "name": "else_clause"
1147              },
1148              {
1149                "type": "BLANK"
1150              }
1151            ]
1152          }
1153        }
1154      ]
1155    },
1156    "while_statement": {
1157      "type": "SEQ",
1158      "members": [
1159        {
1160          "type": "STRING",
1161          "value": "while"
1162        },
1163        {
1164          "type": "FIELD",
1165          "name": "condition",
1166          "content": {
1167            "type": "SYMBOL",
1168            "name": "expression"
1169          }
1170        },
1171        {
1172          "type": "STRING",
1173          "value": ":"
1174        },
1175        {
1176          "type": "FIELD",
1177          "name": "body",
1178          "content": {
1179            "type": "SYMBOL",
1180            "name": "_suite"
1181          }
1182        },
1183        {
1184          "type": "CHOICE",
1185          "members": [
1186            {
1187              "type": "FIELD",
1188              "name": "alternative",
1189              "content": {
1190                "type": "SYMBOL",
1191                "name": "else_clause"
1192              }
1193            },
1194            {
1195              "type": "BLANK"
1196            }
1197          ]
1198        }
1199      ]
1200    },
1201    "try_statement": {
1202      "type": "SEQ",
1203      "members": [
1204        {
1205          "type": "STRING",
1206          "value": "try"
1207        },
1208        {
1209          "type": "STRING",
1210          "value": ":"
1211        },
1212        {
1213          "type": "FIELD",
1214          "name": "body",
1215          "content": {
1216            "type": "SYMBOL",
1217            "name": "_suite"
1218          }
1219        },
1220        {
1221          "type": "CHOICE",
1222          "members": [
1223            {
1224              "type": "SEQ",
1225              "members": [
1226                {
1227                  "type": "REPEAT1",
1228                  "content": {
1229                    "type": "SYMBOL",
1230                    "name": "except_clause"
1231                  }
1232                },
1233                {
1234                  "type": "CHOICE",
1235                  "members": [
1236                    {
1237                      "type": "SYMBOL",
1238                      "name": "else_clause"
1239                    },
1240                    {
1241                      "type": "BLANK"
1242                    }
1243                  ]
1244                },
1245                {
1246                  "type": "CHOICE",
1247                  "members": [
1248                    {
1249                      "type": "SYMBOL",
1250                      "name": "finally_clause"
1251                    },
1252                    {
1253                      "type": "BLANK"
1254                    }
1255                  ]
1256                }
1257              ]
1258            },
1259            {
1260              "type": "SEQ",
1261              "members": [
1262                {
1263                  "type": "REPEAT1",
1264                  "content": {
1265                    "type": "SYMBOL",
1266                    "name": "except_group_clause"
1267                  }
1268                },
1269                {
1270                  "type": "CHOICE",
1271                  "members": [
1272                    {
1273                      "type": "SYMBOL",
1274                      "name": "else_clause"
1275                    },
1276                    {
1277                      "type": "BLANK"
1278                    }
1279                  ]
1280                },
1281                {
1282                  "type": "CHOICE",
1283                  "members": [
1284                    {
1285                      "type": "SYMBOL",
1286                      "name": "finally_clause"
1287                    },
1288                    {
1289                      "type": "BLANK"
1290                    }
1291                  ]
1292                }
1293              ]
1294            },
1295            {
1296              "type": "SYMBOL",
1297              "name": "finally_clause"
1298            }
1299          ]
1300        }
1301      ]
1302    },
1303    "except_clause": {
1304      "type": "SEQ",
1305      "members": [
1306        {
1307          "type": "STRING",
1308          "value": "except"
1309        },
1310        {
1311          "type": "CHOICE",
1312          "members": [
1313            {
1314              "type": "SEQ",
1315              "members": [
1316                {
1317                  "type": "SYMBOL",
1318                  "name": "expression"
1319                },
1320                {
1321                  "type": "CHOICE",
1322                  "members": [
1323                    {
1324                      "type": "SEQ",
1325                      "members": [
1326                        {
1327                          "type": "CHOICE",
1328                          "members": [
1329                            {
1330                              "type": "STRING",
1331                              "value": "as"
1332                            },
1333                            {
1334                              "type": "STRING",
1335                              "value": ","
1336                            }
1337                          ]
1338                        },
1339                        {
1340                          "type": "SYMBOL",
1341                          "name": "expression"
1342                        }
1343                      ]
1344                    },
1345                    {
1346                      "type": "BLANK"
1347                    }
1348                  ]
1349                }
1350              ]
1351            },
1352            {
1353              "type": "BLANK"
1354            }
1355          ]
1356        },
1357        {
1358          "type": "STRING",
1359          "value": ":"
1360        },
1361        {
1362          "type": "SYMBOL",
1363          "name": "_suite"
1364        }
1365      ]
1366    },
1367    "except_group_clause": {
1368      "type": "SEQ",
1369      "members": [
1370        {
1371          "type": "STRING",
1372          "value": "except*"
1373        },
1374        {
1375          "type": "SEQ",
1376          "members": [
1377            {
1378              "type": "SYMBOL",
1379              "name": "expression"
1380            },
1381            {
1382              "type": "CHOICE",
1383              "members": [
1384                {
1385                  "type": "SEQ",
1386                  "members": [
1387                    {
1388                      "type": "STRING",
1389                      "value": "as"
1390                    },
1391                    {
1392                      "type": "SYMBOL",
1393                      "name": "expression"
1394                    }
1395                  ]
1396                },
1397                {
1398                  "type": "BLANK"
1399                }
1400              ]
1401            }
1402          ]
1403        },
1404        {
1405          "type": "STRING",
1406          "value": ":"
1407        },
1408        {
1409          "type": "SYMBOL",
1410          "name": "_suite"
1411        }
1412      ]
1413    },
1414    "finally_clause": {
1415      "type": "SEQ",
1416      "members": [
1417        {
1418          "type": "STRING",
1419          "value": "finally"
1420        },
1421        {
1422          "type": "STRING",
1423          "value": ":"
1424        },
1425        {
1426          "type": "SYMBOL",
1427          "name": "_suite"
1428        }
1429      ]
1430    },
1431    "with_statement": {
1432      "type": "SEQ",
1433      "members": [
1434        {
1435          "type": "CHOICE",
1436          "members": [
1437            {
1438              "type": "STRING",
1439              "value": "async"
1440            },
1441            {
1442              "type": "BLANK"
1443            }
1444          ]
1445        },
1446        {
1447          "type": "STRING",
1448          "value": "with"
1449        },
1450        {
1451          "type": "SYMBOL",
1452          "name": "with_clause"
1453        },
1454        {
1455          "type": "STRING",
1456          "value": ":"
1457        },
1458        {
1459          "type": "FIELD",
1460          "name": "body",
1461          "content": {
1462            "type": "SYMBOL",
1463            "name": "_suite"
1464          }
1465        }
1466      ]
1467    },
1468    "with_clause": {
1469      "type": "CHOICE",
1470      "members": [
1471        {
1472          "type": "SEQ",
1473          "members": [
1474            {
1475              "type": "SEQ",
1476              "members": [
1477                {
1478                  "type": "SYMBOL",
1479                  "name": "with_item"
1480                },
1481                {
1482                  "type": "REPEAT",
1483                  "content": {
1484                    "type": "SEQ",
1485                    "members": [
1486                      {
1487                        "type": "STRING",
1488                        "value": ","
1489                      },
1490                      {
1491                        "type": "SYMBOL",
1492                        "name": "with_item"
1493                      }
1494                    ]
1495                  }
1496                }
1497              ]
1498            },
1499            {
1500              "type": "CHOICE",
1501              "members": [
1502                {
1503                  "type": "STRING",
1504                  "value": ","
1505                },
1506                {
1507                  "type": "BLANK"
1508                }
1509              ]
1510            }
1511          ]
1512        },
1513        {
1514          "type": "SEQ",
1515          "members": [
1516            {
1517              "type": "STRING",
1518              "value": "("
1519            },
1520            {
1521              "type": "SEQ",
1522              "members": [
1523                {
1524                  "type": "SYMBOL",
1525                  "name": "with_item"
1526                },
1527                {
1528                  "type": "REPEAT",
1529                  "content": {
1530                    "type": "SEQ",
1531                    "members": [
1532                      {
1533                        "type": "STRING",
1534                        "value": ","
1535                      },
1536                      {
1537                        "type": "SYMBOL",
1538                        "name": "with_item"
1539                      }
1540                    ]
1541                  }
1542                }
1543              ]
1544            },
1545            {
1546              "type": "CHOICE",
1547              "members": [
1548                {
1549                  "type": "STRING",
1550                  "value": ","
1551                },
1552                {
1553                  "type": "BLANK"
1554                }
1555              ]
1556            },
1557            {
1558              "type": "STRING",
1559              "value": ")"
1560            }
1561          ]
1562        }
1563      ]
1564    },
1565    "with_item": {
1566      "type": "PREC_DYNAMIC",
1567      "value": 1,
1568      "content": {
1569        "type": "SEQ",
1570        "members": [
1571          {
1572            "type": "FIELD",
1573            "name": "value",
1574            "content": {
1575              "type": "SYMBOL",
1576              "name": "expression"
1577            }
1578          }
1579        ]
1580      }
1581    },
1582    "function_definition": {
1583      "type": "SEQ",
1584      "members": [
1585        {
1586          "type": "CHOICE",
1587          "members": [
1588            {
1589              "type": "STRING",
1590              "value": "async"
1591            },
1592            {
1593              "type": "BLANK"
1594            }
1595          ]
1596        },
1597        {
1598          "type": "STRING",
1599          "value": "def"
1600        },
1601        {
1602          "type": "FIELD",
1603          "name": "name",
1604          "content": {
1605            "type": "SYMBOL",
1606            "name": "identifier"
1607          }
1608        },
1609        {
1610          "type": "FIELD",
1611          "name": "type_parameters",
1612          "content": {
1613            "type": "CHOICE",
1614            "members": [
1615              {
1616                "type": "SYMBOL",
1617                "name": "type_parameter"
1618              },
1619              {
1620                "type": "BLANK"
1621              }
1622            ]
1623          }
1624        },
1625        {
1626          "type": "FIELD",
1627          "name": "parameters",
1628          "content": {
1629            "type": "SYMBOL",
1630            "name": "parameters"
1631          }
1632        },
1633        {
1634          "type": "CHOICE",
1635          "members": [
1636            {
1637              "type": "SEQ",
1638              "members": [
1639                {
1640                  "type": "STRING",
1641                  "value": "->"
1642                },
1643                {
1644                  "type": "FIELD",
1645                  "name": "return_type",
1646                  "content": {
1647                    "type": "SYMBOL",
1648                    "name": "type"
1649                  }
1650                }
1651              ]
1652            },
1653            {
1654              "type": "BLANK"
1655            }
1656          ]
1657        },
1658        {
1659          "type": "STRING",
1660          "value": ":"
1661        },
1662        {
1663          "type": "FIELD",
1664          "name": "body",
1665          "content": {
1666            "type": "SYMBOL",
1667            "name": "_suite"
1668          }
1669        }
1670      ]
1671    },
1672    "parameters": {
1673      "type": "SEQ",
1674      "members": [
1675        {
1676          "type": "STRING",
1677          "value": "("
1678        },
1679        {
1680          "type": "CHOICE",
1681          "members": [
1682            {
1683              "type": "SYMBOL",
1684              "name": "_parameters"
1685            },
1686            {
1687              "type": "BLANK"
1688            }
1689          ]
1690        },
1691        {
1692          "type": "STRING",
1693          "value": ")"
1694        }
1695      ]
1696    },
1697    "lambda_parameters": {
1698      "type": "SYMBOL",
1699      "name": "_parameters"
1700    },
1701    "list_splat": {
1702      "type": "SEQ",
1703      "members": [
1704        {
1705          "type": "STRING",
1706          "value": "*"
1707        },
1708        {
1709          "type": "SYMBOL",
1710          "name": "expression"
1711        }
1712      ]
1713    },
1714    "dictionary_splat": {
1715      "type": "SEQ",
1716      "members": [
1717        {
1718          "type": "STRING",
1719          "value": "**"
1720        },
1721        {
1722          "type": "SYMBOL",
1723          "name": "expression"
1724        }
1725      ]
1726    },
1727    "global_statement": {
1728      "type": "SEQ",
1729      "members": [
1730        {
1731          "type": "STRING",
1732          "value": "global"
1733        },
1734        {
1735          "type": "SEQ",
1736          "members": [
1737            {
1738              "type": "SYMBOL",
1739              "name": "identifier"
1740            },
1741            {
1742              "type": "REPEAT",
1743              "content": {
1744                "type": "SEQ",
1745                "members": [
1746                  {
1747                    "type": "STRING",
1748                    "value": ","
1749                  },
1750                  {
1751                    "type": "SYMBOL",
1752                    "name": "identifier"
1753                  }
1754                ]
1755              }
1756            }
1757          ]
1758        }
1759      ]
1760    },
1761    "nonlocal_statement": {
1762      "type": "SEQ",
1763      "members": [
1764        {
1765          "type": "STRING",
1766          "value": "nonlocal"
1767        },
1768        {
1769          "type": "SEQ",
1770          "members": [
1771            {
1772              "type": "SYMBOL",
1773              "name": "identifier"
1774            },
1775            {
1776              "type": "REPEAT",
1777              "content": {
1778                "type": "SEQ",
1779                "members": [
1780                  {
1781                    "type": "STRING",
1782                    "value": ","
1783                  },
1784                  {
1785                    "type": "SYMBOL",
1786                    "name": "identifier"
1787                  }
1788                ]
1789              }
1790            }
1791          ]
1792        }
1793      ]
1794    },
1795    "exec_statement": {
1796      "type": "SEQ",
1797      "members": [
1798        {
1799          "type": "STRING",
1800          "value": "exec"
1801        },
1802        {
1803          "type": "FIELD",
1804          "name": "code",
1805          "content": {
1806            "type": "CHOICE",
1807            "members": [
1808              {
1809                "type": "SYMBOL",
1810                "name": "string"
1811              },
1812              {
1813                "type": "SYMBOL",
1814                "name": "identifier"
1815              }
1816            ]
1817          }
1818        },
1819        {
1820          "type": "CHOICE",
1821          "members": [
1822            {
1823              "type": "SEQ",
1824              "members": [
1825                {
1826                  "type": "STRING",
1827                  "value": "in"
1828                },
1829                {
1830                  "type": "SEQ",
1831                  "members": [
1832                    {
1833                      "type": "SYMBOL",
1834                      "name": "expression"
1835                    },
1836                    {
1837                      "type": "REPEAT",
1838                      "content": {
1839                        "type": "SEQ",
1840                        "members": [
1841                          {
1842                            "type": "STRING",
1843                            "value": ","
1844                          },
1845                          {
1846                            "type": "SYMBOL",
1847                            "name": "expression"
1848                          }
1849                        ]
1850                      }
1851                    }
1852                  ]
1853                }
1854              ]
1855            },
1856            {
1857              "type": "BLANK"
1858            }
1859          ]
1860        }
1861      ]
1862    },
1863    "type_alias_statement": {
1864      "type": "PREC_DYNAMIC",
1865      "value": 1,
1866      "content": {
1867        "type": "SEQ",
1868        "members": [
1869          {
1870            "type": "STRING",
1871            "value": "type"
1872          },
1873          {
1874            "type": "SYMBOL",
1875            "name": "type"
1876          },
1877          {
1878            "type": "STRING",
1879            "value": "="
1880          },
1881          {
1882            "type": "SYMBOL",
1883            "name": "type"
1884          }
1885        ]
1886      }
1887    },
1888    "class_definition": {
1889      "type": "SEQ",
1890      "members": [
1891        {
1892          "type": "STRING",
1893          "value": "class"
1894        },
1895        {
1896          "type": "FIELD",
1897          "name": "name",
1898          "content": {
1899            "type": "SYMBOL",
1900            "name": "identifier"
1901          }
1902        },
1903        {
1904          "type": "FIELD",
1905          "name": "type_parameters",
1906          "content": {
1907            "type": "CHOICE",
1908            "members": [
1909              {
1910                "type": "SYMBOL",
1911                "name": "type_parameter"
1912              },
1913              {
1914                "type": "BLANK"
1915              }
1916            ]
1917          }
1918        },
1919        {
1920          "type": "FIELD",
1921          "name": "superclasses",
1922          "content": {
1923            "type": "CHOICE",
1924            "members": [
1925              {
1926                "type": "SYMBOL",
1927                "name": "argument_list"
1928              },
1929              {
1930                "type": "BLANK"
1931              }
1932            ]
1933          }
1934        },
1935        {
1936          "type": "STRING",
1937          "value": ":"
1938        },
1939        {
1940          "type": "FIELD",
1941          "name": "body",
1942          "content": {
1943            "type": "SYMBOL",
1944            "name": "_suite"
1945          }
1946        }
1947      ]
1948    },
1949    "type_parameter": {
1950      "type": "SEQ",
1951      "members": [
1952        {
1953          "type": "STRING",
1954          "value": "["
1955        },
1956        {
1957          "type": "SEQ",
1958          "members": [
1959            {
1960              "type": "SYMBOL",
1961              "name": "type"
1962            },
1963            {
1964              "type": "REPEAT",
1965              "content": {
1966                "type": "SEQ",
1967                "members": [
1968                  {
1969                    "type": "STRING",
1970                    "value": ","
1971                  },
1972                  {
1973                    "type": "SYMBOL",
1974                    "name": "type"
1975                  }
1976                ]
1977              }
1978            }
1979          ]
1980        },
1981        {
1982          "type": "STRING",
1983          "value": "]"
1984        }
1985      ]
1986    },
1987    "parenthesized_list_splat": {
1988      "type": "PREC",
1989      "value": 1,
1990      "content": {
1991        "type": "SEQ",
1992        "members": [
1993          {
1994            "type": "STRING",
1995            "value": "("
1996          },
1997          {
1998            "type": "CHOICE",
1999            "members": [
2000              {
2001                "type": "ALIAS",
2002                "content": {
2003                  "type": "SYMBOL",
2004                  "name": "parenthesized_list_splat"
2005                },
2006                "named": true,
2007                "value": "parenthesized_expression"
2008              },
2009              {
2010                "type": "SYMBOL",
2011                "name": "list_splat"
2012              }
2013            ]
2014          },
2015          {
2016            "type": "STRING",
2017            "value": ")"
2018          }
2019        ]
2020      }
2021    },
2022    "argument_list": {
2023      "type": "SEQ",
2024      "members": [
2025        {
2026          "type": "STRING",
2027          "value": "("
2028        },
2029        {
2030          "type": "CHOICE",
2031          "members": [
2032            {
2033              "type": "SEQ",
2034              "members": [
2035                {
2036                  "type": "CHOICE",
2037                  "members": [
2038                    {
2039                      "type": "SYMBOL",
2040                      "name": "expression"
2041                    },
2042                    {
2043                      "type": "SYMBOL",
2044                      "name": "list_splat"
2045                    },
2046                    {
2047                      "type": "SYMBOL",
2048                      "name": "dictionary_splat"
2049                    },
2050                    {
2051                      "type": "ALIAS",
2052                      "content": {
2053                        "type": "SYMBOL",
2054                        "name": "parenthesized_list_splat"
2055                      },
2056                      "named": true,
2057                      "value": "parenthesized_expression"
2058                    },
2059                    {
2060                      "type": "SYMBOL",
2061                      "name": "keyword_argument"
2062                    }
2063                  ]
2064                },
2065                {
2066                  "type": "REPEAT",
2067                  "content": {
2068                    "type": "SEQ",
2069                    "members": [
2070                      {
2071                        "type": "STRING",
2072                        "value": ","
2073                      },
2074                      {
2075                        "type": "CHOICE",
2076                        "members": [
2077                          {
2078                            "type": "SYMBOL",
2079                            "name": "expression"
2080                          },
2081                          {
2082                            "type": "SYMBOL",
2083                            "name": "list_splat"
2084                          },
2085                          {
2086                            "type": "SYMBOL",
2087                            "name": "dictionary_splat"
2088                          },
2089                          {
2090                            "type": "ALIAS",
2091                            "content": {
2092                              "type": "SYMBOL",
2093                              "name": "parenthesized_list_splat"
2094                            },
2095                            "named": true,
2096                            "value": "parenthesized_expression"
2097                          },
2098                          {
2099                            "type": "SYMBOL",
2100                            "name": "keyword_argument"
2101                          }
2102                        ]
2103                      }
2104                    ]
2105                  }
2106                }
2107              ]
2108            },
2109            {
2110              "type": "BLANK"
2111            }
2112          ]
2113        },
2114        {
2115          "type": "CHOICE",
2116          "members": [
2117            {
2118              "type": "STRING",
2119              "value": ","
2120            },
2121            {
2122              "type": "BLANK"
2123            }
2124          ]
2125        },
2126        {
2127          "type": "STRING",
2128          "value": ")"
2129        }
2130      ]
2131    },
2132    "decorated_definition": {
2133      "type": "SEQ",
2134      "members": [
2135        {
2136          "type": "REPEAT1",
2137          "content": {
2138            "type": "SYMBOL",
2139            "name": "decorator"
2140          }
2141        },
2142        {
2143          "type": "FIELD",
2144          "name": "definition",
2145          "content": {
2146            "type": "CHOICE",
2147            "members": [
2148              {
2149                "type": "SYMBOL",
2150                "name": "class_definition"
2151              },
2152              {
2153                "type": "SYMBOL",
2154                "name": "function_definition"
2155              }
2156            ]
2157          }
2158        }
2159      ]
2160    },
2161    "decorator": {
2162      "type": "SEQ",
2163      "members": [
2164        {
2165          "type": "STRING",
2166          "value": "@"
2167        },
2168        {
2169          "type": "SYMBOL",
2170          "name": "expression"
2171        },
2172        {
2173          "type": "SYMBOL",
2174          "name": "_newline"
2175        }
2176      ]
2177    },
2178    "_suite": {
2179      "type": "CHOICE",
2180      "members": [
2181        {
2182          "type": "ALIAS",
2183          "content": {
2184            "type": "SYMBOL",
2185            "name": "_simple_statements"
2186          },
2187          "named": true,
2188          "value": "block"
2189        },
2190        {
2191          "type": "SEQ",
2192          "members": [
2193            {
2194              "type": "SYMBOL",
2195              "name": "_indent"
2196            },
2197            {
2198              "type": "SYMBOL",
2199              "name": "block"
2200            }
2201          ]
2202        },
2203        {
2204          "type": "ALIAS",
2205          "content": {
2206            "type": "SYMBOL",
2207            "name": "_newline"
2208          },
2209          "named": true,
2210          "value": "block"
2211        }
2212      ]
2213    },
2214    "block": {
2215      "type": "SEQ",
2216      "members": [
2217        {
2218          "type": "REPEAT",
2219          "content": {
2220            "type": "SYMBOL",
2221            "name": "_statement"
2222          }
2223        },
2224        {
2225          "type": "SYMBOL",
2226          "name": "_dedent"
2227        }
2228      ]
2229    },
2230    "expression_list": {
2231      "type": "PREC_RIGHT",
2232      "value": 0,
2233      "content": {
2234        "type": "SEQ",
2235        "members": [
2236          {
2237            "type": "SYMBOL",
2238            "name": "expression"
2239          },
2240          {
2241            "type": "CHOICE",
2242            "members": [
2243              {
2244                "type": "STRING",
2245                "value": ","
2246              },
2247              {
2248                "type": "SEQ",
2249                "members": [
2250                  {
2251                    "type": "REPEAT1",
2252                    "content": {
2253                      "type": "SEQ",
2254                      "members": [
2255                        {
2256                          "type": "STRING",
2257                          "value": ","
2258                        },
2259                        {
2260                          "type": "SYMBOL",
2261                          "name": "expression"
2262                        }
2263                      ]
2264                    }
2265                  },
2266                  {
2267                    "type": "CHOICE",
2268                    "members": [
2269                      {
2270                        "type": "STRING",
2271                        "value": ","
2272                      },
2273                      {
2274                        "type": "BLANK"
2275                      }
2276                    ]
2277                  }
2278                ]
2279              }
2280            ]
2281          }
2282        ]
2283      }
2284    },
2285    "dotted_name": {
2286      "type": "PREC",
2287      "value": 1,
2288      "content": {
2289        "type": "SEQ",
2290        "members": [
2291          {
2292            "type": "SYMBOL",
2293            "name": "identifier"
2294          },
2295          {
2296            "type": "REPEAT",
2297            "content": {
2298              "type": "SEQ",
2299              "members": [
2300                {
2301                  "type": "STRING",
2302                  "value": "."
2303                },
2304                {
2305                  "type": "SYMBOL",
2306                  "name": "identifier"
2307                }
2308              ]
2309            }
2310          }
2311        ]
2312      }
2313    },
2314    "case_pattern": {
2315      "type": "PREC",
2316      "value": 1,
2317      "content": {
2318        "type": "CHOICE",
2319        "members": [
2320          {
2321            "type": "ALIAS",
2322            "content": {
2323              "type": "SYMBOL",
2324              "name": "_as_pattern"
2325            },
2326            "named": true,
2327            "value": "as_pattern"
2328          },
2329          {
2330            "type": "SYMBOL",
2331            "name": "keyword_pattern"
2332          },
2333          {
2334            "type": "SYMBOL",
2335            "name": "_simple_pattern"
2336          }
2337        ]
2338      }
2339    },
2340    "_simple_pattern": {
2341      "type": "PREC",
2342      "value": 1,
2343      "content": {
2344        "type": "CHOICE",
2345        "members": [
2346          {
2347            "type": "SYMBOL",
2348            "name": "class_pattern"
2349          },
2350          {
2351            "type": "SYMBOL",
2352            "name": "splat_pattern"
2353          },
2354          {
2355            "type": "SYMBOL",
2356            "name": "union_pattern"
2357          },
2358          {
2359            "type": "ALIAS",
2360            "content": {
2361              "type": "SYMBOL",
2362              "name": "_list_pattern"
2363            },
2364            "named": true,
2365            "value": "list_pattern"
2366          },
2367          {
2368            "type": "ALIAS",
2369            "content": {
2370              "type": "SYMBOL",
2371              "name": "_tuple_pattern"
2372            },
2373            "named": true,
2374            "value": "tuple_pattern"
2375          },
2376          {
2377            "type": "SYMBOL",
2378            "name": "dict_pattern"
2379          },
2380          {
2381            "type": "SYMBOL",
2382            "name": "string"
2383          },
2384          {
2385            "type": "SYMBOL",
2386            "name": "concatenated_string"
2387          },
2388          {
2389            "type": "SYMBOL",
2390            "name": "true"
2391          },
2392          {
2393            "type": "SYMBOL",
2394            "name": "false"
2395          },
2396          {
2397            "type": "SYMBOL",
2398            "name": "none"
2399          },
2400          {
2401            "type": "SEQ",
2402            "members": [
2403              {
2404                "type": "CHOICE",
2405                "members": [
2406                  {
2407                    "type": "STRING",
2408                    "value": "-"
2409                  },
2410                  {
2411                    "type": "BLANK"
2412                  }
2413                ]
2414              },
2415              {
2416                "type": "CHOICE",
2417                "members": [
2418                  {
2419                    "type": "SYMBOL",
2420                    "name": "integer"
2421                  },
2422                  {
2423                    "type": "SYMBOL",
2424                    "name": "float"
2425                  }
2426                ]
2427              }
2428            ]
2429          },
2430          {
2431            "type": "SYMBOL",
2432            "name": "complex_pattern"
2433          },
2434          {
2435            "type": "SYMBOL",
2436            "name": "dotted_name"
2437          },
2438          {
2439            "type": "STRING",
2440            "value": "_"
2441          }
2442        ]
2443      }
2444    },
2445    "_as_pattern": {
2446      "type": "SEQ",
2447      "members": [
2448        {
2449          "type": "SYMBOL",
2450          "name": "case_pattern"
2451        },
2452        {
2453          "type": "STRING",
2454          "value": "as"
2455        },
2456        {
2457          "type": "SYMBOL",
2458          "name": "identifier"
2459        }
2460      ]
2461    },
2462    "union_pattern": {
2463      "type": "PREC_RIGHT",
2464      "value": 0,
2465      "content": {
2466        "type": "SEQ",
2467        "members": [
2468          {
2469            "type": "SYMBOL",
2470            "name": "_simple_pattern"
2471          },
2472          {
2473            "type": "REPEAT1",
2474            "content": {
2475              "type": "PREC_LEFT",
2476              "value": 0,
2477              "content": {
2478                "type": "SEQ",
2479                "members": [
2480                  {
2481                    "type": "STRING",
2482                    "value": "|"
2483                  },
2484                  {
2485                    "type": "SYMBOL",
2486                    "name": "_simple_pattern"
2487                  }
2488                ]
2489              }
2490            }
2491          }
2492        ]
2493      }
2494    },
2495    "_list_pattern": {
2496      "type": "SEQ",
2497      "members": [
2498        {
2499          "type": "STRING",
2500          "value": "["
2501        },
2502        {
2503          "type": "CHOICE",
2504          "members": [
2505            {
2506              "type": "SEQ",
2507              "members": [
2508                {
2509                  "type": "SEQ",
2510                  "members": [
2511                    {
2512                      "type": "SYMBOL",
2513                      "name": "case_pattern"
2514                    },
2515                    {
2516                      "type": "REPEAT",
2517                      "content": {
2518                        "type": "SEQ",
2519                        "members": [
2520                          {
2521                            "type": "STRING",
2522                            "value": ","
2523                          },
2524                          {
2525                            "type": "SYMBOL",
2526                            "name": "case_pattern"
2527                          }
2528                        ]
2529                      }
2530                    }
2531                  ]
2532                },
2533                {
2534                  "type": "CHOICE",
2535                  "members": [
2536                    {
2537                      "type": "STRING",
2538                      "value": ","
2539                    },
2540                    {
2541                      "type": "BLANK"
2542                    }
2543                  ]
2544                }
2545              ]
2546            },
2547            {
2548              "type": "BLANK"
2549            }
2550          ]
2551        },
2552        {
2553          "type": "STRING",
2554          "value": "]"
2555        }
2556      ]
2557    },
2558    "_tuple_pattern": {
2559      "type": "SEQ",
2560      "members": [
2561        {
2562          "type": "STRING",
2563          "value": "("
2564        },
2565        {
2566          "type": "CHOICE",
2567          "members": [
2568            {
2569              "type": "SEQ",
2570              "members": [
2571                {
2572                  "type": "SEQ",
2573                  "members": [
2574                    {
2575                      "type": "SYMBOL",
2576                      "name": "case_pattern"
2577                    },
2578                    {
2579                      "type": "REPEAT",
2580                      "content": {
2581                        "type": "SEQ",
2582                        "members": [
2583                          {
2584                            "type": "STRING",
2585                            "value": ","
2586                          },
2587                          {
2588                            "type": "SYMBOL",
2589                            "name": "case_pattern"
2590                          }
2591                        ]
2592                      }
2593                    }
2594                  ]
2595                },
2596                {
2597                  "type": "CHOICE",
2598                  "members": [
2599                    {
2600                      "type": "STRING",
2601                      "value": ","
2602                    },
2603                    {
2604                      "type": "BLANK"
2605                    }
2606                  ]
2607                }
2608              ]
2609            },
2610            {
2611              "type": "BLANK"
2612            }
2613          ]
2614        },
2615        {
2616          "type": "STRING",
2617          "value": ")"
2618        }
2619      ]
2620    },
2621    "dict_pattern": {
2622      "type": "SEQ",
2623      "members": [
2624        {
2625          "type": "STRING",
2626          "value": "{"
2627        },
2628        {
2629          "type": "CHOICE",
2630          "members": [
2631            {
2632              "type": "SEQ",
2633              "members": [
2634                {
2635                  "type": "SEQ",
2636                  "members": [
2637                    {
2638                      "type": "CHOICE",
2639                      "members": [
2640                        {
2641                          "type": "SYMBOL",
2642                          "name": "_key_value_pattern"
2643                        },
2644                        {
2645                          "type": "SYMBOL",
2646                          "name": "splat_pattern"
2647                        }
2648                      ]
2649                    },
2650                    {
2651                      "type": "REPEAT",
2652                      "content": {
2653                        "type": "SEQ",
2654                        "members": [
2655                          {
2656                            "type": "STRING",
2657                            "value": ","
2658                          },
2659                          {
2660                            "type": "CHOICE",
2661                            "members": [
2662                              {
2663                                "type": "SYMBOL",
2664                                "name": "_key_value_pattern"
2665                              },
2666                              {
2667                                "type": "SYMBOL",
2668                                "name": "splat_pattern"
2669                              }
2670                            ]
2671                          }
2672                        ]
2673                      }
2674                    }
2675                  ]
2676                },
2677                {
2678                  "type": "CHOICE",
2679                  "members": [
2680                    {
2681                      "type": "STRING",
2682                      "value": ","
2683                    },
2684                    {
2685                      "type": "BLANK"
2686                    }
2687                  ]
2688                }
2689              ]
2690            },
2691            {
2692              "type": "BLANK"
2693            }
2694          ]
2695        },
2696        {
2697          "type": "STRING",
2698          "value": "}"
2699        }
2700      ]
2701    },
2702    "_key_value_pattern": {
2703      "type": "SEQ",
2704      "members": [
2705        {
2706          "type": "FIELD",
2707          "name": "key",
2708          "content": {
2709            "type": "SYMBOL",
2710            "name": "_simple_pattern"
2711          }
2712        },
2713        {
2714          "type": "STRING",
2715          "value": ":"
2716        },
2717        {
2718          "type": "FIELD",
2719          "name": "value",
2720          "content": {
2721            "type": "SYMBOL",
2722            "name": "case_pattern"
2723          }
2724        }
2725      ]
2726    },
2727    "keyword_pattern": {
2728      "type": "SEQ",
2729      "members": [
2730        {
2731          "type": "SYMBOL",
2732          "name": "identifier"
2733        },
2734        {
2735          "type": "STRING",
2736          "value": "="
2737        },
2738        {
2739          "type": "SYMBOL",
2740          "name": "_simple_pattern"
2741        }
2742      ]
2743    },
2744    "splat_pattern": {
2745      "type": "PREC",
2746      "value": 1,
2747      "content": {
2748        "type": "SEQ",
2749        "members": [
2750          {
2751            "type": "CHOICE",
2752            "members": [
2753              {
2754                "type": "STRING",
2755                "value": "*"
2756              },
2757              {
2758                "type": "STRING",
2759                "value": "**"
2760              }
2761            ]
2762          },
2763          {
2764            "type": "CHOICE",
2765            "members": [
2766              {
2767                "type": "SYMBOL",
2768                "name": "identifier"
2769              },
2770              {
2771                "type": "STRING",
2772                "value": "_"
2773              }
2774            ]
2775          }
2776        ]
2777      }
2778    },
2779    "class_pattern": {
2780      "type": "SEQ",
2781      "members": [
2782        {
2783          "type": "SYMBOL",
2784          "name": "dotted_name"
2785        },
2786        {
2787          "type": "STRING",
2788          "value": "("
2789        },
2790        {
2791          "type": "CHOICE",
2792          "members": [
2793            {
2794              "type": "SEQ",
2795              "members": [
2796                {
2797                  "type": "SEQ",
2798                  "members": [
2799                    {
2800                      "type": "SYMBOL",
2801                      "name": "case_pattern"
2802                    },
2803                    {
2804                      "type": "REPEAT",
2805                      "content": {
2806                        "type": "SEQ",
2807                        "members": [
2808                          {
2809                            "type": "STRING",
2810                            "value": ","
2811                          },
2812                          {
2813                            "type": "SYMBOL",
2814                            "name": "case_pattern"
2815                          }
2816                        ]
2817                      }
2818                    }
2819                  ]
2820                },
2821                {
2822                  "type": "CHOICE",
2823                  "members": [
2824                    {
2825                      "type": "STRING",
2826                      "value": ","
2827                    },
2828                    {
2829                      "type": "BLANK"
2830                    }
2831                  ]
2832                }
2833              ]
2834            },
2835            {
2836              "type": "BLANK"
2837            }
2838          ]
2839        },
2840        {
2841          "type": "STRING",
2842          "value": ")"
2843        }
2844      ]
2845    },
2846    "complex_pattern": {
2847      "type": "PREC",
2848      "value": 1,
2849      "content": {
2850        "type": "SEQ",
2851        "members": [
2852          {
2853            "type": "CHOICE",
2854            "members": [
2855              {
2856                "type": "STRING",
2857                "value": "-"
2858              },
2859              {
2860                "type": "BLANK"
2861              }
2862            ]
2863          },
2864          {
2865            "type": "CHOICE",
2866            "members": [
2867              {
2868                "type": "SYMBOL",
2869                "name": "integer"
2870              },
2871              {
2872                "type": "SYMBOL",
2873                "name": "float"
2874              }
2875            ]
2876          },
2877          {
2878            "type": "CHOICE",
2879            "members": [
2880              {
2881                "type": "STRING",
2882                "value": "+"
2883              },
2884              {
2885                "type": "STRING",
2886                "value": "-"
2887              }
2888            ]
2889          },
2890          {
2891            "type": "CHOICE",
2892            "members": [
2893              {
2894                "type": "SYMBOL",
2895                "name": "integer"
2896              },
2897              {
2898                "type": "SYMBOL",
2899                "name": "float"
2900              }
2901            ]
2902          }
2903        ]
2904      }
2905    },
2906    "_parameters": {
2907      "type": "SEQ",
2908      "members": [
2909        {
2910          "type": "SEQ",
2911          "members": [
2912            {
2913              "type": "SYMBOL",
2914              "name": "parameter"
2915            },
2916            {
2917              "type": "REPEAT",
2918              "content": {
2919                "type": "SEQ",
2920                "members": [
2921                  {
2922                    "type": "STRING",
2923                    "value": ","
2924                  },
2925                  {
2926                    "type": "SYMBOL",
2927                    "name": "parameter"
2928                  }
2929                ]
2930              }
2931            }
2932          ]
2933        },
2934        {
2935          "type": "CHOICE",
2936          "members": [
2937            {
2938              "type": "STRING",
2939              "value": ","
2940            },
2941            {
2942              "type": "BLANK"
2943            }
2944          ]
2945        }
2946      ]
2947    },
2948    "_patterns": {
2949      "type": "SEQ",
2950      "members": [
2951        {
2952          "type": "SEQ",
2953          "members": [
2954            {
2955              "type": "SYMBOL",
2956              "name": "pattern"
2957            },
2958            {
2959              "type": "REPEAT",
2960              "content": {
2961                "type": "SEQ",
2962                "members": [
2963                  {
2964                    "type": "STRING",
2965                    "value": ","
2966                  },
2967                  {
2968                    "type": "SYMBOL",
2969                    "name": "pattern"
2970                  }
2971                ]
2972              }
2973            }
2974          ]
2975        },
2976        {
2977          "type": "CHOICE",
2978          "members": [
2979            {
2980              "type": "STRING",
2981              "value": ","
2982            },
2983            {
2984              "type": "BLANK"
2985            }
2986          ]
2987        }
2988      ]
2989    },
2990    "parameter": {
2991      "type": "CHOICE",
2992      "members": [
2993        {
2994          "type": "SYMBOL",
2995          "name": "identifier"
2996        },
2997        {
2998          "type": "SYMBOL",
2999          "name": "typed_parameter"
3000        },
3001        {
3002          "type": "SYMBOL",
3003          "name": "default_parameter"
3004        },
3005        {
3006          "type": "SYMBOL",
3007          "name": "typed_default_parameter"
3008        },
3009        {
3010          "type": "SYMBOL",
3011          "name": "list_splat_pattern"
3012        },
3013        {
3014          "type": "SYMBOL",
3015          "name": "tuple_pattern"
3016        },
3017        {
3018          "type": "SYMBOL",
3019          "name": "keyword_separator"
3020        },
3021        {
3022          "type": "SYMBOL",
3023          "name": "positional_separator"
3024        },
3025        {
3026          "type": "SYMBOL",
3027          "name": "dictionary_splat_pattern"
3028        }
3029      ]
3030    },
3031    "pattern": {
3032      "type": "CHOICE",
3033      "members": [
3034        {
3035          "type": "SYMBOL",
3036          "name": "identifier"
3037        },
3038        {
3039          "type": "SYMBOL",
3040          "name": "keyword_identifier"
3041        },
3042        {
3043          "type": "SYMBOL",
3044          "name": "subscript"
3045        },
3046        {
3047          "type": "SYMBOL",
3048          "name": "attribute"
3049        },
3050        {
3051          "type": "SYMBOL",
3052          "name": "list_splat_pattern"
3053        },
3054        {
3055          "type": "SYMBOL",
3056          "name": "tuple_pattern"
3057        },
3058        {
3059          "type": "SYMBOL",
3060          "name": "list_pattern"
3061        }
3062      ]
3063    },
3064    "tuple_pattern": {
3065      "type": "SEQ",
3066      "members": [
3067        {
3068          "type": "STRING",
3069          "value": "("
3070        },
3071        {
3072          "type": "CHOICE",
3073          "members": [
3074            {
3075              "type": "SYMBOL",
3076              "name": "_patterns"
3077            },
3078            {
3079              "type": "BLANK"
3080            }
3081          ]
3082        },
3083        {
3084          "type": "STRING",
3085          "value": ")"
3086        }
3087      ]
3088    },
3089    "list_pattern": {
3090      "type": "SEQ",
3091      "members": [
3092        {
3093          "type": "STRING",
3094          "value": "["
3095        },
3096        {
3097          "type": "CHOICE",
3098          "members": [
3099            {
3100              "type": "SYMBOL",
3101              "name": "_patterns"
3102            },
3103            {
3104              "type": "BLANK"
3105            }
3106          ]
3107        },
3108        {
3109          "type": "STRING",
3110          "value": "]"
3111        }
3112      ]
3113    },
3114    "default_parameter": {
3115      "type": "SEQ",
3116      "members": [
3117        {
3118          "type": "FIELD",
3119          "name": "name",
3120          "content": {
3121            "type": "CHOICE",
3122            "members": [
3123              {
3124                "type": "SYMBOL",
3125                "name": "identifier"
3126              },
3127              {
3128                "type": "SYMBOL",
3129                "name": "tuple_pattern"
3130              }
3131            ]
3132          }
3133        },
3134        {
3135          "type": "STRING",
3136          "value": "="
3137        },
3138        {
3139          "type": "FIELD",
3140          "name": "value",
3141          "content": {
3142            "type": "SYMBOL",
3143            "name": "expression"
3144          }
3145        }
3146      ]
3147    },
3148    "typed_default_parameter": {
3149      "type": "PREC",
3150      "value": -1,
3151      "content": {
3152        "type": "SEQ",
3153        "members": [
3154          {
3155            "type": "FIELD",
3156            "name": "name",
3157            "content": {
3158              "type": "SYMBOL",
3159              "name": "identifier"
3160            }
3161          },
3162          {
3163            "type": "STRING",
3164            "value": ":"
3165          },
3166          {
3167            "type": "FIELD",
3168            "name": "type",
3169            "content": {
3170              "type": "SYMBOL",
3171              "name": "type"
3172            }
3173          },
3174          {
3175            "type": "STRING",
3176            "value": "="
3177          },
3178          {
3179            "type": "FIELD",
3180            "name": "value",
3181            "content": {
3182              "type": "SYMBOL",
3183              "name": "expression"
3184            }
3185          }
3186        ]
3187      }
3188    },
3189    "list_splat_pattern": {
3190      "type": "SEQ",
3191      "members": [
3192        {
3193          "type": "STRING",
3194          "value": "*"
3195        },
3196        {
3197          "type": "CHOICE",
3198          "members": [
3199            {
3200              "type": "SYMBOL",
3201              "name": "identifier"
3202            },
3203            {
3204              "type": "SYMBOL",
3205              "name": "keyword_identifier"
3206            },
3207            {
3208              "type": "SYMBOL",
3209              "name": "subscript"
3210            },
3211            {
3212              "type": "SYMBOL",
3213              "name": "attribute"
3214            }
3215          ]
3216        }
3217      ]
3218    },
3219    "dictionary_splat_pattern": {
3220      "type": "SEQ",
3221      "members": [
3222        {
3223          "type": "STRING",
3224          "value": "**"
3225        },
3226        {
3227          "type": "CHOICE",
3228          "members": [
3229            {
3230              "type": "SYMBOL",
3231              "name": "identifier"
3232            },
3233            {
3234              "type": "SYMBOL",
3235              "name": "keyword_identifier"
3236            },
3237            {
3238              "type": "SYMBOL",
3239              "name": "subscript"
3240            },
3241            {
3242              "type": "SYMBOL",
3243              "name": "attribute"
3244            }
3245          ]
3246        }
3247      ]
3248    },
3249    "as_pattern": {
3250      "type": "PREC_LEFT",
3251      "value": 0,
3252      "content": {
3253        "type": "SEQ",
3254        "members": [
3255          {
3256            "type": "SYMBOL",
3257            "name": "expression"
3258          },
3259          {
3260            "type": "STRING",
3261            "value": "as"
3262          },
3263          {
3264            "type": "FIELD",
3265            "name": "alias",
3266            "content": {
3267              "type": "ALIAS",
3268              "content": {
3269                "type": "SYMBOL",
3270                "name": "expression"
3271              },
3272              "named": true,
3273              "value": "as_pattern_target"
3274            }
3275          }
3276        ]
3277      }
3278    },
3279    "_expression_within_for_in_clause": {
3280      "type": "CHOICE",
3281      "members": [
3282        {
3283          "type": "SYMBOL",
3284          "name": "expression"
3285        },
3286        {
3287          "type": "ALIAS",
3288          "content": {
3289            "type": "SYMBOL",
3290            "name": "lambda_within_for_in_clause"
3291          },
3292          "named": true,
3293          "value": "lambda"
3294        }
3295      ]
3296    },
3297    "expression": {
3298      "type": "CHOICE",
3299      "members": [
3300        {
3301          "type": "SYMBOL",
3302          "name": "comparison_operator"
3303        },
3304        {
3305          "type": "SYMBOL",
3306          "name": "not_operator"
3307        },
3308        {
3309          "type": "SYMBOL",
3310          "name": "boolean_operator"
3311        },
3312        {
3313          "type": "SYMBOL",
3314          "name": "lambda"
3315        },
3316        {
3317          "type": "SYMBOL",
3318          "name": "primary_expression"
3319        },
3320        {
3321          "type": "SYMBOL",
3322          "name": "conditional_expression"
3323        },
3324        {
3325          "type": "SYMBOL",
3326          "name": "named_expression"
3327        },
3328        {
3329          "type": "SYMBOL",
3330          "name": "as_pattern"
3331        }
3332      ]
3333    },
3334    "primary_expression": {
3335      "type": "CHOICE",
3336      "members": [
3337        {
3338          "type": "SYMBOL",
3339          "name": "await"
3340        },
3341        {
3342          "type": "SYMBOL",
3343          "name": "binary_operator"
3344        },
3345        {
3346          "type": "SYMBOL",
3347          "name": "identifier"
3348        },
3349        {
3350          "type": "SYMBOL",
3351          "name": "keyword_identifier"
3352        },
3353        {
3354          "type": "SYMBOL",
3355          "name": "string"
3356        },
3357        {
3358          "type": "SYMBOL",
3359          "name": "concatenated_string"
3360        },
3361        {
3362          "type": "SYMBOL",
3363          "name": "integer"
3364        },
3365        {
3366          "type": "SYMBOL",
3367          "name": "float"
3368        },
3369        {
3370          "type": "SYMBOL",
3371          "name": "true"
3372        },
3373        {
3374          "type": "SYMBOL",
3375          "name": "false"
3376        },
3377        {
3378          "type": "SYMBOL",
3379          "name": "none"
3380        },
3381        {
3382          "type": "SYMBOL",
3383          "name": "unary_operator"
3384        },
3385        {
3386          "type": "SYMBOL",
3387          "name": "attribute"
3388        },
3389        {
3390          "type": "SYMBOL",
3391          "name": "subscript"
3392        },
3393        {
3394          "type": "SYMBOL",
3395          "name": "call"
3396        },
3397        {
3398          "type": "SYMBOL",
3399          "name": "list"
3400        },
3401        {
3402          "type": "SYMBOL",
3403          "name": "list_comprehension"
3404        },
3405        {
3406          "type": "SYMBOL",
3407          "name": "dictionary"
3408        },
3409        {
3410          "type": "SYMBOL",
3411          "name": "dictionary_comprehension"
3412        },
3413        {
3414          "type": "SYMBOL",
3415          "name": "set"
3416        },
3417        {
3418          "type": "SYMBOL",
3419          "name": "set_comprehension"
3420        },
3421        {
3422          "type": "SYMBOL",
3423          "name": "tuple"
3424        },
3425        {
3426          "type": "SYMBOL",
3427          "name": "parenthesized_expression"
3428        },
3429        {
3430          "type": "SYMBOL",
3431          "name": "generator_expression"
3432        },
3433        {
3434          "type": "SYMBOL",
3435          "name": "ellipsis"
3436        },
3437        {
3438          "type": "ALIAS",
3439          "content": {
3440            "type": "SYMBOL",
3441            "name": "list_splat_pattern"
3442          },
3443          "named": true,
3444          "value": "list_splat"
3445        }
3446      ]
3447    },
3448    "not_operator": {
3449      "type": "PREC",
3450      "value": 12,
3451      "content": {
3452        "type": "SEQ",
3453        "members": [
3454          {
3455            "type": "STRING",
3456            "value": "not"
3457          },
3458          {
3459            "type": "FIELD",
3460            "name": "argument",
3461            "content": {
3462              "type": "SYMBOL",
3463              "name": "expression"
3464            }
3465          }
3466        ]
3467      }
3468    },
3469    "boolean_operator": {
3470      "type": "CHOICE",
3471      "members": [
3472        {
3473          "type": "PREC_LEFT",
3474          "value": 11,
3475          "content": {
3476            "type": "SEQ",
3477            "members": [
3478              {
3479                "type": "FIELD",
3480                "name": "left",
3481                "content": {
3482                  "type": "SYMBOL",
3483                  "name": "expression"
3484                }
3485              },
3486              {
3487                "type": "FIELD",
3488                "name": "operator",
3489                "content": {
3490                  "type": "STRING",
3491                  "value": "and"
3492                }
3493              },
3494              {
3495                "type": "FIELD",
3496                "name": "right",
3497                "content": {
3498                  "type": "SYMBOL",
3499                  "name": "expression"
3500                }
3501              }
3502            ]
3503          }
3504        },
3505        {
3506          "type": "PREC_LEFT",
3507          "value": 10,
3508          "content": {
3509            "type": "SEQ",
3510            "members": [
3511              {
3512                "type": "FIELD",
3513                "name": "left",
3514                "content": {
3515                  "type": "SYMBOL",
3516                  "name": "expression"
3517                }
3518              },
3519              {
3520                "type": "FIELD",
3521                "name": "operator",
3522                "content": {
3523                  "type": "STRING",
3524                  "value": "or"
3525                }
3526              },
3527              {
3528                "type": "FIELD",
3529                "name": "right",
3530                "content": {
3531                  "type": "SYMBOL",
3532                  "name": "expression"
3533                }
3534              }
3535            ]
3536          }
3537        }
3538      ]
3539    },
3540    "binary_operator": {
3541      "type": "CHOICE",
3542      "members": [
3543        {
3544          "type": "PREC_LEFT",
3545          "value": 18,
3546          "content": {
3547            "type": "SEQ",
3548            "members": [
3549              {
3550                "type": "FIELD",
3551                "name": "left",
3552                "content": {
3553                  "type": "SYMBOL",
3554                  "name": "primary_expression"
3555                }
3556              },
3557              {
3558                "type": "FIELD",
3559                "name": "operator",
3560                "content": {
3561                  "type": "STRING",
3562                  "value": "+"
3563                }
3564              },
3565              {
3566                "type": "FIELD",
3567                "name": "right",
3568                "content": {
3569                  "type": "SYMBOL",
3570                  "name": "primary_expression"
3571                }
3572              }
3573            ]
3574          }
3575        },
3576        {
3577          "type": "PREC_LEFT",
3578          "value": 18,
3579          "content": {
3580            "type": "SEQ",
3581            "members": [
3582              {
3583                "type": "FIELD",
3584                "name": "left",
3585                "content": {
3586                  "type": "SYMBOL",
3587                  "name": "primary_expression"
3588                }
3589              },
3590              {
3591                "type": "FIELD",
3592                "name": "operator",
3593                "content": {
3594                  "type": "STRING",
3595                  "value": "-"
3596                }
3597              },
3598              {
3599                "type": "FIELD",
3600                "name": "right",
3601                "content": {
3602                  "type": "SYMBOL",
3603                  "name": "primary_expression"
3604                }
3605              }
3606            ]
3607          }
3608        },
3609        {
3610          "type": "PREC_LEFT",
3611          "value": 19,
3612          "content": {
3613            "type": "SEQ",
3614            "members": [
3615              {
3616                "type": "FIELD",
3617                "name": "left",
3618                "content": {
3619                  "type": "SYMBOL",
3620                  "name": "primary_expression"
3621                }
3622              },
3623              {
3624                "type": "FIELD",
3625                "name": "operator",
3626                "content": {
3627                  "type": "STRING",
3628                  "value": "*"
3629                }
3630              },
3631              {
3632                "type": "FIELD",
3633                "name": "right",
3634                "content": {
3635                  "type": "SYMBOL",
3636                  "name": "primary_expression"
3637                }
3638              }
3639            ]
3640          }
3641        },
3642        {
3643          "type": "PREC_LEFT",
3644          "value": 19,
3645          "content": {
3646            "type": "SEQ",
3647            "members": [
3648              {
3649                "type": "FIELD",
3650                "name": "left",
3651                "content": {
3652                  "type": "SYMBOL",
3653                  "name": "primary_expression"
3654                }
3655              },
3656              {
3657                "type": "FIELD",
3658                "name": "operator",
3659                "content": {
3660                  "type": "STRING",
3661                  "value": "@"
3662                }
3663              },
3664              {
3665                "type": "FIELD",
3666                "name": "right",
3667                "content": {
3668                  "type": "SYMBOL",
3669                  "name": "primary_expression"
3670                }
3671              }
3672            ]
3673          }
3674        },
3675        {
3676          "type": "PREC_LEFT",
3677          "value": 19,
3678          "content": {
3679            "type": "SEQ",
3680            "members": [
3681              {
3682                "type": "FIELD",
3683                "name": "left",
3684                "content": {
3685                  "type": "SYMBOL",
3686                  "name": "primary_expression"
3687                }
3688              },
3689              {
3690                "type": "FIELD",
3691                "name": "operator",
3692                "content": {
3693                  "type": "STRING",
3694                  "value": "/"
3695                }
3696              },
3697              {
3698                "type": "FIELD",
3699                "name": "right",
3700                "content": {
3701                  "type": "SYMBOL",
3702                  "name": "primary_expression"
3703                }
3704              }
3705            ]
3706          }
3707        },
3708        {
3709          "type": "PREC_LEFT",
3710          "value": 19,
3711          "content": {
3712            "type": "SEQ",
3713            "members": [
3714              {
3715                "type": "FIELD",
3716                "name": "left",
3717                "content": {
3718                  "type": "SYMBOL",
3719                  "name": "primary_expression"
3720                }
3721              },
3722              {
3723                "type": "FIELD",
3724                "name": "operator",
3725                "content": {
3726                  "type": "STRING",
3727                  "value": "%"
3728                }
3729              },
3730              {
3731                "type": "FIELD",
3732                "name": "right",
3733                "content": {
3734                  "type": "SYMBOL",
3735                  "name": "primary_expression"
3736                }
3737              }
3738            ]
3739          }
3740        },
3741        {
3742          "type": "PREC_LEFT",
3743          "value": 19,
3744          "content": {
3745            "type": "SEQ",
3746            "members": [
3747              {
3748                "type": "FIELD",
3749                "name": "left",
3750                "content": {
3751                  "type": "SYMBOL",
3752                  "name": "primary_expression"
3753                }
3754              },
3755              {
3756                "type": "FIELD",
3757                "name": "operator",
3758                "content": {
3759                  "type": "STRING",
3760                  "value": "//"
3761                }
3762              },
3763              {
3764                "type": "FIELD",
3765                "name": "right",
3766                "content": {
3767                  "type": "SYMBOL",
3768                  "name": "primary_expression"
3769                }
3770              }
3771            ]
3772          }
3773        },
3774        {
3775          "type": "PREC_RIGHT",
3776          "value": 21,
3777          "content": {
3778            "type": "SEQ",
3779            "members": [
3780              {
3781                "type": "FIELD",
3782                "name": "left",
3783                "content": {
3784                  "type": "SYMBOL",
3785                  "name": "primary_expression"
3786                }
3787              },
3788              {
3789                "type": "FIELD",
3790                "name": "operator",
3791                "content": {
3792                  "type": "STRING",
3793                  "value": "**"
3794                }
3795              },
3796              {
3797                "type": "FIELD",
3798                "name": "right",
3799                "content": {
3800                  "type": "SYMBOL",
3801                  "name": "primary_expression"
3802                }
3803              }
3804            ]
3805          }
3806        },
3807        {
3808          "type": "PREC_LEFT",
3809          "value": 14,
3810          "content": {
3811            "type": "SEQ",
3812            "members": [
3813              {
3814                "type": "FIELD",
3815                "name": "left",
3816                "content": {
3817                  "type": "SYMBOL",
3818                  "name": "primary_expression"
3819                }
3820              },
3821              {
3822                "type": "FIELD",
3823                "name": "operator",
3824                "content": {
3825                  "type": "STRING",
3826                  "value": "|"
3827                }
3828              },
3829              {
3830                "type": "FIELD",
3831                "name": "right",
3832                "content": {
3833                  "type": "SYMBOL",
3834                  "name": "primary_expression"
3835                }
3836              }
3837            ]
3838          }
3839        },
3840        {
3841          "type": "PREC_LEFT",
3842          "value": 15,
3843          "content": {
3844            "type": "SEQ",
3845            "members": [
3846              {
3847                "type": "FIELD",
3848                "name": "left",
3849                "content": {
3850                  "type": "SYMBOL",
3851                  "name": "primary_expression"
3852                }
3853              },
3854              {
3855                "type": "FIELD",
3856                "name": "operator",
3857                "content": {
3858                  "type": "STRING",
3859                  "value": "&"
3860                }
3861              },
3862              {
3863                "type": "FIELD",
3864                "name": "right",
3865                "content": {
3866                  "type": "SYMBOL",
3867                  "name": "primary_expression"
3868                }
3869              }
3870            ]
3871          }
3872        },
3873        {
3874          "type": "PREC_LEFT",
3875          "value": 16,
3876          "content": {
3877            "type": "SEQ",
3878            "members": [
3879              {
3880                "type": "FIELD",
3881                "name": "left",
3882                "content": {
3883                  "type": "SYMBOL",
3884                  "name": "primary_expression"
3885                }
3886              },
3887              {
3888                "type": "FIELD",
3889                "name": "operator",
3890                "content": {
3891                  "type": "STRING",
3892                  "value": "^"
3893                }
3894              },
3895              {
3896                "type": "FIELD",
3897                "name": "right",
3898                "content": {
3899                  "type": "SYMBOL",
3900                  "name": "primary_expression"
3901                }
3902              }
3903            ]
3904          }
3905        },
3906        {
3907          "type": "PREC_LEFT",
3908          "value": 17,
3909          "content": {
3910            "type": "SEQ",
3911            "members": [
3912              {
3913                "type": "FIELD",
3914                "name": "left",
3915                "content": {
3916                  "type": "SYMBOL",
3917                  "name": "primary_expression"
3918                }
3919              },
3920              {
3921                "type": "FIELD",
3922                "name": "operator",
3923                "content": {
3924                  "type": "STRING",
3925                  "value": "<<"
3926                }
3927              },
3928              {
3929                "type": "FIELD",
3930                "name": "right",
3931                "content": {
3932                  "type": "SYMBOL",
3933                  "name": "primary_expression"
3934                }
3935              }
3936            ]
3937          }
3938        },
3939        {
3940          "type": "PREC_LEFT",
3941          "value": 17,
3942          "content": {
3943            "type": "SEQ",
3944            "members": [
3945              {
3946                "type": "FIELD",
3947                "name": "left",
3948                "content": {
3949                  "type": "SYMBOL",
3950                  "name": "primary_expression"
3951                }
3952              },
3953              {
3954                "type": "FIELD",
3955                "name": "operator",
3956                "content": {
3957                  "type": "STRING",
3958                  "value": ">>"
3959                }
3960              },
3961              {
3962                "type": "FIELD",
3963                "name": "right",
3964                "content": {
3965                  "type": "SYMBOL",
3966                  "name": "primary_expression"
3967                }
3968              }
3969            ]
3970          }
3971        }
3972      ]
3973    },
3974    "unary_operator": {
3975      "type": "PREC",
3976      "value": 20,
3977      "content": {
3978        "type": "SEQ",
3979        "members": [
3980          {
3981            "type": "FIELD",
3982            "name": "operator",
3983            "content": {
3984              "type": "CHOICE",
3985              "members": [
3986                {
3987                  "type": "STRING",
3988                  "value": "+"
3989                },
3990                {
3991                  "type": "STRING",
3992                  "value": "-"
3993                },
3994                {
3995                  "type": "STRING",
3996                  "value": "~"
3997                }
3998              ]
3999            }
4000          },
4001          {
4002            "type": "FIELD",
4003            "name": "argument",
4004            "content": {
4005              "type": "SYMBOL",
4006              "name": "primary_expression"
4007            }
4008          }
4009        ]
4010      }
4011    },
4012    "comparison_operator": {
4013      "type": "PREC_LEFT",
4014      "value": 13,
4015      "content": {
4016        "type": "SEQ",
4017        "members": [
4018          {
4019            "type": "SYMBOL",
4020            "name": "primary_expression"
4021          },
4022          {
4023            "type": "REPEAT1",
4024            "content": {
4025              "type": "SEQ",
4026              "members": [
4027                {
4028                  "type": "FIELD",
4029                  "name": "operators",
4030                  "content": {
4031                    "type": "CHOICE",
4032                    "members": [
4033                      {
4034                        "type": "STRING",
4035                        "value": "<"
4036                      },
4037                      {
4038                        "type": "STRING",
4039                        "value": "<="
4040                      },
4041                      {
4042                        "type": "STRING",
4043                        "value": "=="
4044                      },
4045                      {
4046                        "type": "STRING",
4047                        "value": "!="
4048                      },
4049                      {
4050                        "type": "STRING",
4051                        "value": ">="
4052                      },
4053                      {
4054                        "type": "STRING",
4055                        "value": ">"
4056                      },
4057                      {
4058                        "type": "STRING",
4059                        "value": "<>"
4060                      },
4061                      {
4062                        "type": "STRING",
4063                        "value": "in"
4064                      },
4065                      {
4066                        "type": "ALIAS",
4067                        "content": {
4068                          "type": "SEQ",
4069                          "members": [
4070                            {
4071                              "type": "STRING",
4072                              "value": "not"
4073                            },
4074                            {
4075                              "type": "STRING",
4076                              "value": "in"
4077                            }
4078                          ]
4079                        },
4080                        "named": false,
4081                        "value": "not in"
4082                      },
4083                      {
4084                        "type": "STRING",
4085                        "value": "is"
4086                      },
4087                      {
4088                        "type": "ALIAS",
4089                        "content": {
4090                          "type": "SEQ",
4091                          "members": [
4092                            {
4093                              "type": "STRING",
4094                              "value": "is"
4095                            },
4096                            {
4097                              "type": "STRING",
4098                              "value": "not"
4099                            }
4100                          ]
4101                        },
4102                        "named": false,
4103                        "value": "is not"
4104                      }
4105                    ]
4106                  }
4107                },
4108                {
4109                  "type": "SYMBOL",
4110                  "name": "primary_expression"
4111                }
4112              ]
4113            }
4114          }
4115        ]
4116      }
4117    },
4118    "lambda": {
4119      "type": "PREC",
4120      "value": -2,
4121      "content": {
4122        "type": "SEQ",
4123        "members": [
4124          {
4125            "type": "STRING",
4126            "value": "lambda"
4127          },
4128          {
4129            "type": "FIELD",
4130            "name": "parameters",
4131            "content": {
4132              "type": "CHOICE",
4133              "members": [
4134                {
4135                  "type": "SYMBOL",
4136                  "name": "lambda_parameters"
4137                },
4138                {
4139                  "type": "BLANK"
4140                }
4141              ]
4142            }
4143          },
4144          {
4145            "type": "STRING",
4146            "value": ":"
4147          },
4148          {
4149            "type": "FIELD",
4150            "name": "body",
4151            "content": {
4152              "type": "SYMBOL",
4153              "name": "expression"
4154            }
4155          }
4156        ]
4157      }
4158    },
4159    "lambda_within_for_in_clause": {
4160      "type": "SEQ",
4161      "members": [
4162        {
4163          "type": "STRING",
4164          "value": "lambda"
4165        },
4166        {
4167          "type": "FIELD",
4168          "name": "parameters",
4169          "content": {
4170            "type": "CHOICE",
4171            "members": [
4172              {
4173                "type": "SYMBOL",
4174                "name": "lambda_parameters"
4175              },
4176              {
4177                "type": "BLANK"
4178              }
4179            ]
4180          }
4181        },
4182        {
4183          "type": "STRING",
4184          "value": ":"
4185        },
4186        {
4187          "type": "FIELD",
4188          "name": "body",
4189          "content": {
4190            "type": "SYMBOL",
4191            "name": "_expression_within_for_in_clause"
4192          }
4193        }
4194      ]
4195    },
4196    "assignment": {
4197      "type": "SEQ",
4198      "members": [
4199        {
4200          "type": "FIELD",
4201          "name": "left",
4202          "content": {
4203            "type": "SYMBOL",
4204            "name": "_left_hand_side"
4205          }
4206        },
4207        {
4208          "type": "CHOICE",
4209          "members": [
4210            {
4211              "type": "SEQ",
4212              "members": [
4213                {
4214                  "type": "STRING",
4215                  "value": "="
4216                },
4217                {
4218                  "type": "FIELD",
4219                  "name": "right",
4220                  "content": {
4221                    "type": "SYMBOL",
4222                    "name": "_right_hand_side"
4223                  }
4224                }
4225              ]
4226            },
4227            {
4228              "type": "SEQ",
4229              "members": [
4230                {
4231                  "type": "STRING",
4232                  "value": ":"
4233                },
4234                {
4235                  "type": "FIELD",
4236                  "name": "type",
4237                  "content": {
4238                    "type": "SYMBOL",
4239                    "name": "type"
4240                  }
4241                }
4242              ]
4243            },
4244            {
4245              "type": "SEQ",
4246              "members": [
4247                {
4248                  "type": "STRING",
4249                  "value": ":"
4250                },
4251                {
4252                  "type": "FIELD",
4253                  "name": "type",
4254                  "content": {
4255                    "type": "SYMBOL",
4256                    "name": "type"
4257                  }
4258                },
4259                {
4260                  "type": "STRING",
4261                  "value": "="
4262                },
4263                {
4264                  "type": "FIELD",
4265                  "name": "right",
4266                  "content": {
4267                    "type": "SYMBOL",
4268                    "name": "_right_hand_side"
4269                  }
4270                }
4271              ]
4272            }
4273          ]
4274        }
4275      ]
4276    },
4277    "augmented_assignment": {
4278      "type": "SEQ",
4279      "members": [
4280        {
4281          "type": "FIELD",
4282          "name": "left",
4283          "content": {
4284            "type": "SYMBOL",
4285            "name": "_left_hand_side"
4286          }
4287        },
4288        {
4289          "type": "FIELD",
4290          "name": "operator",
4291          "content": {
4292            "type": "CHOICE",
4293            "members": [
4294              {
4295                "type": "STRING",
4296                "value": "+="
4297              },
4298              {
4299                "type": "STRING",
4300                "value": "-="
4301              },
4302              {
4303                "type": "STRING",
4304                "value": "*="
4305              },
4306              {
4307                "type": "STRING",
4308                "value": "/="
4309              },
4310              {
4311                "type": "STRING",
4312                "value": "@="
4313              },
4314              {
4315                "type": "STRING",
4316                "value": "//="
4317              },
4318              {
4319                "type": "STRING",
4320                "value": "%="
4321              },
4322              {
4323                "type": "STRING",
4324                "value": "**="
4325              },
4326              {
4327                "type": "STRING",
4328                "value": ">>="
4329              },
4330              {
4331                "type": "STRING",
4332                "value": "<<="
4333              },
4334              {
4335                "type": "STRING",
4336                "value": "&="
4337              },
4338              {
4339                "type": "STRING",
4340                "value": "^="
4341              },
4342              {
4343                "type": "STRING",
4344                "value": "|="
4345              }
4346            ]
4347          }
4348        },
4349        {
4350          "type": "FIELD",
4351          "name": "right",
4352          "content": {
4353            "type": "SYMBOL",
4354            "name": "_right_hand_side"
4355          }
4356        }
4357      ]
4358    },
4359    "_left_hand_side": {
4360      "type": "CHOICE",
4361      "members": [
4362        {
4363          "type": "SYMBOL",
4364          "name": "pattern"
4365        },
4366        {
4367          "type": "SYMBOL",
4368          "name": "pattern_list"
4369        }
4370      ]
4371    },
4372    "pattern_list": {
4373      "type": "SEQ",
4374      "members": [
4375        {
4376          "type": "SYMBOL",
4377          "name": "pattern"
4378        },
4379        {
4380          "type": "CHOICE",
4381          "members": [
4382            {
4383              "type": "STRING",
4384              "value": ","
4385            },
4386            {
4387              "type": "SEQ",
4388              "members": [
4389                {
4390                  "type": "REPEAT1",
4391                  "content": {
4392                    "type": "SEQ",
4393                    "members": [
4394                      {
4395                        "type": "STRING",
4396                        "value": ","
4397                      },
4398                      {
4399                        "type": "SYMBOL",
4400                        "name": "pattern"
4401                      }
4402                    ]
4403                  }
4404                },
4405                {
4406                  "type": "CHOICE",
4407                  "members": [
4408                    {
4409                      "type": "STRING",
4410                      "value": ","
4411                    },
4412                    {
4413                      "type": "BLANK"
4414                    }
4415                  ]
4416                }
4417              ]
4418            }
4419          ]
4420        }
4421      ]
4422    },
4423    "_right_hand_side": {
4424      "type": "CHOICE",
4425      "members": [
4426        {
4427          "type": "SYMBOL",
4428          "name": "expression"
4429        },
4430        {
4431          "type": "SYMBOL",
4432          "name": "expression_list"
4433        },
4434        {
4435          "type": "SYMBOL",
4436          "name": "assignment"
4437        },
4438        {
4439          "type": "SYMBOL",
4440          "name": "augmented_assignment"
4441        },
4442        {
4443          "type": "SYMBOL",
4444          "name": "pattern_list"
4445        },
4446        {
4447          "type": "SYMBOL",
4448          "name": "yield"
4449        }
4450      ]
4451    },
4452    "yield": {
4453      "type": "PREC_RIGHT",
4454      "value": 0,
4455      "content": {
4456        "type": "SEQ",
4457        "members": [
4458          {
4459            "type": "STRING",
4460            "value": "yield"
4461          },
4462          {
4463            "type": "CHOICE",
4464            "members": [
4465              {
4466                "type": "SEQ",
4467                "members": [
4468                  {
4469                    "type": "STRING",
4470                    "value": "from"
4471                  },
4472                  {
4473                    "type": "SYMBOL",
4474                    "name": "expression"
4475                  }
4476                ]
4477              },
4478              {
4479                "type": "CHOICE",
4480                "members": [
4481                  {
4482                    "type": "SYMBOL",
4483                    "name": "_expressions"
4484                  },
4485                  {
4486                    "type": "BLANK"
4487                  }
4488                ]
4489              }
4490            ]
4491          }
4492        ]
4493      }
4494    },
4495    "attribute": {
4496      "type": "PREC",
4497      "value": 22,
4498      "content": {
4499        "type": "SEQ",
4500        "members": [
4501          {
4502            "type": "FIELD",
4503            "name": "object",
4504            "content": {
4505              "type": "SYMBOL",
4506              "name": "primary_expression"
4507            }
4508          },
4509          {
4510            "type": "STRING",
4511            "value": "."
4512          },
4513          {
4514            "type": "FIELD",
4515            "name": "attribute",
4516            "content": {
4517              "type": "SYMBOL",
4518              "name": "identifier"
4519            }
4520          }
4521        ]
4522      }
4523    },
4524    "subscript": {
4525      "type": "PREC",
4526      "value": 22,
4527      "content": {
4528        "type": "SEQ",
4529        "members": [
4530          {
4531            "type": "FIELD",
4532            "name": "value",
4533            "content": {
4534              "type": "SYMBOL",
4535              "name": "primary_expression"
4536            }
4537          },
4538          {
4539            "type": "STRING",
4540            "value": "["
4541          },
4542          {
4543            "type": "SEQ",
4544            "members": [
4545              {
4546                "type": "FIELD",
4547                "name": "subscript",
4548                "content": {
4549                  "type": "CHOICE",
4550                  "members": [
4551                    {
4552                      "type": "SYMBOL",
4553                      "name": "expression"
4554                    },
4555                    {
4556                      "type": "SYMBOL",
4557                      "name": "slice"
4558                    }
4559                  ]
4560                }
4561              },
4562              {
4563                "type": "REPEAT",
4564                "content": {
4565                  "type": "SEQ",
4566                  "members": [
4567                    {
4568                      "type": "STRING",
4569                      "value": ","
4570                    },
4571                    {
4572                      "type": "FIELD",
4573                      "name": "subscript",
4574                      "content": {
4575                        "type": "CHOICE",
4576                        "members": [
4577                          {
4578                            "type": "SYMBOL",
4579                            "name": "expression"
4580                          },
4581                          {
4582                            "type": "SYMBOL",
4583                            "name": "slice"
4584                          }
4585                        ]
4586                      }
4587                    }
4588                  ]
4589                }
4590              }
4591            ]
4592          },
4593          {
4594            "type": "CHOICE",
4595            "members": [
4596              {
4597                "type": "STRING",
4598                "value": ","
4599              },
4600              {
4601                "type": "BLANK"
4602              }
4603            ]
4604          },
4605          {
4606            "type": "STRING",
4607            "value": "]"
4608          }
4609        ]
4610      }
4611    },
4612    "slice": {
4613      "type": "SEQ",
4614      "members": [
4615        {
4616          "type": "CHOICE",
4617          "members": [
4618            {
4619              "type": "SYMBOL",
4620              "name": "expression"
4621            },
4622            {
4623              "type": "BLANK"
4624            }
4625          ]
4626        },
4627        {
4628          "type": "STRING",
4629          "value": ":"
4630        },
4631        {
4632          "type": "CHOICE",
4633          "members": [
4634            {
4635              "type": "SYMBOL",
4636              "name": "expression"
4637            },
4638            {
4639              "type": "BLANK"
4640            }
4641          ]
4642        },
4643        {
4644          "type": "CHOICE",
4645          "members": [
4646            {
4647              "type": "SEQ",
4648              "members": [
4649                {
4650                  "type": "STRING",
4651                  "value": ":"
4652                },
4653                {
4654                  "type": "CHOICE",
4655                  "members": [
4656                    {
4657                      "type": "SYMBOL",
4658                      "name": "expression"
4659                    },
4660                    {
4661                      "type": "BLANK"
4662                    }
4663                  ]
4664                }
4665              ]
4666            },
4667            {
4668              "type": "BLANK"
4669            }
4670          ]
4671        }
4672      ]
4673    },
4674    "ellipsis": {
4675      "type": "STRING",
4676      "value": "..."
4677    },
4678    "call": {
4679      "type": "PREC",
4680      "value": 22,
4681      "content": {
4682        "type": "SEQ",
4683        "members": [
4684          {
4685            "type": "FIELD",
4686            "name": "function",
4687            "content": {
4688              "type": "SYMBOL",
4689              "name": "primary_expression"
4690            }
4691          },
4692          {
4693            "type": "FIELD",
4694            "name": "arguments",
4695            "content": {
4696              "type": "CHOICE",
4697              "members": [
4698                {
4699                  "type": "SYMBOL",
4700                  "name": "generator_expression"
4701                },
4702                {
4703                  "type": "SYMBOL",
4704                  "name": "argument_list"
4705                }
4706              ]
4707            }
4708          }
4709        ]
4710      }
4711    },
4712    "typed_parameter": {
4713      "type": "PREC",
4714      "value": -1,
4715      "content": {
4716        "type": "SEQ",
4717        "members": [
4718          {
4719            "type": "CHOICE",
4720            "members": [
4721              {
4722                "type": "SYMBOL",
4723                "name": "identifier"
4724              },
4725              {
4726                "type": "SYMBOL",
4727                "name": "list_splat_pattern"
4728              },
4729              {
4730                "type": "SYMBOL",
4731                "name": "dictionary_splat_pattern"
4732              }
4733            ]
4734          },
4735          {
4736            "type": "STRING",
4737            "value": ":"
4738          },
4739          {
4740            "type": "FIELD",
4741            "name": "type",
4742            "content": {
4743              "type": "SYMBOL",
4744              "name": "type"
4745            }
4746          }
4747        ]
4748      }
4749    },
4750    "type": {
4751      "type": "CHOICE",
4752      "members": [
4753        {
4754          "type": "SYMBOL",
4755          "name": "expression"
4756        },
4757        {
4758          "type": "SYMBOL",
4759          "name": "splat_type"
4760        },
4761        {
4762          "type": "SYMBOL",
4763          "name": "generic_type"
4764        },
4765        {
4766          "type": "SYMBOL",
4767          "name": "union_type"
4768        },
4769        {
4770          "type": "SYMBOL",
4771          "name": "constrained_type"
4772        },
4773        {
4774          "type": "SYMBOL",
4775          "name": "member_type"
4776        }
4777      ]
4778    },
4779    "splat_type": {
4780      "type": "PREC",
4781      "value": 1,
4782      "content": {
4783        "type": "SEQ",
4784        "members": [
4785          {
4786            "type": "CHOICE",
4787            "members": [
4788              {
4789                "type": "STRING",
4790                "value": "*"
4791              },
4792              {
4793                "type": "STRING",
4794                "value": "**"
4795              }
4796            ]
4797          },
4798          {
4799            "type": "SYMBOL",
4800            "name": "identifier"
4801          }
4802        ]
4803      }
4804    },
4805    "generic_type": {
4806      "type": "PREC",
4807      "value": 1,
4808      "content": {
4809        "type": "SEQ",
4810        "members": [
4811          {
4812            "type": "SYMBOL",
4813            "name": "identifier"
4814          },
4815          {
4816            "type": "SYMBOL",
4817            "name": "type_parameter"
4818          }
4819        ]
4820      }
4821    },
4822    "union_type": {
4823      "type": "PREC_LEFT",
4824      "value": 0,
4825      "content": {
4826        "type": "SEQ",
4827        "members": [
4828          {
4829            "type": "SYMBOL",
4830            "name": "type"
4831          },
4832          {
4833            "type": "STRING",
4834            "value": "|"
4835          },
4836          {
4837            "type": "SYMBOL",
4838            "name": "type"
4839          }
4840        ]
4841      }
4842    },
4843    "constrained_type": {
4844      "type": "PREC_RIGHT",
4845      "value": 0,
4846      "content": {
4847        "type": "SEQ",
4848        "members": [
4849          {
4850            "type": "SYMBOL",
4851            "name": "type"
4852          },
4853          {
4854            "type": "STRING",
4855            "value": ":"
4856          },
4857          {
4858            "type": "SYMBOL",
4859            "name": "type"
4860          }
4861        ]
4862      }
4863    },
4864    "member_type": {
4865      "type": "SEQ",
4866      "members": [
4867        {
4868          "type": "SYMBOL",
4869          "name": "type"
4870        },
4871        {
4872          "type": "STRING",
4873          "value": "."
4874        },
4875        {
4876          "type": "SYMBOL",
4877          "name": "identifier"
4878        }
4879      ]
4880    },
4881    "keyword_argument": {
4882      "type": "SEQ",
4883      "members": [
4884        {
4885          "type": "FIELD",
4886          "name": "name",
4887          "content": {
4888            "type": "CHOICE",
4889            "members": [
4890              {
4891                "type": "SYMBOL",
4892                "name": "identifier"
4893              },
4894              {
4895                "type": "SYMBOL",
4896                "name": "keyword_identifier"
4897              }
4898            ]
4899          }
4900        },
4901        {
4902          "type": "STRING",
4903          "value": "="
4904        },
4905        {
4906          "type": "FIELD",
4907          "name": "value",
4908          "content": {
4909            "type": "SYMBOL",
4910            "name": "expression"
4911          }
4912        }
4913      ]
4914    },
4915    "list": {
4916      "type": "SEQ",
4917      "members": [
4918        {
4919          "type": "STRING",
4920          "value": "["
4921        },
4922        {
4923          "type": "CHOICE",
4924          "members": [
4925            {
4926              "type": "SYMBOL",
4927              "name": "_collection_elements"
4928            },
4929            {
4930              "type": "BLANK"
4931            }
4932          ]
4933        },
4934        {
4935          "type": "STRING",
4936          "value": "]"
4937        }
4938      ]
4939    },
4940    "set": {
4941      "type": "SEQ",
4942      "members": [
4943        {
4944          "type": "STRING",
4945          "value": "{"
4946        },
4947        {
4948          "type": "SYMBOL",
4949          "name": "_collection_elements"
4950        },
4951        {
4952          "type": "STRING",
4953          "value": "}"
4954        }
4955      ]
4956    },
4957    "tuple": {
4958      "type": "SEQ",
4959      "members": [
4960        {
4961          "type": "STRING",
4962          "value": "("
4963        },
4964        {
4965          "type": "CHOICE",
4966          "members": [
4967            {
4968              "type": "SYMBOL",
4969              "name": "_collection_elements"
4970            },
4971            {
4972              "type": "BLANK"
4973            }
4974          ]
4975        },
4976        {
4977          "type": "STRING",
4978          "value": ")"
4979        }
4980      ]
4981    },
4982    "dictionary": {
4983      "type": "SEQ",
4984      "members": [
4985        {
4986          "type": "STRING",
4987          "value": "{"
4988        },
4989        {
4990          "type": "CHOICE",
4991          "members": [
4992            {
4993              "type": "SEQ",
4994              "members": [
4995                {
4996                  "type": "CHOICE",
4997                  "members": [
4998                    {
4999                      "type": "SYMBOL",
5000                      "name": "pair"
5001                    },
5002                    {
5003                      "type": "SYMBOL",
5004                      "name": "dictionary_splat"
5005                    }
5006                  ]
5007                },
5008                {
5009                  "type": "REPEAT",
5010                  "content": {
5011                    "type": "SEQ",
5012                    "members": [
5013                      {
5014                        "type": "STRING",
5015                        "value": ","
5016                      },
5017                      {
5018                        "type": "CHOICE",
5019                        "members": [
5020                          {
5021                            "type": "SYMBOL",
5022                            "name": "pair"
5023                          },
5024                          {
5025                            "type": "SYMBOL",
5026                            "name": "dictionary_splat"
5027                          }
5028                        ]
5029                      }
5030                    ]
5031                  }
5032                }
5033              ]
5034            },
5035            {
5036              "type": "BLANK"
5037            }
5038          ]
5039        },
5040        {
5041          "type": "CHOICE",
5042          "members": [
5043            {
5044              "type": "STRING",
5045              "value": ","
5046            },
5047            {
5048              "type": "BLANK"
5049            }
5050          ]
5051        },
5052        {
5053          "type": "STRING",
5054          "value": "}"
5055        }
5056      ]
5057    },
5058    "pair": {
5059      "type": "SEQ",
5060      "members": [
5061        {
5062          "type": "FIELD",
5063          "name": "key",
5064          "content": {
5065            "type": "SYMBOL",
5066            "name": "expression"
5067          }
5068        },
5069        {
5070          "type": "STRING",
5071          "value": ":"
5072        },
5073        {
5074          "type": "FIELD",
5075          "name": "value",
5076          "content": {
5077            "type": "SYMBOL",
5078            "name": "expression"
5079          }
5080        }
5081      ]
5082    },
5083    "list_comprehension": {
5084      "type": "SEQ",
5085      "members": [
5086        {
5087          "type": "STRING",
5088          "value": "["
5089        },
5090        {
5091          "type": "FIELD",
5092          "name": "body",
5093          "content": {
5094            "type": "SYMBOL",
5095            "name": "expression"
5096          }
5097        },
5098        {
5099          "type": "SYMBOL",
5100          "name": "_comprehension_clauses"
5101        },
5102        {
5103          "type": "STRING",
5104          "value": "]"
5105        }
5106      ]
5107    },
5108    "dictionary_comprehension": {
5109      "type": "SEQ",
5110      "members": [
5111        {
5112          "type": "STRING",
5113          "value": "{"
5114        },
5115        {
5116          "type": "FIELD",
5117          "name": "body",
5118          "content": {
5119            "type": "SYMBOL",
5120            "name": "pair"
5121          }
5122        },
5123        {
5124          "type": "SYMBOL",
5125          "name": "_comprehension_clauses"
5126        },
5127        {
5128          "type": "STRING",
5129          "value": "}"
5130        }
5131      ]
5132    },
5133    "set_comprehension": {
5134      "type": "SEQ",
5135      "members": [
5136        {
5137          "type": "STRING",
5138          "value": "{"
5139        },
5140        {
5141          "type": "FIELD",
5142          "name": "body",
5143          "content": {
5144            "type": "SYMBOL",
5145            "name": "expression"
5146          }
5147        },
5148        {
5149          "type": "SYMBOL",
5150          "name": "_comprehension_clauses"
5151        },
5152        {
5153          "type": "STRING",
5154          "value": "}"
5155        }
5156      ]
5157    },
5158    "generator_expression": {
5159      "type": "SEQ",
5160      "members": [
5161        {
5162          "type": "STRING",
5163          "value": "("
5164        },
5165        {
5166          "type": "FIELD",
5167          "name": "body",
5168          "content": {
5169            "type": "SYMBOL",
5170            "name": "expression"
5171          }
5172        },
5173        {
5174          "type": "SYMBOL",
5175          "name": "_comprehension_clauses"
5176        },
5177        {
5178          "type": "STRING",
5179          "value": ")"
5180        }
5181      ]
5182    },
5183    "_comprehension_clauses": {
5184      "type": "SEQ",
5185      "members": [
5186        {
5187          "type": "SYMBOL",
5188          "name": "for_in_clause"
5189        },
5190        {
5191          "type": "REPEAT",
5192          "content": {
5193            "type": "CHOICE",
5194            "members": [
5195              {
5196                "type": "SYMBOL",
5197                "name": "for_in_clause"
5198              },
5199              {
5200                "type": "SYMBOL",
5201                "name": "if_clause"
5202              }
5203            ]
5204          }
5205        }
5206      ]
5207    },
5208    "parenthesized_expression": {
5209      "type": "PREC",
5210      "value": 1,
5211      "content": {
5212        "type": "SEQ",
5213        "members": [
5214          {
5215            "type": "STRING",
5216            "value": "("
5217          },
5218          {
5219            "type": "CHOICE",
5220            "members": [
5221              {
5222                "type": "SYMBOL",
5223                "name": "expression"
5224              },
5225              {
5226                "type": "SYMBOL",
5227                "name": "yield"
5228              }
5229            ]
5230          },
5231          {
5232            "type": "STRING",
5233            "value": ")"
5234          }
5235        ]
5236      }
5237    },
5238    "_collection_elements": {
5239      "type": "SEQ",
5240      "members": [
5241        {
5242          "type": "SEQ",
5243          "members": [
5244            {
5245              "type": "CHOICE",
5246              "members": [
5247                {
5248                  "type": "SYMBOL",
5249                  "name": "expression"
5250                },
5251                {
5252                  "type": "SYMBOL",
5253                  "name": "yield"
5254                },
5255                {
5256                  "type": "SYMBOL",
5257                  "name": "list_splat"
5258                },
5259                {
5260                  "type": "SYMBOL",
5261                  "name": "parenthesized_list_splat"
5262                }
5263              ]
5264            },
5265            {
5266              "type": "REPEAT",
5267              "content": {
5268                "type": "SEQ",
5269                "members": [
5270                  {
5271                    "type": "STRING",
5272                    "value": ","
5273                  },
5274                  {
5275                    "type": "CHOICE",
5276                    "members": [
5277                      {
5278                        "type": "SYMBOL",
5279                        "name": "expression"
5280                      },
5281                      {
5282                        "type": "SYMBOL",
5283                        "name": "yield"
5284                      },
5285                      {
5286                        "type": "SYMBOL",
5287                        "name": "list_splat"
5288                      },
5289                      {
5290                        "type": "SYMBOL",
5291                        "name": "parenthesized_list_splat"
5292                      }
5293                    ]
5294                  }
5295                ]
5296              }
5297            }
5298          ]
5299        },
5300        {
5301          "type": "CHOICE",
5302          "members": [
5303            {
5304              "type": "STRING",
5305              "value": ","
5306            },
5307            {
5308              "type": "BLANK"
5309            }
5310          ]
5311        }
5312      ]
5313    },
5314    "for_in_clause": {
5315      "type": "PREC_LEFT",
5316      "value": 0,
5317      "content": {
5318        "type": "SEQ",
5319        "members": [
5320          {
5321            "type": "CHOICE",
5322            "members": [
5323              {
5324                "type": "STRING",
5325                "value": "async"
5326              },
5327              {
5328                "type": "BLANK"
5329              }
5330            ]
5331          },
5332          {
5333            "type": "STRING",
5334            "value": "for"
5335          },
5336          {
5337            "type": "FIELD",
5338            "name": "left",
5339            "content": {
5340              "type": "SYMBOL",
5341              "name": "_left_hand_side"
5342            }
5343          },
5344          {
5345            "type": "STRING",
5346            "value": "in"
5347          },
5348          {
5349            "type": "FIELD",
5350            "name": "right",
5351            "content": {
5352              "type": "SEQ",
5353              "members": [
5354                {
5355                  "type": "SYMBOL",
5356                  "name": "_expression_within_for_in_clause"
5357                },
5358                {
5359                  "type": "REPEAT",
5360                  "content": {
5361                    "type": "SEQ",
5362                    "members": [
5363                      {
5364                        "type": "STRING",
5365                        "value": ","
5366                      },
5367                      {
5368                        "type": "SYMBOL",
5369                        "name": "_expression_within_for_in_clause"
5370                      }
5371                    ]
5372                  }
5373                }
5374              ]
5375            }
5376          },
5377          {
5378            "type": "CHOICE",
5379            "members": [
5380              {
5381                "type": "STRING",
5382                "value": ","
5383              },
5384              {
5385                "type": "BLANK"
5386              }
5387            ]
5388          }
5389        ]
5390      }
5391    },
5392    "if_clause": {
5393      "type": "SEQ",
5394      "members": [
5395        {
5396          "type": "STRING",
5397          "value": "if"
5398        },
5399        {
5400          "type": "SYMBOL",
5401          "name": "expression"
5402        }
5403      ]
5404    },
5405    "conditional_expression": {
5406      "type": "PREC_RIGHT",
5407      "value": -1,
5408      "content": {
5409        "type": "SEQ",
5410        "members": [
5411          {
5412            "type": "SYMBOL",
5413            "name": "expression"
5414          },
5415          {
5416            "type": "STRING",
5417            "value": "if"
5418          },
5419          {
5420            "type": "SYMBOL",
5421            "name": "expression"
5422          },
5423          {
5424            "type": "STRING",
5425            "value": "else"
5426          },
5427          {
5428            "type": "SYMBOL",
5429            "name": "expression"
5430          }
5431        ]
5432      }
5433    },
5434    "concatenated_string": {
5435      "type": "SEQ",
5436      "members": [
5437        {
5438          "type": "SYMBOL",
5439          "name": "string"
5440        },
5441        {
5442          "type": "REPEAT1",
5443          "content": {
5444            "type": "SYMBOL",
5445            "name": "string"
5446          }
5447        }
5448      ]
5449    },
5450    "string": {
5451      "type": "SEQ",
5452      "members": [
5453        {
5454          "type": "SYMBOL",
5455          "name": "string_start"
5456        },
5457        {
5458          "type": "REPEAT",
5459          "content": {
5460            "type": "CHOICE",
5461            "members": [
5462              {
5463                "type": "SYMBOL",
5464                "name": "interpolation"
5465              },
5466              {
5467                "type": "SYMBOL",
5468                "name": "string_content"
5469              }
5470            ]
5471          }
5472        },
5473        {
5474          "type": "SYMBOL",
5475          "name": "string_end"
5476        }
5477      ]
5478    },
5479    "string_content": {
5480      "type": "PREC_RIGHT",
5481      "value": 0,
5482      "content": {
5483        "type": "REPEAT1",
5484        "content": {
5485          "type": "CHOICE",
5486          "members": [
5487            {
5488              "type": "SYMBOL",
5489              "name": "escape_interpolation"
5490            },
5491            {
5492              "type": "SYMBOL",
5493              "name": "escape_sequence"
5494            },
5495            {
5496              "type": "SYMBOL",
5497              "name": "_not_escape_sequence"
5498            },
5499            {
5500              "type": "SYMBOL",
5501              "name": "_string_content"
5502            }
5503          ]
5504        }
5505      }
5506    },
5507    "interpolation": {
5508      "type": "SEQ",
5509      "members": [
5510        {
5511          "type": "STRING",
5512          "value": "{"
5513        },
5514        {
5515          "type": "FIELD",
5516          "name": "expression",
5517          "content": {
5518            "type": "SYMBOL",
5519            "name": "_f_expression"
5520          }
5521        },
5522        {
5523          "type": "CHOICE",
5524          "members": [
5525            {
5526              "type": "STRING",
5527              "value": "="
5528            },
5529            {
5530              "type": "BLANK"
5531            }
5532          ]
5533        },
5534        {
5535          "type": "CHOICE",
5536          "members": [
5537            {
5538              "type": "FIELD",
5539              "name": "type_conversion",
5540              "content": {
5541                "type": "SYMBOL",
5542                "name": "type_conversion"
5543              }
5544            },
5545            {
5546              "type": "BLANK"
5547            }
5548          ]
5549        },
5550        {
5551          "type": "CHOICE",
5552          "members": [
5553            {
5554              "type": "FIELD",
5555              "name": "format_specifier",
5556              "content": {
5557                "type": "SYMBOL",
5558                "name": "format_specifier"
5559              }
5560            },
5561            {
5562              "type": "BLANK"
5563            }
5564          ]
5565        },
5566        {
5567          "type": "STRING",
5568          "value": "}"
5569        }
5570      ]
5571    },
5572    "_f_expression": {
5573      "type": "CHOICE",
5574      "members": [
5575        {
5576          "type": "SYMBOL",
5577          "name": "expression"
5578        },
5579        {
5580          "type": "SYMBOL",
5581          "name": "expression_list"
5582        },
5583        {
5584          "type": "SYMBOL",
5585          "name": "pattern_list"
5586        },
5587        {
5588          "type": "SYMBOL",
5589          "name": "yield"
5590        }
5591      ]
5592    },
5593    "escape_sequence": {
5594      "type": "IMMEDIATE_TOKEN",
5595      "content": {
5596        "type": "PREC",
5597        "value": 1,
5598        "content": {
5599          "type": "SEQ",
5600          "members": [
5601            {
5602              "type": "STRING",
5603              "value": "\\"
5604            },
5605            {
5606              "type": "CHOICE",
5607              "members": [
5608                {
5609                  "type": "PATTERN",
5610                  "value": "u[a-fA-F\\d]{4}"
5611                },
5612                {
5613                  "type": "PATTERN",
5614                  "value": "U[a-fA-F\\d]{8}"
5615                },
5616                {
5617                  "type": "PATTERN",
5618                  "value": "x[a-fA-F\\d]{2}"
5619                },
5620                {
5621                  "type": "PATTERN",
5622                  "value": "\\d{3}"
5623                },
5624                {
5625                  "type": "PATTERN",
5626                  "value": "\\r?\\n"
5627                },
5628                {
5629                  "type": "PATTERN",
5630                  "value": "['\"abfrntv\\\\]"
5631                },
5632                {
5633                  "type": "PATTERN",
5634                  "value": "N\\{[^}]+\\}"
5635                }
5636              ]
5637            }
5638          ]
5639        }
5640      }
5641    },
5642    "_not_escape_sequence": {
5643      "type": "IMMEDIATE_TOKEN",
5644      "content": {
5645        "type": "STRING",
5646        "value": "\\"
5647      }
5648    },
5649    "format_specifier": {
5650      "type": "SEQ",
5651      "members": [
5652        {
5653          "type": "STRING",
5654          "value": ":"
5655        },
5656        {
5657          "type": "REPEAT",
5658          "content": {
5659            "type": "CHOICE",
5660            "members": [
5661              {
5662                "type": "TOKEN",
5663                "content": {
5664                  "type": "PREC",
5665                  "value": 1,
5666                  "content": {
5667                    "type": "PATTERN",
5668                    "value": "[^{}\\n]+"
5669                  }
5670                }
5671              },
5672              {
5673                "type": "ALIAS",
5674                "content": {
5675                  "type": "SYMBOL",
5676                  "name": "interpolation"
5677                },
5678                "named": true,
5679                "value": "format_expression"
5680              }
5681            ]
5682          }
5683        }
5684      ]
5685    },
5686    "type_conversion": {
5687      "type": "PATTERN",
5688      "value": "![a-z]"
5689    },
5690    "integer": {
5691      "type": "TOKEN",
5692      "content": {
5693        "type": "CHOICE",
5694        "members": [
5695          {
5696            "type": "SEQ",
5697            "members": [
5698              {
5699                "type": "CHOICE",
5700                "members": [
5701                  {
5702                    "type": "STRING",
5703                    "value": "0x"
5704                  },
5705                  {
5706                    "type": "STRING",
5707                    "value": "0X"
5708                  }
5709                ]
5710              },
5711              {
5712                "type": "REPEAT1",
5713                "content": {
5714                  "type": "PATTERN",
5715                  "value": "_?[A-Fa-f0-9]+"
5716                }
5717              },
5718              {
5719                "type": "CHOICE",
5720                "members": [
5721                  {
5722                    "type": "PATTERN",
5723                    "value": "[Ll]"
5724                  },
5725                  {
5726                    "type": "BLANK"
5727                  }
5728                ]
5729              }
5730            ]
5731          },
5732          {
5733            "type": "SEQ",
5734            "members": [
5735              {
5736                "type": "CHOICE",
5737                "members": [
5738                  {
5739                    "type": "STRING",
5740                    "value": "0o"
5741                  },
5742                  {
5743                    "type": "STRING",
5744                    "value": "0O"
5745                  }
5746                ]
5747              },
5748              {
5749                "type": "REPEAT1",
5750                "content": {
5751                  "type": "PATTERN",
5752                  "value": "_?[0-7]+"
5753                }
5754              },
5755              {
5756                "type": "CHOICE",
5757                "members": [
5758                  {
5759                    "type": "PATTERN",
5760                    "value": "[Ll]"
5761                  },
5762                  {
5763                    "type": "BLANK"
5764                  }
5765                ]
5766              }
5767            ]
5768          },
5769          {
5770            "type": "SEQ",
5771            "members": [
5772              {
5773                "type": "CHOICE",
5774                "members": [
5775                  {
5776                    "type": "STRING",
5777                    "value": "0b"
5778                  },
5779                  {
5780                    "type": "STRING",
5781                    "value": "0B"
5782                  }
5783                ]
5784              },
5785              {
5786                "type": "REPEAT1",
5787                "content": {
5788                  "type": "PATTERN",
5789                  "value": "_?[0-1]+"
5790                }
5791              },
5792              {
5793                "type": "CHOICE",
5794                "members": [
5795                  {
5796                    "type": "PATTERN",
5797                    "value": "[Ll]"
5798                  },
5799                  {
5800                    "type": "BLANK"
5801                  }
5802                ]
5803              }
5804            ]
5805          },
5806          {
5807            "type": "SEQ",
5808            "members": [
5809              {
5810                "type": "REPEAT1",
5811                "content": {
5812                  "type": "PATTERN",
5813                  "value": "[0-9]+_?"
5814                }
5815              },
5816              {
5817                "type": "CHOICE",
5818                "members": [
5819                  {
5820                    "type": "CHOICE",
5821                    "members": [
5822                      {
5823                        "type": "PATTERN",
5824                        "value": "[Ll]"
5825                      },
5826                      {
5827                        "type": "BLANK"
5828                      }
5829                    ]
5830                  },
5831                  {
5832                    "type": "CHOICE",
5833                    "members": [
5834                      {
5835                        "type": "PATTERN",
5836                        "value": "[jJ]"
5837                      },
5838                      {
5839                        "type": "BLANK"
5840                      }
5841                    ]
5842                  }
5843                ]
5844              }
5845            ]
5846          }
5847        ]
5848      }
5849    },
5850    "float": {
5851      "type": "TOKEN",
5852      "content": {
5853        "type": "SEQ",
5854        "members": [
5855          {
5856            "type": "CHOICE",
5857            "members": [
5858              {
5859                "type": "SEQ",
5860                "members": [
5861                  {
5862                    "type": "REPEAT1",
5863                    "content": {
5864                      "type": "PATTERN",
5865                      "value": "[0-9]+_?"
5866                    }
5867                  },
5868                  {
5869                    "type": "STRING",
5870                    "value": "."
5871                  },
5872                  {
5873                    "type": "CHOICE",
5874                    "members": [
5875                      {
5876                        "type": "REPEAT1",
5877                        "content": {
5878                          "type": "PATTERN",
5879                          "value": "[0-9]+_?"
5880                        }
5881                      },
5882                      {
5883                        "type": "BLANK"
5884                      }
5885                    ]
5886                  },
5887                  {
5888                    "type": "CHOICE",
5889                    "members": [
5890                      {
5891                        "type": "SEQ",
5892                        "members": [
5893                          {
5894                            "type": "PATTERN",
5895                            "value": "[eE][\\+-]?"
5896                          },
5897                          {
5898                            "type": "REPEAT1",
5899                            "content": {
5900                              "type": "PATTERN",
5901                              "value": "[0-9]+_?"
5902                            }
5903                          }
5904                        ]
5905                      },
5906                      {
5907                        "type": "BLANK"
5908                      }
5909                    ]
5910                  }
5911                ]
5912              },
5913              {
5914                "type": "SEQ",
5915                "members": [
5916                  {
5917                    "type": "CHOICE",
5918                    "members": [
5919                      {
5920                        "type": "REPEAT1",
5921                        "content": {
5922                          "type": "PATTERN",
5923                          "value": "[0-9]+_?"
5924                        }
5925                      },
5926                      {
5927                        "type": "BLANK"
5928                      }
5929                    ]
5930                  },
5931                  {
5932                    "type": "STRING",
5933                    "value": "."
5934                  },
5935                  {
5936                    "type": "REPEAT1",
5937                    "content": {
5938                      "type": "PATTERN",
5939                      "value": "[0-9]+_?"
5940                    }
5941                  },
5942                  {
5943                    "type": "CHOICE",
5944                    "members": [
5945                      {
5946                        "type": "SEQ",
5947                        "members": [
5948                          {
5949                            "type": "PATTERN",
5950                            "value": "[eE][\\+-]?"
5951                          },
5952                          {
5953                            "type": "REPEAT1",
5954                            "content": {
5955                              "type": "PATTERN",
5956                              "value": "[0-9]+_?"
5957                            }
5958                          }
5959                        ]
5960                      },
5961                      {
5962                        "type": "BLANK"
5963                      }
5964                    ]
5965                  }
5966                ]
5967              },
5968              {
5969                "type": "SEQ",
5970                "members": [
5971                  {
5972                    "type": "REPEAT1",
5973                    "content": {
5974                      "type": "PATTERN",
5975                      "value": "[0-9]+_?"
5976                    }
5977                  },
5978                  {
5979                    "type": "SEQ",
5980                    "members": [
5981                      {
5982                        "type": "PATTERN",
5983                        "value": "[eE][\\+-]?"
5984                      },
5985                      {
5986                        "type": "REPEAT1",
5987                        "content": {
5988                          "type": "PATTERN",
5989                          "value": "[0-9]+_?"
5990                        }
5991                      }
5992                    ]
5993                  }
5994                ]
5995              }
5996            ]
5997          },
5998          {
5999            "type": "CHOICE",
6000            "members": [
6001              {
6002                "type": "CHOICE",
6003                "members": [
6004                  {
6005                    "type": "PATTERN",
6006                    "value": "[Ll]"
6007                  },
6008                  {
6009                    "type": "PATTERN",
6010                    "value": "[jJ]"
6011                  }
6012                ]
6013              },
6014              {
6015                "type": "BLANK"
6016              }
6017            ]
6018          }
6019        ]
6020      }
6021    },
6022    "identifier": {
6023      "type": "PATTERN",
6024      "value": "[_\\p{XID_Start}][_\\p{XID_Continue}]*"
6025    },
6026    "keyword_identifier": {
6027      "type": "CHOICE",
6028      "members": [
6029        {
6030          "type": "PREC",
6031          "value": -3,
6032          "content": {
6033            "type": "ALIAS",
6034            "content": {
6035              "type": "CHOICE",
6036              "members": [
6037                {
6038                  "type": "STRING",
6039                  "value": "print"
6040                },
6041                {
6042                  "type": "STRING",
6043                  "value": "exec"
6044                },
6045                {
6046                  "type": "STRING",
6047                  "value": "async"
6048                },
6049                {
6050                  "type": "STRING",
6051                  "value": "await"
6052                },
6053                {
6054                  "type": "STRING",
6055                  "value": "match"
6056                }
6057              ]
6058            },
6059            "named": true,
6060            "value": "identifier"
6061          }
6062        },
6063        {
6064          "type": "ALIAS",
6065          "content": {
6066            "type": "STRING",
6067            "value": "type"
6068          },
6069          "named": true,
6070          "value": "identifier"
6071        }
6072      ]
6073    },
6074    "true": {
6075      "type": "STRING",
6076      "value": "True"
6077    },
6078    "false": {
6079      "type": "STRING",
6080      "value": "False"
6081    },
6082    "none": {
6083      "type": "STRING",
6084      "value": "None"
6085    },
6086    "await": {
6087      "type": "PREC",
6088      "value": 20,
6089      "content": {
6090        "type": "SEQ",
6091        "members": [
6092          {
6093            "type": "STRING",
6094            "value": "await"
6095          },
6096          {
6097            "type": "SYMBOL",
6098            "name": "primary_expression"
6099          }
6100        ]
6101      }
6102    },
6103    "comment": {
6104      "type": "TOKEN",
6105      "content": {
6106        "type": "SEQ",
6107        "members": [
6108          {
6109            "type": "STRING",
6110            "value": "#"
6111          },
6112          {
6113            "type": "PATTERN",
6114            "value": ".*"
6115          }
6116        ]
6117      }
6118    },
6119    "line_continuation": {
6120      "type": "TOKEN",
6121      "content": {
6122        "type": "SEQ",
6123        "members": [
6124          {
6125            "type": "STRING",
6126            "value": "\\"
6127          },
6128          {
6129            "type": "CHOICE",
6130            "members": [
6131              {
6132                "type": "SEQ",
6133                "members": [
6134                  {
6135                    "type": "CHOICE",
6136                    "members": [
6137                      {
6138                        "type": "STRING",
6139                        "value": "\r"
6140                      },
6141                      {
6142                        "type": "BLANK"
6143                      }
6144                    ]
6145                  },
6146                  {
6147                    "type": "STRING",
6148                    "value": "\n"
6149                  }
6150                ]
6151              },
6152              {
6153                "type": "STRING",
6154                "value": "\u0000"
6155              }
6156            ]
6157          }
6158        ]
6159      }
6160    },
6161    "positional_separator": {
6162      "type": "STRING",
6163      "value": "/"
6164    },
6165    "keyword_separator": {
6166      "type": "STRING",
6167      "value": "*"
6168    }
6169  },
6170  "extras": [
6171    {
6172      "type": "SYMBOL",
6173      "name": "comment"
6174    },
6175    {
6176      "type": "PATTERN",
6177      "value": "[\\s\\f\\uFEFF\\u2060\\u200B]|\\r?\\n"
6178    },
6179    {
6180      "type": "SYMBOL",
6181      "name": "line_continuation"
6182    }
6183  ],
6184  "conflicts": [
6185    [
6186      "primary_expression",
6187      "pattern"
6188    ],
6189    [
6190      "primary_expression",
6191      "list_splat_pattern"
6192    ],
6193    [
6194      "tuple",
6195      "tuple_pattern"
6196    ],
6197    [
6198      "list",
6199      "list_pattern"
6200    ],
6201    [
6202      "with_item",
6203      "_collection_elements"
6204    ],
6205    [
6206      "named_expression",
6207      "as_pattern"
6208    ],
6209    [
6210      "print_statement",
6211      "primary_expression"
6212    ],
6213    [
6214      "type_alias_statement",
6215      "primary_expression"
6216    ]
6217  ],
6218  "precedences": [],
6219  "externals": [
6220    {
6221      "type": "SYMBOL",
6222      "name": "_newline"
6223    },
6224    {
6225      "type": "SYMBOL",
6226      "name": "_indent"
6227    },
6228    {
6229      "type": "SYMBOL",
6230      "name": "_dedent"
6231    },
6232    {
6233      "type": "SYMBOL",
6234      "name": "string_start"
6235    },
6236    {
6237      "type": "SYMBOL",
6238      "name": "_string_content"
6239    },
6240    {
6241      "type": "SYMBOL",
6242      "name": "escape_interpolation"
6243    },
6244    {
6245      "type": "SYMBOL",
6246      "name": "string_end"
6247    },
6248    {
6249      "type": "SYMBOL",
6250      "name": "comment"
6251    },
6252    {
6253      "type": "STRING",
6254      "value": "]"
6255    },
6256    {
6257      "type": "STRING",
6258      "value": ")"
6259    },
6260    {
6261      "type": "STRING",
6262      "value": "}"
6263    },
6264    {
6265      "type": "STRING",
6266      "value": "except"
6267    }
6268  ],
6269  "inline": [
6270    "_simple_statement",
6271    "_compound_statement",
6272    "_suite",
6273    "_expressions",
6274    "_left_hand_side",
6275    "keyword_identifier"
6276  ],
6277  "supertypes": [
6278    "_simple_statement",
6279    "_compound_statement",
6280    "expression",
6281    "primary_expression",
6282    "pattern",
6283    "parameter"
6284  ],
6285  "PREC": {
6286    "lambda": -2,
6287    "typed_parameter": -1,
6288    "conditional": -1,
6289    "parenthesized_expression": 1,
6290    "parenthesized_list_splat": 1,
6291    "or": 10,
6292    "and": 11,
6293    "not": 12,
6294    "compare": 13,
6295    "bitwise_or": 14,
6296    "bitwise_and": 15,
6297    "xor": 16,
6298    "shift": 17,
6299    "plus": 18,
6300    "times": 19,
6301    "unary": 20,
6302    "power": 21,
6303    "call": 22
6304  }
6305}
6306