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