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