• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSTypeAliasDeclaration",
6      "id": {
7        "type": "Identifier",
8        "name": "func_type",
9        "decorators": [],
10        "loc": {
11          "start": {
12            "line": 16,
13            "column": 6,
14            "program": "functionPointerArray.ets"
15          },
16          "end": {
17            "line": 16,
18            "column": 15,
19            "program": "functionPointerArray.ets"
20          }
21        }
22      },
23      "typeAnnotation": {
24        "type": "ETSFunctionType",
25        "params": [],
26        "returnType": {
27          "type": "ETSPrimitiveType",
28          "loc": {
29            "start": {
30              "line": 16,
31              "column": 24,
32              "program": "functionPointerArray.ets"
33            },
34            "end": {
35              "line": 16,
36              "column": 28,
37              "program": "functionPointerArray.ets"
38            }
39          }
40        },
41        "loc": {
42          "start": {
43            "line": 16,
44            "column": 18,
45            "program": "functionPointerArray.ets"
46          },
47          "end": {
48            "line": 16,
49            "column": 28,
50            "program": "functionPointerArray.ets"
51          }
52        }
53      },
54      "loc": {
55        "start": {
56          "line": 16,
57          "column": 1,
58          "program": "functionPointerArray.ets"
59        },
60        "end": {
61          "line": 16,
62          "column": 29,
63          "program": "functionPointerArray.ets"
64        }
65      }
66    },
67    {
68      "type": "ClassDeclaration",
69      "definition": {
70        "id": {
71          "type": "Identifier",
72          "name": "ETSGLOBAL",
73          "decorators": [],
74          "loc": {
75            "start": {
76              "line": 1,
77              "column": 1,
78              "program": "functionPointerArray.ets"
79            },
80            "end": {
81              "line": 1,
82              "column": 1,
83              "program": "functionPointerArray.ets"
84            }
85          }
86        },
87        "superClass": null,
88        "implements": [],
89        "body": [
90          {
91            "type": "MethodDefinition",
92            "key": {
93              "type": "Identifier",
94              "name": "_$init$_",
95              "decorators": [],
96              "loc": {
97                "start": {
98                  "line": 1,
99                  "column": 1,
100                  "program": null
101                },
102                "end": {
103                  "line": 1,
104                  "column": 1,
105                  "program": null
106                }
107              }
108            },
109            "kind": "method",
110            "accessibility": "public",
111            "static": true,
112            "optional": false,
113            "computed": false,
114            "value": {
115              "type": "FunctionExpression",
116              "function": {
117                "type": "ScriptFunction",
118                "id": {
119                  "type": "Identifier",
120                  "name": "_$init$_",
121                  "decorators": [],
122                  "loc": {
123                    "start": {
124                      "line": 1,
125                      "column": 1,
126                      "program": null
127                    },
128                    "end": {
129                      "line": 1,
130                      "column": 1,
131                      "program": null
132                    }
133                  }
134                },
135                "generator": false,
136                "async": false,
137                "expression": false,
138                "params": [],
139                "body": {
140                  "type": "BlockStatement",
141                  "statements": [],
142                  "loc": {
143                    "start": {
144                      "line": 1,
145                      "column": 1,
146                      "program": null
147                    },
148                    "end": {
149                      "line": 1,
150                      "column": 1,
151                      "program": null
152                    }
153                  }
154                },
155                "loc": {
156                  "start": {
157                    "line": 1,
158                    "column": 1,
159                    "program": null
160                  },
161                  "end": {
162                    "line": 1,
163                    "column": 1,
164                    "program": null
165                  }
166                }
167              },
168              "loc": {
169                "start": {
170                  "line": 1,
171                  "column": 1,
172                  "program": null
173                },
174                "end": {
175                  "line": 1,
176                  "column": 1,
177                  "program": null
178                }
179              }
180            },
181            "overloads": [],
182            "decorators": [],
183            "loc": {
184              "start": {
185                "line": 1,
186                "column": 1,
187                "program": "functionPointerArray.ets"
188              },
189              "end": {
190                "line": 1,
191                "column": 1,
192                "program": "functionPointerArray.ets"
193              }
194            }
195          },
196          {
197            "type": "MethodDefinition",
198            "key": {
199              "type": "Identifier",
200              "name": "foo",
201              "decorators": [],
202              "loc": {
203                "start": {
204                  "line": 18,
205                  "column": 10,
206                  "program": "functionPointerArray.ets"
207                },
208                "end": {
209                  "line": 18,
210                  "column": 13,
211                  "program": "functionPointerArray.ets"
212                }
213              }
214            },
215            "kind": "method",
216            "accessibility": "public",
217            "static": true,
218            "optional": false,
219            "computed": false,
220            "value": {
221              "type": "FunctionExpression",
222              "function": {
223                "type": "ScriptFunction",
224                "id": {
225                  "type": "Identifier",
226                  "name": "foo",
227                  "decorators": [],
228                  "loc": {
229                    "start": {
230                      "line": 18,
231                      "column": 10,
232                      "program": "functionPointerArray.ets"
233                    },
234                    "end": {
235                      "line": 18,
236                      "column": 13,
237                      "program": "functionPointerArray.ets"
238                    }
239                  }
240                },
241                "generator": false,
242                "async": false,
243                "expression": false,
244                "params": [],
245                "returnType": {
246                  "type": "ETSPrimitiveType",
247                  "loc": {
248                    "start": {
249                      "line": 18,
250                      "column": 18,
251                      "program": "functionPointerArray.ets"
252                    },
253                    "end": {
254                      "line": 18,
255                      "column": 22,
256                      "program": "functionPointerArray.ets"
257                    }
258                  }
259                },
260                "body": {
261                  "type": "BlockStatement",
262                  "statements": [],
263                  "loc": {
264                    "start": {
265                      "line": 18,
266                      "column": 23,
267                      "program": "functionPointerArray.ets"
268                    },
269                    "end": {
270                      "line": 18,
271                      "column": 25,
272                      "program": "functionPointerArray.ets"
273                    }
274                  }
275                },
276                "loc": {
277                  "start": {
278                    "line": 18,
279                    "column": 10,
280                    "program": "functionPointerArray.ets"
281                  },
282                  "end": {
283                    "line": 18,
284                    "column": 25,
285                    "program": "functionPointerArray.ets"
286                  }
287                }
288              },
289              "loc": {
290                "start": {
291                  "line": 18,
292                  "column": 10,
293                  "program": "functionPointerArray.ets"
294                },
295                "end": {
296                  "line": 18,
297                  "column": 25,
298                  "program": "functionPointerArray.ets"
299                }
300              }
301            },
302            "overloads": [],
303            "decorators": [],
304            "loc": {
305              "start": {
306                "line": 18,
307                "column": 1,
308                "program": "functionPointerArray.ets"
309              },
310              "end": {
311                "line": 18,
312                "column": 25,
313                "program": "functionPointerArray.ets"
314              }
315            }
316          },
317          {
318            "type": "MethodDefinition",
319            "key": {
320              "type": "Identifier",
321              "name": "CreateArray",
322              "decorators": [],
323              "loc": {
324                "start": {
325                  "line": 20,
326                  "column": 10,
327                  "program": "functionPointerArray.ets"
328                },
329                "end": {
330                  "line": 20,
331                  "column": 21,
332                  "program": "functionPointerArray.ets"
333                }
334              }
335            },
336            "kind": "method",
337            "accessibility": "public",
338            "static": true,
339            "optional": false,
340            "computed": false,
341            "value": {
342              "type": "FunctionExpression",
343              "function": {
344                "type": "ScriptFunction",
345                "id": {
346                  "type": "Identifier",
347                  "name": "CreateArray",
348                  "decorators": [],
349                  "loc": {
350                    "start": {
351                      "line": 20,
352                      "column": 10,
353                      "program": "functionPointerArray.ets"
354                    },
355                    "end": {
356                      "line": 20,
357                      "column": 21,
358                      "program": "functionPointerArray.ets"
359                    }
360                  }
361                },
362                "generator": false,
363                "async": false,
364                "expression": false,
365                "params": [
366                  {
367                    "type": "ETSParameterExpression",
368                    "name": {
369                      "type": "Identifier",
370                      "name": "a",
371                      "typeAnnotation": {
372                        "type": "ETSTypeReference",
373                        "part": {
374                          "type": "ETSTypeReferencePart",
375                          "name": {
376                            "type": "Identifier",
377                            "name": "func_type",
378                            "decorators": [],
379                            "loc": {
380                              "start": {
381                                "line": 20,
382                                "column": 25,
383                                "program": "functionPointerArray.ets"
384                              },
385                              "end": {
386                                "line": 20,
387                                "column": 34,
388                                "program": "functionPointerArray.ets"
389                              }
390                            }
391                          },
392                          "loc": {
393                            "start": {
394                              "line": 20,
395                              "column": 25,
396                              "program": "functionPointerArray.ets"
397                            },
398                            "end": {
399                              "line": 20,
400                              "column": 35,
401                              "program": "functionPointerArray.ets"
402                            }
403                          }
404                        },
405                        "loc": {
406                          "start": {
407                            "line": 20,
408                            "column": 25,
409                            "program": "functionPointerArray.ets"
410                          },
411                          "end": {
412                            "line": 20,
413                            "column": 35,
414                            "program": "functionPointerArray.ets"
415                          }
416                        }
417                      },
418                      "decorators": [],
419                      "loc": {
420                        "start": {
421                          "line": 20,
422                          "column": 22,
423                          "program": "functionPointerArray.ets"
424                        },
425                        "end": {
426                          "line": 20,
427                          "column": 35,
428                          "program": "functionPointerArray.ets"
429                        }
430                      }
431                    },
432                    "loc": {
433                      "start": {
434                        "line": 20,
435                        "column": 22,
436                        "program": "functionPointerArray.ets"
437                      },
438                      "end": {
439                        "line": 20,
440                        "column": 35,
441                        "program": "functionPointerArray.ets"
442                      }
443                    }
444                  }
445                ],
446                "returnType": {
447                  "type": "ETSTypeReference",
448                  "part": {
449                    "type": "ETSTypeReferencePart",
450                    "name": {
451                      "type": "Identifier",
452                      "name": "Array",
453                      "decorators": [],
454                      "loc": {
455                        "start": {
456                          "line": 1,
457                          "column": 1,
458                          "program": "functionPointerArray.ets"
459                        },
460                        "end": {
461                          "line": 1,
462                          "column": 3,
463                          "program": "functionPointerArray.ets"
464                        }
465                      }
466                    },
467                    "typeParams": {
468                      "type": "TSTypeParameterInstantiation",
469                      "params": [
470                        {
471                          "type": "ETSTypeReference",
472                          "part": {
473                            "type": "ETSTypeReferencePart",
474                            "name": {
475                              "type": "Identifier",
476                              "name": "func_type",
477                              "decorators": [],
478                              "loc": {
479                                "start": {
480                                  "line": 1,
481                                  "column": 3,
482                                  "program": "functionPointerArray.ets"
483                                },
484                                "end": {
485                                  "line": 1,
486                                  "column": 3,
487                                  "program": "functionPointerArray.ets"
488                                }
489                              }
490                            },
491                            "loc": {
492                              "start": {
493                                "line": 1,
494                                "column": 3,
495                                "program": "functionPointerArray.ets"
496                              },
497                              "end": {
498                                "line": 1,
499                                "column": 3,
500                                "program": "functionPointerArray.ets"
501                              }
502                            }
503                          },
504                          "loc": {
505                            "start": {
506                              "line": 1,
507                              "column": 3,
508                              "program": "functionPointerArray.ets"
509                            },
510                            "end": {
511                              "line": 1,
512                              "column": 3,
513                              "program": "functionPointerArray.ets"
514                            }
515                          }
516                        }
517                      ],
518                      "loc": {
519                        "start": {
520                          "line": 1,
521                          "column": 3,
522                          "program": "functionPointerArray.ets"
523                        },
524                        "end": {
525                          "line": 1,
526                          "column": 3,
527                          "program": "functionPointerArray.ets"
528                        }
529                      }
530                    },
531                    "loc": {
532                      "start": {
533                        "line": 1,
534                        "column": 1,
535                        "program": "functionPointerArray.ets"
536                      },
537                      "end": {
538                        "line": 1,
539                        "column": 3,
540                        "program": "functionPointerArray.ets"
541                      }
542                    }
543                  },
544                  "loc": {
545                    "start": {
546                      "line": 20,
547                      "column": 46,
548                      "program": "functionPointerArray.ets"
549                    },
550                    "end": {
551                      "line": 20,
552                      "column": 48,
553                      "program": "functionPointerArray.ets"
554                    }
555                  }
556                },
557                "body": {
558                  "type": "BlockStatement",
559                  "statements": [
560                    {
561                      "type": "ReturnStatement",
562                      "argument": {
563                        "type": "ArrayExpression",
564                        "elements": [
565                          {
566                            "type": "Identifier",
567                            "name": "a",
568                            "decorators": [],
569                            "loc": {
570                              "start": {
571                                "line": 21,
572                                "column": 13,
573                                "program": "functionPointerArray.ets"
574                              },
575                              "end": {
576                                "line": 21,
577                                "column": 14,
578                                "program": "functionPointerArray.ets"
579                              }
580                            }
581                          }
582                        ],
583                        "loc": {
584                          "start": {
585                            "line": 21,
586                            "column": 12,
587                            "program": "functionPointerArray.ets"
588                          },
589                          "end": {
590                            "line": 21,
591                            "column": 15,
592                            "program": "functionPointerArray.ets"
593                          }
594                        }
595                      },
596                      "loc": {
597                        "start": {
598                          "line": 21,
599                          "column": 5,
600                          "program": "functionPointerArray.ets"
601                        },
602                        "end": {
603                          "line": 21,
604                          "column": 15,
605                          "program": "functionPointerArray.ets"
606                        }
607                      }
608                    }
609                  ],
610                  "loc": {
611                    "start": {
612                      "line": 20,
613                      "column": 49,
614                      "program": "functionPointerArray.ets"
615                    },
616                    "end": {
617                      "line": 22,
618                      "column": 2,
619                      "program": "functionPointerArray.ets"
620                    }
621                  }
622                },
623                "loc": {
624                  "start": {
625                    "line": 20,
626                    "column": 10,
627                    "program": "functionPointerArray.ets"
628                  },
629                  "end": {
630                    "line": 22,
631                    "column": 2,
632                    "program": "functionPointerArray.ets"
633                  }
634                }
635              },
636              "loc": {
637                "start": {
638                  "line": 20,
639                  "column": 10,
640                  "program": "functionPointerArray.ets"
641                },
642                "end": {
643                  "line": 22,
644                  "column": 2,
645                  "program": "functionPointerArray.ets"
646                }
647              }
648            },
649            "overloads": [],
650            "decorators": [],
651            "loc": {
652              "start": {
653                "line": 20,
654                "column": 1,
655                "program": "functionPointerArray.ets"
656              },
657              "end": {
658                "line": 22,
659                "column": 2,
660                "program": "functionPointerArray.ets"
661              }
662            }
663          },
664          {
665            "type": "MethodDefinition",
666            "key": {
667              "type": "Identifier",
668              "name": "main",
669              "decorators": [],
670              "loc": {
671                "start": {
672                  "line": 24,
673                  "column": 10,
674                  "program": "functionPointerArray.ets"
675                },
676                "end": {
677                  "line": 24,
678                  "column": 14,
679                  "program": "functionPointerArray.ets"
680                }
681              }
682            },
683            "kind": "method",
684            "accessibility": "public",
685            "static": true,
686            "optional": false,
687            "computed": false,
688            "value": {
689              "type": "FunctionExpression",
690              "function": {
691                "type": "ScriptFunction",
692                "id": {
693                  "type": "Identifier",
694                  "name": "main",
695                  "decorators": [],
696                  "loc": {
697                    "start": {
698                      "line": 24,
699                      "column": 10,
700                      "program": "functionPointerArray.ets"
701                    },
702                    "end": {
703                      "line": 24,
704                      "column": 14,
705                      "program": "functionPointerArray.ets"
706                    }
707                  }
708                },
709                "generator": false,
710                "async": false,
711                "expression": false,
712                "params": [],
713                "returnType": {
714                  "type": "ETSPrimitiveType",
715                  "loc": {
716                    "start": {
717                      "line": 24,
718                      "column": 18,
719                      "program": "functionPointerArray.ets"
720                    },
721                    "end": {
722                      "line": 24,
723                      "column": 22,
724                      "program": "functionPointerArray.ets"
725                    }
726                  }
727                },
728                "body": {
729                  "type": "BlockStatement",
730                  "statements": [
731                    {
732                      "type": "VariableDeclaration",
733                      "declarations": [
734                        {
735                          "type": "VariableDeclarator",
736                          "id": {
737                            "type": "Identifier",
738                            "name": "arr",
739                            "typeAnnotation": {
740                              "type": "ETSTypeReference",
741                              "part": {
742                                "type": "ETSTypeReferencePart",
743                                "name": {
744                                  "type": "Identifier",
745                                  "name": "Array",
746                                  "decorators": [],
747                                  "loc": {
748                                    "start": {
749                                      "line": 1,
750                                      "column": 1,
751                                      "program": "functionPointerArray.ets"
752                                    },
753                                    "end": {
754                                      "line": 1,
755                                      "column": 3,
756                                      "program": "functionPointerArray.ets"
757                                    }
758                                  }
759                                },
760                                "typeParams": {
761                                  "type": "TSTypeParameterInstantiation",
762                                  "params": [
763                                    {
764                                      "type": "ETSTypeReference",
765                                      "part": {
766                                        "type": "ETSTypeReferencePart",
767                                        "name": {
768                                          "type": "Identifier",
769                                          "name": "func_type",
770                                          "decorators": [],
771                                          "loc": {
772                                            "start": {
773                                              "line": 1,
774                                              "column": 3,
775                                              "program": "functionPointerArray.ets"
776                                            },
777                                            "end": {
778                                              "line": 1,
779                                              "column": 3,
780                                              "program": "functionPointerArray.ets"
781                                            }
782                                          }
783                                        },
784                                        "loc": {
785                                          "start": {
786                                            "line": 1,
787                                            "column": 3,
788                                            "program": "functionPointerArray.ets"
789                                          },
790                                          "end": {
791                                            "line": 1,
792                                            "column": 3,
793                                            "program": "functionPointerArray.ets"
794                                          }
795                                        }
796                                      },
797                                      "loc": {
798                                        "start": {
799                                          "line": 1,
800                                          "column": 3,
801                                          "program": "functionPointerArray.ets"
802                                        },
803                                        "end": {
804                                          "line": 1,
805                                          "column": 3,
806                                          "program": "functionPointerArray.ets"
807                                        }
808                                      }
809                                    }
810                                  ],
811                                  "loc": {
812                                    "start": {
813                                      "line": 1,
814                                      "column": 3,
815                                      "program": "functionPointerArray.ets"
816                                    },
817                                    "end": {
818                                      "line": 1,
819                                      "column": 3,
820                                      "program": "functionPointerArray.ets"
821                                    }
822                                  }
823                                },
824                                "loc": {
825                                  "start": {
826                                    "line": 1,
827                                    "column": 1,
828                                    "program": "functionPointerArray.ets"
829                                  },
830                                  "end": {
831                                    "line": 1,
832                                    "column": 3,
833                                    "program": "functionPointerArray.ets"
834                                  }
835                                }
836                              },
837                              "loc": {
838                                "start": {
839                                  "line": 25,
840                                  "column": 21,
841                                  "program": "functionPointerArray.ets"
842                                },
843                                "end": {
844                                  "line": 25,
845                                  "column": 23,
846                                  "program": "functionPointerArray.ets"
847                                }
848                              }
849                            },
850                            "decorators": [],
851                            "loc": {
852                              "start": {
853                                "line": 25,
854                                "column": 7,
855                                "program": "functionPointerArray.ets"
856                              },
857                              "end": {
858                                "line": 25,
859                                "column": 10,
860                                "program": "functionPointerArray.ets"
861                              }
862                            }
863                          },
864                          "init": {
865                            "type": "ArrayExpression",
866                            "elements": [
867                              {
868                                "type": "Identifier",
869                                "name": "foo",
870                                "decorators": [],
871                                "loc": {
872                                  "start": {
873                                    "line": 25,
874                                    "column": 27,
875                                    "program": "functionPointerArray.ets"
876                                  },
877                                  "end": {
878                                    "line": 25,
879                                    "column": 30,
880                                    "program": "functionPointerArray.ets"
881                                  }
882                                }
883                              }
884                            ],
885                            "loc": {
886                              "start": {
887                                "line": 25,
888                                "column": 26,
889                                "program": "functionPointerArray.ets"
890                              },
891                              "end": {
892                                "line": 25,
893                                "column": 31,
894                                "program": "functionPointerArray.ets"
895                              }
896                            }
897                          },
898                          "loc": {
899                            "start": {
900                              "line": 25,
901                              "column": 7,
902                              "program": "functionPointerArray.ets"
903                            },
904                            "end": {
905                              "line": 25,
906                              "column": 31,
907                              "program": "functionPointerArray.ets"
908                            }
909                          }
910                        }
911                      ],
912                      "kind": "let",
913                      "loc": {
914                        "start": {
915                          "line": 25,
916                          "column": 3,
917                          "program": "functionPointerArray.ets"
918                        },
919                        "end": {
920                          "line": 25,
921                          "column": 32,
922                          "program": "functionPointerArray.ets"
923                        }
924                      }
925                    },
926                    {
927                      "type": "VariableDeclaration",
928                      "declarations": [
929                        {
930                          "type": "VariableDeclarator",
931                          "id": {
932                            "type": "Identifier",
933                            "name": "a",
934                            "typeAnnotation": {
935                              "type": "ETSTypeReference",
936                              "part": {
937                                "type": "ETSTypeReferencePart",
938                                "name": {
939                                  "type": "Identifier",
940                                  "name": "func_type",
941                                  "decorators": [],
942                                  "loc": {
943                                    "start": {
944                                      "line": 27,
945                                      "column": 10,
946                                      "program": "functionPointerArray.ets"
947                                    },
948                                    "end": {
949                                      "line": 27,
950                                      "column": 19,
951                                      "program": "functionPointerArray.ets"
952                                    }
953                                  }
954                                },
955                                "loc": {
956                                  "start": {
957                                    "line": 27,
958                                    "column": 10,
959                                    "program": "functionPointerArray.ets"
960                                  },
961                                  "end": {
962                                    "line": 27,
963                                    "column": 21,
964                                    "program": "functionPointerArray.ets"
965                                  }
966                                }
967                              },
968                              "loc": {
969                                "start": {
970                                  "line": 27,
971                                  "column": 10,
972                                  "program": "functionPointerArray.ets"
973                                },
974                                "end": {
975                                  "line": 27,
976                                  "column": 21,
977                                  "program": "functionPointerArray.ets"
978                                }
979                              }
980                            },
981                            "decorators": [],
982                            "loc": {
983                              "start": {
984                                "line": 27,
985                                "column": 7,
986                                "program": "functionPointerArray.ets"
987                              },
988                              "end": {
989                                "line": 27,
990                                "column": 8,
991                                "program": "functionPointerArray.ets"
992                              }
993                            }
994                          },
995                          "init": {
996                            "type": "Identifier",
997                            "name": "foo",
998                            "decorators": [],
999                            "loc": {
1000                              "start": {
1001                                "line": 27,
1002                                "column": 22,
1003                                "program": "functionPointerArray.ets"
1004                              },
1005                              "end": {
1006                                "line": 27,
1007                                "column": 25,
1008                                "program": "functionPointerArray.ets"
1009                              }
1010                            }
1011                          },
1012                          "loc": {
1013                            "start": {
1014                              "line": 27,
1015                              "column": 7,
1016                              "program": "functionPointerArray.ets"
1017                            },
1018                            "end": {
1019                              "line": 27,
1020                              "column": 25,
1021                              "program": "functionPointerArray.ets"
1022                            }
1023                          }
1024                        }
1025                      ],
1026                      "kind": "let",
1027                      "loc": {
1028                        "start": {
1029                          "line": 27,
1030                          "column": 3,
1031                          "program": "functionPointerArray.ets"
1032                        },
1033                        "end": {
1034                          "line": 27,
1035                          "column": 25,
1036                          "program": "functionPointerArray.ets"
1037                        }
1038                      }
1039                    },
1040                    {
1041                      "type": "VariableDeclaration",
1042                      "declarations": [
1043                        {
1044                          "type": "VariableDeclarator",
1045                          "id": {
1046                            "type": "Identifier",
1047                            "name": "array",
1048                            "typeAnnotation": {
1049                              "type": "ETSTypeReference",
1050                              "part": {
1051                                "type": "ETSTypeReferencePart",
1052                                "name": {
1053                                  "type": "Identifier",
1054                                  "name": "Array",
1055                                  "decorators": [],
1056                                  "loc": {
1057                                    "start": {
1058                                      "line": 1,
1059                                      "column": 1,
1060                                      "program": "functionPointerArray.ets"
1061                                    },
1062                                    "end": {
1063                                      "line": 1,
1064                                      "column": 3,
1065                                      "program": "functionPointerArray.ets"
1066                                    }
1067                                  }
1068                                },
1069                                "typeParams": {
1070                                  "type": "TSTypeParameterInstantiation",
1071                                  "params": [
1072                                    {
1073                                      "type": "ETSTypeReference",
1074                                      "part": {
1075                                        "type": "ETSTypeReferencePart",
1076                                        "name": {
1077                                          "type": "Identifier",
1078                                          "name": "func_type",
1079                                          "decorators": [],
1080                                          "loc": {
1081                                            "start": {
1082                                              "line": 1,
1083                                              "column": 3,
1084                                              "program": "functionPointerArray.ets"
1085                                            },
1086                                            "end": {
1087                                              "line": 1,
1088                                              "column": 3,
1089                                              "program": "functionPointerArray.ets"
1090                                            }
1091                                          }
1092                                        },
1093                                        "loc": {
1094                                          "start": {
1095                                            "line": 1,
1096                                            "column": 3,
1097                                            "program": "functionPointerArray.ets"
1098                                          },
1099                                          "end": {
1100                                            "line": 1,
1101                                            "column": 3,
1102                                            "program": "functionPointerArray.ets"
1103                                          }
1104                                        }
1105                                      },
1106                                      "loc": {
1107                                        "start": {
1108                                          "line": 1,
1109                                          "column": 3,
1110                                          "program": "functionPointerArray.ets"
1111                                        },
1112                                        "end": {
1113                                          "line": 1,
1114                                          "column": 3,
1115                                          "program": "functionPointerArray.ets"
1116                                        }
1117                                      }
1118                                    }
1119                                  ],
1120                                  "loc": {
1121                                    "start": {
1122                                      "line": 1,
1123                                      "column": 3,
1124                                      "program": "functionPointerArray.ets"
1125                                    },
1126                                    "end": {
1127                                      "line": 1,
1128                                      "column": 3,
1129                                      "program": "functionPointerArray.ets"
1130                                    }
1131                                  }
1132                                },
1133                                "loc": {
1134                                  "start": {
1135                                    "line": 1,
1136                                    "column": 1,
1137                                    "program": "functionPointerArray.ets"
1138                                  },
1139                                  "end": {
1140                                    "line": 1,
1141                                    "column": 3,
1142                                    "program": "functionPointerArray.ets"
1143                                  }
1144                                }
1145                              },
1146                              "loc": {
1147                                "start": {
1148                                  "line": 28,
1149                                  "column": 23,
1150                                  "program": "functionPointerArray.ets"
1151                                },
1152                                "end": {
1153                                  "line": 28,
1154                                  "column": 25,
1155                                  "program": "functionPointerArray.ets"
1156                                }
1157                              }
1158                            },
1159                            "decorators": [],
1160                            "loc": {
1161                              "start": {
1162                                "line": 28,
1163                                "column": 7,
1164                                "program": "functionPointerArray.ets"
1165                              },
1166                              "end": {
1167                                "line": 28,
1168                                "column": 12,
1169                                "program": "functionPointerArray.ets"
1170                              }
1171                            }
1172                          },
1173                          "init": {
1174                            "type": "ArrayExpression",
1175                            "elements": [
1176                              {
1177                                "type": "Identifier",
1178                                "name": "a",
1179                                "decorators": [],
1180                                "loc": {
1181                                  "start": {
1182                                    "line": 28,
1183                                    "column": 29,
1184                                    "program": "functionPointerArray.ets"
1185                                  },
1186                                  "end": {
1187                                    "line": 28,
1188                                    "column": 30,
1189                                    "program": "functionPointerArray.ets"
1190                                  }
1191                                }
1192                              }
1193                            ],
1194                            "loc": {
1195                              "start": {
1196                                "line": 28,
1197                                "column": 28,
1198                                "program": "functionPointerArray.ets"
1199                              },
1200                              "end": {
1201                                "line": 28,
1202                                "column": 31,
1203                                "program": "functionPointerArray.ets"
1204                              }
1205                            }
1206                          },
1207                          "loc": {
1208                            "start": {
1209                              "line": 28,
1210                              "column": 7,
1211                              "program": "functionPointerArray.ets"
1212                            },
1213                            "end": {
1214                              "line": 28,
1215                              "column": 31,
1216                              "program": "functionPointerArray.ets"
1217                            }
1218                          }
1219                        }
1220                      ],
1221                      "kind": "let",
1222                      "loc": {
1223                        "start": {
1224                          "line": 28,
1225                          "column": 3,
1226                          "program": "functionPointerArray.ets"
1227                        },
1228                        "end": {
1229                          "line": 28,
1230                          "column": 31,
1231                          "program": "functionPointerArray.ets"
1232                        }
1233                      }
1234                    },
1235                    {
1236                      "type": "VariableDeclaration",
1237                      "declarations": [
1238                        {
1239                          "type": "VariableDeclarator",
1240                          "id": {
1241                            "type": "Identifier",
1242                            "name": "array_too",
1243                            "decorators": [],
1244                            "loc": {
1245                              "start": {
1246                                "line": 30,
1247                                "column": 7,
1248                                "program": "functionPointerArray.ets"
1249                              },
1250                              "end": {
1251                                "line": 30,
1252                                "column": 16,
1253                                "program": "functionPointerArray.ets"
1254                              }
1255                            }
1256                          },
1257                          "init": {
1258                            "type": "CallExpression",
1259                            "callee": {
1260                              "type": "Identifier",
1261                              "name": "CreateArray",
1262                              "decorators": [],
1263                              "loc": {
1264                                "start": {
1265                                  "line": 30,
1266                                  "column": 19,
1267                                  "program": "functionPointerArray.ets"
1268                                },
1269                                "end": {
1270                                  "line": 30,
1271                                  "column": 30,
1272                                  "program": "functionPointerArray.ets"
1273                                }
1274                              }
1275                            },
1276                            "arguments": [
1277                              {
1278                                "type": "Identifier",
1279                                "name": "a",
1280                                "decorators": [],
1281                                "loc": {
1282                                  "start": {
1283                                    "line": 30,
1284                                    "column": 31,
1285                                    "program": "functionPointerArray.ets"
1286                                  },
1287                                  "end": {
1288                                    "line": 30,
1289                                    "column": 32,
1290                                    "program": "functionPointerArray.ets"
1291                                  }
1292                                }
1293                              }
1294                            ],
1295                            "optional": false,
1296                            "loc": {
1297                              "start": {
1298                                "line": 30,
1299                                "column": 19,
1300                                "program": "functionPointerArray.ets"
1301                              },
1302                              "end": {
1303                                "line": 30,
1304                                "column": 33,
1305                                "program": "functionPointerArray.ets"
1306                              }
1307                            }
1308                          },
1309                          "loc": {
1310                            "start": {
1311                              "line": 30,
1312                              "column": 7,
1313                              "program": "functionPointerArray.ets"
1314                            },
1315                            "end": {
1316                              "line": 30,
1317                              "column": 33,
1318                              "program": "functionPointerArray.ets"
1319                            }
1320                          }
1321                        }
1322                      ],
1323                      "kind": "let",
1324                      "loc": {
1325                        "start": {
1326                          "line": 30,
1327                          "column": 3,
1328                          "program": "functionPointerArray.ets"
1329                        },
1330                        "end": {
1331                          "line": 30,
1332                          "column": 33,
1333                          "program": "functionPointerArray.ets"
1334                        }
1335                      }
1336                    }
1337                  ],
1338                  "loc": {
1339                    "start": {
1340                      "line": 24,
1341                      "column": 23,
1342                      "program": "functionPointerArray.ets"
1343                    },
1344                    "end": {
1345                      "line": 31,
1346                      "column": 2,
1347                      "program": "functionPointerArray.ets"
1348                    }
1349                  }
1350                },
1351                "loc": {
1352                  "start": {
1353                    "line": 24,
1354                    "column": 10,
1355                    "program": "functionPointerArray.ets"
1356                  },
1357                  "end": {
1358                    "line": 31,
1359                    "column": 2,
1360                    "program": "functionPointerArray.ets"
1361                  }
1362                }
1363              },
1364              "loc": {
1365                "start": {
1366                  "line": 24,
1367                  "column": 10,
1368                  "program": "functionPointerArray.ets"
1369                },
1370                "end": {
1371                  "line": 31,
1372                  "column": 2,
1373                  "program": "functionPointerArray.ets"
1374                }
1375              }
1376            },
1377            "overloads": [],
1378            "decorators": [],
1379            "loc": {
1380              "start": {
1381                "line": 24,
1382                "column": 1,
1383                "program": "functionPointerArray.ets"
1384              },
1385              "end": {
1386                "line": 31,
1387                "column": 2,
1388                "program": "functionPointerArray.ets"
1389              }
1390            }
1391          }
1392        ],
1393        "loc": {
1394          "start": {
1395            "line": 1,
1396            "column": 1,
1397            "program": "functionPointerArray.ets"
1398          },
1399          "end": {
1400            "line": 1,
1401            "column": 1,
1402            "program": "functionPointerArray.ets"
1403          }
1404        }
1405      },
1406      "loc": {
1407        "start": {
1408          "line": 1,
1409          "column": 1,
1410          "program": "functionPointerArray.ets"
1411        },
1412        "end": {
1413          "line": 1,
1414          "column": 1,
1415          "program": "functionPointerArray.ets"
1416        }
1417      }
1418    }
1419  ],
1420  "loc": {
1421    "start": {
1422      "line": 1,
1423      "column": 1,
1424      "program": "functionPointerArray.ets"
1425    },
1426    "end": {
1427      "line": 32,
1428      "column": 1,
1429      "program": "functionPointerArray.ets"
1430    }
1431  }
1432}
1433