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