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": "NumberLiteral", 39 "value": 1, 40 "loc": { 41 "start": { 42 "line": 17, 43 "column": 9 44 }, 45 "end": { 46 "line": 17, 47 "column": 10 48 } 49 } 50 }, 51 "loc": { 52 "start": { 53 "line": 17, 54 "column": 9 55 }, 56 "end": { 57 "line": 17, 58 "column": 11 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": "NumberLiteral", 80 "value": 2, 81 "loc": { 82 "start": { 83 "line": 18, 84 "column": 9 85 }, 86 "end": { 87 "line": 18, 88 "column": 10 89 } 90 } 91 }, 92 "loc": { 93 "start": { 94 "line": 18, 95 "column": 9 96 }, 97 "end": { 98 "line": 18, 99 "column": 11 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": 16 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": "NewExpression", 233 "callee": { 234 "type": "Identifier", 235 "name": "Array", 236 "loc": { 237 "start": { 238 "line": 22, 239 "column": 18 240 }, 241 "end": { 242 "line": 22, 243 "column": 23 244 } 245 } 246 }, 247 "typeParameters": { 248 "type": "TSTypeParameterInstantiation", 249 "params": [ 250 { 251 "type": "TSTypeReference", 252 "typeName": { 253 "type": "Identifier", 254 "name": "E", 255 "loc": { 256 "start": { 257 "line": 22, 258 "column": 24 259 }, 260 "end": { 261 "line": 22, 262 "column": 25 263 } 264 } 265 }, 266 "loc": { 267 "start": { 268 "line": 22, 269 "column": 24 270 }, 271 "end": { 272 "line": 22, 273 "column": 25 274 } 275 } 276 } 277 ], 278 "loc": { 279 "start": { 280 "line": 22, 281 "column": 23 282 }, 283 "end": { 284 "line": 22, 285 "column": 26 286 } 287 } 288 }, 289 "arguments": [ 290 { 291 "type": "NumberLiteral", 292 "value": 0, 293 "loc": { 294 "start": { 295 "line": 22, 296 "column": 27 297 }, 298 "end": { 299 "line": 22, 300 "column": 28 301 } 302 } 303 } 304 ], 305 "loc": { 306 "start": { 307 "line": 22, 308 "column": 14 309 }, 310 "end": { 311 "line": 22, 312 "column": 29 313 } 314 } 315 }, 316 "static": false, 317 "readonly": false, 318 "declare": false, 319 "optional": false, 320 "computed": false, 321 "typeAnnotation": { 322 "type": "TSArrayType", 323 "elementType": { 324 "type": "TSTypeReference", 325 "typeName": { 326 "type": "Identifier", 327 "name": "E", 328 "loc": { 329 "start": { 330 "line": 22, 331 "column": 8 332 }, 333 "end": { 334 "line": 22, 335 "column": 9 336 } 337 } 338 }, 339 "loc": { 340 "start": { 341 "line": 22, 342 "column": 8 343 }, 344 "end": { 345 "line": 22, 346 "column": 9 347 } 348 } 349 }, 350 "loc": { 351 "start": { 352 "line": 22, 353 "column": 8 354 }, 355 "end": { 356 "line": 22, 357 "column": 11 358 } 359 } 360 }, 361 "decorators": [], 362 "loc": { 363 "start": { 364 "line": 22, 365 "column": 5 366 }, 367 "end": { 368 "line": 22, 369 "column": 29 370 } 371 } 372 } 373 ], 374 "indexSignatures": [], 375 "loc": { 376 "start": { 377 "line": 21, 378 "column": 17 379 }, 380 "end": { 381 "line": 23, 382 "column": 2 383 } 384 } 385 }, 386 "decorators": [], 387 "isAnnotationDeclaration": true, 388 "loc": { 389 "start": { 390 "line": 21, 391 "column": 2 392 }, 393 "end": { 394 "line": 23, 395 "column": 2 396 } 397 } 398 }, 399 { 400 "type": "ClassDeclaration", 401 "definition": { 402 "id": { 403 "type": "Identifier", 404 "name": "A", 405 "loc": { 406 "start": { 407 "line": 26, 408 "column": 7 409 }, 410 "end": { 411 "line": 26, 412 "column": 8 413 } 414 } 415 }, 416 "superClass": null, 417 "implements": [], 418 "constructor": { 419 "type": "MethodDefinition", 420 "key": { 421 "type": "Identifier", 422 "name": "constructor", 423 "loc": { 424 "start": { 425 "line": 1, 426 "column": 1 427 }, 428 "end": { 429 "line": 1, 430 "column": 1 431 } 432 } 433 }, 434 "kind": "constructor", 435 "static": false, 436 "optional": false, 437 "computed": false, 438 "value": { 439 "type": "FunctionExpression", 440 "function": { 441 "type": "ScriptFunction", 442 "id": null, 443 "generator": false, 444 "async": false, 445 "expression": false, 446 "params": [], 447 "body": { 448 "type": "BlockStatement", 449 "statements": [], 450 "loc": { 451 "start": { 452 "line": 1, 453 "column": 1 454 }, 455 "end": { 456 "line": 1, 457 "column": 1 458 } 459 } 460 }, 461 "loc": { 462 "start": { 463 "line": 1, 464 "column": 1 465 }, 466 "end": { 467 "line": 1, 468 "column": 1 469 } 470 } 471 }, 472 "loc": { 473 "start": { 474 "line": 1, 475 "column": 1 476 }, 477 "end": { 478 "line": 1, 479 "column": 1 480 } 481 } 482 }, 483 "overloads": [], 484 "decorators": [], 485 "annotations": [ 486 { 487 "type": "Annotation", 488 "expression": { 489 "type": "CallExpression", 490 "callee": { 491 "type": "Identifier", 492 "name": "__$$ETS_ANNOTATION$$__Anno", 493 "loc": { 494 "start": { 495 "line": 25, 496 "column": 2 497 }, 498 "end": { 499 "line": 25, 500 "column": 28 501 } 502 } 503 }, 504 "arguments": [ 505 { 506 "type": "ObjectExpression", 507 "properties": [ 508 { 509 "type": "Property", 510 "method": false, 511 "shorthand": false, 512 "computed": false, 513 "key": { 514 "type": "Identifier", 515 "name": "a", 516 "loc": { 517 "start": { 518 "line": 25, 519 "column": 30 520 }, 521 "end": { 522 "line": 25, 523 "column": 31 524 } 525 } 526 }, 527 "value": { 528 "type": "ArrayExpression", 529 "elements": [ 530 { 531 "type": "NumberLiteral", 532 "value": 1, 533 "loc": { 534 "start": { 535 "line": 25, 536 "column": 34 537 }, 538 "end": { 539 "line": 25, 540 "column": 35 541 } 542 } 543 }, 544 { 545 "type": "NumberLiteral", 546 "value": 2, 547 "loc": { 548 "start": { 549 "line": 25, 550 "column": 37 551 }, 552 "end": { 553 "line": 25, 554 "column": 38 555 } 556 } 557 }, 558 { 559 "type": "NumberLiteral", 560 "value": 1, 561 "loc": { 562 "start": { 563 "line": 25, 564 "column": 40 565 }, 566 "end": { 567 "line": 25, 568 "column": 41 569 } 570 } 571 } 572 ], 573 "loc": { 574 "start": { 575 "line": 25, 576 "column": 33 577 }, 578 "end": { 579 "line": 25, 580 "column": 42 581 } 582 } 583 }, 584 "kind": "init", 585 "loc": { 586 "start": { 587 "line": 25, 588 "column": 30 589 }, 590 "end": { 591 "line": 25, 592 "column": 42 593 } 594 } 595 } 596 ], 597 "loc": { 598 "start": { 599 "line": 25, 600 "column": 29 601 }, 602 "end": { 603 "line": 25, 604 "column": 43 605 } 606 } 607 } 608 ], 609 "optional": false, 610 "loc": { 611 "start": { 612 "line": 25, 613 "column": 2 614 }, 615 "end": { 616 "line": 25, 617 "column": 44 618 } 619 } 620 }, 621 "name": "Anno", 622 "isImported": false, 623 "loc": { 624 "start": { 625 "line": 25, 626 "column": 1 627 }, 628 "end": { 629 "line": 25, 630 "column": 44 631 } 632 } 633 } 634 ], 635 "loc": { 636 "start": { 637 "line": 26, 638 "column": 1 639 }, 640 "end": { 641 "line": 29, 642 "column": 2 643 } 644 } 645 }, 646 "body": [ 647 { 648 "type": "MethodDefinition", 649 "key": { 650 "type": "Identifier", 651 "name": "foo", 652 "loc": { 653 "start": { 654 "line": 28, 655 "column": 5 656 }, 657 "end": { 658 "line": 28, 659 "column": 8 660 } 661 } 662 }, 663 "kind": "method", 664 "static": false, 665 "optional": false, 666 "computed": false, 667 "value": { 668 "type": "FunctionExpression", 669 "function": { 670 "type": "ScriptFunction", 671 "id": null, 672 "generator": false, 673 "async": false, 674 "expression": false, 675 "params": [], 676 "body": { 677 "type": "BlockStatement", 678 "statements": [], 679 "loc": { 680 "start": { 681 "line": 28, 682 "column": 11 683 }, 684 "end": { 685 "line": 28, 686 "column": 13 687 } 688 } 689 }, 690 "loc": { 691 "start": { 692 "line": 28, 693 "column": 8 694 }, 695 "end": { 696 "line": 28, 697 "column": 13 698 } 699 } 700 }, 701 "loc": { 702 "start": { 703 "line": 28, 704 "column": 8 705 }, 706 "end": { 707 "line": 28, 708 "column": 13 709 } 710 } 711 }, 712 "overloads": [], 713 "decorators": [], 714 "annotations": [ 715 { 716 "type": "Annotation", 717 "expression": { 718 "type": "CallExpression", 719 "callee": { 720 "type": "Identifier", 721 "name": "__$$ETS_ANNOTATION$$__Anno", 722 "loc": { 723 "start": { 724 "line": 27, 725 "column": 6 726 }, 727 "end": { 728 "line": 27, 729 "column": 32 730 } 731 } 732 }, 733 "arguments": [ 734 { 735 "type": "ObjectExpression", 736 "properties": [ 737 { 738 "type": "Property", 739 "method": false, 740 "shorthand": false, 741 "computed": false, 742 "key": { 743 "type": "Identifier", 744 "name": "a", 745 "loc": { 746 "start": { 747 "line": 27, 748 "column": 34 749 }, 750 "end": { 751 "line": 27, 752 "column": 35 753 } 754 } 755 }, 756 "value": { 757 "type": "NewExpression", 758 "callee": { 759 "type": "Identifier", 760 "name": "Array", 761 "loc": { 762 "start": { 763 "line": 27, 764 "column": 41 765 }, 766 "end": { 767 "line": 27, 768 "column": 46 769 } 770 } 771 }, 772 "typeParameters": { 773 "type": "TSTypeParameterInstantiation", 774 "params": [ 775 { 776 "type": "TSTypeReference", 777 "typeName": { 778 "type": "Identifier", 779 "name": "E", 780 "loc": { 781 "start": { 782 "line": 27, 783 "column": 47 784 }, 785 "end": { 786 "line": 27, 787 "column": 48 788 } 789 } 790 }, 791 "loc": { 792 "start": { 793 "line": 27, 794 "column": 47 795 }, 796 "end": { 797 "line": 27, 798 "column": 48 799 } 800 } 801 } 802 ], 803 "loc": { 804 "start": { 805 "line": 27, 806 "column": 46 807 }, 808 "end": { 809 "line": 27, 810 "column": 49 811 } 812 } 813 }, 814 "arguments": [ 815 { 816 "type": "NumberLiteral", 817 "value": 1, 818 "loc": { 819 "start": { 820 "line": 27, 821 "column": 50 822 }, 823 "end": { 824 "line": 27, 825 "column": 51 826 } 827 } 828 } 829 ], 830 "loc": { 831 "start": { 832 "line": 27, 833 "column": 37 834 }, 835 "end": { 836 "line": 27, 837 "column": 52 838 } 839 } 840 }, 841 "kind": "init", 842 "loc": { 843 "start": { 844 "line": 27, 845 "column": 34 846 }, 847 "end": { 848 "line": 27, 849 "column": 52 850 } 851 } 852 } 853 ], 854 "loc": { 855 "start": { 856 "line": 27, 857 "column": 33 858 }, 859 "end": { 860 "line": 27, 861 "column": 53 862 } 863 } 864 } 865 ], 866 "optional": false, 867 "loc": { 868 "start": { 869 "line": 27, 870 "column": 6 871 }, 872 "end": { 873 "line": 27, 874 "column": 54 875 } 876 } 877 }, 878 "name": "Anno", 879 "isImported": false, 880 "loc": { 881 "start": { 882 "line": 27, 883 "column": 5 884 }, 885 "end": { 886 "line": 27, 887 "column": 54 888 } 889 } 890 } 891 ], 892 "loc": { 893 "start": { 894 "line": 27, 895 "column": 5 896 }, 897 "end": { 898 "line": 28, 899 "column": 13 900 } 901 } 902 } 903 ], 904 "indexSignatures": [], 905 "loc": { 906 "start": { 907 "line": 26, 908 "column": 9 909 }, 910 "end": { 911 "line": 29, 912 "column": 2 913 } 914 } 915 }, 916 "decorators": [], 917 "isAnnotationDeclaration": false, 918 "loc": { 919 "start": { 920 "line": 26, 921 "column": 1 922 }, 923 "end": { 924 "line": 29, 925 "column": 2 926 } 927 } 928 } 929 ], 930 "loc": { 931 "start": { 932 "line": 1, 933 "column": 1 934 }, 935 "end": { 936 "line": 29, 937 "column": 2 938 } 939 } 940} 941