1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ImportDeclaration",
6      "source": {
7        "type": "StringLiteral",
8        "value": "./a",
9        "loc": {
10          "start": {
11            "line": 16,
12            "column": 30
13          },
14          "end": {
15            "line": 16,
16            "column": 35
17          }
18        }
19      },
20      "specifiers": [
21        {
22          "type": "ImportSpecifier",
23          "local": {
24            "type": "Identifier",
25            "name": "Anno1",
26            "loc": {
27              "start": {
28                "line": 16,
29                "column": 10
30              },
31              "end": {
32                "line": 16,
33                "column": 15
34              }
35            }
36          },
37          "imported": {
38            "type": "Identifier",
39            "name": "Anno1",
40            "loc": {
41              "start": {
42                "line": 16,
43                "column": 10
44              },
45              "end": {
46                "line": 16,
47                "column": 15
48              }
49            }
50          },
51          "isType": false,
52          "loc": {
53            "start": {
54              "line": 16,
55              "column": 10
56            },
57            "end": {
58              "line": 16,
59              "column": 15
60            }
61          }
62        },
63        {
64          "type": "ImportSpecifier",
65          "local": {
66            "type": "Identifier",
67            "name": "Anno2",
68            "loc": {
69              "start": {
70                "line": 16,
71                "column": 17
72              },
73              "end": {
74                "line": 16,
75                "column": 22
76              }
77            }
78          },
79          "imported": {
80            "type": "Identifier",
81            "name": "Anno2",
82            "loc": {
83              "start": {
84                "line": 16,
85                "column": 17
86              },
87              "end": {
88                "line": 16,
89                "column": 22
90              }
91            }
92          },
93          "isType": false,
94          "loc": {
95            "start": {
96              "line": 16,
97              "column": 17
98            },
99            "end": {
100              "line": 16,
101              "column": 22
102            }
103          }
104        }
105      ],
106      "loc": {
107        "start": {
108          "line": 16,
109          "column": 1
110        },
111        "end": {
112          "line": 16,
113          "column": 35
114        }
115      }
116    },
117    {
118      "type": "ClassDeclaration",
119      "definition": {
120        "id": {
121          "type": "Identifier",
122          "name": "A",
123          "loc": {
124            "start": {
125              "line": 19,
126              "column": 7
127            },
128            "end": {
129              "line": 19,
130              "column": 8
131            }
132          }
133        },
134        "superClass": null,
135        "implements": [],
136        "constructor": {
137          "type": "MethodDefinition",
138          "key": {
139            "type": "Identifier",
140            "name": "constructor",
141            "loc": {
142              "start": {
143                "line": 1,
144                "column": 1
145              },
146              "end": {
147                "line": 1,
148                "column": 1
149              }
150            }
151          },
152          "kind": "constructor",
153          "static": false,
154          "optional": false,
155          "computed": false,
156          "value": {
157            "type": "FunctionExpression",
158            "function": {
159              "type": "ScriptFunction",
160              "id": null,
161              "generator": false,
162              "async": false,
163              "expression": false,
164              "params": [],
165              "body": {
166                "type": "BlockStatement",
167                "statements": [],
168                "loc": {
169                  "start": {
170                    "line": 1,
171                    "column": 1
172                  },
173                  "end": {
174                    "line": 1,
175                    "column": 1
176                  }
177                }
178              },
179              "loc": {
180                "start": {
181                  "line": 1,
182                  "column": 1
183                },
184                "end": {
185                  "line": 1,
186                  "column": 1
187                }
188              }
189            },
190            "loc": {
191              "start": {
192                "line": 1,
193                "column": 1
194              },
195              "end": {
196                "line": 1,
197                "column": 1
198              }
199            }
200          },
201          "overloads": [],
202          "decorators": [],
203          "annotations": [
204            {
205              "type": "Annotation",
206              "expression": {
207                "type": "Identifier",
208                "name": "Anno1",
209                "loc": {
210                  "start": {
211                    "line": 18,
212                    "column": 3
213                  },
214                  "end": {
215                    "line": 18,
216                    "column": 8
217                  }
218                }
219              },
220              "name": "Anno1",
221              "isImported": true,
222              "loc": {
223                "start": {
224                  "line": 18,
225                  "column": 1
226                },
227                "end": {
228                  "line": 18,
229                  "column": 8
230                }
231              }
232            }
233          ],
234          "loc": {
235            "start": {
236              "line": 19,
237              "column": 1
238            },
239            "end": {
240              "line": 19,
241              "column": 11
242            }
243          }
244        },
245        "body": [],
246        "indexSignatures": [],
247        "loc": {
248          "start": {
249            "line": 19,
250            "column": 9
251          },
252          "end": {
253            "line": 19,
254            "column": 11
255          }
256        }
257      },
258      "decorators": [],
259      "isAnnotationDeclaration": false,
260      "loc": {
261        "start": {
262          "line": 19,
263          "column": 1
264        },
265        "end": {
266          "line": 19,
267          "column": 11
268        }
269      }
270    },
271    {
272      "type": "ClassDeclaration",
273      "definition": {
274        "id": {
275          "type": "Identifier",
276          "name": "B",
277          "loc": {
278            "start": {
279              "line": 22,
280              "column": 7
281            },
282            "end": {
283              "line": 22,
284              "column": 8
285            }
286          }
287        },
288        "superClass": null,
289        "implements": [],
290        "constructor": {
291          "type": "MethodDefinition",
292          "key": {
293            "type": "Identifier",
294            "name": "constructor",
295            "loc": {
296              "start": {
297                "line": 1,
298                "column": 1
299              },
300              "end": {
301                "line": 1,
302                "column": 1
303              }
304            }
305          },
306          "kind": "constructor",
307          "static": false,
308          "optional": false,
309          "computed": false,
310          "value": {
311            "type": "FunctionExpression",
312            "function": {
313              "type": "ScriptFunction",
314              "id": null,
315              "generator": false,
316              "async": false,
317              "expression": false,
318              "params": [],
319              "body": {
320                "type": "BlockStatement",
321                "statements": [],
322                "loc": {
323                  "start": {
324                    "line": 1,
325                    "column": 1
326                  },
327                  "end": {
328                    "line": 1,
329                    "column": 1
330                  }
331                }
332              },
333              "loc": {
334                "start": {
335                  "line": 1,
336                  "column": 1
337                },
338                "end": {
339                  "line": 1,
340                  "column": 1
341                }
342              }
343            },
344            "loc": {
345              "start": {
346                "line": 1,
347                "column": 1
348              },
349              "end": {
350                "line": 1,
351                "column": 1
352              }
353            }
354          },
355          "overloads": [],
356          "decorators": [],
357          "annotations": [
358            {
359              "type": "Annotation",
360              "expression": {
361                "type": "CallExpression",
362                "callee": {
363                  "type": "Identifier",
364                  "name": "Anno1",
365                  "loc": {
366                    "start": {
367                      "line": 21,
368                      "column": 3
369                    },
370                    "end": {
371                      "line": 21,
372                      "column": 8
373                    }
374                  }
375                },
376                "arguments": [],
377                "optional": false,
378                "loc": {
379                  "start": {
380                    "line": 21,
381                    "column": 3
382                  },
383                  "end": {
384                    "line": 21,
385                    "column": 10
386                  }
387                }
388              },
389              "name": "Anno1",
390              "isImported": true,
391              "loc": {
392                "start": {
393                  "line": 21,
394                  "column": 1
395                },
396                "end": {
397                  "line": 21,
398                  "column": 10
399                }
400              }
401            }
402          ],
403          "loc": {
404            "start": {
405              "line": 22,
406              "column": 1
407            },
408            "end": {
409              "line": 22,
410              "column": 11
411            }
412          }
413        },
414        "body": [],
415        "indexSignatures": [],
416        "loc": {
417          "start": {
418            "line": 22,
419            "column": 9
420          },
421          "end": {
422            "line": 22,
423            "column": 11
424          }
425        }
426      },
427      "decorators": [],
428      "isAnnotationDeclaration": false,
429      "loc": {
430        "start": {
431          "line": 22,
432          "column": 1
433        },
434        "end": {
435          "line": 22,
436          "column": 11
437        }
438      }
439    },
440    {
441      "type": "ClassDeclaration",
442      "definition": {
443        "id": {
444          "type": "Identifier",
445          "name": "C",
446          "loc": {
447            "start": {
448              "line": 25,
449              "column": 7
450            },
451            "end": {
452              "line": 25,
453              "column": 8
454            }
455          }
456        },
457        "superClass": null,
458        "implements": [],
459        "constructor": {
460          "type": "MethodDefinition",
461          "key": {
462            "type": "Identifier",
463            "name": "constructor",
464            "loc": {
465              "start": {
466                "line": 1,
467                "column": 1
468              },
469              "end": {
470                "line": 1,
471                "column": 1
472              }
473            }
474          },
475          "kind": "constructor",
476          "static": false,
477          "optional": false,
478          "computed": false,
479          "value": {
480            "type": "FunctionExpression",
481            "function": {
482              "type": "ScriptFunction",
483              "id": null,
484              "generator": false,
485              "async": false,
486              "expression": false,
487              "params": [],
488              "body": {
489                "type": "BlockStatement",
490                "statements": [],
491                "loc": {
492                  "start": {
493                    "line": 1,
494                    "column": 1
495                  },
496                  "end": {
497                    "line": 1,
498                    "column": 1
499                  }
500                }
501              },
502              "loc": {
503                "start": {
504                  "line": 1,
505                  "column": 1
506                },
507                "end": {
508                  "line": 1,
509                  "column": 1
510                }
511              }
512            },
513            "loc": {
514              "start": {
515                "line": 1,
516                "column": 1
517              },
518              "end": {
519                "line": 1,
520                "column": 1
521              }
522            }
523          },
524          "overloads": [],
525          "decorators": [],
526          "annotations": [
527            {
528              "type": "Annotation",
529              "expression": {
530                "type": "CallExpression",
531                "callee": {
532                  "type": "Identifier",
533                  "name": "Anno1",
534                  "loc": {
535                    "start": {
536                      "line": 24,
537                      "column": 3
538                    },
539                    "end": {
540                      "line": 24,
541                      "column": 8
542                    }
543                  }
544                },
545                "arguments": [
546                  {
547                    "type": "ObjectExpression",
548                    "properties": [],
549                    "loc": {
550                      "start": {
551                        "line": 24,
552                        "column": 9
553                      },
554                      "end": {
555                        "line": 24,
556                        "column": 11
557                      }
558                    }
559                  }
560                ],
561                "optional": false,
562                "loc": {
563                  "start": {
564                    "line": 24,
565                    "column": 3
566                  },
567                  "end": {
568                    "line": 24,
569                    "column": 12
570                  }
571                }
572              },
573              "name": "Anno1",
574              "isImported": true,
575              "loc": {
576                "start": {
577                  "line": 24,
578                  "column": 1
579                },
580                "end": {
581                  "line": 24,
582                  "column": 12
583                }
584              }
585            }
586          ],
587          "loc": {
588            "start": {
589              "line": 25,
590              "column": 1
591            },
592            "end": {
593              "line": 25,
594              "column": 11
595            }
596          }
597        },
598        "body": [],
599        "indexSignatures": [],
600        "loc": {
601          "start": {
602            "line": 25,
603            "column": 9
604          },
605          "end": {
606            "line": 25,
607            "column": 11
608          }
609        }
610      },
611      "decorators": [],
612      "isAnnotationDeclaration": false,
613      "loc": {
614        "start": {
615          "line": 25,
616          "column": 1
617        },
618        "end": {
619          "line": 25,
620          "column": 11
621        }
622      }
623    },
624    {
625      "type": "ClassDeclaration",
626      "definition": {
627        "id": {
628          "type": "Identifier",
629          "name": "D",
630          "loc": {
631            "start": {
632              "line": 28,
633              "column": 7
634            },
635            "end": {
636              "line": 28,
637              "column": 8
638            }
639          }
640        },
641        "superClass": null,
642        "implements": [],
643        "constructor": {
644          "type": "MethodDefinition",
645          "key": {
646            "type": "Identifier",
647            "name": "constructor",
648            "loc": {
649              "start": {
650                "line": 1,
651                "column": 1
652              },
653              "end": {
654                "line": 1,
655                "column": 1
656              }
657            }
658          },
659          "kind": "constructor",
660          "static": false,
661          "optional": false,
662          "computed": false,
663          "value": {
664            "type": "FunctionExpression",
665            "function": {
666              "type": "ScriptFunction",
667              "id": null,
668              "generator": false,
669              "async": false,
670              "expression": false,
671              "params": [],
672              "body": {
673                "type": "BlockStatement",
674                "statements": [],
675                "loc": {
676                  "start": {
677                    "line": 1,
678                    "column": 1
679                  },
680                  "end": {
681                    "line": 1,
682                    "column": 1
683                  }
684                }
685              },
686              "loc": {
687                "start": {
688                  "line": 1,
689                  "column": 1
690                },
691                "end": {
692                  "line": 1,
693                  "column": 1
694                }
695              }
696            },
697            "loc": {
698              "start": {
699                "line": 1,
700                "column": 1
701              },
702              "end": {
703                "line": 1,
704                "column": 1
705              }
706            }
707          },
708          "overloads": [],
709          "decorators": [],
710          "annotations": [
711            {
712              "type": "Annotation",
713              "expression": {
714                "type": "CallExpression",
715                "callee": {
716                  "type": "Identifier",
717                  "name": "Anno2",
718                  "loc": {
719                    "start": {
720                      "line": 27,
721                      "column": 3
722                    },
723                    "end": {
724                      "line": 27,
725                      "column": 8
726                    }
727                  }
728                },
729                "arguments": [
730                  {
731                    "type": "ObjectExpression",
732                    "properties": [
733                      {
734                        "type": "Property",
735                        "method": false,
736                        "shorthand": false,
737                        "computed": false,
738                        "key": {
739                          "type": "Identifier",
740                          "name": "a",
741                          "loc": {
742                            "start": {
743                              "line": 27,
744                              "column": 10
745                            },
746                            "end": {
747                              "line": 27,
748                              "column": 11
749                            }
750                          }
751                        },
752                        "value": {
753                          "type": "NumberLiteral",
754                          "value": 1,
755                          "loc": {
756                            "start": {
757                              "line": 27,
758                              "column": 13
759                            },
760                            "end": {
761                              "line": 27,
762                              "column": 14
763                            }
764                          }
765                        },
766                        "kind": "init",
767                        "loc": {
768                          "start": {
769                            "line": 27,
770                            "column": 10
771                          },
772                          "end": {
773                            "line": 27,
774                            "column": 14
775                          }
776                        }
777                      },
778                      {
779                        "type": "Property",
780                        "method": false,
781                        "shorthand": false,
782                        "computed": false,
783                        "key": {
784                          "type": "Identifier",
785                          "name": "b",
786                          "loc": {
787                            "start": {
788                              "line": 27,
789                              "column": 16
790                            },
791                            "end": {
792                              "line": 27,
793                              "column": 17
794                            }
795                          }
796                        },
797                        "value": {
798                          "type": "StringLiteral",
799                          "value": "string",
800                          "loc": {
801                            "start": {
802                              "line": 27,
803                              "column": 19
804                            },
805                            "end": {
806                              "line": 27,
807                              "column": 27
808                            }
809                          }
810                        },
811                        "kind": "init",
812                        "loc": {
813                          "start": {
814                            "line": 27,
815                            "column": 16
816                          },
817                          "end": {
818                            "line": 27,
819                            "column": 27
820                          }
821                        }
822                      }
823                    ],
824                    "loc": {
825                      "start": {
826                        "line": 27,
827                        "column": 9
828                      },
829                      "end": {
830                        "line": 27,
831                        "column": 28
832                      }
833                    }
834                  }
835                ],
836                "optional": false,
837                "loc": {
838                  "start": {
839                    "line": 27,
840                    "column": 3
841                  },
842                  "end": {
843                    "line": 27,
844                    "column": 29
845                  }
846                }
847              },
848              "name": "Anno2",
849              "isImported": true,
850              "loc": {
851                "start": {
852                  "line": 27,
853                  "column": 1
854                },
855                "end": {
856                  "line": 27,
857                  "column": 29
858                }
859              }
860            }
861          ],
862          "loc": {
863            "start": {
864              "line": 28,
865              "column": 1
866            },
867            "end": {
868              "line": 28,
869              "column": 11
870            }
871          }
872        },
873        "body": [],
874        "indexSignatures": [],
875        "loc": {
876          "start": {
877            "line": 28,
878            "column": 9
879          },
880          "end": {
881            "line": 28,
882            "column": 11
883          }
884        }
885      },
886      "decorators": [],
887      "isAnnotationDeclaration": false,
888      "loc": {
889        "start": {
890          "line": 28,
891          "column": 1
892        },
893        "end": {
894          "line": 28,
895          "column": 11
896        }
897      }
898    }
899  ],
900  "loc": {
901    "start": {
902      "line": 1,
903      "column": 1
904    },
905    "end": {
906      "line": 28,
907      "column": 11
908    }
909  }
910}
911