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": 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 "static": false, 232 "readonly": false, 233 "declare": false, 234 "optional": false, 235 "computed": false, 236 "typeAnnotation": { 237 "type": "TSTypeReference", 238 "typeName": { 239 "type": "Identifier", 240 "name": "E", 241 "loc": { 242 "start": { 243 "line": 22, 244 "column": 8 245 }, 246 "end": { 247 "line": 22, 248 "column": 9 249 } 250 } 251 }, 252 "loc": { 253 "start": { 254 "line": 22, 255 "column": 8 256 }, 257 "end": { 258 "line": 22, 259 "column": 9 260 } 261 } 262 }, 263 "decorators": [], 264 "loc": { 265 "start": { 266 "line": 22, 267 "column": 5 268 }, 269 "end": { 270 "line": 22, 271 "column": 6 272 } 273 } 274 } 275 ], 276 "indexSignatures": [], 277 "loc": { 278 "start": { 279 "line": 21, 280 "column": 17 281 }, 282 "end": { 283 "line": 23, 284 "column": 2 285 } 286 } 287 }, 288 "decorators": [], 289 "isAnnotationDeclaration": true, 290 "loc": { 291 "start": { 292 "line": 21, 293 "column": 2 294 }, 295 "end": { 296 "line": 23, 297 "column": 2 298 } 299 } 300 }, 301 { 302 "type": "ClassDeclaration", 303 "definition": { 304 "id": { 305 "type": "Identifier", 306 "name": "A", 307 "loc": { 308 "start": { 309 "line": 26, 310 "column": 7 311 }, 312 "end": { 313 "line": 26, 314 "column": 8 315 } 316 } 317 }, 318 "superClass": null, 319 "implements": [], 320 "constructor": { 321 "type": "MethodDefinition", 322 "key": { 323 "type": "Identifier", 324 "name": "constructor", 325 "loc": { 326 "start": { 327 "line": 1, 328 "column": 1 329 }, 330 "end": { 331 "line": 1, 332 "column": 1 333 } 334 } 335 }, 336 "kind": "constructor", 337 "static": false, 338 "optional": false, 339 "computed": false, 340 "value": { 341 "type": "FunctionExpression", 342 "function": { 343 "type": "ScriptFunction", 344 "id": null, 345 "generator": false, 346 "async": false, 347 "expression": false, 348 "params": [], 349 "body": { 350 "type": "BlockStatement", 351 "statements": [], 352 "loc": { 353 "start": { 354 "line": 1, 355 "column": 1 356 }, 357 "end": { 358 "line": 1, 359 "column": 1 360 } 361 } 362 }, 363 "loc": { 364 "start": { 365 "line": 1, 366 "column": 1 367 }, 368 "end": { 369 "line": 1, 370 "column": 1 371 } 372 } 373 }, 374 "loc": { 375 "start": { 376 "line": 1, 377 "column": 1 378 }, 379 "end": { 380 "line": 1, 381 "column": 1 382 } 383 } 384 }, 385 "overloads": [], 386 "decorators": [], 387 "annotations": [ 388 { 389 "type": "Annotation", 390 "expression": { 391 "type": "CallExpression", 392 "callee": { 393 "type": "Identifier", 394 "name": "Anno", 395 "loc": { 396 "start": { 397 "line": 25, 398 "column": 3 399 }, 400 "end": { 401 "line": 25, 402 "column": 7 403 } 404 } 405 }, 406 "arguments": [ 407 { 408 "type": "ObjectExpression", 409 "properties": [ 410 { 411 "type": "Property", 412 "method": false, 413 "shorthand": false, 414 "computed": false, 415 "key": { 416 "type": "Identifier", 417 "name": "a", 418 "loc": { 419 "start": { 420 "line": 25, 421 "column": 9 422 }, 423 "end": { 424 "line": 25, 425 "column": 10 426 } 427 } 428 }, 429 "value": { 430 "type": "StringLiteral", 431 "value": "Hello", 432 "loc": { 433 "start": { 434 "line": 25, 435 "column": 13 436 }, 437 "end": { 438 "line": 25, 439 "column": 20 440 } 441 } 442 }, 443 "kind": "init", 444 "loc": { 445 "start": { 446 "line": 25, 447 "column": 9 448 }, 449 "end": { 450 "line": 25, 451 "column": 20 452 } 453 } 454 } 455 ], 456 "loc": { 457 "start": { 458 "line": 25, 459 "column": 8 460 }, 461 "end": { 462 "line": 25, 463 "column": 21 464 } 465 } 466 } 467 ], 468 "optional": false, 469 "loc": { 470 "start": { 471 "line": 25, 472 "column": 3 473 }, 474 "end": { 475 "line": 25, 476 "column": 22 477 } 478 } 479 }, 480 "name": "Anno", 481 "isImported": false, 482 "loc": { 483 "start": { 484 "line": 25, 485 "column": 1 486 }, 487 "end": { 488 "line": 25, 489 "column": 22 490 } 491 } 492 } 493 ], 494 "loc": { 495 "start": { 496 "line": 26, 497 "column": 1 498 }, 499 "end": { 500 "line": 29, 501 "column": 2 502 } 503 } 504 }, 505 "body": [ 506 { 507 "type": "MethodDefinition", 508 "key": { 509 "type": "Identifier", 510 "name": "foo", 511 "loc": { 512 "start": { 513 "line": 28, 514 "column": 5 515 }, 516 "end": { 517 "line": 28, 518 "column": 8 519 } 520 } 521 }, 522 "kind": "method", 523 "static": false, 524 "optional": false, 525 "computed": false, 526 "value": { 527 "type": "FunctionExpression", 528 "function": { 529 "type": "ScriptFunction", 530 "id": null, 531 "generator": false, 532 "async": false, 533 "expression": false, 534 "params": [], 535 "body": { 536 "type": "BlockStatement", 537 "statements": [], 538 "loc": { 539 "start": { 540 "line": 28, 541 "column": 11 542 }, 543 "end": { 544 "line": 28, 545 "column": 13 546 } 547 } 548 }, 549 "loc": { 550 "start": { 551 "line": 28, 552 "column": 8 553 }, 554 "end": { 555 "line": 28, 556 "column": 13 557 } 558 } 559 }, 560 "loc": { 561 "start": { 562 "line": 28, 563 "column": 8 564 }, 565 "end": { 566 "line": 28, 567 "column": 13 568 } 569 } 570 }, 571 "overloads": [], 572 "decorators": [], 573 "annotations": [ 574 { 575 "type": "Annotation", 576 "expression": { 577 "type": "CallExpression", 578 "callee": { 579 "type": "Identifier", 580 "name": "Anno", 581 "loc": { 582 "start": { 583 "line": 27, 584 "column": 7 585 }, 586 "end": { 587 "line": 27, 588 "column": 11 589 } 590 } 591 }, 592 "arguments": [ 593 { 594 "type": "ObjectExpression", 595 "properties": [ 596 { 597 "type": "Property", 598 "method": false, 599 "shorthand": false, 600 "computed": false, 601 "key": { 602 "type": "Identifier", 603 "name": "a", 604 "loc": { 605 "start": { 606 "line": 27, 607 "column": 13 608 }, 609 "end": { 610 "line": 27, 611 "column": 14 612 } 613 } 614 }, 615 "value": { 616 "type": "StringLiteral", 617 "value": "world", 618 "loc": { 619 "start": { 620 "line": 27, 621 "column": 17 622 }, 623 "end": { 624 "line": 27, 625 "column": 24 626 } 627 } 628 }, 629 "kind": "init", 630 "loc": { 631 "start": { 632 "line": 27, 633 "column": 13 634 }, 635 "end": { 636 "line": 27, 637 "column": 24 638 } 639 } 640 } 641 ], 642 "loc": { 643 "start": { 644 "line": 27, 645 "column": 12 646 }, 647 "end": { 648 "line": 27, 649 "column": 25 650 } 651 } 652 } 653 ], 654 "optional": false, 655 "loc": { 656 "start": { 657 "line": 27, 658 "column": 7 659 }, 660 "end": { 661 "line": 27, 662 "column": 26 663 } 664 } 665 }, 666 "name": "Anno", 667 "isImported": false, 668 "loc": { 669 "start": { 670 "line": 27, 671 "column": 5 672 }, 673 "end": { 674 "line": 27, 675 "column": 26 676 } 677 } 678 } 679 ], 680 "loc": { 681 "start": { 682 "line": 27, 683 "column": 5 684 }, 685 "end": { 686 "line": 28, 687 "column": 13 688 } 689 } 690 } 691 ], 692 "indexSignatures": [], 693 "loc": { 694 "start": { 695 "line": 26, 696 "column": 9 697 }, 698 "end": { 699 "line": 29, 700 "column": 2 701 } 702 } 703 }, 704 "decorators": [], 705 "isAnnotationDeclaration": false, 706 "loc": { 707 "start": { 708 "line": 26, 709 "column": 1 710 }, 711 "end": { 712 "line": 29, 713 "column": 2 714 } 715 } 716 } 717 ], 718 "loc": { 719 "start": { 720 "line": 1, 721 "column": 1 722 }, 723 "end": { 724 "line": 29, 725 "column": 2 726 } 727 } 728} 729