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