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