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": "TSArrayType",
128                "elementType": {
129                  "type": "TSArrayType",
130                  "elementType": {
131                    "type": "TSStringKeyword",
132                    "loc": {
133                      "start": {
134                        "line": 17,
135                        "column": 8
136                      },
137                      "end": {
138                        "line": 17,
139                        "column": 14
140                      }
141                    }
142                  },
143                  "loc": {
144                    "start": {
145                      "line": 17,
146                      "column": 8
147                    },
148                    "end": {
149                      "line": 17,
150                      "column": 16
151                    }
152                  }
153                },
154                "loc": {
155                  "start": {
156                    "line": 17,
157                    "column": 8
158                  },
159                  "end": {
160                    "line": 17,
161                    "column": 18
162                  }
163                }
164              },
165              "loc": {
166                "start": {
167                  "line": 17,
168                  "column": 8
169                },
170                "end": {
171                  "line": 17,
172                  "column": 20
173                }
174              }
175            },
176            "decorators": [],
177            "loc": {
178              "start": {
179                "line": 17,
180                "column": 5
181              },
182              "end": {
183                "line": 17,
184                "column": 6
185              }
186            }
187          }
188        ],
189        "indexSignatures": [],
190        "loc": {
191          "start": {
192            "line": 16,
193            "column": 18
194          },
195          "end": {
196            "line": 18,
197            "column": 2
198          }
199        }
200      },
201      "decorators": [],
202      "isAnnotationDeclaration": true,
203      "loc": {
204        "start": {
205          "line": 16,
206          "column": 2
207        },
208        "end": {
209          "line": 18,
210          "column": 2
211        }
212      }
213    },
214    {
215      "type": "ClassDeclaration",
216      "definition": {
217        "id": {
218          "type": "Identifier",
219          "name": "Anno2",
220          "loc": {
221            "start": {
222              "line": 20,
223              "column": 12
224            },
225            "end": {
226              "line": 20,
227              "column": 17
228            }
229          }
230        },
231        "superClass": null,
232        "implements": [],
233        "constructor": {
234          "type": "MethodDefinition",
235          "key": {
236            "type": "Identifier",
237            "name": "constructor",
238            "loc": {
239              "start": {
240                "line": 1,
241                "column": 1
242              },
243              "end": {
244                "line": 1,
245                "column": 1
246              }
247            }
248          },
249          "kind": "constructor",
250          "static": false,
251          "optional": false,
252          "computed": false,
253          "value": {
254            "type": "FunctionExpression",
255            "function": {
256              "type": "ScriptFunction",
257              "id": null,
258              "generator": false,
259              "async": false,
260              "expression": false,
261              "params": [],
262              "body": {
263                "type": "Program",
264                "statements": [],
265                "loc": {
266                  "start": {
267                    "line": 1,
268                    "column": 1
269                  },
270                  "end": {
271                    "line": 1,
272                    "column": 1
273                  }
274                }
275              },
276              "loc": {
277                "start": {
278                  "line": 1,
279                  "column": 1
280                },
281                "end": {
282                  "line": 1,
283                  "column": 1
284                }
285              }
286            },
287            "loc": {
288              "start": {
289                "line": 1,
290                "column": 1
291              },
292              "end": {
293                "line": 1,
294                "column": 1
295              }
296            }
297          },
298          "overloads": [],
299          "decorators": [],
300          "annotations": [],
301          "loc": {
302            "start": {
303              "line": 20,
304              "column": 2
305            },
306            "end": {
307              "line": 22,
308              "column": 2
309            }
310          }
311        },
312        "body": [
313          {
314            "type": "ClassProperty",
315            "key": {
316              "type": "Identifier",
317              "name": "a",
318              "loc": {
319                "start": {
320                  "line": 21,
321                  "column": 5
322                },
323                "end": {
324                  "line": 21,
325                  "column": 6
326                }
327              }
328            },
329            "value": {
330              "type": "ArrayExpression",
331              "elements": [
332                {
333                  "type": "ArrayExpression",
334                  "elements": [
335                    {
336                      "type": "NewExpression",
337                      "callee": {
338                        "type": "Identifier",
339                        "name": "Array",
340                        "loc": {
341                          "start": {
342                            "line": 21,
343                            "column": 29
344                          },
345                          "end": {
346                            "line": 21,
347                            "column": 34
348                          }
349                        }
350                      },
351                      "typeParameters": {
352                        "type": "TSTypeParameterInstantiation",
353                        "params": [
354                          {
355                            "type": "TSStringKeyword",
356                            "loc": {
357                              "start": {
358                                "line": 21,
359                                "column": 35
360                              },
361                              "end": {
362                                "line": 21,
363                                "column": 41
364                              }
365                            }
366                          }
367                        ],
368                        "loc": {
369                          "start": {
370                            "line": 21,
371                            "column": 34
372                          },
373                          "end": {
374                            "line": 21,
375                            "column": 42
376                          }
377                        }
378                      },
379                      "arguments": [],
380                      "loc": {
381                        "start": {
382                          "line": 21,
383                          "column": 25
384                        },
385                        "end": {
386                          "line": 21,
387                          "column": 44
388                        }
389                      }
390                    }
391                  ],
392                  "loc": {
393                    "start": {
394                      "line": 21,
395                      "column": 24
396                    },
397                    "end": {
398                      "line": 21,
399                      "column": 45
400                    }
401                  }
402                }
403              ],
404              "loc": {
405                "start": {
406                  "line": 21,
407                  "column": 23
408                },
409                "end": {
410                  "line": 21,
411                  "column": 46
412                }
413              }
414            },
415            "static": false,
416            "readonly": false,
417            "declare": false,
418            "optional": false,
419            "computed": false,
420            "typeAnnotation": {
421              "type": "TSArrayType",
422              "elementType": {
423                "type": "TSArrayType",
424                "elementType": {
425                  "type": "TSArrayType",
426                  "elementType": {
427                    "type": "TSStringKeyword",
428                    "loc": {
429                      "start": {
430                        "line": 21,
431                        "column": 8
432                      },
433                      "end": {
434                        "line": 21,
435                        "column": 14
436                      }
437                    }
438                  },
439                  "loc": {
440                    "start": {
441                      "line": 21,
442                      "column": 8
443                    },
444                    "end": {
445                      "line": 21,
446                      "column": 16
447                    }
448                  }
449                },
450                "loc": {
451                  "start": {
452                    "line": 21,
453                    "column": 8
454                  },
455                  "end": {
456                    "line": 21,
457                    "column": 18
458                  }
459                }
460              },
461              "loc": {
462                "start": {
463                  "line": 21,
464                  "column": 8
465                },
466                "end": {
467                  "line": 21,
468                  "column": 20
469                }
470              }
471            },
472            "decorators": [],
473            "loc": {
474              "start": {
475                "line": 21,
476                "column": 5
477              },
478              "end": {
479                "line": 21,
480                "column": 46
481              }
482            }
483          }
484        ],
485        "indexSignatures": [],
486        "loc": {
487          "start": {
488            "line": 20,
489            "column": 18
490          },
491          "end": {
492            "line": 22,
493            "column": 2
494          }
495        }
496      },
497      "decorators": [],
498      "isAnnotationDeclaration": true,
499      "loc": {
500        "start": {
501          "line": 20,
502          "column": 2
503        },
504        "end": {
505          "line": 22,
506          "column": 2
507        }
508      }
509    },
510    {
511      "type": "ClassDeclaration",
512      "definition": {
513        "id": {
514          "type": "Identifier",
515          "name": "Anno3",
516          "loc": {
517            "start": {
518              "line": 24,
519              "column": 12
520            },
521            "end": {
522              "line": 24,
523              "column": 17
524            }
525          }
526        },
527        "superClass": null,
528        "implements": [],
529        "constructor": {
530          "type": "MethodDefinition",
531          "key": {
532            "type": "Identifier",
533            "name": "constructor",
534            "loc": {
535              "start": {
536                "line": 1,
537                "column": 1
538              },
539              "end": {
540                "line": 1,
541                "column": 1
542              }
543            }
544          },
545          "kind": "constructor",
546          "static": false,
547          "optional": false,
548          "computed": false,
549          "value": {
550            "type": "FunctionExpression",
551            "function": {
552              "type": "ScriptFunction",
553              "id": null,
554              "generator": false,
555              "async": false,
556              "expression": false,
557              "params": [],
558              "body": {
559                "type": "Program",
560                "statements": [],
561                "loc": {
562                  "start": {
563                    "line": 1,
564                    "column": 1
565                  },
566                  "end": {
567                    "line": 1,
568                    "column": 1
569                  }
570                }
571              },
572              "loc": {
573                "start": {
574                  "line": 1,
575                  "column": 1
576                },
577                "end": {
578                  "line": 1,
579                  "column": 1
580                }
581              }
582            },
583            "loc": {
584              "start": {
585                "line": 1,
586                "column": 1
587              },
588              "end": {
589                "line": 1,
590                "column": 1
591              }
592            }
593          },
594          "overloads": [],
595          "decorators": [],
596          "annotations": [],
597          "loc": {
598            "start": {
599              "line": 24,
600              "column": 2
601            },
602            "end": {
603              "line": 26,
604              "column": 2
605            }
606          }
607        },
608        "body": [
609          {
610            "type": "ClassProperty",
611            "key": {
612              "type": "Identifier",
613              "name": "a",
614              "loc": {
615                "start": {
616                  "line": 25,
617                  "column": 5
618                },
619                "end": {
620                  "line": 25,
621                  "column": 6
622                }
623              }
624            },
625            "value": {
626              "type": "ArrayExpression",
627              "elements": [
628                {
629                  "type": "ArrayExpression",
630                  "elements": [
631                    {
632                      "type": "ArrayExpression",
633                      "elements": [
634                        {
635                          "type": "StringLiteral",
636                          "value": "hello",
637                          "loc": {
638                            "start": {
639                              "line": 25,
640                              "column": 26
641                            },
642                            "end": {
643                              "line": 25,
644                              "column": 33
645                            }
646                          }
647                        },
648                        {
649                          "type": "StringLiteral",
650                          "value": "world",
651                          "loc": {
652                            "start": {
653                              "line": 25,
654                              "column": 35
655                            },
656                            "end": {
657                              "line": 25,
658                              "column": 42
659                            }
660                          }
661                        }
662                      ],
663                      "loc": {
664                        "start": {
665                          "line": 25,
666                          "column": 25
667                        },
668                        "end": {
669                          "line": 25,
670                          "column": 43
671                        }
672                      }
673                    },
674                    {
675                      "type": "ArrayExpression",
676                      "elements": [
677                        {
678                          "type": "StringLiteral",
679                          "value": "hello",
680                          "loc": {
681                            "start": {
682                              "line": 25,
683                              "column": 46
684                            },
685                            "end": {
686                              "line": 25,
687                              "column": 53
688                            }
689                          }
690                        },
691                        {
692                          "type": "StringLiteral",
693                          "value": "world",
694                          "loc": {
695                            "start": {
696                              "line": 25,
697                              "column": 55
698                            },
699                            "end": {
700                              "line": 25,
701                              "column": 62
702                            }
703                          }
704                        }
705                      ],
706                      "loc": {
707                        "start": {
708                          "line": 25,
709                          "column": 45
710                        },
711                        "end": {
712                          "line": 25,
713                          "column": 63
714                        }
715                      }
716                    }
717                  ],
718                  "loc": {
719                    "start": {
720                      "line": 25,
721                      "column": 24
722                    },
723                    "end": {
724                      "line": 25,
725                      "column": 64
726                    }
727                  }
728                }
729              ],
730              "loc": {
731                "start": {
732                  "line": 25,
733                  "column": 23
734                },
735                "end": {
736                  "line": 25,
737                  "column": 65
738                }
739              }
740            },
741            "static": false,
742            "readonly": false,
743            "declare": false,
744            "optional": false,
745            "computed": false,
746            "typeAnnotation": {
747              "type": "TSArrayType",
748              "elementType": {
749                "type": "TSArrayType",
750                "elementType": {
751                  "type": "TSArrayType",
752                  "elementType": {
753                    "type": "TSStringKeyword",
754                    "loc": {
755                      "start": {
756                        "line": 25,
757                        "column": 8
758                      },
759                      "end": {
760                        "line": 25,
761                        "column": 14
762                      }
763                    }
764                  },
765                  "loc": {
766                    "start": {
767                      "line": 25,
768                      "column": 8
769                    },
770                    "end": {
771                      "line": 25,
772                      "column": 16
773                    }
774                  }
775                },
776                "loc": {
777                  "start": {
778                    "line": 25,
779                    "column": 8
780                  },
781                  "end": {
782                    "line": 25,
783                    "column": 18
784                  }
785                }
786              },
787              "loc": {
788                "start": {
789                  "line": 25,
790                  "column": 8
791                },
792                "end": {
793                  "line": 25,
794                  "column": 20
795                }
796              }
797            },
798            "decorators": [],
799            "loc": {
800              "start": {
801                "line": 25,
802                "column": 5
803              },
804              "end": {
805                "line": 25,
806                "column": 65
807              }
808            }
809          }
810        ],
811        "indexSignatures": [],
812        "loc": {
813          "start": {
814            "line": 24,
815            "column": 18
816          },
817          "end": {
818            "line": 26,
819            "column": 2
820          }
821        }
822      },
823      "decorators": [],
824      "isAnnotationDeclaration": true,
825      "loc": {
826        "start": {
827          "line": 24,
828          "column": 2
829        },
830        "end": {
831          "line": 26,
832          "column": 2
833        }
834      }
835    }
836  ],
837  "loc": {
838    "start": {
839      "line": 1,
840      "column": 1
841    },
842    "end": {
843      "line": 27,
844      "column": 1
845    }
846  }
847}
848