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