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": "bar",
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": "bar",
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": "a0",
169                      "typeAnnotation": {
170                        "type": "ETSTypeReference",
171                        "part": {
172                          "type": "ETSTypeReferencePart",
173                          "name": {
174                            "type": "Identifier",
175                            "name": "U",
176                            "decorators": [],
177                            "loc": {
178                              "start": {
179                                "line": 16,
180                                "column": 21
181                              },
182                              "end": {
183                                "line": 16,
184                                "column": 22
185                              }
186                            }
187                          },
188                          "loc": {
189                            "start": {
190                              "line": 16,
191                              "column": 21
192                            },
193                            "end": {
194                              "line": 16,
195                              "column": 23
196                            }
197                          }
198                        },
199                        "loc": {
200                          "start": {
201                            "line": 16,
202                            "column": 21
203                          },
204                          "end": {
205                            "line": 16,
206                            "column": 23
207                          }
208                        }
209                      },
210                      "decorators": [],
211                      "loc": {
212                        "start": {
213                          "line": 16,
214                          "column": 17
215                        },
216                        "end": {
217                          "line": 16,
218                          "column": 23
219                        }
220                      }
221                    },
222                    "loc": {
223                      "start": {
224                        "line": 16,
225                        "column": 17
226                      },
227                      "end": {
228                        "line": 16,
229                        "column": 23
230                      }
231                    }
232                  }
233                ],
234                "returnType": {
235                  "type": "ETSTypeReference",
236                  "part": {
237                    "type": "ETSTypeReferencePart",
238                    "name": {
239                      "type": "Identifier",
240                      "name": "U",
241                      "decorators": [],
242                      "loc": {
243                        "start": {
244                          "line": 16,
245                          "column": 25
246                        },
247                        "end": {
248                          "line": 16,
249                          "column": 26
250                        }
251                      }
252                    },
253                    "loc": {
254                      "start": {
255                        "line": 16,
256                        "column": 25
257                      },
258                      "end": {
259                        "line": 16,
260                        "column": 28
261                      }
262                    }
263                  },
264                  "loc": {
265                    "start": {
266                      "line": 16,
267                      "column": 25
268                    },
269                    "end": {
270                      "line": 16,
271                      "column": 28
272                    }
273                  }
274                },
275                "typeParameters": {
276                  "type": "TSTypeParameterDeclaration",
277                  "params": [
278                    {
279                      "type": "TSTypeParameter",
280                      "name": {
281                        "type": "Identifier",
282                        "name": "U",
283                        "decorators": [],
284                        "loc": {
285                          "start": {
286                            "line": 16,
287                            "column": 14
288                          },
289                          "end": {
290                            "line": 16,
291                            "column": 15
292                          }
293                        }
294                      },
295                      "loc": {
296                        "start": {
297                          "line": 16,
298                          "column": 14
299                        },
300                        "end": {
301                          "line": 16,
302                          "column": 16
303                        }
304                      }
305                    }
306                  ],
307                  "loc": {
308                    "start": {
309                      "line": 16,
310                      "column": 13
311                    },
312                    "end": {
313                      "line": 16,
314                      "column": 16
315                    }
316                  }
317                },
318                "body": {
319                  "type": "BlockStatement",
320                  "statements": [
321                    {
322                      "type": "ReturnStatement",
323                      "argument": {
324                        "type": "Identifier",
325                        "name": "a0",
326                        "decorators": [],
327                        "loc": {
328                          "start": {
329                            "line": 17,
330                            "column": 16
331                          },
332                          "end": {
333                            "line": 17,
334                            "column": 18
335                          }
336                        }
337                      },
338                      "loc": {
339                        "start": {
340                          "line": 17,
341                          "column": 9
342                        },
343                        "end": {
344                          "line": 17,
345                          "column": 19
346                        }
347                      }
348                    }
349                  ],
350                  "loc": {
351                    "start": {
352                      "line": 16,
353                      "column": 27
354                    },
355                    "end": {
356                      "line": 18,
357                      "column": 6
358                    }
359                  }
360                },
361                "loc": {
362                  "start": {
363                    "line": 16,
364                    "column": 13
365                  },
366                  "end": {
367                    "line": 18,
368                    "column": 6
369                  }
370                }
371              },
372              "loc": {
373                "start": {
374                  "line": 16,
375                  "column": 13
376                },
377                "end": {
378                  "line": 18,
379                  "column": 6
380                }
381              }
382            },
383            "overloads": [],
384            "decorators": [],
385            "loc": {
386              "start": {
387                "line": 16,
388                "column": 1
389              },
390              "end": {
391                "line": 18,
392                "column": 6
393              }
394            }
395          },
396          {
397            "type": "MethodDefinition",
398            "key": {
399              "type": "Identifier",
400              "name": "main",
401              "decorators": [],
402              "loc": {
403                "start": {
404                  "line": 20,
405                  "column": 10
406                },
407                "end": {
408                  "line": 20,
409                  "column": 14
410                }
411              }
412            },
413            "kind": "method",
414            "accessibility": "public",
415            "static": true,
416            "optional": false,
417            "computed": false,
418            "value": {
419              "type": "FunctionExpression",
420              "function": {
421                "type": "ScriptFunction",
422                "id": {
423                  "type": "Identifier",
424                  "name": "main",
425                  "decorators": [],
426                  "loc": {
427                    "start": {
428                      "line": 20,
429                      "column": 10
430                    },
431                    "end": {
432                      "line": 20,
433                      "column": 14
434                    }
435                  }
436                },
437                "generator": false,
438                "async": false,
439                "expression": false,
440                "params": [],
441                "returnType": {
442                  "type": "ETSPrimitiveType",
443                  "loc": {
444                    "start": {
445                      "line": 20,
446                      "column": 18
447                    },
448                    "end": {
449                      "line": 20,
450                      "column": 22
451                    }
452                  }
453                },
454                "body": {
455                  "type": "BlockStatement",
456                  "statements": [
457                    {
458                      "type": "ExpressionStatement",
459                      "expression": {
460                        "type": "CallExpression",
461                        "callee": {
462                          "type": "Identifier",
463                          "name": "bar",
464                          "decorators": [],
465                          "loc": {
466                            "start": {
467                              "line": 21,
468                              "column": 5
469                            },
470                            "end": {
471                              "line": 21,
472                              "column": 8
473                            }
474                          }
475                        },
476                        "arguments": [
477                          {
478                            "type": "NumberLiteral",
479                            "value": 3,
480                            "loc": {
481                              "start": {
482                                "line": 21,
483                                "column": 14
484                              },
485                              "end": {
486                                "line": 21,
487                                "column": 15
488                              }
489                            }
490                          }
491                        ],
492                        "optional": false,
493                        "typeParameters": {
494                          "type": "TSTypeParameterInstantiation",
495                          "params": [
496                            {
497                              "type": "ETSPrimitiveType",
498                              "loc": {
499                                "start": {
500                                  "line": 21,
501                                  "column": 9
502                                },
503                                "end": {
504                                  "line": 21,
505                                  "column": 12
506                                }
507                              }
508                            }
509                          ],
510                          "loc": {
511                            "start": {
512                              "line": 21,
513                              "column": 8
514                            },
515                            "end": {
516                              "line": 21,
517                              "column": 13
518                            }
519                          }
520                        },
521                        "loc": {
522                          "start": {
523                            "line": 21,
524                            "column": 5
525                          },
526                          "end": {
527                            "line": 21,
528                            "column": 16
529                          }
530                        }
531                      },
532                      "loc": {
533                        "start": {
534                          "line": 21,
535                          "column": 5
536                        },
537                        "end": {
538                          "line": 21,
539                          "column": 17
540                        }
541                      }
542                    },
543                    {
544                      "type": "ExpressionStatement",
545                      "expression": {
546                        "type": "CallExpression",
547                        "callee": {
548                          "type": "Identifier",
549                          "name": "bar",
550                          "decorators": [],
551                          "loc": {
552                            "start": {
553                              "line": 22,
554                              "column": 5
555                            },
556                            "end": {
557                              "line": 22,
558                              "column": 8
559                            }
560                          }
561                        },
562                        "arguments": [
563                          {
564                            "type": "NumberLiteral",
565                            "value": 4,
566                            "loc": {
567                              "start": {
568                                "line": 22,
569                                "column": 9
570                              },
571                              "end": {
572                                "line": 22,
573                                "column": 10
574                              }
575                            }
576                          }
577                        ],
578                        "optional": false,
579                        "loc": {
580                          "start": {
581                            "line": 22,
582                            "column": 5
583                          },
584                          "end": {
585                            "line": 22,
586                            "column": 11
587                          }
588                        }
589                      },
590                      "loc": {
591                        "start": {
592                          "line": 22,
593                          "column": 5
594                        },
595                        "end": {
596                          "line": 22,
597                          "column": 12
598                        }
599                      }
600                    }
601                  ],
602                  "loc": {
603                    "start": {
604                      "line": 20,
605                      "column": 23
606                    },
607                    "end": {
608                      "line": 23,
609                      "column": 2
610                    }
611                  }
612                },
613                "loc": {
614                  "start": {
615                    "line": 20,
616                    "column": 14
617                  },
618                  "end": {
619                    "line": 23,
620                    "column": 2
621                  }
622                }
623              },
624              "loc": {
625                "start": {
626                  "line": 20,
627                  "column": 14
628                },
629                "end": {
630                  "line": 23,
631                  "column": 2
632                }
633              }
634            },
635            "overloads": [],
636            "decorators": [],
637            "loc": {
638              "start": {
639                "line": 20,
640                "column": 1
641              },
642              "end": {
643                "line": 23,
644                "column": 2
645              }
646            }
647          }
648        ],
649        "loc": {
650          "start": {
651            "line": 1,
652            "column": 1
653          },
654          "end": {
655            "line": 1,
656            "column": 1
657          }
658        }
659      },
660      "loc": {
661        "start": {
662          "line": 1,
663          "column": 1
664        },
665        "end": {
666          "line": 1,
667          "column": 1
668        }
669      }
670    }
671  ],
672  "loc": {
673    "start": {
674      "line": 1,
675      "column": 1
676    },
677    "end": {
678      "line": 24,
679      "column": 1
680    }
681  }
682}
683