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