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