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