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