• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSModuleDeclaration",
6      "id": {
7        "type": "Identifier",
8        "name": "a",
9        "decorators": [],
10        "loc": {
11          "start": {
12            "line": 17,
13            "column": 11,
14            "program": "test_module.ts"
15          },
16          "end": {
17            "line": 17,
18            "column": 12,
19            "program": "test_module.ts"
20          }
21        }
22      },
23      "body": {
24        "type": "TSModuleBlock",
25        "body": [
26          {
27            "type": "VariableDeclaration",
28            "declarations": [
29              {
30                "type": "VariableDeclarator",
31                "id": {
32                  "type": "Identifier",
33                  "name": "a",
34                  "decorators": [],
35                  "loc": {
36                    "start": {
37                      "line": 18,
38                      "column": 9,
39                      "program": "test_module.ts"
40                    },
41                    "end": {
42                      "line": 18,
43                      "column": 10,
44                      "program": "test_module.ts"
45                    }
46                  }
47                },
48                "init": null,
49                "loc": {
50                  "start": {
51                    "line": 18,
52                    "column": 9,
53                    "program": "test_module.ts"
54                  },
55                  "end": {
56                    "line": 18,
57                    "column": 10,
58                    "program": "test_module.ts"
59                  }
60                }
61              }
62            ],
63            "kind": "let",
64            "loc": {
65              "start": {
66                "line": 18,
67                "column": 5,
68                "program": "test_module.ts"
69              },
70              "end": {
71                "line": 18,
72                "column": 11,
73                "program": "test_module.ts"
74              }
75            }
76          },
77          {
78            "type": "TSInterfaceDeclaration",
79            "body": {
80              "type": "TSInterfaceBody",
81              "body": [
82                {
83                  "type": "TSPropertySignature",
84                  "computed": false,
85                  "optional": false,
86                  "readonly": false,
87                  "key": {
88                    "type": "Identifier",
89                    "name": "a",
90                    "decorators": [],
91                    "loc": {
92                      "start": {
93                        "line": 21,
94                        "column": 9,
95                        "program": "test_module.ts"
96                      },
97                      "end": {
98                        "line": 21,
99                        "column": 10,
100                        "program": "test_module.ts"
101                      }
102                    }
103                  },
104                  "typeAnnotation": {
105                    "type": "TSFunctionType",
106                    "params": [
107                      {
108                        "type": "Identifier",
109                        "name": "a",
110                        "typeAnnotation": {
111                          "type": "TSNumberKeyword",
112                          "loc": {
113                            "start": {
114                              "line": 21,
115                              "column": 16,
116                              "program": "test_module.ts"
117                            },
118                            "end": {
119                              "line": 21,
120                              "column": 22,
121                              "program": "test_module.ts"
122                            }
123                          }
124                        },
125                        "decorators": [],
126                        "loc": {
127                          "start": {
128                            "line": 21,
129                            "column": 13,
130                            "program": "test_module.ts"
131                          },
132                          "end": {
133                            "line": 21,
134                            "column": 14,
135                            "program": "test_module.ts"
136                          }
137                        }
138                      },
139                      {
140                        "type": "Identifier",
141                        "name": "b",
142                        "typeAnnotation": {
143                          "type": "TSStringKeyword",
144                          "loc": {
145                            "start": {
146                              "line": 21,
147                              "column": 27,
148                              "program": "test_module.ts"
149                            },
150                            "end": {
151                              "line": 21,
152                              "column": 33,
153                              "program": "test_module.ts"
154                            }
155                          }
156                        },
157                        "decorators": [],
158                        "loc": {
159                          "start": {
160                            "line": 21,
161                            "column": 24,
162                            "program": "test_module.ts"
163                          },
164                          "end": {
165                            "line": 21,
166                            "column": 25,
167                            "program": "test_module.ts"
168                          }
169                        }
170                      }
171                    ],
172                    "returnType": {
173                      "type": "TSBooleanKeyword",
174                      "loc": {
175                        "start": {
176                          "line": 21,
177                          "column": 38,
178                          "program": "test_module.ts"
179                        },
180                        "end": {
181                          "line": 21,
182                          "column": 45,
183                          "program": "test_module.ts"
184                        }
185                      }
186                    },
187                    "loc": {
188                      "start": {
189                        "line": 21,
190                        "column": 12,
191                        "program": "test_module.ts"
192                      },
193                      "end": {
194                        "line": 21,
195                        "column": 45,
196                        "program": "test_module.ts"
197                      }
198                    }
199                  },
200                  "loc": {
201                    "start": {
202                      "line": 21,
203                      "column": 9,
204                      "program": "test_module.ts"
205                    },
206                    "end": {
207                      "line": 21,
208                      "column": 46,
209                      "program": "test_module.ts"
210                    }
211                  }
212                },
213                {
214                  "type": "TSMethodSignature",
215                  "computed": false,
216                  "optional": false,
217                  "key": {
218                    "type": "Identifier",
219                    "name": "b",
220                    "decorators": [],
221                    "loc": {
222                      "start": {
223                        "line": 22,
224                        "column": 9,
225                        "program": "test_module.ts"
226                      },
227                      "end": {
228                        "line": 22,
229                        "column": 10,
230                        "program": "test_module.ts"
231                      }
232                    }
233                  },
234                  "params": [],
235                  "typeAnnotation": {
236                    "type": "TSNumberKeyword",
237                    "loc": {
238                      "start": {
239                        "line": 22,
240                        "column": 14,
241                        "program": "test_module.ts"
242                      },
243                      "end": {
244                        "line": 22,
245                        "column": 20,
246                        "program": "test_module.ts"
247                      }
248                    }
249                  },
250                  "loc": {
251                    "start": {
252                      "line": 22,
253                      "column": 9,
254                      "program": "test_module.ts"
255                    },
256                    "end": {
257                      "line": 23,
258                      "column": 6,
259                      "program": "test_module.ts"
260                    }
261                  }
262                }
263              ],
264              "loc": {
265                "start": {
266                  "line": 20,
267                  "column": 17,
268                  "program": "test_module.ts"
269                },
270                "end": {
271                  "line": 23,
272                  "column": 6,
273                  "program": "test_module.ts"
274                }
275              }
276            },
277            "id": {
278              "type": "Identifier",
279              "name": "B",
280              "decorators": [],
281              "loc": {
282                "start": {
283                  "line": 20,
284                  "column": 15,
285                  "program": "test_module.ts"
286                },
287                "end": {
288                  "line": 20,
289                  "column": 16,
290                  "program": "test_module.ts"
291                }
292              }
293            },
294            "extends": [],
295            "loc": {
296              "start": {
297                "line": 20,
298                "column": 5,
299                "program": "test_module.ts"
300              },
301              "end": {
302                "line": 23,
303                "column": 6,
304                "program": "test_module.ts"
305              }
306            }
307          }
308        ],
309        "loc": {
310          "start": {
311            "line": 17,
312            "column": 13,
313            "program": "test_module.ts"
314          },
315          "end": {
316            "line": 24,
317            "column": 2,
318            "program": "test_module.ts"
319          }
320        }
321      },
322      "global": false,
323      "loc": {
324        "start": {
325          "line": 17,
326          "column": 1,
327          "program": "test_module.ts"
328        },
329        "end": {
330          "line": 26,
331          "column": 10,
332          "program": "test_module.ts"
333        }
334      }
335    },
336    {
337      "type": "TSModuleDeclaration",
338      "id": {
339        "type": "Identifier",
340        "name": "a",
341        "decorators": [],
342        "loc": {
343          "start": {
344            "line": 26,
345            "column": 11,
346            "program": "test_module.ts"
347          },
348          "end": {
349            "line": 26,
350            "column": 12,
351            "program": "test_module.ts"
352          }
353        }
354      },
355      "body": {
356        "type": "TSModuleBlock",
357        "body": [
358          {
359            "type": "VariableDeclaration",
360            "declarations": [
361              {
362                "type": "VariableDeclarator",
363                "id": {
364                  "type": "Identifier",
365                  "name": "a",
366                  "decorators": [],
367                  "loc": {
368                    "start": {
369                      "line": 27,
370                      "column": 9,
371                      "program": "test_module.ts"
372                    },
373                    "end": {
374                      "line": 27,
375                      "column": 10,
376                      "program": "test_module.ts"
377                    }
378                  }
379                },
380                "init": null,
381                "loc": {
382                  "start": {
383                    "line": 27,
384                    "column": 9,
385                    "program": "test_module.ts"
386                  },
387                  "end": {
388                    "line": 27,
389                    "column": 10,
390                    "program": "test_module.ts"
391                  }
392                }
393              }
394            ],
395            "kind": "let",
396            "loc": {
397              "start": {
398                "line": 27,
399                "column": 5,
400                "program": "test_module.ts"
401              },
402              "end": {
403                "line": 27,
404                "column": 11,
405                "program": "test_module.ts"
406              }
407            }
408          },
409          {
410            "type": "FunctionDeclaration",
411            "function": {
412              "type": "ScriptFunction",
413              "id": {
414                "type": "Identifier",
415                "name": "b",
416                "decorators": [],
417                "loc": {
418                  "start": {
419                    "line": 29,
420                    "column": 14,
421                    "program": "test_module.ts"
422                  },
423                  "end": {
424                    "line": 29,
425                    "column": 15,
426                    "program": "test_module.ts"
427                  }
428                }
429              },
430              "generator": false,
431              "async": false,
432              "expression": false,
433              "params": [],
434              "body": {
435                "type": "BlockStatement",
436                "statements": [],
437                "loc": {
438                  "start": {
439                    "line": 29,
440                    "column": 18,
441                    "program": "test_module.ts"
442                  },
443                  "end": {
444                    "line": 29,
445                    "column": 21,
446                    "program": "test_module.ts"
447                  }
448                }
449              },
450              "loc": {
451                "start": {
452                  "line": 29,
453                  "column": 5,
454                  "program": "test_module.ts"
455                },
456                "end": {
457                  "line": 29,
458                  "column": 21,
459                  "program": "test_module.ts"
460                }
461              }
462            },
463            "loc": {
464              "start": {
465                "line": 29,
466                "column": 5,
467                "program": "test_module.ts"
468              },
469              "end": {
470                "line": 29,
471                "column": 21,
472                "program": "test_module.ts"
473              }
474            }
475          }
476        ],
477        "loc": {
478          "start": {
479            "line": 26,
480            "column": 13,
481            "program": "test_module.ts"
482          },
483          "end": {
484            "line": 30,
485            "column": 2,
486            "program": "test_module.ts"
487          }
488        }
489      },
490      "global": false,
491      "loc": {
492        "start": {
493          "line": 26,
494          "column": 1,
495          "program": "test_module.ts"
496        },
497        "end": {
498          "line": 32,
499          "column": 7,
500          "program": "test_module.ts"
501        }
502      }
503    },
504    {
505      "type": "TSModuleDeclaration",
506      "id": {
507        "type": "Identifier",
508        "name": "a",
509        "decorators": [],
510        "loc": {
511          "start": {
512            "line": 32,
513            "column": 8,
514            "program": "test_module.ts"
515          },
516          "end": {
517            "line": 32,
518            "column": 9,
519            "program": "test_module.ts"
520          }
521        }
522      },
523      "body": {
524        "type": "TSModuleDeclaration",
525        "id": {
526          "type": "Identifier",
527          "name": "b",
528          "decorators": [],
529          "loc": {
530            "start": {
531              "line": 32,
532              "column": 10,
533              "program": "test_module.ts"
534            },
535            "end": {
536              "line": 32,
537              "column": 11,
538              "program": "test_module.ts"
539            }
540          }
541        },
542        "body": {
543          "type": "TSModuleDeclaration",
544          "id": {
545            "type": "Identifier",
546            "name": "c",
547            "decorators": [],
548            "loc": {
549              "start": {
550                "line": 32,
551                "column": 12,
552                "program": "test_module.ts"
553              },
554              "end": {
555                "line": 32,
556                "column": 13,
557                "program": "test_module.ts"
558              }
559            }
560          },
561          "body": {
562            "type": "TSModuleBlock",
563            "body": [
564              {
565                "type": "VariableDeclaration",
566                "declarations": [
567                  {
568                    "type": "VariableDeclarator",
569                    "id": {
570                      "type": "Identifier",
571                      "name": "a",
572                      "decorators": [],
573                      "loc": {
574                        "start": {
575                          "line": 33,
576                          "column": 9,
577                          "program": "test_module.ts"
578                        },
579                        "end": {
580                          "line": 33,
581                          "column": 10,
582                          "program": "test_module.ts"
583                        }
584                      }
585                    },
586                    "init": null,
587                    "loc": {
588                      "start": {
589                        "line": 33,
590                        "column": 9,
591                        "program": "test_module.ts"
592                      },
593                      "end": {
594                        "line": 33,
595                        "column": 10,
596                        "program": "test_module.ts"
597                      }
598                    }
599                  }
600                ],
601                "kind": "let",
602                "loc": {
603                  "start": {
604                    "line": 33,
605                    "column": 5,
606                    "program": "test_module.ts"
607                  },
608                  "end": {
609                    "line": 33,
610                    "column": 11,
611                    "program": "test_module.ts"
612                  }
613                }
614              },
615              {
616                "type": "FunctionDeclaration",
617                "function": {
618                  "type": "ScriptFunction",
619                  "id": {
620                    "type": "Identifier",
621                    "name": "t",
622                    "decorators": [],
623                    "loc": {
624                      "start": {
625                        "line": 35,
626                        "column": 14,
627                        "program": "test_module.ts"
628                      },
629                      "end": {
630                        "line": 35,
631                        "column": 15,
632                        "program": "test_module.ts"
633                      }
634                    }
635                  },
636                  "generator": false,
637                  "async": false,
638                  "expression": false,
639                  "params": [],
640                  "body": {
641                    "type": "BlockStatement",
642                    "statements": [],
643                    "loc": {
644                      "start": {
645                        "line": 35,
646                        "column": 18,
647                        "program": "test_module.ts"
648                      },
649                      "end": {
650                        "line": 35,
651                        "column": 21,
652                        "program": "test_module.ts"
653                      }
654                    }
655                  },
656                  "loc": {
657                    "start": {
658                      "line": 35,
659                      "column": 5,
660                      "program": "test_module.ts"
661                    },
662                    "end": {
663                      "line": 35,
664                      "column": 21,
665                      "program": "test_module.ts"
666                    }
667                  }
668                },
669                "loc": {
670                  "start": {
671                    "line": 35,
672                    "column": 5,
673                    "program": "test_module.ts"
674                  },
675                  "end": {
676                    "line": 35,
677                    "column": 21,
678                    "program": "test_module.ts"
679                  }
680                }
681              }
682            ],
683            "loc": {
684              "start": {
685                "line": 32,
686                "column": 14,
687                "program": "test_module.ts"
688              },
689              "end": {
690                "line": 36,
691                "column": 2,
692                "program": "test_module.ts"
693              }
694            }
695          },
696          "global": false,
697          "loc": {
698            "start": {
699              "line": 32,
700              "column": 12,
701              "program": "test_module.ts"
702            },
703            "end": {
704              "line": 39,
705              "column": 7,
706              "program": "test_module.ts"
707            }
708          }
709        },
710        "global": false,
711        "loc": {
712          "start": {
713            "line": 32,
714            "column": 10,
715            "program": "test_module.ts"
716          },
717          "end": {
718            "line": 39,
719            "column": 7,
720            "program": "test_module.ts"
721          }
722        }
723      },
724      "global": false,
725      "loc": {
726        "start": {
727          "line": 32,
728          "column": 1,
729          "program": "test_module.ts"
730        },
731        "end": {
732          "line": 39,
733          "column": 7,
734          "program": "test_module.ts"
735        }
736      }
737    },
738    {
739      "type": "TSModuleDeclaration",
740      "id": {
741        "type": "Identifier",
742        "name": "a",
743        "decorators": [],
744        "loc": {
745          "start": {
746            "line": 39,
747            "column": 8,
748            "program": "test_module.ts"
749          },
750          "end": {
751            "line": 39,
752            "column": 9,
753            "program": "test_module.ts"
754          }
755        }
756      },
757      "body": {
758        "type": "TSModuleDeclaration",
759        "id": {
760          "type": "Identifier",
761          "name": "b",
762          "decorators": [],
763          "loc": {
764            "start": {
765              "line": 39,
766              "column": 10,
767              "program": "test_module.ts"
768            },
769            "end": {
770              "line": 39,
771              "column": 11,
772              "program": "test_module.ts"
773            }
774          }
775        },
776        "body": {
777          "type": "TSModuleDeclaration",
778          "id": {
779            "type": "Identifier",
780            "name": "c",
781            "decorators": [],
782            "loc": {
783              "start": {
784                "line": 39,
785                "column": 12,
786                "program": "test_module.ts"
787              },
788              "end": {
789                "line": 39,
790                "column": 13,
791                "program": "test_module.ts"
792              }
793            }
794          },
795          "body": {
796            "type": "TSModuleBlock",
797            "body": [
798              {
799                "type": "VariableDeclaration",
800                "declarations": [
801                  {
802                    "type": "VariableDeclarator",
803                    "id": {
804                      "type": "Identifier",
805                      "name": "a",
806                      "decorators": [],
807                      "loc": {
808                        "start": {
809                          "line": 40,
810                          "column": 9,
811                          "program": "test_module.ts"
812                        },
813                        "end": {
814                          "line": 40,
815                          "column": 10,
816                          "program": "test_module.ts"
817                        }
818                      }
819                    },
820                    "init": null,
821                    "loc": {
822                      "start": {
823                        "line": 40,
824                        "column": 9,
825                        "program": "test_module.ts"
826                      },
827                      "end": {
828                        "line": 40,
829                        "column": 10,
830                        "program": "test_module.ts"
831                      }
832                    }
833                  }
834                ],
835                "kind": "let",
836                "loc": {
837                  "start": {
838                    "line": 40,
839                    "column": 5,
840                    "program": "test_module.ts"
841                  },
842                  "end": {
843                    "line": 40,
844                    "column": 11,
845                    "program": "test_module.ts"
846                  }
847                }
848              },
849              {
850                "type": "FunctionDeclaration",
851                "function": {
852                  "type": "ScriptFunction",
853                  "id": {
854                    "type": "Identifier",
855                    "name": "t",
856                    "decorators": [],
857                    "loc": {
858                      "start": {
859                        "line": 42,
860                        "column": 14,
861                        "program": "test_module.ts"
862                      },
863                      "end": {
864                        "line": 42,
865                        "column": 15,
866                        "program": "test_module.ts"
867                      }
868                    }
869                  },
870                  "generator": false,
871                  "async": false,
872                  "expression": false,
873                  "params": [],
874                  "body": {
875                    "type": "BlockStatement",
876                    "statements": [],
877                    "loc": {
878                      "start": {
879                        "line": 42,
880                        "column": 18,
881                        "program": "test_module.ts"
882                      },
883                      "end": {
884                        "line": 42,
885                        "column": 21,
886                        "program": "test_module.ts"
887                      }
888                    }
889                  },
890                  "loc": {
891                    "start": {
892                      "line": 42,
893                      "column": 5,
894                      "program": "test_module.ts"
895                    },
896                    "end": {
897                      "line": 42,
898                      "column": 21,
899                      "program": "test_module.ts"
900                    }
901                  }
902                },
903                "loc": {
904                  "start": {
905                    "line": 42,
906                    "column": 5,
907                    "program": "test_module.ts"
908                  },
909                  "end": {
910                    "line": 42,
911                    "column": 21,
912                    "program": "test_module.ts"
913                  }
914                }
915              }
916            ],
917            "loc": {
918              "start": {
919                "line": 39,
920                "column": 14,
921                "program": "test_module.ts"
922              },
923              "end": {
924                "line": 43,
925                "column": 2,
926                "program": "test_module.ts"
927              }
928            }
929          },
930          "global": false,
931          "loc": {
932            "start": {
933              "line": 39,
934              "column": 12,
935              "program": "test_module.ts"
936            },
937            "end": {
938              "line": 45,
939              "column": 8,
940              "program": "test_module.ts"
941            }
942          }
943        },
944        "global": false,
945        "loc": {
946          "start": {
947            "line": 39,
948            "column": 10,
949            "program": "test_module.ts"
950          },
951          "end": {
952            "line": 45,
953            "column": 8,
954            "program": "test_module.ts"
955          }
956        }
957      },
958      "global": false,
959      "loc": {
960        "start": {
961          "line": 39,
962          "column": 1,
963          "program": "test_module.ts"
964        },
965        "end": {
966          "line": 45,
967          "column": 8,
968          "program": "test_module.ts"
969        }
970      }
971    },
972    {
973      "type": "TSModuleDeclaration",
974      "id": {
975        "type": "Identifier",
976        "name": "k",
977        "decorators": [],
978        "loc": {
979          "start": {
980            "line": 45,
981            "column": 19,
982            "program": "test_module.ts"
983          },
984          "end": {
985            "line": 45,
986            "column": 20,
987            "program": "test_module.ts"
988          }
989        }
990      },
991      "body": {
992        "type": "TSModuleDeclaration",
993        "id": {
994          "type": "Identifier",
995          "name": "z",
996          "decorators": [],
997          "loc": {
998            "start": {
999              "line": 45,
1000              "column": 21,
1001              "program": "test_module.ts"
1002            },
1003            "end": {
1004              "line": 45,
1005              "column": 22,
1006              "program": "test_module.ts"
1007            }
1008          }
1009        },
1010        "body": {
1011          "type": "TSModuleBlock",
1012          "body": [],
1013          "loc": {
1014            "start": {
1015              "line": 45,
1016              "column": 23,
1017              "program": "test_module.ts"
1018            },
1019            "end": {
1020              "line": 47,
1021              "column": 2,
1022              "program": "test_module.ts"
1023            }
1024          }
1025        },
1026        "global": false,
1027        "loc": {
1028          "start": {
1029            "line": 45,
1030            "column": 21,
1031            "program": "test_module.ts"
1032          },
1033          "end": {
1034            "line": 49,
1035            "column": 8,
1036            "program": "test_module.ts"
1037          }
1038        }
1039      },
1040      "global": false,
1041      "loc": {
1042        "start": {
1043          "line": 45,
1044          "column": 9,
1045          "program": "test_module.ts"
1046        },
1047        "end": {
1048          "line": 49,
1049          "column": 8,
1050          "program": "test_module.ts"
1051        }
1052      }
1053    },
1054    {
1055      "type": "TSModuleDeclaration",
1056      "id": {
1057        "type": "Identifier",
1058        "name": "global",
1059        "decorators": [],
1060        "loc": {
1061          "start": {
1062            "line": 49,
1063            "column": 9,
1064            "program": "test_module.ts"
1065          },
1066          "end": {
1067            "line": 49,
1068            "column": 15,
1069            "program": "test_module.ts"
1070          }
1071        }
1072      },
1073      "body": {
1074        "type": "TSModuleBlock",
1075        "body": [],
1076        "loc": {
1077          "start": {
1078            "line": 49,
1079            "column": 16,
1080            "program": "test_module.ts"
1081          },
1082          "end": {
1083            "line": 51,
1084            "column": 2,
1085            "program": "test_module.ts"
1086          }
1087        }
1088      },
1089      "global": true,
1090      "loc": {
1091        "start": {
1092          "line": 49,
1093          "column": 9,
1094          "program": "test_module.ts"
1095        },
1096        "end": {
1097          "line": 53,
1098          "column": 8,
1099          "program": "test_module.ts"
1100        }
1101      }
1102    },
1103    {
1104      "type": "TSModuleDeclaration",
1105      "id": {
1106        "type": "StringLiteral",
1107        "value": "foo",
1108        "loc": {
1109          "start": {
1110            "line": 53,
1111            "column": 16,
1112            "program": "test_module.ts"
1113          },
1114          "end": {
1115            "line": 53,
1116            "column": 21,
1117            "program": "test_module.ts"
1118          }
1119        }
1120      },
1121      "global": false,
1122      "loc": {
1123        "start": {
1124          "line": 53,
1125          "column": 9,
1126          "program": "test_module.ts"
1127        },
1128        "end": {
1129          "line": 55,
1130          "column": 7,
1131          "program": "test_module.ts"
1132        }
1133      }
1134    },
1135    {
1136      "type": "ExportNamedDeclaration",
1137      "declaration": {
1138        "type": "VariableDeclaration",
1139        "declarations": [
1140          {
1141            "type": "VariableDeclarator",
1142            "id": {
1143              "type": "Identifier",
1144              "name": "c",
1145              "decorators": [],
1146              "loc": {
1147                "start": {
1148                  "line": 55,
1149                  "column": 12,
1150                  "program": "test_module.ts"
1151                },
1152                "end": {
1153                  "line": 55,
1154                  "column": 13,
1155                  "program": "test_module.ts"
1156                }
1157              }
1158            },
1159            "init": null,
1160            "loc": {
1161              "start": {
1162                "line": 55,
1163                "column": 12,
1164                "program": "test_module.ts"
1165              },
1166              "end": {
1167                "line": 55,
1168                "column": 13,
1169                "program": "test_module.ts"
1170              }
1171            }
1172          }
1173        ],
1174        "kind": "var",
1175        "loc": {
1176          "start": {
1177            "line": 55,
1178            "column": 8,
1179            "program": "test_module.ts"
1180          },
1181          "end": {
1182            "line": 55,
1183            "column": 14,
1184            "program": "test_module.ts"
1185          }
1186        }
1187      },
1188      "source": null,
1189      "specifiers": [],
1190      "loc": {
1191        "start": {
1192          "line": 55,
1193          "column": 1,
1194          "program": "test_module.ts"
1195        },
1196        "end": {
1197          "line": 55,
1198          "column": 14,
1199          "program": "test_module.ts"
1200        }
1201      }
1202    },
1203    {
1204      "type": "TSModuleDeclaration",
1205      "id": {
1206        "type": "Identifier",
1207        "name": "module1",
1208        "decorators": [],
1209        "loc": {
1210          "start": {
1211            "line": 57,
1212            "column": 8,
1213            "program": "test_module.ts"
1214          },
1215          "end": {
1216            "line": 57,
1217            "column": 15,
1218            "program": "test_module.ts"
1219          }
1220        }
1221      },
1222      "body": {
1223        "type": "TSModuleBlock",
1224        "body": [
1225          {
1226            "type": "ExportNamedDeclaration",
1227            "declaration": {
1228              "type": "VariableDeclaration",
1229              "declarations": [
1230                {
1231                  "type": "VariableDeclarator",
1232                  "id": {
1233                    "type": "Identifier",
1234                    "name": "a",
1235                    "decorators": [],
1236                    "loc": {
1237                      "start": {
1238                        "line": 58,
1239                        "column": 24,
1240                        "program": "test_module.ts"
1241                      },
1242                      "end": {
1243                        "line": 58,
1244                        "column": 25,
1245                        "program": "test_module.ts"
1246                      }
1247                    }
1248                  },
1249                  "init": null,
1250                  "loc": {
1251                    "start": {
1252                      "line": 58,
1253                      "column": 24,
1254                      "program": "test_module.ts"
1255                    },
1256                    "end": {
1257                      "line": 58,
1258                      "column": 25,
1259                      "program": "test_module.ts"
1260                    }
1261                  }
1262                }
1263              ],
1264              "kind": "var",
1265              "loc": {
1266                "start": {
1267                  "line": 58,
1268                  "column": 20,
1269                  "program": "test_module.ts"
1270                },
1271                "end": {
1272                  "line": 58,
1273                  "column": 26,
1274                  "program": "test_module.ts"
1275                }
1276              }
1277            },
1278            "source": null,
1279            "specifiers": [],
1280            "loc": {
1281              "start": {
1282                "line": 58,
1283                "column": 5,
1284                "program": "test_module.ts"
1285              },
1286              "end": {
1287                "line": 58,
1288                "column": 26,
1289                "program": "test_module.ts"
1290              }
1291            }
1292          },
1293          {
1294            "type": "VariableDeclaration",
1295            "declarations": [
1296              {
1297                "type": "VariableDeclarator",
1298                "id": {
1299                  "type": "Identifier",
1300                  "name": "b",
1301                  "decorators": [],
1302                  "loc": {
1303                    "start": {
1304                      "line": 59,
1305                      "column": 17,
1306                      "program": "test_module.ts"
1307                    },
1308                    "end": {
1309                      "line": 59,
1310                      "column": 18,
1311                      "program": "test_module.ts"
1312                    }
1313                  }
1314                },
1315                "init": null,
1316                "loc": {
1317                  "start": {
1318                    "line": 59,
1319                    "column": 17,
1320                    "program": "test_module.ts"
1321                  },
1322                  "end": {
1323                    "line": 59,
1324                    "column": 18,
1325                    "program": "test_module.ts"
1326                  }
1327                }
1328              }
1329            ],
1330            "kind": "var",
1331            "loc": {
1332              "start": {
1333                "line": 59,
1334                "column": 13,
1335                "program": "test_module.ts"
1336              },
1337              "end": {
1338                "line": 59,
1339                "column": 19,
1340                "program": "test_module.ts"
1341              }
1342            }
1343          },
1344          {
1345            "type": "VariableDeclaration",
1346            "declarations": [
1347              {
1348                "type": "VariableDeclarator",
1349                "id": {
1350                  "type": "Identifier",
1351                  "name": "c",
1352                  "decorators": [],
1353                  "loc": {
1354                    "start": {
1355                      "line": 60,
1356                      "column": 9,
1357                      "program": "test_module.ts"
1358                    },
1359                    "end": {
1360                      "line": 60,
1361                      "column": 10,
1362                      "program": "test_module.ts"
1363                    }
1364                  }
1365                },
1366                "init": null,
1367                "loc": {
1368                  "start": {
1369                    "line": 60,
1370                    "column": 9,
1371                    "program": "test_module.ts"
1372                  },
1373                  "end": {
1374                    "line": 60,
1375                    "column": 10,
1376                    "program": "test_module.ts"
1377                  }
1378                }
1379              }
1380            ],
1381            "kind": "var",
1382            "loc": {
1383              "start": {
1384                "line": 60,
1385                "column": 5,
1386                "program": "test_module.ts"
1387              },
1388              "end": {
1389                "line": 60,
1390                "column": 11,
1391                "program": "test_module.ts"
1392              }
1393            }
1394          }
1395        ],
1396        "loc": {
1397          "start": {
1398            "line": 57,
1399            "column": 16,
1400            "program": "test_module.ts"
1401          },
1402          "end": {
1403            "line": 61,
1404            "column": 2,
1405            "program": "test_module.ts"
1406          }
1407        }
1408      },
1409      "global": false,
1410      "loc": {
1411        "start": {
1412          "line": 57,
1413          "column": 1,
1414          "program": "test_module.ts"
1415        },
1416        "end": {
1417          "line": 63,
1418          "column": 7,
1419          "program": "test_module.ts"
1420        }
1421      }
1422    },
1423    {
1424      "type": "ExportNamedDeclaration",
1425      "declaration": {
1426        "type": "TSModuleDeclaration",
1427        "id": {
1428          "type": "Identifier",
1429          "name": "module2",
1430          "decorators": [],
1431          "loc": {
1432            "start": {
1433              "line": 63,
1434              "column": 15,
1435              "program": "test_module.ts"
1436            },
1437            "end": {
1438              "line": 63,
1439              "column": 22,
1440              "program": "test_module.ts"
1441            }
1442          }
1443        },
1444        "body": {
1445          "type": "TSModuleBlock",
1446          "body": [
1447            {
1448              "type": "ExportNamedDeclaration",
1449              "declaration": {
1450                "type": "VariableDeclaration",
1451                "declarations": [
1452                  {
1453                    "type": "VariableDeclarator",
1454                    "id": {
1455                      "type": "Identifier",
1456                      "name": "a",
1457                      "decorators": [],
1458                      "loc": {
1459                        "start": {
1460                          "line": 64,
1461                          "column": 24,
1462                          "program": "test_module.ts"
1463                        },
1464                        "end": {
1465                          "line": 64,
1466                          "column": 25,
1467                          "program": "test_module.ts"
1468                        }
1469                      }
1470                    },
1471                    "init": null,
1472                    "loc": {
1473                      "start": {
1474                        "line": 64,
1475                        "column": 24,
1476                        "program": "test_module.ts"
1477                      },
1478                      "end": {
1479                        "line": 64,
1480                        "column": 25,
1481                        "program": "test_module.ts"
1482                      }
1483                    }
1484                  }
1485                ],
1486                "kind": "var",
1487                "loc": {
1488                  "start": {
1489                    "line": 64,
1490                    "column": 20,
1491                    "program": "test_module.ts"
1492                  },
1493                  "end": {
1494                    "line": 64,
1495                    "column": 26,
1496                    "program": "test_module.ts"
1497                  }
1498                }
1499              },
1500              "source": null,
1501              "specifiers": [],
1502              "loc": {
1503                "start": {
1504                  "line": 64,
1505                  "column": 5,
1506                  "program": "test_module.ts"
1507                },
1508                "end": {
1509                  "line": 64,
1510                  "column": 26,
1511                  "program": "test_module.ts"
1512                }
1513              }
1514            },
1515            {
1516              "type": "VariableDeclaration",
1517              "declarations": [
1518                {
1519                  "type": "VariableDeclarator",
1520                  "id": {
1521                    "type": "Identifier",
1522                    "name": "b",
1523                    "decorators": [],
1524                    "loc": {
1525                      "start": {
1526                        "line": 65,
1527                        "column": 17,
1528                        "program": "test_module.ts"
1529                      },
1530                      "end": {
1531                        "line": 65,
1532                        "column": 18,
1533                        "program": "test_module.ts"
1534                      }
1535                    }
1536                  },
1537                  "init": null,
1538                  "loc": {
1539                    "start": {
1540                      "line": 65,
1541                      "column": 17,
1542                      "program": "test_module.ts"
1543                    },
1544                    "end": {
1545                      "line": 65,
1546                      "column": 18,
1547                      "program": "test_module.ts"
1548                    }
1549                  }
1550                }
1551              ],
1552              "kind": "var",
1553              "loc": {
1554                "start": {
1555                  "line": 65,
1556                  "column": 13,
1557                  "program": "test_module.ts"
1558                },
1559                "end": {
1560                  "line": 65,
1561                  "column": 19,
1562                  "program": "test_module.ts"
1563                }
1564              }
1565            },
1566            {
1567              "type": "VariableDeclaration",
1568              "declarations": [
1569                {
1570                  "type": "VariableDeclarator",
1571                  "id": {
1572                    "type": "Identifier",
1573                    "name": "c",
1574                    "decorators": [],
1575                    "loc": {
1576                      "start": {
1577                        "line": 66,
1578                        "column": 9,
1579                        "program": "test_module.ts"
1580                      },
1581                      "end": {
1582                        "line": 66,
1583                        "column": 10,
1584                        "program": "test_module.ts"
1585                      }
1586                    }
1587                  },
1588                  "init": null,
1589                  "loc": {
1590                    "start": {
1591                      "line": 66,
1592                      "column": 9,
1593                      "program": "test_module.ts"
1594                    },
1595                    "end": {
1596                      "line": 66,
1597                      "column": 10,
1598                      "program": "test_module.ts"
1599                    }
1600                  }
1601                }
1602              ],
1603              "kind": "var",
1604              "loc": {
1605                "start": {
1606                  "line": 66,
1607                  "column": 5,
1608                  "program": "test_module.ts"
1609                },
1610                "end": {
1611                  "line": 66,
1612                  "column": 11,
1613                  "program": "test_module.ts"
1614                }
1615              }
1616            }
1617          ],
1618          "loc": {
1619            "start": {
1620              "line": 63,
1621              "column": 23,
1622              "program": "test_module.ts"
1623            },
1624            "end": {
1625              "line": 67,
1626              "column": 2,
1627              "program": "test_module.ts"
1628            }
1629          }
1630        },
1631        "global": false,
1632        "loc": {
1633          "start": {
1634            "line": 63,
1635            "column": 8,
1636            "program": "test_module.ts"
1637          },
1638          "end": {
1639            "line": 69,
1640            "column": 8,
1641            "program": "test_module.ts"
1642          }
1643        }
1644      },
1645      "source": null,
1646      "specifiers": [],
1647      "loc": {
1648        "start": {
1649          "line": 63,
1650          "column": 1,
1651          "program": "test_module.ts"
1652        },
1653        "end": {
1654          "line": 69,
1655          "column": 8,
1656          "program": "test_module.ts"
1657        }
1658      }
1659    },
1660    {
1661      "type": "TSModuleDeclaration",
1662      "id": {
1663        "type": "Identifier",
1664        "name": "module3",
1665        "decorators": [],
1666        "loc": {
1667          "start": {
1668            "line": 69,
1669            "column": 16,
1670            "program": "test_module.ts"
1671          },
1672          "end": {
1673            "line": 69,
1674            "column": 23,
1675            "program": "test_module.ts"
1676          }
1677        }
1678      },
1679      "body": {
1680        "type": "TSModuleBlock",
1681        "body": [
1682          {
1683            "type": "VariableDeclaration",
1684            "declarations": [
1685              {
1686                "type": "VariableDeclarator",
1687                "id": {
1688                  "type": "Identifier",
1689                  "name": "b",
1690                  "decorators": [],
1691                  "loc": {
1692                    "start": {
1693                      "line": 70,
1694                      "column": 9,
1695                      "program": "test_module.ts"
1696                    },
1697                    "end": {
1698                      "line": 70,
1699                      "column": 10,
1700                      "program": "test_module.ts"
1701                    }
1702                  }
1703                },
1704                "init": null,
1705                "loc": {
1706                  "start": {
1707                    "line": 70,
1708                    "column": 9,
1709                    "program": "test_module.ts"
1710                  },
1711                  "end": {
1712                    "line": 70,
1713                    "column": 10,
1714                    "program": "test_module.ts"
1715                  }
1716                }
1717              }
1718            ],
1719            "kind": "var",
1720            "loc": {
1721              "start": {
1722                "line": 70,
1723                "column": 5,
1724                "program": "test_module.ts"
1725              },
1726              "end": {
1727                "line": 70,
1728                "column": 11,
1729                "program": "test_module.ts"
1730              }
1731            }
1732          }
1733        ],
1734        "loc": {
1735          "start": {
1736            "line": 69,
1737            "column": 24,
1738            "program": "test_module.ts"
1739          },
1740          "end": {
1741            "line": 71,
1742            "column": 2,
1743            "program": "test_module.ts"
1744          }
1745        }
1746      },
1747      "global": false,
1748      "loc": {
1749        "start": {
1750          "line": 69,
1751          "column": 9,
1752          "program": "test_module.ts"
1753        },
1754        "end": {
1755          "line": 73,
1756          "column": 7,
1757          "program": "test_module.ts"
1758        }
1759      }
1760    },
1761    {
1762      "type": "ExportNamedDeclaration",
1763      "declaration": {
1764        "type": "TSModuleDeclaration",
1765        "id": {
1766          "type": "Identifier",
1767          "name": "module4",
1768          "decorators": [],
1769          "loc": {
1770            "start": {
1771              "line": 73,
1772              "column": 23,
1773              "program": "test_module.ts"
1774            },
1775            "end": {
1776              "line": 73,
1777              "column": 30,
1778              "program": "test_module.ts"
1779            }
1780          }
1781        },
1782        "body": {
1783          "type": "TSModuleBlock",
1784          "body": [
1785            {
1786              "type": "VariableDeclaration",
1787              "declarations": [
1788                {
1789                  "type": "VariableDeclarator",
1790                  "id": {
1791                    "type": "Identifier",
1792                    "name": "b",
1793                    "decorators": [],
1794                    "loc": {
1795                      "start": {
1796                        "line": 74,
1797                        "column": 9,
1798                        "program": "test_module.ts"
1799                      },
1800                      "end": {
1801                        "line": 74,
1802                        "column": 10,
1803                        "program": "test_module.ts"
1804                      }
1805                    }
1806                  },
1807                  "init": null,
1808                  "loc": {
1809                    "start": {
1810                      "line": 74,
1811                      "column": 9,
1812                      "program": "test_module.ts"
1813                    },
1814                    "end": {
1815                      "line": 74,
1816                      "column": 10,
1817                      "program": "test_module.ts"
1818                    }
1819                  }
1820                }
1821              ],
1822              "kind": "var",
1823              "loc": {
1824                "start": {
1825                  "line": 74,
1826                  "column": 5,
1827                  "program": "test_module.ts"
1828                },
1829                "end": {
1830                  "line": 74,
1831                  "column": 11,
1832                  "program": "test_module.ts"
1833                }
1834              }
1835            }
1836          ],
1837          "loc": {
1838            "start": {
1839              "line": 73,
1840              "column": 31,
1841              "program": "test_module.ts"
1842            },
1843            "end": {
1844              "line": 75,
1845              "column": 2,
1846              "program": "test_module.ts"
1847            }
1848          }
1849        },
1850        "global": false,
1851        "loc": {
1852          "start": {
1853            "line": 73,
1854            "column": 16,
1855            "program": "test_module.ts"
1856          },
1857          "end": {
1858            "line": 77,
1859            "column": 8,
1860            "program": "test_module.ts"
1861          }
1862        }
1863      },
1864      "source": null,
1865      "specifiers": [],
1866      "loc": {
1867        "start": {
1868          "line": 73,
1869          "column": 1,
1870          "program": "test_module.ts"
1871        },
1872        "end": {
1873          "line": 77,
1874          "column": 8,
1875          "program": "test_module.ts"
1876        }
1877      }
1878    },
1879    {
1880      "type": "TSModuleDeclaration",
1881      "id": {
1882        "type": "StringLiteral",
1883        "value": "foo",
1884        "loc": {
1885          "start": {
1886            "line": 77,
1887            "column": 16,
1888            "program": "test_module.ts"
1889          },
1890          "end": {
1891            "line": 77,
1892            "column": 21,
1893            "program": "test_module.ts"
1894          }
1895        }
1896      },
1897      "body": {
1898        "type": "TSModuleBlock",
1899        "body": [
1900          {
1901            "type": "TSImportEqualsDeclaration",
1902            "id": {
1903              "type": "Identifier",
1904              "name": "a",
1905              "decorators": [],
1906              "loc": {
1907                "start": {
1908                  "line": 78,
1909                  "column": 19,
1910                  "program": "test_module.ts"
1911                },
1912                "end": {
1913                  "line": 78,
1914                  "column": 20,
1915                  "program": "test_module.ts"
1916                }
1917              }
1918            },
1919            "moduleReference": {
1920              "type": "TSExternalModuleReference",
1921              "expression": {
1922                "type": "StringLiteral",
1923                "value": "bar",
1924                "loc": {
1925                  "start": {
1926                    "line": 78,
1927                    "column": 31,
1928                    "program": "test_module.ts"
1929                  },
1930                  "end": {
1931                    "line": 78,
1932                    "column": 36,
1933                    "program": "test_module.ts"
1934                  }
1935                }
1936              },
1937              "loc": {
1938                "start": {
1939                  "line": 78,
1940                  "column": 23,
1941                  "program": "test_module.ts"
1942                },
1943                "end": {
1944                  "line": 78,
1945                  "column": 37,
1946                  "program": "test_module.ts"
1947                }
1948              }
1949            },
1950            "isExport": true,
1951            "loc": {
1952              "start": {
1953                "line": 78,
1954                "column": 5,
1955                "program": "test_module.ts"
1956              },
1957              "end": {
1958                "line": 78,
1959                "column": 38,
1960                "program": "test_module.ts"
1961              }
1962            }
1963          },
1964          {
1965            "type": "TSImportEqualsDeclaration",
1966            "id": {
1967              "type": "Identifier",
1968              "name": "b",
1969              "decorators": [],
1970              "loc": {
1971                "start": {
1972                  "line": 79,
1973                  "column": 12,
1974                  "program": "test_module.ts"
1975                },
1976                "end": {
1977                  "line": 79,
1978                  "column": 13,
1979                  "program": "test_module.ts"
1980                }
1981              }
1982            },
1983            "moduleReference": {
1984              "type": "TSExternalModuleReference",
1985              "expression": {
1986                "type": "StringLiteral",
1987                "value": "bar",
1988                "loc": {
1989                  "start": {
1990                    "line": 79,
1991                    "column": 24,
1992                    "program": "test_module.ts"
1993                  },
1994                  "end": {
1995                    "line": 79,
1996                    "column": 29,
1997                    "program": "test_module.ts"
1998                  }
1999                }
2000              },
2001              "loc": {
2002                "start": {
2003                  "line": 79,
2004                  "column": 16,
2005                  "program": "test_module.ts"
2006                },
2007                "end": {
2008                  "line": 79,
2009                  "column": 30,
2010                  "program": "test_module.ts"
2011                }
2012              }
2013            },
2014            "isExport": false,
2015            "loc": {
2016              "start": {
2017                "line": 79,
2018                "column": 5,
2019                "program": "test_module.ts"
2020              },
2021              "end": {
2022                "line": 79,
2023                "column": 31,
2024                "program": "test_module.ts"
2025              }
2026            }
2027          },
2028          {
2029            "type": "TSImportEqualsDeclaration",
2030            "id": {
2031              "type": "Identifier",
2032              "name": "c",
2033              "decorators": [],
2034              "loc": {
2035                "start": {
2036                  "line": 80,
2037                  "column": 12,
2038                  "program": "test_module.ts"
2039                },
2040                "end": {
2041                  "line": 80,
2042                  "column": 13,
2043                  "program": "test_module.ts"
2044                }
2045              }
2046            },
2047            "moduleReference": {
2048              "type": "Identifier",
2049              "name": "require",
2050              "decorators": [],
2051              "loc": {
2052                "start": {
2053                  "line": 80,
2054                  "column": 16,
2055                  "program": "test_module.ts"
2056                },
2057                "end": {
2058                  "line": 80,
2059                  "column": 23,
2060                  "program": "test_module.ts"
2061                }
2062              }
2063            },
2064            "isExport": false,
2065            "loc": {
2066              "start": {
2067                "line": 80,
2068                "column": 5,
2069                "program": "test_module.ts"
2070              },
2071              "end": {
2072                "line": 80,
2073                "column": 24,
2074                "program": "test_module.ts"
2075              }
2076            }
2077          }
2078        ],
2079        "loc": {
2080          "start": {
2081            "line": 77,
2082            "column": 22,
2083            "program": "test_module.ts"
2084          },
2085          "end": {
2086            "line": 81,
2087            "column": 2,
2088            "program": "test_module.ts"
2089          }
2090        }
2091      },
2092      "global": false,
2093      "loc": {
2094        "start": {
2095          "line": 77,
2096          "column": 9,
2097          "program": "test_module.ts"
2098        },
2099        "end": {
2100          "line": 82,
2101          "column": 1,
2102          "program": "test_module.ts"
2103        }
2104      }
2105    }
2106  ],
2107  "loc": {
2108    "start": {
2109      "line": 1,
2110      "column": 1,
2111      "program": "test_module.ts"
2112    },
2113    "end": {
2114      "line": 82,
2115      "column": 1,
2116      "program": "test_module.ts"
2117    }
2118  }
2119}
2120