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": "TSNumberKeyword", 126 "loc": { 127 "start": { 128 "line": 17, 129 "column": 8 130 }, 131 "end": { 132 "line": 17, 133 "column": 14 134 } 135 } 136 }, 137 "decorators": [], 138 "loc": { 139 "start": { 140 "line": 17, 141 "column": 5 142 }, 143 "end": { 144 "line": 17, 145 "column": 6 146 } 147 } 148 } 149 ], 150 "indexSignatures": [], 151 "loc": { 152 "start": { 153 "line": 16, 154 "column": 17 155 }, 156 "end": { 157 "line": 18, 158 "column": 2 159 } 160 } 161 }, 162 "decorators": [], 163 "isAnnotationDeclaration": true, 164 "loc": { 165 "start": { 166 "line": 16, 167 "column": 2 168 }, 169 "end": { 170 "line": 18, 171 "column": 2 172 } 173 } 174 }, 175 { 176 "type": "ClassDeclaration", 177 "definition": { 178 "id": { 179 "type": "Identifier", 180 "name": "A", 181 "loc": { 182 "start": { 183 "line": 21, 184 "column": 7 185 }, 186 "end": { 187 "line": 21, 188 "column": 8 189 } 190 } 191 }, 192 "superClass": null, 193 "implements": [], 194 "constructor": { 195 "type": "MethodDefinition", 196 "key": { 197 "type": "Identifier", 198 "name": "constructor", 199 "loc": { 200 "start": { 201 "line": 1, 202 "column": 1 203 }, 204 "end": { 205 "line": 1, 206 "column": 1 207 } 208 } 209 }, 210 "kind": "constructor", 211 "static": false, 212 "optional": false, 213 "computed": false, 214 "value": { 215 "type": "FunctionExpression", 216 "function": { 217 "type": "ScriptFunction", 218 "id": null, 219 "generator": false, 220 "async": false, 221 "expression": false, 222 "params": [], 223 "body": { 224 "type": "BlockStatement", 225 "statements": [], 226 "loc": { 227 "start": { 228 "line": 1, 229 "column": 1 230 }, 231 "end": { 232 "line": 1, 233 "column": 1 234 } 235 } 236 }, 237 "loc": { 238 "start": { 239 "line": 1, 240 "column": 1 241 }, 242 "end": { 243 "line": 1, 244 "column": 1 245 } 246 } 247 }, 248 "loc": { 249 "start": { 250 "line": 1, 251 "column": 1 252 }, 253 "end": { 254 "line": 1, 255 "column": 1 256 } 257 } 258 }, 259 "overloads": [], 260 "decorators": [], 261 "annotations": [ 262 { 263 "type": "Annotation", 264 "expression": { 265 "type": "CallExpression", 266 "callee": { 267 "type": "Identifier", 268 "name": "Anno", 269 "loc": { 270 "start": { 271 "line": 20, 272 "column": 3 273 }, 274 "end": { 275 "line": 20, 276 "column": 7 277 } 278 } 279 }, 280 "arguments": [ 281 { 282 "type": "ObjectExpression", 283 "properties": [ 284 { 285 "type": "Property", 286 "method": false, 287 "shorthand": false, 288 "computed": false, 289 "key": { 290 "type": "Identifier", 291 "name": "a", 292 "loc": { 293 "start": { 294 "line": 20, 295 "column": 9 296 }, 297 "end": { 298 "line": 20, 299 "column": 10 300 } 301 } 302 }, 303 "value": { 304 "type": "NumberLiteral", 305 "value": 42, 306 "loc": { 307 "start": { 308 "line": 20, 309 "column": 13 310 }, 311 "end": { 312 "line": 20, 313 "column": 15 314 } 315 } 316 }, 317 "kind": "init", 318 "loc": { 319 "start": { 320 "line": 20, 321 "column": 9 322 }, 323 "end": { 324 "line": 20, 325 "column": 15 326 } 327 } 328 } 329 ], 330 "loc": { 331 "start": { 332 "line": 20, 333 "column": 8 334 }, 335 "end": { 336 "line": 20, 337 "column": 16 338 } 339 } 340 } 341 ], 342 "optional": false, 343 "loc": { 344 "start": { 345 "line": 20, 346 "column": 3 347 }, 348 "end": { 349 "line": 20, 350 "column": 17 351 } 352 } 353 }, 354 "name": "Anno", 355 "isImported": false, 356 "loc": { 357 "start": { 358 "line": 20, 359 "column": 1 360 }, 361 "end": { 362 "line": 20, 363 "column": 17 364 } 365 } 366 } 367 ], 368 "loc": { 369 "start": { 370 "line": 21, 371 "column": 1 372 }, 373 "end": { 374 "line": 24, 375 "column": 2 376 } 377 } 378 }, 379 "body": [ 380 { 381 "type": "MethodDefinition", 382 "key": { 383 "type": "Identifier", 384 "name": "foo", 385 "loc": { 386 "start": { 387 "line": 23, 388 "column": 5 389 }, 390 "end": { 391 "line": 23, 392 "column": 8 393 } 394 } 395 }, 396 "kind": "method", 397 "static": false, 398 "optional": false, 399 "computed": false, 400 "value": { 401 "type": "FunctionExpression", 402 "function": { 403 "type": "ScriptFunction", 404 "id": null, 405 "generator": false, 406 "async": false, 407 "expression": false, 408 "params": [], 409 "body": { 410 "type": "BlockStatement", 411 "statements": [], 412 "loc": { 413 "start": { 414 "line": 23, 415 "column": 11 416 }, 417 "end": { 418 "line": 23, 419 "column": 13 420 } 421 } 422 }, 423 "loc": { 424 "start": { 425 "line": 23, 426 "column": 8 427 }, 428 "end": { 429 "line": 23, 430 "column": 13 431 } 432 } 433 }, 434 "loc": { 435 "start": { 436 "line": 23, 437 "column": 8 438 }, 439 "end": { 440 "line": 23, 441 "column": 13 442 } 443 } 444 }, 445 "overloads": [], 446 "decorators": [], 447 "annotations": [ 448 { 449 "type": "Annotation", 450 "expression": { 451 "type": "CallExpression", 452 "callee": { 453 "type": "Identifier", 454 "name": "Anno", 455 "loc": { 456 "start": { 457 "line": 22, 458 "column": 7 459 }, 460 "end": { 461 "line": 22, 462 "column": 11 463 } 464 } 465 }, 466 "arguments": [ 467 { 468 "type": "ObjectExpression", 469 "properties": [ 470 { 471 "type": "Property", 472 "method": false, 473 "shorthand": false, 474 "computed": false, 475 "key": { 476 "type": "Identifier", 477 "name": "a", 478 "loc": { 479 "start": { 480 "line": 22, 481 "column": 13 482 }, 483 "end": { 484 "line": 22, 485 "column": 14 486 } 487 } 488 }, 489 "value": { 490 "type": "NumberLiteral", 491 "value": 314, 492 "loc": { 493 "start": { 494 "line": 22, 495 "column": 17 496 }, 497 "end": { 498 "line": 22, 499 "column": 20 500 } 501 } 502 }, 503 "kind": "init", 504 "loc": { 505 "start": { 506 "line": 22, 507 "column": 13 508 }, 509 "end": { 510 "line": 22, 511 "column": 20 512 } 513 } 514 } 515 ], 516 "loc": { 517 "start": { 518 "line": 22, 519 "column": 12 520 }, 521 "end": { 522 "line": 22, 523 "column": 21 524 } 525 } 526 } 527 ], 528 "optional": false, 529 "loc": { 530 "start": { 531 "line": 22, 532 "column": 7 533 }, 534 "end": { 535 "line": 22, 536 "column": 22 537 } 538 } 539 }, 540 "name": "Anno", 541 "isImported": false, 542 "loc": { 543 "start": { 544 "line": 22, 545 "column": 5 546 }, 547 "end": { 548 "line": 22, 549 "column": 22 550 } 551 } 552 } 553 ], 554 "loc": { 555 "start": { 556 "line": 22, 557 "column": 5 558 }, 559 "end": { 560 "line": 23, 561 "column": 13 562 } 563 } 564 } 565 ], 566 "indexSignatures": [], 567 "loc": { 568 "start": { 569 "line": 21, 570 "column": 9 571 }, 572 "end": { 573 "line": 24, 574 "column": 2 575 } 576 } 577 }, 578 "decorators": [], 579 "isAnnotationDeclaration": false, 580 "loc": { 581 "start": { 582 "line": 21, 583 "column": 1 584 }, 585 "end": { 586 "line": 24, 587 "column": 2 588 } 589 } 590 } 591 ], 592 "loc": { 593 "start": { 594 "line": 1, 595 "column": 1 596 }, 597 "end": { 598 "line": 24, 599 "column": 2 600 } 601 } 602} 603