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