1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "ClassDeclaration", 6 "definition": { 7 "id": { 8 "type": "Identifier", 9 "name": "Anno", 10 "loc": { 11 "start": { 12 "line": 16, 13 "column": 12 14 }, 15 "end": { 16 "line": 16, 17 "column": 16 18 } 19 } 20 }, 21 "superClass": null, 22 "implements": [], 23 "constructor": { 24 "type": "MethodDefinition", 25 "key": { 26 "type": "Identifier", 27 "name": "constructor", 28 "loc": { 29 "start": { 30 "line": 1, 31 "column": 1 32 }, 33 "end": { 34 "line": 1, 35 "column": 1 36 } 37 } 38 }, 39 "kind": "constructor", 40 "static": false, 41 "optional": false, 42 "computed": false, 43 "value": { 44 "type": "FunctionExpression", 45 "function": { 46 "type": "ScriptFunction", 47 "id": null, 48 "generator": false, 49 "async": false, 50 "expression": false, 51 "params": [], 52 "body": { 53 "type": "Program", 54 "statements": [], 55 "loc": { 56 "start": { 57 "line": 1, 58 "column": 1 59 }, 60 "end": { 61 "line": 1, 62 "column": 1 63 } 64 } 65 }, 66 "loc": { 67 "start": { 68 "line": 1, 69 "column": 1 70 }, 71 "end": { 72 "line": 1, 73 "column": 1 74 } 75 } 76 }, 77 "loc": { 78 "start": { 79 "line": 1, 80 "column": 1 81 }, 82 "end": { 83 "line": 1, 84 "column": 1 85 } 86 } 87 }, 88 "overloads": [], 89 "decorators": [], 90 "annotations": [], 91 "loc": { 92 "start": { 93 "line": 16, 94 "column": 2 95 }, 96 "end": { 97 "line": 18, 98 "column": 2 99 } 100 } 101 }, 102 "body": [ 103 { 104 "type": "ClassProperty", 105 "key": { 106 "type": "Identifier", 107 "name": "a", 108 "loc": { 109 "start": { 110 "line": 17, 111 "column": 5 112 }, 113 "end": { 114 "line": 17, 115 "column": 6 116 } 117 } 118 }, 119 "static": false, 120 "readonly": false, 121 "declare": false, 122 "optional": false, 123 "computed": false, 124 "typeAnnotation": { 125 "type": "TSArrayType", 126 "elementType": { 127 "type": "TSStringKeyword", 128 "loc": { 129 "start": { 130 "line": 17, 131 "column": 8 132 }, 133 "end": { 134 "line": 17, 135 "column": 14 136 } 137 } 138 }, 139 "loc": { 140 "start": { 141 "line": 17, 142 "column": 8 143 }, 144 "end": { 145 "line": 17, 146 "column": 16 147 } 148 } 149 }, 150 "decorators": [], 151 "loc": { 152 "start": { 153 "line": 17, 154 "column": 5 155 }, 156 "end": { 157 "line": 17, 158 "column": 6 159 } 160 } 161 } 162 ], 163 "indexSignatures": [], 164 "loc": { 165 "start": { 166 "line": 16, 167 "column": 17 168 }, 169 "end": { 170 "line": 18, 171 "column": 2 172 } 173 } 174 }, 175 "decorators": [], 176 "isAnnotationDeclaration": true, 177 "loc": { 178 "start": { 179 "line": 16, 180 "column": 2 181 }, 182 "end": { 183 "line": 18, 184 "column": 2 185 } 186 } 187 }, 188 { 189 "type": "ClassDeclaration", 190 "definition": { 191 "id": { 192 "type": "Identifier", 193 "name": "A", 194 "loc": { 195 "start": { 196 "line": 21, 197 "column": 7 198 }, 199 "end": { 200 "line": 21, 201 "column": 8 202 } 203 } 204 }, 205 "superClass": null, 206 "implements": [], 207 "constructor": { 208 "type": "MethodDefinition", 209 "key": { 210 "type": "Identifier", 211 "name": "constructor", 212 "loc": { 213 "start": { 214 "line": 1, 215 "column": 1 216 }, 217 "end": { 218 "line": 1, 219 "column": 1 220 } 221 } 222 }, 223 "kind": "constructor", 224 "static": false, 225 "optional": false, 226 "computed": false, 227 "value": { 228 "type": "FunctionExpression", 229 "function": { 230 "type": "ScriptFunction", 231 "id": null, 232 "generator": false, 233 "async": false, 234 "expression": false, 235 "params": [], 236 "body": { 237 "type": "BlockStatement", 238 "statements": [], 239 "loc": { 240 "start": { 241 "line": 1, 242 "column": 1 243 }, 244 "end": { 245 "line": 1, 246 "column": 1 247 } 248 } 249 }, 250 "loc": { 251 "start": { 252 "line": 1, 253 "column": 1 254 }, 255 "end": { 256 "line": 1, 257 "column": 1 258 } 259 } 260 }, 261 "loc": { 262 "start": { 263 "line": 1, 264 "column": 1 265 }, 266 "end": { 267 "line": 1, 268 "column": 1 269 } 270 } 271 }, 272 "overloads": [], 273 "decorators": [], 274 "annotations": [ 275 { 276 "type": "Annotation", 277 "expression": { 278 "type": "CallExpression", 279 "callee": { 280 "type": "Identifier", 281 "name": "Anno", 282 "loc": { 283 "start": { 284 "line": 20, 285 "column": 3 286 }, 287 "end": { 288 "line": 20, 289 "column": 7 290 } 291 } 292 }, 293 "arguments": [ 294 { 295 "type": "ObjectExpression", 296 "properties": [ 297 { 298 "type": "Property", 299 "method": false, 300 "shorthand": false, 301 "computed": false, 302 "key": { 303 "type": "Identifier", 304 "name": "a", 305 "loc": { 306 "start": { 307 "line": 20, 308 "column": 9 309 }, 310 "end": { 311 "line": 20, 312 "column": 10 313 } 314 } 315 }, 316 "value": { 317 "type": "ArrayExpression", 318 "elements": [ 319 { 320 "type": "StringLiteral", 321 "value": "hello", 322 "loc": { 323 "start": { 324 "line": 20, 325 "column": 13 326 }, 327 "end": { 328 "line": 20, 329 "column": 20 330 } 331 } 332 }, 333 { 334 "type": "StringLiteral", 335 "value": "world", 336 "loc": { 337 "start": { 338 "line": 20, 339 "column": 22 340 }, 341 "end": { 342 "line": 20, 343 "column": 29 344 } 345 } 346 }, 347 { 348 "type": "StringLiteral", 349 "value": "!", 350 "loc": { 351 "start": { 352 "line": 20, 353 "column": 31 354 }, 355 "end": { 356 "line": 20, 357 "column": 34 358 } 359 } 360 } 361 ], 362 "loc": { 363 "start": { 364 "line": 20, 365 "column": 12 366 }, 367 "end": { 368 "line": 20, 369 "column": 35 370 } 371 } 372 }, 373 "kind": "init", 374 "loc": { 375 "start": { 376 "line": 20, 377 "column": 9 378 }, 379 "end": { 380 "line": 20, 381 "column": 35 382 } 383 } 384 } 385 ], 386 "loc": { 387 "start": { 388 "line": 20, 389 "column": 8 390 }, 391 "end": { 392 "line": 20, 393 "column": 36 394 } 395 } 396 } 397 ], 398 "optional": false, 399 "loc": { 400 "start": { 401 "line": 20, 402 "column": 3 403 }, 404 "end": { 405 "line": 20, 406 "column": 37 407 } 408 } 409 }, 410 "name": "Anno", 411 "isImported": false, 412 "loc": { 413 "start": { 414 "line": 20, 415 "column": 1 416 }, 417 "end": { 418 "line": 20, 419 "column": 37 420 } 421 } 422 } 423 ], 424 "loc": { 425 "start": { 426 "line": 21, 427 "column": 1 428 }, 429 "end": { 430 "line": 24, 431 "column": 2 432 } 433 } 434 }, 435 "body": [ 436 { 437 "type": "MethodDefinition", 438 "key": { 439 "type": "Identifier", 440 "name": "foo", 441 "loc": { 442 "start": { 443 "line": 23, 444 "column": 5 445 }, 446 "end": { 447 "line": 23, 448 "column": 8 449 } 450 } 451 }, 452 "kind": "method", 453 "static": false, 454 "optional": false, 455 "computed": false, 456 "value": { 457 "type": "FunctionExpression", 458 "function": { 459 "type": "ScriptFunction", 460 "id": null, 461 "generator": false, 462 "async": false, 463 "expression": false, 464 "params": [], 465 "body": { 466 "type": "BlockStatement", 467 "statements": [], 468 "loc": { 469 "start": { 470 "line": 23, 471 "column": 11 472 }, 473 "end": { 474 "line": 23, 475 "column": 13 476 } 477 } 478 }, 479 "loc": { 480 "start": { 481 "line": 23, 482 "column": 8 483 }, 484 "end": { 485 "line": 23, 486 "column": 13 487 } 488 } 489 }, 490 "loc": { 491 "start": { 492 "line": 23, 493 "column": 8 494 }, 495 "end": { 496 "line": 23, 497 "column": 13 498 } 499 } 500 }, 501 "overloads": [], 502 "decorators": [], 503 "annotations": [ 504 { 505 "type": "Annotation", 506 "expression": { 507 "type": "CallExpression", 508 "callee": { 509 "type": "Identifier", 510 "name": "Anno", 511 "loc": { 512 "start": { 513 "line": 22, 514 "column": 7 515 }, 516 "end": { 517 "line": 22, 518 "column": 11 519 } 520 } 521 }, 522 "arguments": [ 523 { 524 "type": "ObjectExpression", 525 "properties": [ 526 { 527 "type": "Property", 528 "method": false, 529 "shorthand": false, 530 "computed": false, 531 "key": { 532 "type": "Identifier", 533 "name": "a", 534 "loc": { 535 "start": { 536 "line": 22, 537 "column": 13 538 }, 539 "end": { 540 "line": 22, 541 "column": 14 542 } 543 } 544 }, 545 "value": { 546 "type": "NewExpression", 547 "callee": { 548 "type": "Identifier", 549 "name": "Array", 550 "loc": { 551 "start": { 552 "line": 22, 553 "column": 20 554 }, 555 "end": { 556 "line": 22, 557 "column": 25 558 } 559 } 560 }, 561 "typeParameters": { 562 "type": "TSTypeParameterInstantiation", 563 "params": [ 564 { 565 "type": "TSStringKeyword", 566 "loc": { 567 "start": { 568 "line": 22, 569 "column": 26 570 }, 571 "end": { 572 "line": 22, 573 "column": 32 574 } 575 } 576 } 577 ], 578 "loc": { 579 "start": { 580 "line": 22, 581 "column": 25 582 }, 583 "end": { 584 "line": 22, 585 "column": 33 586 } 587 } 588 }, 589 "arguments": [], 590 "loc": { 591 "start": { 592 "line": 22, 593 "column": 16 594 }, 595 "end": { 596 "line": 22, 597 "column": 35 598 } 599 } 600 }, 601 "kind": "init", 602 "loc": { 603 "start": { 604 "line": 22, 605 "column": 13 606 }, 607 "end": { 608 "line": 22, 609 "column": 35 610 } 611 } 612 } 613 ], 614 "loc": { 615 "start": { 616 "line": 22, 617 "column": 12 618 }, 619 "end": { 620 "line": 22, 621 "column": 36 622 } 623 } 624 } 625 ], 626 "optional": false, 627 "loc": { 628 "start": { 629 "line": 22, 630 "column": 7 631 }, 632 "end": { 633 "line": 22, 634 "column": 37 635 } 636 } 637 }, 638 "name": "Anno", 639 "isImported": false, 640 "loc": { 641 "start": { 642 "line": 22, 643 "column": 5 644 }, 645 "end": { 646 "line": 22, 647 "column": 37 648 } 649 } 650 } 651 ], 652 "loc": { 653 "start": { 654 "line": 22, 655 "column": 5 656 }, 657 "end": { 658 "line": 23, 659 "column": 13 660 } 661 } 662 } 663 ], 664 "indexSignatures": [], 665 "loc": { 666 "start": { 667 "line": 21, 668 "column": 9 669 }, 670 "end": { 671 "line": 24, 672 "column": 2 673 } 674 } 675 }, 676 "decorators": [], 677 "isAnnotationDeclaration": false, 678 "loc": { 679 "start": { 680 "line": 21, 681 "column": 1 682 }, 683 "end": { 684 "line": 24, 685 "column": 2 686 } 687 } 688 } 689 ], 690 "loc": { 691 "start": { 692 "line": 1, 693 "column": 1 694 }, 695 "end": { 696 "line": 24, 697 "column": 2 698 } 699 } 700} 701