1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSEnumDeclaration",
6      "id": {
7        "type": "Identifier",
8        "name": "E",
9        "loc": {
10          "start": {
11            "line": 16,
12            "column": 12
13          },
14          "end": {
15            "line": 16,
16            "column": 13
17          }
18        }
19      },
20      "members": [
21        {
22          "type": "TSEnumMember",
23          "id": {
24            "type": "Identifier",
25            "name": "A",
26            "loc": {
27              "start": {
28                "line": 17,
29                "column": 5
30              },
31              "end": {
32                "line": 17,
33                "column": 6
34              }
35            }
36          },
37          "initializer": {
38            "type": "NumberLiteral",
39            "value": 1,
40            "loc": {
41              "start": {
42                "line": 17,
43                "column": 9
44              },
45              "end": {
46                "line": 17,
47                "column": 10
48              }
49            }
50          },
51          "loc": {
52            "start": {
53              "line": 17,
54              "column": 9
55            },
56            "end": {
57              "line": 17,
58              "column": 11
59            }
60          }
61        },
62        {
63          "type": "TSEnumMember",
64          "id": {
65            "type": "Identifier",
66            "name": "B",
67            "loc": {
68              "start": {
69                "line": 18,
70                "column": 5
71              },
72              "end": {
73                "line": 18,
74                "column": 6
75              }
76            }
77          },
78          "initializer": {
79            "type": "NumberLiteral",
80            "value": 2,
81            "loc": {
82              "start": {
83                "line": 18,
84                "column": 9
85              },
86              "end": {
87                "line": 18,
88                "column": 10
89              }
90            }
91          },
92          "loc": {
93            "start": {
94              "line": 18,
95              "column": 9
96            },
97            "end": {
98              "line": 18,
99              "column": 11
100            }
101          }
102        },
103        {
104          "type": "TSEnumMember",
105          "id": {
106            "type": "Identifier",
107            "name": "C",
108            "loc": {
109              "start": {
110                "line": 19,
111                "column": 5
112              },
113              "end": {
114                "line": 19,
115                "column": 6
116              }
117            }
118          },
119          "initializer": {
120            "type": "NumberLiteral",
121            "value": 3,
122            "loc": {
123              "start": {
124                "line": 19,
125                "column": 9
126              },
127              "end": {
128                "line": 19,
129                "column": 10
130              }
131            }
132          },
133          "loc": {
134            "start": {
135              "line": 19,
136              "column": 9
137            },
138            "end": {
139              "line": 20,
140              "column": 2
141            }
142          }
143        }
144      ],
145      "const": true,
146      "loc": {
147        "start": {
148          "line": 16,
149          "column": 7
150        },
151        "end": {
152          "line": 20,
153          "column": 2
154        }
155      }
156    },
157    {
158      "type": "TSEnumDeclaration",
159      "id": {
160        "type": "Identifier",
161        "name": "E1",
162        "loc": {
163          "start": {
164            "line": 22,
165            "column": 12
166          },
167          "end": {
168            "line": 22,
169            "column": 14
170          }
171        }
172      },
173      "members": [
174        {
175          "type": "TSEnumMember",
176          "id": {
177            "type": "Identifier",
178            "name": "A",
179            "loc": {
180              "start": {
181                "line": 23,
182                "column": 5
183              },
184              "end": {
185                "line": 23,
186                "column": 6
187              }
188            }
189          },
190          "initializer": {
191            "type": "StringLiteral",
192            "value": "Hello",
193            "loc": {
194              "start": {
195                "line": 23,
196                "column": 9
197              },
198              "end": {
199                "line": 23,
200                "column": 16
201              }
202            }
203          },
204          "loc": {
205            "start": {
206              "line": 23,
207              "column": 9
208            },
209            "end": {
210              "line": 23,
211              "column": 17
212            }
213          }
214        },
215        {
216          "type": "TSEnumMember",
217          "id": {
218            "type": "Identifier",
219            "name": "B",
220            "loc": {
221              "start": {
222                "line": 24,
223                "column": 5
224              },
225              "end": {
226                "line": 24,
227                "column": 6
228              }
229            }
230          },
231          "initializer": {
232            "type": "StringLiteral",
233            "value": "world",
234            "loc": {
235              "start": {
236                "line": 24,
237                "column": 9
238              },
239              "end": {
240                "line": 24,
241                "column": 16
242              }
243            }
244          },
245          "loc": {
246            "start": {
247              "line": 24,
248              "column": 9
249            },
250            "end": {
251              "line": 25,
252              "column": 2
253            }
254          }
255        }
256      ],
257      "const": true,
258      "loc": {
259        "start": {
260          "line": 22,
261          "column": 7
262        },
263        "end": {
264          "line": 25,
265          "column": 2
266        }
267      }
268    },
269    {
270      "type": "ClassDeclaration",
271      "definition": {
272        "id": {
273          "type": "Identifier",
274          "name": "Anno",
275          "loc": {
276            "start": {
277              "line": 27,
278              "column": 12
279            },
280            "end": {
281              "line": 27,
282              "column": 16
283            }
284          }
285        },
286        "superClass": null,
287        "implements": [],
288        "constructor": {
289          "type": "MethodDefinition",
290          "key": {
291            "type": "Identifier",
292            "name": "constructor",
293            "loc": {
294              "start": {
295                "line": 1,
296                "column": 1
297              },
298              "end": {
299                "line": 1,
300                "column": 1
301              }
302            }
303          },
304          "kind": "constructor",
305          "static": false,
306          "optional": false,
307          "computed": false,
308          "value": {
309            "type": "FunctionExpression",
310            "function": {
311              "type": "ScriptFunction",
312              "id": null,
313              "generator": false,
314              "async": false,
315              "expression": false,
316              "params": [],
317              "body": {
318                "type": "Program",
319                "statements": [],
320                "loc": {
321                  "start": {
322                    "line": 1,
323                    "column": 1
324                  },
325                  "end": {
326                    "line": 1,
327                    "column": 1
328                  }
329                }
330              },
331              "loc": {
332                "start": {
333                  "line": 1,
334                  "column": 1
335                },
336                "end": {
337                  "line": 1,
338                  "column": 1
339                }
340              }
341            },
342            "loc": {
343              "start": {
344                "line": 1,
345                "column": 1
346              },
347              "end": {
348                "line": 1,
349                "column": 1
350              }
351            }
352          },
353          "overloads": [],
354          "decorators": [],
355          "annotations": [],
356          "loc": {
357            "start": {
358              "line": 27,
359              "column": 2
360            },
361            "end": {
362              "line": 38,
363              "column": 2
364            }
365          }
366        },
367        "body": [
368          {
369            "type": "ClassProperty",
370            "key": {
371              "type": "Identifier",
372              "name": "a",
373              "loc": {
374                "start": {
375                  "line": 28,
376                  "column": 5
377                },
378                "end": {
379                  "line": 28,
380                  "column": 6
381                }
382              }
383            },
384            "static": false,
385            "readonly": false,
386            "declare": false,
387            "optional": false,
388            "computed": false,
389            "typeAnnotation": {
390              "type": "TSNumberKeyword",
391              "loc": {
392                "start": {
393                  "line": 28,
394                  "column": 8
395                },
396                "end": {
397                  "line": 28,
398                  "column": 14
399                }
400              }
401            },
402            "decorators": [],
403            "loc": {
404              "start": {
405                "line": 28,
406                "column": 5
407              },
408              "end": {
409                "line": 28,
410                "column": 6
411              }
412            }
413          },
414          {
415            "type": "ClassProperty",
416            "key": {
417              "type": "Identifier",
418              "name": "b",
419              "loc": {
420                "start": {
421                  "line": 29,
422                  "column": 5
423                },
424                "end": {
425                  "line": 29,
426                  "column": 6
427                }
428              }
429            },
430            "value": {
431              "type": "ArrayExpression",
432              "elements": [
433                {
434                  "type": "NumberLiteral",
435                  "value": 13,
436                  "loc": {
437                    "start": {
438                      "line": 29,
439                      "column": 20
440                    },
441                    "end": {
442                      "line": 29,
443                      "column": 22
444                    }
445                  }
446                },
447                {
448                  "type": "NumberLiteral",
449                  "value": 10,
450                  "loc": {
451                    "start": {
452                      "line": 29,
453                      "column": 24
454                    },
455                    "end": {
456                      "line": 29,
457                      "column": 26
458                    }
459                  }
460                }
461              ],
462              "loc": {
463                "start": {
464                  "line": 29,
465                  "column": 19
466                },
467                "end": {
468                  "line": 29,
469                  "column": 27
470                }
471              }
472            },
473            "static": false,
474            "readonly": false,
475            "declare": false,
476            "optional": false,
477            "computed": false,
478            "typeAnnotation": {
479              "type": "TSArrayType",
480              "elementType": {
481                "type": "TSNumberKeyword",
482                "loc": {
483                  "start": {
484                    "line": 29,
485                    "column": 8
486                  },
487                  "end": {
488                    "line": 29,
489                    "column": 14
490                  }
491                }
492              },
493              "loc": {
494                "start": {
495                  "line": 29,
496                  "column": 8
497                },
498                "end": {
499                  "line": 29,
500                  "column": 16
501                }
502              }
503            },
504            "decorators": [],
505            "loc": {
506              "start": {
507                "line": 29,
508                "column": 5
509              },
510              "end": {
511                "line": 29,
512                "column": 27
513              }
514            }
515          },
516          {
517            "type": "ClassProperty",
518            "key": {
519              "type": "Identifier",
520              "name": "c",
521              "loc": {
522                "start": {
523                  "line": 30,
524                  "column": 5
525                },
526                "end": {
527                  "line": 30,
528                  "column": 6
529                }
530              }
531            },
532            "static": false,
533            "readonly": false,
534            "declare": false,
535            "optional": false,
536            "computed": false,
537            "typeAnnotation": {
538              "type": "TSStringKeyword",
539              "loc": {
540                "start": {
541                  "line": 30,
542                  "column": 8
543                },
544                "end": {
545                  "line": 30,
546                  "column": 14
547                }
548              }
549            },
550            "decorators": [],
551            "loc": {
552              "start": {
553                "line": 30,
554                "column": 5
555              },
556              "end": {
557                "line": 30,
558                "column": 6
559              }
560            }
561          },
562          {
563            "type": "ClassProperty",
564            "key": {
565              "type": "Identifier",
566              "name": "d",
567              "loc": {
568                "start": {
569                  "line": 31,
570                  "column": 5
571                },
572                "end": {
573                  "line": 31,
574                  "column": 6
575                }
576              }
577            },
578            "static": false,
579            "readonly": false,
580            "declare": false,
581            "optional": false,
582            "computed": false,
583            "typeAnnotation": {
584              "type": "TSBooleanKeyword",
585              "loc": {
586                "start": {
587                  "line": 31,
588                  "column": 8
589                },
590                "end": {
591                  "line": 31,
592                  "column": 15
593                }
594              }
595            },
596            "decorators": [],
597            "loc": {
598              "start": {
599                "line": 31,
600                "column": 5
601              },
602              "end": {
603                "line": 31,
604                "column": 6
605              }
606            }
607          },
608          {
609            "type": "ClassProperty",
610            "key": {
611              "type": "Identifier",
612              "name": "e",
613              "loc": {
614                "start": {
615                  "line": 32,
616                  "column": 5
617                },
618                "end": {
619                  "line": 32,
620                  "column": 6
621                }
622              }
623            },
624            "value": {
625              "type": "ArrayExpression",
626              "elements": [
627                {
628                  "type": "NumberLiteral",
629                  "value": 1,
630                  "loc": {
631                    "start": {
632                      "line": 32,
633                      "column": 15
634                    },
635                    "end": {
636                      "line": 32,
637                      "column": 16
638                    }
639                  }
640                },
641                {
642                  "type": "NumberLiteral",
643                  "value": 2,
644                  "loc": {
645                    "start": {
646                      "line": 32,
647                      "column": 18
648                    },
649                    "end": {
650                      "line": 32,
651                      "column": 19
652                    }
653                  }
654                },
655                {
656                  "type": "NumberLiteral",
657                  "value": 3,
658                  "loc": {
659                    "start": {
660                      "line": 32,
661                      "column": 21
662                    },
663                    "end": {
664                      "line": 32,
665                      "column": 22
666                    }
667                  }
668                }
669              ],
670              "loc": {
671                "start": {
672                  "line": 32,
673                  "column": 14
674                },
675                "end": {
676                  "line": 32,
677                  "column": 23
678                }
679              }
680            },
681            "static": false,
682            "readonly": false,
683            "declare": false,
684            "optional": false,
685            "computed": false,
686            "typeAnnotation": {
687              "type": "TSArrayType",
688              "elementType": {
689                "type": "TSTypeReference",
690                "typeName": {
691                  "type": "Identifier",
692                  "name": "E",
693                  "loc": {
694                    "start": {
695                      "line": 32,
696                      "column": 8
697                    },
698                    "end": {
699                      "line": 32,
700                      "column": 9
701                    }
702                  }
703                },
704                "loc": {
705                  "start": {
706                    "line": 32,
707                    "column": 8
708                  },
709                  "end": {
710                    "line": 32,
711                    "column": 9
712                  }
713                }
714              },
715              "loc": {
716                "start": {
717                  "line": 32,
718                  "column": 8
719                },
720                "end": {
721                  "line": 32,
722                  "column": 11
723                }
724              }
725            },
726            "decorators": [],
727            "loc": {
728              "start": {
729                "line": 32,
730                "column": 5
731              },
732              "end": {
733                "line": 32,
734                "column": 23
735              }
736            }
737          },
738          {
739            "type": "ClassProperty",
740            "key": {
741              "type": "Identifier",
742              "name": "f",
743              "loc": {
744                "start": {
745                  "line": 33,
746                  "column": 5
747                },
748                "end": {
749                  "line": 33,
750                  "column": 6
751                }
752              }
753            },
754            "static": false,
755            "readonly": false,
756            "declare": false,
757            "optional": false,
758            "computed": false,
759            "typeAnnotation": {
760              "type": "TSArrayType",
761              "elementType": {
762                "type": "TSNumberKeyword",
763                "loc": {
764                  "start": {
765                    "line": 33,
766                    "column": 8
767                  },
768                  "end": {
769                    "line": 33,
770                    "column": 14
771                  }
772                }
773              },
774              "loc": {
775                "start": {
776                  "line": 33,
777                  "column": 8
778                },
779                "end": {
780                  "line": 33,
781                  "column": 16
782                }
783              }
784            },
785            "decorators": [],
786            "loc": {
787              "start": {
788                "line": 33,
789                "column": 5
790              },
791              "end": {
792                "line": 33,
793                "column": 6
794              }
795            }
796          },
797          {
798            "type": "ClassProperty",
799            "key": {
800              "type": "Identifier",
801              "name": "h",
802              "loc": {
803                "start": {
804                  "line": 34,
805                  "column": 5
806                },
807                "end": {
808                  "line": 34,
809                  "column": 6
810                }
811              }
812            },
813            "value": {
814              "type": "TSAsExpression",
815              "expression": {
816                "type": "NewExpression",
817                "callee": {
818                  "type": "Identifier",
819                  "name": "Number",
820                  "loc": {
821                    "start": {
822                      "line": 34,
823                      "column": 16
824                    },
825                    "end": {
826                      "line": 34,
827                      "column": 22
828                    }
829                  }
830                },
831                "arguments": [
832                  {
833                    "type": "NumberLiteral",
834                    "value": 10,
835                    "loc": {
836                      "start": {
837                        "line": 34,
838                        "column": 23
839                      },
840                      "end": {
841                        "line": 34,
842                        "column": 25
843                      }
844                    }
845                  }
846                ],
847                "loc": {
848                  "start": {
849                    "line": 34,
850                    "column": 12
851                  },
852                  "end": {
853                    "line": 34,
854                    "column": 26
855                  }
856                }
857              },
858              "typeAnnotation": {
859                "type": "TSNumberKeyword",
860                "loc": {
861                  "start": {
862                    "line": 34,
863                    "column": 30
864                  },
865                  "end": {
866                    "line": 34,
867                    "column": 36
868                  }
869                }
870              },
871              "loc": {
872                "start": {
873                  "line": 34,
874                  "column": 12
875                },
876                "end": {
877                  "line": 35,
878                  "column": 6
879                }
880              }
881            },
882            "static": false,
883            "readonly": false,
884            "declare": false,
885            "optional": false,
886            "computed": false,
887            "typeAnnotation": {
888              "type": "TSTypeReference",
889              "typeName": {
890                "type": "Identifier",
891                "name": "E",
892                "loc": {
893                  "start": {
894                    "line": 34,
895                    "column": 8
896                  },
897                  "end": {
898                    "line": 34,
899                    "column": 9
900                  }
901                }
902              },
903              "loc": {
904                "start": {
905                  "line": 34,
906                  "column": 8
907                },
908                "end": {
909                  "line": 34,
910                  "column": 9
911                }
912              }
913            },
914            "decorators": [],
915            "loc": {
916              "start": {
917                "line": 34,
918                "column": 5
919              },
920              "end": {
921                "line": 35,
922                "column": 6
923              }
924            }
925          },
926          {
927            "type": "ClassProperty",
928            "key": {
929              "type": "Identifier",
930              "name": "i",
931              "loc": {
932                "start": {
933                  "line": 35,
934                  "column": 5
935                },
936                "end": {
937                  "line": 35,
938                  "column": 6
939                }
940              }
941            },
942            "value": {
943              "type": "ArrayExpression",
944              "elements": [
945                {
946                  "type": "ArrayExpression",
947                  "elements": [
948                    {
949                      "type": "NewExpression",
950                      "callee": {
951                        "type": "Identifier",
952                        "name": "Array",
953                        "loc": {
954                          "start": {
955                            "line": 35,
956                            "column": 24
957                          },
958                          "end": {
959                            "line": 35,
960                            "column": 29
961                          }
962                        }
963                      },
964                      "typeParameters": {
965                        "type": "TSTypeParameterInstantiation",
966                        "params": [
967                          {
968                            "type": "TSTypeReference",
969                            "typeName": {
970                              "type": "Identifier",
971                              "name": "E",
972                              "loc": {
973                                "start": {
974                                  "line": 35,
975                                  "column": 30
976                                },
977                                "end": {
978                                  "line": 35,
979                                  "column": 31
980                                }
981                              }
982                            },
983                            "loc": {
984                              "start": {
985                                "line": 35,
986                                "column": 30
987                              },
988                              "end": {
989                                "line": 35,
990                                "column": 31
991                              }
992                            }
993                          }
994                        ],
995                        "loc": {
996                          "start": {
997                            "line": 35,
998                            "column": 29
999                          },
1000                          "end": {
1001                            "line": 35,
1002                            "column": 32
1003                          }
1004                        }
1005                      },
1006                      "arguments": [
1007                        {
1008                          "type": "NumberLiteral",
1009                          "value": 0,
1010                          "loc": {
1011                            "start": {
1012                              "line": 35,
1013                              "column": 33
1014                            },
1015                            "end": {
1016                              "line": 35,
1017                              "column": 34
1018                            }
1019                          }
1020                        }
1021                      ],
1022                      "loc": {
1023                        "start": {
1024                          "line": 35,
1025                          "column": 20
1026                        },
1027                        "end": {
1028                          "line": 35,
1029                          "column": 35
1030                        }
1031                      }
1032                    }
1033                  ],
1034                  "loc": {
1035                    "start": {
1036                      "line": 35,
1037                      "column": 19
1038                    },
1039                    "end": {
1040                      "line": 35,
1041                      "column": 36
1042                    }
1043                  }
1044                }
1045              ],
1046              "loc": {
1047                "start": {
1048                  "line": 35,
1049                  "column": 18
1050                },
1051                "end": {
1052                  "line": 35,
1053                  "column": 37
1054                }
1055              }
1056            },
1057            "static": false,
1058            "readonly": false,
1059            "declare": false,
1060            "optional": false,
1061            "computed": false,
1062            "typeAnnotation": {
1063              "type": "TSArrayType",
1064              "elementType": {
1065                "type": "TSArrayType",
1066                "elementType": {
1067                  "type": "TSArrayType",
1068                  "elementType": {
1069                    "type": "TSTypeReference",
1070                    "typeName": {
1071                      "type": "Identifier",
1072                      "name": "E",
1073                      "loc": {
1074                        "start": {
1075                          "line": 35,
1076                          "column": 8
1077                        },
1078                        "end": {
1079                          "line": 35,
1080                          "column": 9
1081                        }
1082                      }
1083                    },
1084                    "loc": {
1085                      "start": {
1086                        "line": 35,
1087                        "column": 8
1088                      },
1089                      "end": {
1090                        "line": 35,
1091                        "column": 9
1092                      }
1093                    }
1094                  },
1095                  "loc": {
1096                    "start": {
1097                      "line": 35,
1098                      "column": 8
1099                    },
1100                    "end": {
1101                      "line": 35,
1102                      "column": 11
1103                    }
1104                  }
1105                },
1106                "loc": {
1107                  "start": {
1108                    "line": 35,
1109                    "column": 8
1110                  },
1111                  "end": {
1112                    "line": 35,
1113                    "column": 13
1114                  }
1115                }
1116              },
1117              "loc": {
1118                "start": {
1119                  "line": 35,
1120                  "column": 8
1121                },
1122                "end": {
1123                  "line": 35,
1124                  "column": 15
1125                }
1126              }
1127            },
1128            "decorators": [],
1129            "loc": {
1130              "start": {
1131                "line": 35,
1132                "column": 5
1133              },
1134              "end": {
1135                "line": 35,
1136                "column": 37
1137              }
1138            }
1139          },
1140          {
1141            "type": "ClassProperty",
1142            "key": {
1143              "type": "Identifier",
1144              "name": "j",
1145              "loc": {
1146                "start": {
1147                  "line": 36,
1148                  "column": 5
1149                },
1150                "end": {
1151                  "line": 36,
1152                  "column": 6
1153                }
1154              }
1155            },
1156            "static": false,
1157            "readonly": false,
1158            "declare": false,
1159            "optional": false,
1160            "computed": false,
1161            "typeAnnotation": {
1162              "type": "TSTypeReference",
1163              "typeName": {
1164                "type": "Identifier",
1165                "name": "E1",
1166                "loc": {
1167                  "start": {
1168                    "line": 36,
1169                    "column": 8
1170                  },
1171                  "end": {
1172                    "line": 36,
1173                    "column": 10
1174                  }
1175                }
1176              },
1177              "loc": {
1178                "start": {
1179                  "line": 36,
1180                  "column": 8
1181                },
1182                "end": {
1183                  "line": 36,
1184                  "column": 10
1185                }
1186              }
1187            },
1188            "decorators": [],
1189            "loc": {
1190              "start": {
1191                "line": 36,
1192                "column": 5
1193              },
1194              "end": {
1195                "line": 36,
1196                "column": 6
1197              }
1198            }
1199          },
1200          {
1201            "type": "ClassProperty",
1202            "key": {
1203              "type": "Identifier",
1204              "name": "k",
1205              "loc": {
1206                "start": {
1207                  "line": 37,
1208                  "column": 5
1209                },
1210                "end": {
1211                  "line": 37,
1212                  "column": 6
1213                }
1214              }
1215            },
1216            "value": {
1217              "type": "ArrayExpression",
1218              "elements": [
1219                {
1220                  "type": "ArrayExpression",
1221                  "elements": [
1222                    {
1223                      "type": "NewExpression",
1224                      "callee": {
1225                        "type": "Identifier",
1226                        "name": "Array",
1227                        "loc": {
1228                          "start": {
1229                            "line": 37,
1230                            "column": 25
1231                          },
1232                          "end": {
1233                            "line": 37,
1234                            "column": 30
1235                          }
1236                        }
1237                      },
1238                      "typeParameters": {
1239                        "type": "TSTypeParameterInstantiation",
1240                        "params": [
1241                          {
1242                            "type": "TSTypeReference",
1243                            "typeName": {
1244                              "type": "Identifier",
1245                              "name": "E1",
1246                              "loc": {
1247                                "start": {
1248                                  "line": 37,
1249                                  "column": 31
1250                                },
1251                                "end": {
1252                                  "line": 37,
1253                                  "column": 33
1254                                }
1255                              }
1256                            },
1257                            "loc": {
1258                              "start": {
1259                                "line": 37,
1260                                "column": 31
1261                              },
1262                              "end": {
1263                                "line": 37,
1264                                "column": 33
1265                              }
1266                            }
1267                          }
1268                        ],
1269                        "loc": {
1270                          "start": {
1271                            "line": 37,
1272                            "column": 30
1273                          },
1274                          "end": {
1275                            "line": 37,
1276                            "column": 34
1277                          }
1278                        }
1279                      },
1280                      "arguments": [
1281                        {
1282                          "type": "NumberLiteral",
1283                          "value": 2,
1284                          "loc": {
1285                            "start": {
1286                              "line": 37,
1287                              "column": 35
1288                            },
1289                            "end": {
1290                              "line": 37,
1291                              "column": 36
1292                            }
1293                          }
1294                        }
1295                      ],
1296                      "loc": {
1297                        "start": {
1298                          "line": 37,
1299                          "column": 21
1300                        },
1301                        "end": {
1302                          "line": 37,
1303                          "column": 37
1304                        }
1305                      }
1306                    }
1307                  ],
1308                  "loc": {
1309                    "start": {
1310                      "line": 37,
1311                      "column": 20
1312                    },
1313                    "end": {
1314                      "line": 37,
1315                      "column": 38
1316                    }
1317                  }
1318                }
1319              ],
1320              "loc": {
1321                "start": {
1322                  "line": 37,
1323                  "column": 19
1324                },
1325                "end": {
1326                  "line": 37,
1327                  "column": 39
1328                }
1329              }
1330            },
1331            "static": false,
1332            "readonly": false,
1333            "declare": false,
1334            "optional": false,
1335            "computed": false,
1336            "typeAnnotation": {
1337              "type": "TSArrayType",
1338              "elementType": {
1339                "type": "TSArrayType",
1340                "elementType": {
1341                  "type": "TSArrayType",
1342                  "elementType": {
1343                    "type": "TSTypeReference",
1344                    "typeName": {
1345                      "type": "Identifier",
1346                      "name": "E1",
1347                      "loc": {
1348                        "start": {
1349                          "line": 37,
1350                          "column": 8
1351                        },
1352                        "end": {
1353                          "line": 37,
1354                          "column": 10
1355                        }
1356                      }
1357                    },
1358                    "loc": {
1359                      "start": {
1360                        "line": 37,
1361                        "column": 8
1362                      },
1363                      "end": {
1364                        "line": 37,
1365                        "column": 10
1366                      }
1367                    }
1368                  },
1369                  "loc": {
1370                    "start": {
1371                      "line": 37,
1372                      "column": 8
1373                    },
1374                    "end": {
1375                      "line": 37,
1376                      "column": 12
1377                    }
1378                  }
1379                },
1380                "loc": {
1381                  "start": {
1382                    "line": 37,
1383                    "column": 8
1384                  },
1385                  "end": {
1386                    "line": 37,
1387                    "column": 14
1388                  }
1389                }
1390              },
1391              "loc": {
1392                "start": {
1393                  "line": 37,
1394                  "column": 8
1395                },
1396                "end": {
1397                  "line": 37,
1398                  "column": 16
1399                }
1400              }
1401            },
1402            "decorators": [],
1403            "loc": {
1404              "start": {
1405                "line": 37,
1406                "column": 5
1407              },
1408              "end": {
1409                "line": 37,
1410                "column": 39
1411              }
1412            }
1413          }
1414        ],
1415        "indexSignatures": [],
1416        "loc": {
1417          "start": {
1418            "line": 27,
1419            "column": 17
1420          },
1421          "end": {
1422            "line": 38,
1423            "column": 2
1424          }
1425        }
1426      },
1427      "decorators": [],
1428      "isAnnotationDeclaration": true,
1429      "loc": {
1430        "start": {
1431          "line": 27,
1432          "column": 2
1433        },
1434        "end": {
1435          "line": 38,
1436          "column": 2
1437        }
1438      }
1439    },
1440    {
1441      "type": "ClassDeclaration",
1442      "definition": {
1443        "id": {
1444          "type": "Identifier",
1445          "name": "A",
1446          "loc": {
1447            "start": {
1448              "line": 41,
1449              "column": 7
1450            },
1451            "end": {
1452              "line": 41,
1453              "column": 8
1454            }
1455          }
1456        },
1457        "superClass": null,
1458        "implements": [],
1459        "constructor": {
1460          "type": "MethodDefinition",
1461          "key": {
1462            "type": "Identifier",
1463            "name": "constructor",
1464            "loc": {
1465              "start": {
1466                "line": 1,
1467                "column": 1
1468              },
1469              "end": {
1470                "line": 1,
1471                "column": 1
1472              }
1473            }
1474          },
1475          "kind": "constructor",
1476          "static": false,
1477          "optional": false,
1478          "computed": false,
1479          "value": {
1480            "type": "FunctionExpression",
1481            "function": {
1482              "type": "ScriptFunction",
1483              "id": null,
1484              "generator": false,
1485              "async": false,
1486              "expression": false,
1487              "params": [],
1488              "body": {
1489                "type": "BlockStatement",
1490                "statements": [],
1491                "loc": {
1492                  "start": {
1493                    "line": 1,
1494                    "column": 1
1495                  },
1496                  "end": {
1497                    "line": 1,
1498                    "column": 1
1499                  }
1500                }
1501              },
1502              "loc": {
1503                "start": {
1504                  "line": 1,
1505                  "column": 1
1506                },
1507                "end": {
1508                  "line": 1,
1509                  "column": 1
1510                }
1511              }
1512            },
1513            "loc": {
1514              "start": {
1515                "line": 1,
1516                "column": 1
1517              },
1518              "end": {
1519                "line": 1,
1520                "column": 1
1521              }
1522            }
1523          },
1524          "overloads": [],
1525          "decorators": [],
1526          "annotations": [
1527            {
1528              "type": "Annotation",
1529              "expression": {
1530                "type": "CallExpression",
1531                "callee": {
1532                  "type": "Identifier",
1533                  "name": "Anno",
1534                  "loc": {
1535                    "start": {
1536                      "line": 40,
1537                      "column": 3
1538                    },
1539                    "end": {
1540                      "line": 40,
1541                      "column": 7
1542                    }
1543                  }
1544                },
1545                "arguments": [
1546                  {
1547                    "type": "ObjectExpression",
1548                    "properties": [
1549                      {
1550                        "type": "Property",
1551                        "method": false,
1552                        "shorthand": false,
1553                        "computed": false,
1554                        "key": {
1555                          "type": "Identifier",
1556                          "name": "a",
1557                          "loc": {
1558                            "start": {
1559                              "line": 40,
1560                              "column": 9
1561                            },
1562                            "end": {
1563                              "line": 40,
1564                              "column": 10
1565                            }
1566                          }
1567                        },
1568                        "value": {
1569                          "type": "NumberLiteral",
1570                          "value": 20,
1571                          "loc": {
1572                            "start": {
1573                              "line": 40,
1574                              "column": 12
1575                            },
1576                            "end": {
1577                              "line": 40,
1578                              "column": 14
1579                            }
1580                          }
1581                        },
1582                        "kind": "init",
1583                        "loc": {
1584                          "start": {
1585                            "line": 40,
1586                            "column": 9
1587                          },
1588                          "end": {
1589                            "line": 40,
1590                            "column": 14
1591                          }
1592                        }
1593                      },
1594                      {
1595                        "type": "Property",
1596                        "method": false,
1597                        "shorthand": false,
1598                        "computed": false,
1599                        "key": {
1600                          "type": "Identifier",
1601                          "name": "b",
1602                          "loc": {
1603                            "start": {
1604                              "line": 40,
1605                              "column": 16
1606                            },
1607                            "end": {
1608                              "line": 40,
1609                              "column": 17
1610                            }
1611                          }
1612                        },
1613                        "value": {
1614                          "type": "ArrayExpression",
1615                          "elements": [
1616                            {
1617                              "type": "NumberLiteral",
1618                              "value": 13,
1619                              "loc": {
1620                                "start": {
1621                                  "line": 40,
1622                                  "column": 20
1623                                },
1624                                "end": {
1625                                  "line": 40,
1626                                  "column": 22
1627                                }
1628                              }
1629                            },
1630                            {
1631                              "type": "NumberLiteral",
1632                              "value": 10,
1633                              "loc": {
1634                                "start": {
1635                                  "line": 40,
1636                                  "column": 24
1637                                },
1638                                "end": {
1639                                  "line": 40,
1640                                  "column": 26
1641                                }
1642                              }
1643                            }
1644                          ],
1645                          "loc": {
1646                            "start": {
1647                              "line": 40,
1648                              "column": 19
1649                            },
1650                            "end": {
1651                              "line": 40,
1652                              "column": 27
1653                            }
1654                          }
1655                        },
1656                        "kind": "init",
1657                        "loc": {
1658                          "start": {
1659                            "line": 40,
1660                            "column": 16
1661                          },
1662                          "end": {
1663                            "line": 40,
1664                            "column": 27
1665                          }
1666                        }
1667                      },
1668                      {
1669                        "type": "Property",
1670                        "method": false,
1671                        "shorthand": false,
1672                        "computed": false,
1673                        "key": {
1674                          "type": "Identifier",
1675                          "name": "c",
1676                          "loc": {
1677                            "start": {
1678                              "line": 40,
1679                              "column": 29
1680                            },
1681                            "end": {
1682                              "line": 40,
1683                              "column": 30
1684                            }
1685                          }
1686                        },
1687                        "value": {
1688                          "type": "StringLiteral",
1689                          "value": "ab",
1690                          "loc": {
1691                            "start": {
1692                              "line": 40,
1693                              "column": 32
1694                            },
1695                            "end": {
1696                              "line": 40,
1697                              "column": 36
1698                            }
1699                          }
1700                        },
1701                        "kind": "init",
1702                        "loc": {
1703                          "start": {
1704                            "line": 40,
1705                            "column": 29
1706                          },
1707                          "end": {
1708                            "line": 40,
1709                            "column": 36
1710                          }
1711                        }
1712                      },
1713                      {
1714                        "type": "Property",
1715                        "method": false,
1716                        "shorthand": false,
1717                        "computed": false,
1718                        "key": {
1719                          "type": "Identifier",
1720                          "name": "d",
1721                          "loc": {
1722                            "start": {
1723                              "line": 40,
1724                              "column": 38
1725                            },
1726                            "end": {
1727                              "line": 40,
1728                              "column": 39
1729                            }
1730                          }
1731                        },
1732                        "value": {
1733                          "type": "BooleanLiteral",
1734                          "value": true,
1735                          "loc": {
1736                            "start": {
1737                              "line": 40,
1738                              "column": 41
1739                            },
1740                            "end": {
1741                              "line": 40,
1742                              "column": 45
1743                            }
1744                          }
1745                        },
1746                        "kind": "init",
1747                        "loc": {
1748                          "start": {
1749                            "line": 40,
1750                            "column": 38
1751                          },
1752                          "end": {
1753                            "line": 40,
1754                            "column": 45
1755                          }
1756                        }
1757                      },
1758                      {
1759                        "type": "Property",
1760                        "method": false,
1761                        "shorthand": false,
1762                        "computed": false,
1763                        "key": {
1764                          "type": "Identifier",
1765                          "name": "e",
1766                          "loc": {
1767                            "start": {
1768                              "line": 40,
1769                              "column": 47
1770                            },
1771                            "end": {
1772                              "line": 40,
1773                              "column": 48
1774                            }
1775                          }
1776                        },
1777                        "value": {
1778                          "type": "ArrayExpression",
1779                          "elements": [
1780                            {
1781                              "type": "NumberLiteral",
1782                              "value": 1,
1783                              "loc": {
1784                                "start": {
1785                                  "line": 40,
1786                                  "column": 51
1787                                },
1788                                "end": {
1789                                  "line": 40,
1790                                  "column": 52
1791                                }
1792                              }
1793                            },
1794                            {
1795                              "type": "NumberLiteral",
1796                              "value": 2,
1797                              "loc": {
1798                                "start": {
1799                                  "line": 40,
1800                                  "column": 54
1801                                },
1802                                "end": {
1803                                  "line": 40,
1804                                  "column": 55
1805                                }
1806                              }
1807                            },
1808                            {
1809                              "type": "NumberLiteral",
1810                              "value": 3,
1811                              "loc": {
1812                                "start": {
1813                                  "line": 40,
1814                                  "column": 57
1815                                },
1816                                "end": {
1817                                  "line": 40,
1818                                  "column": 58
1819                                }
1820                              }
1821                            }
1822                          ],
1823                          "loc": {
1824                            "start": {
1825                              "line": 40,
1826                              "column": 50
1827                            },
1828                            "end": {
1829                              "line": 40,
1830                              "column": 59
1831                            }
1832                          }
1833                        },
1834                        "kind": "init",
1835                        "loc": {
1836                          "start": {
1837                            "line": 40,
1838                            "column": 47
1839                          },
1840                          "end": {
1841                            "line": 40,
1842                            "column": 59
1843                          }
1844                        }
1845                      },
1846                      {
1847                        "type": "Property",
1848                        "method": false,
1849                        "shorthand": false,
1850                        "computed": false,
1851                        "key": {
1852                          "type": "Identifier",
1853                          "name": "f",
1854                          "loc": {
1855                            "start": {
1856                              "line": 40,
1857                              "column": 61
1858                            },
1859                            "end": {
1860                              "line": 40,
1861                              "column": 62
1862                            }
1863                          }
1864                        },
1865                        "value": {
1866                          "type": "NewExpression",
1867                          "callee": {
1868                            "type": "Identifier",
1869                            "name": "Array",
1870                            "loc": {
1871                              "start": {
1872                                "line": 40,
1873                                "column": 68
1874                              },
1875                              "end": {
1876                                "line": 40,
1877                                "column": 73
1878                              }
1879                            }
1880                          },
1881                          "typeParameters": {
1882                            "type": "TSTypeParameterInstantiation",
1883                            "params": [
1884                              {
1885                                "type": "TSNumberKeyword",
1886                                "loc": {
1887                                  "start": {
1888                                    "line": 40,
1889                                    "column": 74
1890                                  },
1891                                  "end": {
1892                                    "line": 40,
1893                                    "column": 80
1894                                  }
1895                                }
1896                              }
1897                            ],
1898                            "loc": {
1899                              "start": {
1900                                "line": 40,
1901                                "column": 73
1902                              },
1903                              "end": {
1904                                "line": 40,
1905                                "column": 81
1906                              }
1907                            }
1908                          },
1909                          "arguments": [],
1910                          "loc": {
1911                            "start": {
1912                              "line": 40,
1913                              "column": 64
1914                            },
1915                            "end": {
1916                              "line": 40,
1917                              "column": 83
1918                            }
1919                          }
1920                        },
1921                        "kind": "init",
1922                        "loc": {
1923                          "start": {
1924                            "line": 40,
1925                            "column": 61
1926                          },
1927                          "end": {
1928                            "line": 40,
1929                            "column": 83
1930                          }
1931                        }
1932                      },
1933                      {
1934                        "type": "Property",
1935                        "method": false,
1936                        "shorthand": false,
1937                        "computed": false,
1938                        "key": {
1939                          "type": "Identifier",
1940                          "name": "g",
1941                          "loc": {
1942                            "start": {
1943                              "line": 40,
1944                              "column": 85
1945                            },
1946                            "end": {
1947                              "line": 40,
1948                              "column": 86
1949                            }
1950                          }
1951                        },
1952                        "value": {
1953                          "type": "ArrayExpression",
1954                          "elements": [
1955                            {
1956                              "type": "ArrayExpression",
1957                              "elements": [
1958                                {
1959                                  "type": "ArrayExpression",
1960                                  "elements": [
1961                                    {
1962                                      "type": "NumberLiteral",
1963                                      "value": 0,
1964                                      "loc": {
1965                                        "start": {
1966                                          "line": 40,
1967                                          "column": 91
1968                                        },
1969                                        "end": {
1970                                          "line": 40,
1971                                          "column": 92
1972                                        }
1973                                      }
1974                                    }
1975                                  ],
1976                                  "loc": {
1977                                    "start": {
1978                                      "line": 40,
1979                                      "column": 90
1980                                    },
1981                                    "end": {
1982                                      "line": 40,
1983                                      "column": 93
1984                                    }
1985                                  }
1986                                }
1987                              ],
1988                              "loc": {
1989                                "start": {
1990                                  "line": 40,
1991                                  "column": 89
1992                                },
1993                                "end": {
1994                                  "line": 40,
1995                                  "column": 94
1996                                }
1997                              }
1998                            }
1999                          ],
2000                          "loc": {
2001                            "start": {
2002                              "line": 40,
2003                              "column": 88
2004                            },
2005                            "end": {
2006                              "line": 40,
2007                              "column": 95
2008                            }
2009                          }
2010                        },
2011                        "kind": "init",
2012                        "loc": {
2013                          "start": {
2014                            "line": 40,
2015                            "column": 85
2016                          },
2017                          "end": {
2018                            "line": 40,
2019                            "column": 95
2020                          }
2021                        }
2022                      },
2023                      {
2024                        "type": "Property",
2025                        "method": false,
2026                        "shorthand": false,
2027                        "computed": false,
2028                        "key": {
2029                          "type": "Identifier",
2030                          "name": "h",
2031                          "loc": {
2032                            "start": {
2033                              "line": 40,
2034                              "column": 97
2035                            },
2036                            "end": {
2037                              "line": 40,
2038                              "column": 98
2039                            }
2040                          }
2041                        },
2042                        "value": {
2043                          "type": "NumberLiteral",
2044                          "value": 10,
2045                          "loc": {
2046                            "start": {
2047                              "line": 40,
2048                              "column": 100
2049                            },
2050                            "end": {
2051                              "line": 40,
2052                              "column": 102
2053                            }
2054                          }
2055                        },
2056                        "kind": "init",
2057                        "loc": {
2058                          "start": {
2059                            "line": 40,
2060                            "column": 97
2061                          },
2062                          "end": {
2063                            "line": 40,
2064                            "column": 102
2065                          }
2066                        }
2067                      },
2068                      {
2069                        "type": "Property",
2070                        "method": false,
2071                        "shorthand": false,
2072                        "computed": false,
2073                        "key": {
2074                          "type": "Identifier",
2075                          "name": "i",
2076                          "loc": {
2077                            "start": {
2078                              "line": 40,
2079                              "column": 104
2080                            },
2081                            "end": {
2082                              "line": 40,
2083                              "column": 105
2084                            }
2085                          }
2086                        },
2087                        "value": {
2088                          "type": "ArrayExpression",
2089                          "elements": [
2090                            {
2091                              "type": "ArrayExpression",
2092                              "elements": [
2093                                {
2094                                  "type": "NewExpression",
2095                                  "callee": {
2096                                    "type": "Identifier",
2097                                    "name": "Array",
2098                                    "loc": {
2099                                      "start": {
2100                                        "line": 40,
2101                                        "column": 113
2102                                      },
2103                                      "end": {
2104                                        "line": 40,
2105                                        "column": 118
2106                                      }
2107                                    }
2108                                  },
2109                                  "typeParameters": {
2110                                    "type": "TSTypeParameterInstantiation",
2111                                    "params": [
2112                                      {
2113                                        "type": "TSTypeReference",
2114                                        "typeName": {
2115                                          "type": "Identifier",
2116                                          "name": "E",
2117                                          "loc": {
2118                                            "start": {
2119                                              "line": 40,
2120                                              "column": 119
2121                                            },
2122                                            "end": {
2123                                              "line": 40,
2124                                              "column": 120
2125                                            }
2126                                          }
2127                                        },
2128                                        "loc": {
2129                                          "start": {
2130                                            "line": 40,
2131                                            "column": 119
2132                                          },
2133                                          "end": {
2134                                            "line": 40,
2135                                            "column": 120
2136                                          }
2137                                        }
2138                                      }
2139                                    ],
2140                                    "loc": {
2141                                      "start": {
2142                                        "line": 40,
2143                                        "column": 118
2144                                      },
2145                                      "end": {
2146                                        "line": 40,
2147                                        "column": 121
2148                                      }
2149                                    }
2150                                  },
2151                                  "arguments": [
2152                                    {
2153                                      "type": "NumberLiteral",
2154                                      "value": 1,
2155                                      "loc": {
2156                                        "start": {
2157                                          "line": 40,
2158                                          "column": 122
2159                                        },
2160                                        "end": {
2161                                          "line": 40,
2162                                          "column": 123
2163                                        }
2164                                      }
2165                                    }
2166                                  ],
2167                                  "loc": {
2168                                    "start": {
2169                                      "line": 40,
2170                                      "column": 109
2171                                    },
2172                                    "end": {
2173                                      "line": 40,
2174                                      "column": 124
2175                                    }
2176                                  }
2177                                }
2178                              ],
2179                              "loc": {
2180                                "start": {
2181                                  "line": 40,
2182                                  "column": 108
2183                                },
2184                                "end": {
2185                                  "line": 40,
2186                                  "column": 125
2187                                }
2188                              }
2189                            }
2190                          ],
2191                          "loc": {
2192                            "start": {
2193                              "line": 40,
2194                              "column": 107
2195                            },
2196                            "end": {
2197                              "line": 40,
2198                              "column": 126
2199                            }
2200                          }
2201                        },
2202                        "kind": "init",
2203                        "loc": {
2204                          "start": {
2205                            "line": 40,
2206                            "column": 104
2207                          },
2208                          "end": {
2209                            "line": 40,
2210                            "column": 126
2211                          }
2212                        }
2213                      },
2214                      {
2215                        "type": "Property",
2216                        "method": false,
2217                        "shorthand": false,
2218                        "computed": false,
2219                        "key": {
2220                          "type": "Identifier",
2221                          "name": "j",
2222                          "loc": {
2223                            "start": {
2224                              "line": 40,
2225                              "column": 128
2226                            },
2227                            "end": {
2228                              "line": 40,
2229                              "column": 129
2230                            }
2231                          }
2232                        },
2233                        "value": {
2234                          "type": "StringLiteral",
2235                          "value": "B",
2236                          "loc": {
2237                            "start": {
2238                              "line": 40,
2239                              "column": 131
2240                            },
2241                            "end": {
2242                              "line": 40,
2243                              "column": 134
2244                            }
2245                          }
2246                        },
2247                        "kind": "init",
2248                        "loc": {
2249                          "start": {
2250                            "line": 40,
2251                            "column": 128
2252                          },
2253                          "end": {
2254                            "line": 40,
2255                            "column": 134
2256                          }
2257                        }
2258                      },
2259                      {
2260                        "type": "Property",
2261                        "method": false,
2262                        "shorthand": false,
2263                        "computed": false,
2264                        "key": {
2265                          "type": "Identifier",
2266                          "name": "k",
2267                          "loc": {
2268                            "start": {
2269                              "line": 40,
2270                              "column": 136
2271                            },
2272                            "end": {
2273                              "line": 40,
2274                              "column": 137
2275                            }
2276                          }
2277                        },
2278                        "value": {
2279                          "type": "ArrayExpression",
2280                          "elements": [
2281                            {
2282                              "type": "ArrayExpression",
2283                              "elements": [
2284                                {
2285                                  "type": "NewExpression",
2286                                  "callee": {
2287                                    "type": "Identifier",
2288                                    "name": "Array",
2289                                    "loc": {
2290                                      "start": {
2291                                        "line": 40,
2292                                        "column": 145
2293                                      },
2294                                      "end": {
2295                                        "line": 40,
2296                                        "column": 150
2297                                      }
2298                                    }
2299                                  },
2300                                  "typeParameters": {
2301                                    "type": "TSTypeParameterInstantiation",
2302                                    "params": [
2303                                      {
2304                                        "type": "TSTypeReference",
2305                                        "typeName": {
2306                                          "type": "Identifier",
2307                                          "name": "E1",
2308                                          "loc": {
2309                                            "start": {
2310                                              "line": 40,
2311                                              "column": 151
2312                                            },
2313                                            "end": {
2314                                              "line": 40,
2315                                              "column": 153
2316                                            }
2317                                          }
2318                                        },
2319                                        "loc": {
2320                                          "start": {
2321                                            "line": 40,
2322                                            "column": 151
2323                                          },
2324                                          "end": {
2325                                            "line": 40,
2326                                            "column": 153
2327                                          }
2328                                        }
2329                                      }
2330                                    ],
2331                                    "loc": {
2332                                      "start": {
2333                                        "line": 40,
2334                                        "column": 150
2335                                      },
2336                                      "end": {
2337                                        "line": 40,
2338                                        "column": 154
2339                                      }
2340                                    }
2341                                  },
2342                                  "arguments": [
2343                                    {
2344                                      "type": "NumberLiteral",
2345                                      "value": 3,
2346                                      "loc": {
2347                                        "start": {
2348                                          "line": 40,
2349                                          "column": 155
2350                                        },
2351                                        "end": {
2352                                          "line": 40,
2353                                          "column": 156
2354                                        }
2355                                      }
2356                                    }
2357                                  ],
2358                                  "loc": {
2359                                    "start": {
2360                                      "line": 40,
2361                                      "column": 141
2362                                    },
2363                                    "end": {
2364                                      "line": 40,
2365                                      "column": 157
2366                                    }
2367                                  }
2368                                }
2369                              ],
2370                              "loc": {
2371                                "start": {
2372                                  "line": 40,
2373                                  "column": 140
2374                                },
2375                                "end": {
2376                                  "line": 40,
2377                                  "column": 158
2378                                }
2379                              }
2380                            }
2381                          ],
2382                          "loc": {
2383                            "start": {
2384                              "line": 40,
2385                              "column": 139
2386                            },
2387                            "end": {
2388                              "line": 40,
2389                              "column": 159
2390                            }
2391                          }
2392                        },
2393                        "kind": "init",
2394                        "loc": {
2395                          "start": {
2396                            "line": 40,
2397                            "column": 136
2398                          },
2399                          "end": {
2400                            "line": 40,
2401                            "column": 159
2402                          }
2403                        }
2404                      }
2405                    ],
2406                    "loc": {
2407                      "start": {
2408                        "line": 40,
2409                        "column": 8
2410                      },
2411                      "end": {
2412                        "line": 40,
2413                        "column": 160
2414                      }
2415                    }
2416                  }
2417                ],
2418                "optional": false,
2419                "loc": {
2420                  "start": {
2421                    "line": 40,
2422                    "column": 3
2423                  },
2424                  "end": {
2425                    "line": 40,
2426                    "column": 161
2427                  }
2428                }
2429              },
2430              "name": "Anno",
2431              "isImported": false,
2432              "loc": {
2433                "start": {
2434                  "line": 40,
2435                  "column": 1
2436                },
2437                "end": {
2438                  "line": 40,
2439                  "column": 161
2440                }
2441              }
2442            }
2443          ],
2444          "loc": {
2445            "start": {
2446              "line": 41,
2447              "column": 1
2448            },
2449            "end": {
2450              "line": 44,
2451              "column": 2
2452            }
2453          }
2454        },
2455        "body": [
2456          {
2457            "type": "MethodDefinition",
2458            "key": {
2459              "type": "Identifier",
2460              "name": "foo",
2461              "loc": {
2462                "start": {
2463                  "line": 43,
2464                  "column": 5
2465                },
2466                "end": {
2467                  "line": 43,
2468                  "column": 8
2469                }
2470              }
2471            },
2472            "kind": "method",
2473            "static": false,
2474            "optional": false,
2475            "computed": false,
2476            "value": {
2477              "type": "FunctionExpression",
2478              "function": {
2479                "type": "ScriptFunction",
2480                "id": null,
2481                "generator": false,
2482                "async": false,
2483                "expression": false,
2484                "params": [],
2485                "body": {
2486                  "type": "BlockStatement",
2487                  "statements": [],
2488                  "loc": {
2489                    "start": {
2490                      "line": 43,
2491                      "column": 11
2492                    },
2493                    "end": {
2494                      "line": 43,
2495                      "column": 13
2496                    }
2497                  }
2498                },
2499                "loc": {
2500                  "start": {
2501                    "line": 43,
2502                    "column": 8
2503                  },
2504                  "end": {
2505                    "line": 43,
2506                    "column": 13
2507                  }
2508                }
2509              },
2510              "loc": {
2511                "start": {
2512                  "line": 43,
2513                  "column": 8
2514                },
2515                "end": {
2516                  "line": 43,
2517                  "column": 13
2518                }
2519              }
2520            },
2521            "overloads": [],
2522            "decorators": [],
2523            "annotations": [
2524              {
2525                "type": "Annotation",
2526                "expression": {
2527                  "type": "CallExpression",
2528                  "callee": {
2529                    "type": "Identifier",
2530                    "name": "Anno",
2531                    "loc": {
2532                      "start": {
2533                        "line": 42,
2534                        "column": 7
2535                      },
2536                      "end": {
2537                        "line": 42,
2538                        "column": 11
2539                      }
2540                    }
2541                  },
2542                  "arguments": [
2543                    {
2544                      "type": "ObjectExpression",
2545                      "properties": [
2546                        {
2547                          "type": "Property",
2548                          "method": false,
2549                          "shorthand": false,
2550                          "computed": false,
2551                          "key": {
2552                            "type": "Identifier",
2553                            "name": "a",
2554                            "loc": {
2555                              "start": {
2556                                "line": 42,
2557                                "column": 13
2558                              },
2559                              "end": {
2560                                "line": 42,
2561                                "column": 14
2562                              }
2563                            }
2564                          },
2565                          "value": {
2566                            "type": "NumberLiteral",
2567                            "value": 10,
2568                            "loc": {
2569                              "start": {
2570                                "line": 42,
2571                                "column": 16
2572                              },
2573                              "end": {
2574                                "line": 42,
2575                                "column": 18
2576                              }
2577                            }
2578                          },
2579                          "kind": "init",
2580                          "loc": {
2581                            "start": {
2582                              "line": 42,
2583                              "column": 13
2584                            },
2585                            "end": {
2586                              "line": 42,
2587                              "column": 18
2588                            }
2589                          }
2590                        },
2591                        {
2592                          "type": "Property",
2593                          "method": false,
2594                          "shorthand": false,
2595                          "computed": false,
2596                          "key": {
2597                            "type": "Identifier",
2598                            "name": "b",
2599                            "loc": {
2600                              "start": {
2601                                "line": 42,
2602                                "column": 20
2603                              },
2604                              "end": {
2605                                "line": 42,
2606                                "column": 21
2607                              }
2608                            }
2609                          },
2610                          "value": {
2611                            "type": "ArrayExpression",
2612                            "elements": [
2613                              {
2614                                "type": "NumberLiteral",
2615                                "value": 1,
2616                                "loc": {
2617                                  "start": {
2618                                    "line": 42,
2619                                    "column": 24
2620                                  },
2621                                  "end": {
2622                                    "line": 42,
2623                                    "column": 25
2624                                  }
2625                                }
2626                              },
2627                              {
2628                                "type": "NumberLiteral",
2629                                "value": 2,
2630                                "loc": {
2631                                  "start": {
2632                                    "line": 42,
2633                                    "column": 27
2634                                  },
2635                                  "end": {
2636                                    "line": 42,
2637                                    "column": 28
2638                                  }
2639                                }
2640                              },
2641                              {
2642                                "type": "NumberLiteral",
2643                                "value": 3,
2644                                "loc": {
2645                                  "start": {
2646                                    "line": 42,
2647                                    "column": 30
2648                                  },
2649                                  "end": {
2650                                    "line": 42,
2651                                    "column": 31
2652                                  }
2653                                }
2654                              }
2655                            ],
2656                            "loc": {
2657                              "start": {
2658                                "line": 42,
2659                                "column": 23
2660                              },
2661                              "end": {
2662                                "line": 42,
2663                                "column": 32
2664                              }
2665                            }
2666                          },
2667                          "kind": "init",
2668                          "loc": {
2669                            "start": {
2670                              "line": 42,
2671                              "column": 20
2672                            },
2673                            "end": {
2674                              "line": 42,
2675                              "column": 32
2676                            }
2677                          }
2678                        },
2679                        {
2680                          "type": "Property",
2681                          "method": false,
2682                          "shorthand": false,
2683                          "computed": false,
2684                          "key": {
2685                            "type": "Identifier",
2686                            "name": "c",
2687                            "loc": {
2688                              "start": {
2689                                "line": 42,
2690                                "column": 34
2691                              },
2692                              "end": {
2693                                "line": 42,
2694                                "column": 35
2695                              }
2696                            }
2697                          },
2698                          "value": {
2699                            "type": "StringLiteral",
2700                            "value": "cde",
2701                            "loc": {
2702                              "start": {
2703                                "line": 42,
2704                                "column": 37
2705                              },
2706                              "end": {
2707                                "line": 42,
2708                                "column": 42
2709                              }
2710                            }
2711                          },
2712                          "kind": "init",
2713                          "loc": {
2714                            "start": {
2715                              "line": 42,
2716                              "column": 34
2717                            },
2718                            "end": {
2719                              "line": 42,
2720                              "column": 42
2721                            }
2722                          }
2723                        },
2724                        {
2725                          "type": "Property",
2726                          "method": false,
2727                          "shorthand": false,
2728                          "computed": false,
2729                          "key": {
2730                            "type": "Identifier",
2731                            "name": "d",
2732                            "loc": {
2733                              "start": {
2734                                "line": 42,
2735                                "column": 44
2736                              },
2737                              "end": {
2738                                "line": 42,
2739                                "column": 45
2740                              }
2741                            }
2742                          },
2743                          "value": {
2744                            "type": "BooleanLiteral",
2745                            "value": true,
2746                            "loc": {
2747                              "start": {
2748                                "line": 42,
2749                                "column": 47
2750                              },
2751                              "end": {
2752                                "line": 42,
2753                                "column": 51
2754                              }
2755                            }
2756                          },
2757                          "kind": "init",
2758                          "loc": {
2759                            "start": {
2760                              "line": 42,
2761                              "column": 44
2762                            },
2763                            "end": {
2764                              "line": 42,
2765                              "column": 51
2766                            }
2767                          }
2768                        },
2769                        {
2770                          "type": "Property",
2771                          "method": false,
2772                          "shorthand": false,
2773                          "computed": false,
2774                          "key": {
2775                            "type": "Identifier",
2776                            "name": "e",
2777                            "loc": {
2778                              "start": {
2779                                "line": 42,
2780                                "column": 53
2781                              },
2782                              "end": {
2783                                "line": 42,
2784                                "column": 54
2785                              }
2786                            }
2787                          },
2788                          "value": {
2789                            "type": "ArrayExpression",
2790                            "elements": [
2791                              {
2792                                "type": "NumberLiteral",
2793                                "value": 1,
2794                                "loc": {
2795                                  "start": {
2796                                    "line": 42,
2797                                    "column": 57
2798                                  },
2799                                  "end": {
2800                                    "line": 42,
2801                                    "column": 58
2802                                  }
2803                                }
2804                              },
2805                              {
2806                                "type": "NumberLiteral",
2807                                "value": 2,
2808                                "loc": {
2809                                  "start": {
2810                                    "line": 42,
2811                                    "column": 60
2812                                  },
2813                                  "end": {
2814                                    "line": 42,
2815                                    "column": 61
2816                                  }
2817                                }
2818                              },
2819                              {
2820                                "type": "NumberLiteral",
2821                                "value": 3,
2822                                "loc": {
2823                                  "start": {
2824                                    "line": 42,
2825                                    "column": 63
2826                                  },
2827                                  "end": {
2828                                    "line": 42,
2829                                    "column": 64
2830                                  }
2831                                }
2832                              }
2833                            ],
2834                            "loc": {
2835                              "start": {
2836                                "line": 42,
2837                                "column": 56
2838                              },
2839                              "end": {
2840                                "line": 42,
2841                                "column": 65
2842                              }
2843                            }
2844                          },
2845                          "kind": "init",
2846                          "loc": {
2847                            "start": {
2848                              "line": 42,
2849                              "column": 53
2850                            },
2851                            "end": {
2852                              "line": 42,
2853                              "column": 65
2854                            }
2855                          }
2856                        },
2857                        {
2858                          "type": "Property",
2859                          "method": false,
2860                          "shorthand": false,
2861                          "computed": false,
2862                          "key": {
2863                            "type": "Identifier",
2864                            "name": "f",
2865                            "loc": {
2866                              "start": {
2867                                "line": 42,
2868                                "column": 67
2869                              },
2870                              "end": {
2871                                "line": 42,
2872                                "column": 68
2873                              }
2874                            }
2875                          },
2876                          "value": {
2877                            "type": "ArrayExpression",
2878                            "elements": [
2879                              {
2880                                "type": "NumberLiteral",
2881                                "value": 1,
2882                                "loc": {
2883                                  "start": {
2884                                    "line": 42,
2885                                    "column": 71
2886                                  },
2887                                  "end": {
2888                                    "line": 42,
2889                                    "column": 72
2890                                  }
2891                                }
2892                              }
2893                            ],
2894                            "loc": {
2895                              "start": {
2896                                "line": 42,
2897                                "column": 70
2898                              },
2899                              "end": {
2900                                "line": 42,
2901                                "column": 73
2902                              }
2903                            }
2904                          },
2905                          "kind": "init",
2906                          "loc": {
2907                            "start": {
2908                              "line": 42,
2909                              "column": 67
2910                            },
2911                            "end": {
2912                              "line": 42,
2913                              "column": 73
2914                            }
2915                          }
2916                        },
2917                        {
2918                          "type": "Property",
2919                          "method": false,
2920                          "shorthand": false,
2921                          "computed": false,
2922                          "key": {
2923                            "type": "Identifier",
2924                            "name": "g",
2925                            "loc": {
2926                              "start": {
2927                                "line": 42,
2928                                "column": 75
2929                              },
2930                              "end": {
2931                                "line": 42,
2932                                "column": 76
2933                              }
2934                            }
2935                          },
2936                          "value": {
2937                            "type": "ArrayExpression",
2938                            "elements": [
2939                              {
2940                                "type": "ArrayExpression",
2941                                "elements": [
2942                                  {
2943                                    "type": "ArrayExpression",
2944                                    "elements": [
2945                                      {
2946                                        "type": "NumberLiteral",
2947                                        "value": 0,
2948                                        "loc": {
2949                                          "start": {
2950                                            "line": 42,
2951                                            "column": 81
2952                                          },
2953                                          "end": {
2954                                            "line": 42,
2955                                            "column": 82
2956                                          }
2957                                        }
2958                                      }
2959                                    ],
2960                                    "loc": {
2961                                      "start": {
2962                                        "line": 42,
2963                                        "column": 80
2964                                      },
2965                                      "end": {
2966                                        "line": 42,
2967                                        "column": 83
2968                                      }
2969                                    }
2970                                  },
2971                                  {
2972                                    "type": "ArrayExpression",
2973                                    "elements": [
2974                                      {
2975                                        "type": "NumberLiteral",
2976                                        "value": 1,
2977                                        "loc": {
2978                                          "start": {
2979                                            "line": 42,
2980                                            "column": 86
2981                                          },
2982                                          "end": {
2983                                            "line": 42,
2984                                            "column": 87
2985                                          }
2986                                        }
2987                                      }
2988                                    ],
2989                                    "loc": {
2990                                      "start": {
2991                                        "line": 42,
2992                                        "column": 85
2993                                      },
2994                                      "end": {
2995                                        "line": 42,
2996                                        "column": 88
2997                                      }
2998                                    }
2999                                  }
3000                                ],
3001                                "loc": {
3002                                  "start": {
3003                                    "line": 42,
3004                                    "column": 79
3005                                  },
3006                                  "end": {
3007                                    "line": 42,
3008                                    "column": 89
3009                                  }
3010                                }
3011                              }
3012                            ],
3013                            "loc": {
3014                              "start": {
3015                                "line": 42,
3016                                "column": 78
3017                              },
3018                              "end": {
3019                                "line": 42,
3020                                "column": 90
3021                              }
3022                            }
3023                          },
3024                          "kind": "init",
3025                          "loc": {
3026                            "start": {
3027                              "line": 42,
3028                              "column": 75
3029                            },
3030                            "end": {
3031                              "line": 42,
3032                              "column": 90
3033                            }
3034                          }
3035                        },
3036                        {
3037                          "type": "Property",
3038                          "method": false,
3039                          "shorthand": false,
3040                          "computed": false,
3041                          "key": {
3042                            "type": "Identifier",
3043                            "name": "h",
3044                            "loc": {
3045                              "start": {
3046                                "line": 42,
3047                                "column": 92
3048                              },
3049                              "end": {
3050                                "line": 42,
3051                                "column": 93
3052                              }
3053                            }
3054                          },
3055                          "value": {
3056                            "type": "NumberLiteral",
3057                            "value": 10,
3058                            "loc": {
3059                              "start": {
3060                                "line": 42,
3061                                "column": 95
3062                              },
3063                              "end": {
3064                                "line": 42,
3065                                "column": 97
3066                              }
3067                            }
3068                          },
3069                          "kind": "init",
3070                          "loc": {
3071                            "start": {
3072                              "line": 42,
3073                              "column": 92
3074                            },
3075                            "end": {
3076                              "line": 42,
3077                              "column": 97
3078                            }
3079                          }
3080                        },
3081                        {
3082                          "type": "Property",
3083                          "method": false,
3084                          "shorthand": false,
3085                          "computed": false,
3086                          "key": {
3087                            "type": "Identifier",
3088                            "name": "i",
3089                            "loc": {
3090                              "start": {
3091                                "line": 42,
3092                                "column": 99
3093                              },
3094                              "end": {
3095                                "line": 42,
3096                                "column": 100
3097                              }
3098                            }
3099                          },
3100                          "value": {
3101                            "type": "ArrayExpression",
3102                            "elements": [
3103                              {
3104                                "type": "ArrayExpression",
3105                                "elements": [
3106                                  {
3107                                    "type": "ArrayExpression",
3108                                    "elements": [
3109                                      {
3110                                        "type": "NumberLiteral",
3111                                        "value": 10,
3112                                        "loc": {
3113                                          "start": {
3114                                            "line": 42,
3115                                            "column": 105
3116                                          },
3117                                          "end": {
3118                                            "line": 42,
3119                                            "column": 107
3120                                          }
3121                                        }
3122                                      }
3123                                    ],
3124                                    "loc": {
3125                                      "start": {
3126                                        "line": 42,
3127                                        "column": 104
3128                                      },
3129                                      "end": {
3130                                        "line": 42,
3131                                        "column": 108
3132                                      }
3133                                    }
3134                                  },
3135                                  {
3136                                    "type": "ArrayExpression",
3137                                    "elements": [
3138                                      {
3139                                        "type": "NumberLiteral",
3140                                        "value": 20,
3141                                        "loc": {
3142                                          "start": {
3143                                            "line": 42,
3144                                            "column": 111
3145                                          },
3146                                          "end": {
3147                                            "line": 42,
3148                                            "column": 113
3149                                          }
3150                                        }
3151                                      }
3152                                    ],
3153                                    "loc": {
3154                                      "start": {
3155                                        "line": 42,
3156                                        "column": 110
3157                                      },
3158                                      "end": {
3159                                        "line": 42,
3160                                        "column": 114
3161                                      }
3162                                    }
3163                                  }
3164                                ],
3165                                "loc": {
3166                                  "start": {
3167                                    "line": 42,
3168                                    "column": 103
3169                                  },
3170                                  "end": {
3171                                    "line": 42,
3172                                    "column": 115
3173                                  }
3174                                }
3175                              }
3176                            ],
3177                            "loc": {
3178                              "start": {
3179                                "line": 42,
3180                                "column": 102
3181                              },
3182                              "end": {
3183                                "line": 42,
3184                                "column": 116
3185                              }
3186                            }
3187                          },
3188                          "kind": "init",
3189                          "loc": {
3190                            "start": {
3191                              "line": 42,
3192                              "column": 99
3193                            },
3194                            "end": {
3195                              "line": 42,
3196                              "column": 116
3197                            }
3198                          }
3199                        },
3200                        {
3201                          "type": "Property",
3202                          "method": false,
3203                          "shorthand": false,
3204                          "computed": false,
3205                          "key": {
3206                            "type": "Identifier",
3207                            "name": "j",
3208                            "loc": {
3209                              "start": {
3210                                "line": 42,
3211                                "column": 118
3212                              },
3213                              "end": {
3214                                "line": 42,
3215                                "column": 119
3216                              }
3217                            }
3218                          },
3219                          "value": {
3220                            "type": "StringLiteral",
3221                            "value": "B",
3222                            "loc": {
3223                              "start": {
3224                                "line": 42,
3225                                "column": 121
3226                              },
3227                              "end": {
3228                                "line": 42,
3229                                "column": 124
3230                              }
3231                            }
3232                          },
3233                          "kind": "init",
3234                          "loc": {
3235                            "start": {
3236                              "line": 42,
3237                              "column": 118
3238                            },
3239                            "end": {
3240                              "line": 42,
3241                              "column": 124
3242                            }
3243                          }
3244                        },
3245                        {
3246                          "type": "Property",
3247                          "method": false,
3248                          "shorthand": false,
3249                          "computed": false,
3250                          "key": {
3251                            "type": "Identifier",
3252                            "name": "k",
3253                            "loc": {
3254                              "start": {
3255                                "line": 42,
3256                                "column": 126
3257                              },
3258                              "end": {
3259                                "line": 42,
3260                                "column": 127
3261                              }
3262                            }
3263                          },
3264                          "value": {
3265                            "type": "ArrayExpression",
3266                            "elements": [
3267                              {
3268                                "type": "ArrayExpression",
3269                                "elements": [
3270                                  {
3271                                    "type": "ArrayExpression",
3272                                    "elements": [
3273                                      {
3274                                        "type": "StringLiteral",
3275                                        "value": "A",
3276                                        "loc": {
3277                                          "start": {
3278                                            "line": 42,
3279                                            "column": 132
3280                                          },
3281                                          "end": {
3282                                            "line": 42,
3283                                            "column": 135
3284                                          }
3285                                        }
3286                                      }
3287                                    ],
3288                                    "loc": {
3289                                      "start": {
3290                                        "line": 42,
3291                                        "column": 131
3292                                      },
3293                                      "end": {
3294                                        "line": 42,
3295                                        "column": 136
3296                                      }
3297                                    }
3298                                  },
3299                                  {
3300                                    "type": "ArrayExpression",
3301                                    "elements": [
3302                                      {
3303                                        "type": "StringLiteral",
3304                                        "value": "B",
3305                                        "loc": {
3306                                          "start": {
3307                                            "line": 42,
3308                                            "column": 139
3309                                          },
3310                                          "end": {
3311                                            "line": 42,
3312                                            "column": 142
3313                                          }
3314                                        }
3315                                      }
3316                                    ],
3317                                    "loc": {
3318                                      "start": {
3319                                        "line": 42,
3320                                        "column": 138
3321                                      },
3322                                      "end": {
3323                                        "line": 42,
3324                                        "column": 143
3325                                      }
3326                                    }
3327                                  }
3328                                ],
3329                                "loc": {
3330                                  "start": {
3331                                    "line": 42,
3332                                    "column": 130
3333                                  },
3334                                  "end": {
3335                                    "line": 42,
3336                                    "column": 144
3337                                  }
3338                                }
3339                              }
3340                            ],
3341                            "loc": {
3342                              "start": {
3343                                "line": 42,
3344                                "column": 129
3345                              },
3346                              "end": {
3347                                "line": 42,
3348                                "column": 145
3349                              }
3350                            }
3351                          },
3352                          "kind": "init",
3353                          "loc": {
3354                            "start": {
3355                              "line": 42,
3356                              "column": 126
3357                            },
3358                            "end": {
3359                              "line": 42,
3360                              "column": 145
3361                            }
3362                          }
3363                        }
3364                      ],
3365                      "loc": {
3366                        "start": {
3367                          "line": 42,
3368                          "column": 12
3369                        },
3370                        "end": {
3371                          "line": 42,
3372                          "column": 146
3373                        }
3374                      }
3375                    }
3376                  ],
3377                  "optional": false,
3378                  "loc": {
3379                    "start": {
3380                      "line": 42,
3381                      "column": 7
3382                    },
3383                    "end": {
3384                      "line": 42,
3385                      "column": 147
3386                    }
3387                  }
3388                },
3389                "name": "Anno",
3390                "isImported": false,
3391                "loc": {
3392                  "start": {
3393                    "line": 42,
3394                    "column": 5
3395                  },
3396                  "end": {
3397                    "line": 42,
3398                    "column": 147
3399                  }
3400                }
3401              }
3402            ],
3403            "loc": {
3404              "start": {
3405                "line": 42,
3406                "column": 5
3407              },
3408              "end": {
3409                "line": 43,
3410                "column": 13
3411              }
3412            }
3413          }
3414        ],
3415        "indexSignatures": [],
3416        "loc": {
3417          "start": {
3418            "line": 41,
3419            "column": 9
3420          },
3421          "end": {
3422            "line": 44,
3423            "column": 2
3424          }
3425        }
3426      },
3427      "decorators": [],
3428      "isAnnotationDeclaration": false,
3429      "loc": {
3430        "start": {
3431          "line": 41,
3432          "column": 1
3433        },
3434        "end": {
3435          "line": 44,
3436          "column": 2
3437        }
3438      }
3439    }
3440  ],
3441  "loc": {
3442    "start": {
3443      "line": 1,
3444      "column": 1
3445    },
3446    "end": {
3447      "line": 45,
3448      "column": 1
3449    }
3450  }
3451}
3452