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