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