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