1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ExportNamedDeclaration",
6      "declaration": {
7        "type": "ClassDeclaration",
8        "definition": {
9          "id": {
10            "type": "Identifier",
11            "name": "Anno1",
12            "loc": {
13              "start": {
14                "line": 16,
15                "column": 19
16              },
17              "end": {
18                "line": 16,
19                "column": 24
20              }
21            }
22          },
23          "superClass": null,
24          "implements": [],
25          "constructor": {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "constructor",
30              "loc": {
31                "start": {
32                  "line": 1,
33                  "column": 1
34                },
35                "end": {
36                  "line": 1,
37                  "column": 1
38                }
39              }
40            },
41            "kind": "constructor",
42            "static": false,
43            "optional": false,
44            "computed": false,
45            "value": {
46              "type": "FunctionExpression",
47              "function": {
48                "type": "ScriptFunction",
49                "id": null,
50                "generator": false,
51                "async": false,
52                "expression": false,
53                "params": [],
54                "body": {
55                  "type": "Program",
56                  "statements": [],
57                  "loc": {
58                    "start": {
59                      "line": 1,
60                      "column": 1
61                    },
62                    "end": {
63                      "line": 1,
64                      "column": 1
65                    }
66                  }
67                },
68                "loc": {
69                  "start": {
70                    "line": 1,
71                    "column": 1
72                  },
73                  "end": {
74                    "line": 1,
75                    "column": 1
76                  }
77                }
78              },
79              "loc": {
80                "start": {
81                  "line": 1,
82                  "column": 1
83                },
84                "end": {
85                  "line": 1,
86                  "column": 1
87                }
88              }
89            },
90            "overloads": [],
91            "decorators": [],
92            "annotations": [],
93            "loc": {
94              "start": {
95                "line": 16,
96                "column": 9
97              },
98              "end": {
99                "line": 16,
100                "column": 27
101              }
102            }
103          },
104          "body": [],
105          "indexSignatures": [],
106          "loc": {
107            "start": {
108              "line": 16,
109              "column": 25
110            },
111            "end": {
112              "line": 16,
113              "column": 27
114            }
115          }
116        },
117        "decorators": [],
118        "isAnnotationDeclaration": true,
119        "loc": {
120          "start": {
121            "line": 16,
122            "column": 9
123          },
124          "end": {
125            "line": 16,
126            "column": 27
127          }
128        }
129      },
130      "source": null,
131      "specifiers": [],
132      "loc": {
133        "start": {
134          "line": 16,
135          "column": 1
136        },
137        "end": {
138          "line": 16,
139          "column": 27
140        }
141      }
142    },
143    {
144      "type": "ExportNamedDeclaration",
145      "declaration": {
146        "type": "ClassDeclaration",
147        "definition": {
148          "id": {
149            "type": "Identifier",
150            "name": "Anno2",
151            "loc": {
152              "start": {
153                "line": 18,
154                "column": 19
155              },
156              "end": {
157                "line": 18,
158                "column": 24
159              }
160            }
161          },
162          "superClass": null,
163          "implements": [],
164          "constructor": {
165            "type": "MethodDefinition",
166            "key": {
167              "type": "Identifier",
168              "name": "constructor",
169              "loc": {
170                "start": {
171                  "line": 1,
172                  "column": 1
173                },
174                "end": {
175                  "line": 1,
176                  "column": 1
177                }
178              }
179            },
180            "kind": "constructor",
181            "static": false,
182            "optional": false,
183            "computed": false,
184            "value": {
185              "type": "FunctionExpression",
186              "function": {
187                "type": "ScriptFunction",
188                "id": null,
189                "generator": false,
190                "async": false,
191                "expression": false,
192                "params": [],
193                "body": {
194                  "type": "Program",
195                  "statements": [],
196                  "loc": {
197                    "start": {
198                      "line": 1,
199                      "column": 1
200                    },
201                    "end": {
202                      "line": 1,
203                      "column": 1
204                    }
205                  }
206                },
207                "loc": {
208                  "start": {
209                    "line": 1,
210                    "column": 1
211                  },
212                  "end": {
213                    "line": 1,
214                    "column": 1
215                  }
216                }
217              },
218              "loc": {
219                "start": {
220                  "line": 1,
221                  "column": 1
222                },
223                "end": {
224                  "line": 1,
225                  "column": 1
226                }
227              }
228            },
229            "overloads": [],
230            "decorators": [],
231            "annotations": [],
232            "loc": {
233              "start": {
234                "line": 18,
235                "column": 9
236              },
237              "end": {
238                "line": 20,
239                "column": 2
240              }
241            }
242          },
243          "body": [
244            {
245              "type": "ClassProperty",
246              "key": {
247                "type": "Identifier",
248                "name": "a",
249                "loc": {
250                  "start": {
251                    "line": 19,
252                    "column": 5
253                  },
254                  "end": {
255                    "line": 19,
256                    "column": 6
257                  }
258                }
259              },
260              "value": {
261                "type": "NumberLiteral",
262                "value": 0,
263                "loc": {
264                  "start": {
265                    "line": 19,
266                    "column": 17
267                  },
268                  "end": {
269                    "line": 19,
270                    "column": 18
271                  }
272                }
273              },
274              "static": false,
275              "readonly": false,
276              "declare": false,
277              "optional": false,
278              "computed": false,
279              "typeAnnotation": {
280                "type": "TSNumberKeyword",
281                "loc": {
282                  "start": {
283                    "line": 19,
284                    "column": 8
285                  },
286                  "end": {
287                    "line": 19,
288                    "column": 14
289                  }
290                }
291              },
292              "decorators": [],
293              "loc": {
294                "start": {
295                  "line": 19,
296                  "column": 5
297                },
298                "end": {
299                  "line": 19,
300                  "column": 18
301                }
302              }
303            }
304          ],
305          "indexSignatures": [],
306          "loc": {
307            "start": {
308              "line": 18,
309              "column": 25
310            },
311            "end": {
312              "line": 20,
313              "column": 2
314            }
315          }
316        },
317        "decorators": [],
318        "isAnnotationDeclaration": true,
319        "loc": {
320          "start": {
321            "line": 18,
322            "column": 9
323          },
324          "end": {
325            "line": 20,
326            "column": 2
327          }
328        }
329      },
330      "source": null,
331      "specifiers": [],
332      "loc": {
333        "start": {
334          "line": 18,
335          "column": 1
336        },
337        "end": {
338          "line": 20,
339          "column": 2
340        }
341      }
342    },
343    {
344      "type": "ExportNamedDeclaration",
345      "declaration": {
346        "type": "ClassDeclaration",
347        "definition": {
348          "id": {
349            "type": "Identifier",
350            "name": "A",
351            "loc": {
352              "start": {
353                "line": 23,
354                "column": 14
355              },
356              "end": {
357                "line": 23,
358                "column": 15
359              }
360            }
361          },
362          "superClass": null,
363          "implements": [],
364          "constructor": {
365            "type": "MethodDefinition",
366            "key": {
367              "type": "Identifier",
368              "name": "constructor",
369              "loc": {
370                "start": {
371                  "line": 1,
372                  "column": 1
373                },
374                "end": {
375                  "line": 1,
376                  "column": 1
377                }
378              }
379            },
380            "kind": "constructor",
381            "static": false,
382            "optional": false,
383            "computed": false,
384            "value": {
385              "type": "FunctionExpression",
386              "function": {
387                "type": "ScriptFunction",
388                "id": null,
389                "generator": false,
390                "async": false,
391                "expression": false,
392                "params": [],
393                "body": {
394                  "type": "BlockStatement",
395                  "statements": [],
396                  "loc": {
397                    "start": {
398                      "line": 1,
399                      "column": 1
400                    },
401                    "end": {
402                      "line": 1,
403                      "column": 1
404                    }
405                  }
406                },
407                "loc": {
408                  "start": {
409                    "line": 1,
410                    "column": 1
411                  },
412                  "end": {
413                    "line": 1,
414                    "column": 1
415                  }
416                }
417              },
418              "loc": {
419                "start": {
420                  "line": 1,
421                  "column": 1
422                },
423                "end": {
424                  "line": 1,
425                  "column": 1
426                }
427              }
428            },
429            "overloads": [],
430            "decorators": [],
431            "annotations": [
432              {
433                "type": "Annotation",
434                "expression": {
435                  "type": "CallExpression",
436                  "callee": {
437                    "type": "Identifier",
438                    "name": "Anno1",
439                    "loc": {
440                      "start": {
441                        "line": 22,
442                        "column": 3
443                      },
444                      "end": {
445                        "line": 22,
446                        "column": 8
447                      }
448                    }
449                  },
450                  "arguments": [],
451                  "optional": false,
452                  "loc": {
453                    "start": {
454                      "line": 22,
455                      "column": 3
456                    },
457                    "end": {
458                      "line": 22,
459                      "column": 10
460                    }
461                  }
462                },
463                "name": "Anno1",
464                "isImported": false,
465                "loc": {
466                  "start": {
467                    "line": 22,
468                    "column": 1
469                  },
470                  "end": {
471                    "line": 22,
472                    "column": 10
473                  }
474                }
475              }
476            ],
477            "loc": {
478              "start": {
479                "line": 23,
480                "column": 8
481              },
482              "end": {
483                "line": 23,
484                "column": 18
485              }
486            }
487          },
488          "body": [],
489          "indexSignatures": [],
490          "loc": {
491            "start": {
492              "line": 23,
493              "column": 16
494            },
495            "end": {
496              "line": 23,
497              "column": 18
498            }
499          }
500        },
501        "decorators": [],
502        "isAnnotationDeclaration": false,
503        "loc": {
504          "start": {
505            "line": 23,
506            "column": 8
507          },
508          "end": {
509            "line": 23,
510            "column": 18
511          }
512        }
513      },
514      "source": null,
515      "specifiers": [],
516      "loc": {
517        "start": {
518          "line": 23,
519          "column": 1
520        },
521        "end": {
522          "line": 23,
523          "column": 18
524        }
525      }
526    },
527    {
528      "type": "ExportDefaultDeclaration",
529      "declaration": {
530        "type": "ClassDeclaration",
531        "definition": {
532          "id": {
533            "type": "Identifier",
534            "name": "B",
535            "loc": {
536              "start": {
537                "line": 26,
538                "column": 22
539              },
540              "end": {
541                "line": 26,
542                "column": 23
543              }
544            }
545          },
546          "superClass": null,
547          "implements": [],
548          "constructor": {
549            "type": "MethodDefinition",
550            "key": {
551              "type": "Identifier",
552              "name": "constructor",
553              "loc": {
554                "start": {
555                  "line": 1,
556                  "column": 1
557                },
558                "end": {
559                  "line": 1,
560                  "column": 1
561                }
562              }
563            },
564            "kind": "constructor",
565            "static": false,
566            "optional": false,
567            "computed": false,
568            "value": {
569              "type": "FunctionExpression",
570              "function": {
571                "type": "ScriptFunction",
572                "id": null,
573                "generator": false,
574                "async": false,
575                "expression": false,
576                "params": [],
577                "body": {
578                  "type": "BlockStatement",
579                  "statements": [],
580                  "loc": {
581                    "start": {
582                      "line": 1,
583                      "column": 1
584                    },
585                    "end": {
586                      "line": 1,
587                      "column": 1
588                    }
589                  }
590                },
591                "loc": {
592                  "start": {
593                    "line": 1,
594                    "column": 1
595                  },
596                  "end": {
597                    "line": 1,
598                    "column": 1
599                  }
600                }
601              },
602              "loc": {
603                "start": {
604                  "line": 1,
605                  "column": 1
606                },
607                "end": {
608                  "line": 1,
609                  "column": 1
610                }
611              }
612            },
613            "overloads": [],
614            "decorators": [],
615            "annotations": [
616              {
617                "type": "Annotation",
618                "expression": {
619                  "type": "CallExpression",
620                  "callee": {
621                    "type": "Identifier",
622                    "name": "Anno1",
623                    "loc": {
624                      "start": {
625                        "line": 25,
626                        "column": 3
627                      },
628                      "end": {
629                        "line": 25,
630                        "column": 8
631                      }
632                    }
633                  },
634                  "arguments": [],
635                  "optional": false,
636                  "loc": {
637                    "start": {
638                      "line": 25,
639                      "column": 3
640                    },
641                    "end": {
642                      "line": 25,
643                      "column": 10
644                    }
645                  }
646                },
647                "name": "Anno1",
648                "isImported": false,
649                "loc": {
650                  "start": {
651                    "line": 25,
652                    "column": 1
653                  },
654                  "end": {
655                    "line": 25,
656                    "column": 10
657                  }
658                }
659              }
660            ],
661            "loc": {
662              "start": {
663                "line": 26,
664                "column": 16
665              },
666              "end": {
667                "line": 26,
668                "column": 26
669              }
670            }
671          },
672          "body": [],
673          "indexSignatures": [],
674          "loc": {
675            "start": {
676              "line": 26,
677              "column": 24
678            },
679            "end": {
680              "line": 26,
681              "column": 26
682            }
683          }
684        },
685        "decorators": [],
686        "isAnnotationDeclaration": false,
687        "loc": {
688          "start": {
689            "line": 26,
690            "column": 16
691          },
692          "end": {
693            "line": 26,
694            "column": 26
695          }
696        }
697      },
698      "loc": {
699        "start": {
700          "line": 26,
701          "column": 1
702        },
703        "end": {
704          "line": 26,
705          "column": 26
706        }
707      }
708    }
709  ],
710  "loc": {
711    "start": {
712      "line": 1,
713      "column": 1
714    },
715    "end": {
716      "line": 28,
717      "column": 1
718    }
719  }
720}
721