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