{ "type": "File", "start": 0, "end": 74, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 5, "column": 10 } }, "program": { "type": "Program", "start": 0, "end": 74, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 5, "column": 10 } }, "sourceType": "module", "interpreter": { "type": "InterpreterDirective", "start": 0, "end": 19, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 19 } }, "value": "/usr/bin/env node" }, "body": [ { "type": "ExpressionStatement", "start": 64, "end": 74, "loc": { "start": { "line": 5, "column": 0 }, "end": { "line": 5, "column": 10 } }, "expression": { "type": "CallExpression", "start": 64, "end": 73, "loc": { "start": { "line": 5, "column": 0 }, "end": { "line": 5, "column": 9 } }, "callee": { "type": "Identifier", "start": 64, "end": 67, "loc": { "start": { "line": 5, "column": 0 }, "end": { "line": 5, "column": 3 }, "identifierName": "foo" }, "name": "foo" }, "typeArguments": { "type": "TypeParameterInstantiation", "start": 67, "end": 70, "loc": { "start": { "line": 5, "column": 3 }, "end": { "line": 5, "column": 6 } }, "params": [ { "type": "GenericTypeAnnotation", "start": 68, "end": 69, "loc": { "start": { "line": 5, "column": 4 }, "end": { "line": 5, "column": 5 } }, "typeParameters": null, "id": { "type": "Identifier", "start": 68, "end": 69, "loc": { "start": { "line": 5, "column": 4 }, "end": { "line": 5, "column": 5 }, "identifierName": "x" }, "name": "x" } } ] }, "arguments": [ { "type": "Identifier", "start": 71, "end": 72, "loc": { "start": { "line": 5, "column": 7 }, "end": { "line": 5, "column": 8 }, "identifierName": "y" }, "name": "y" } ] }, "leadingComments": [ { "type": "CommentLine", "value": " arbitrary comment", "start": 34, "end": 54, "loc": { "start": { "line": 3, "column": 0 }, "end": { "line": 3, "column": 20 } } }, { "type": "CommentLine", "value": " @flow", "start": 55, "end": 63, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 4, "column": 8 } } } ] } ], "directives": [ { "type": "Directive", "start": 20, "end": 33, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 2, "column": 13 } }, "value": { "type": "DirectiveLiteral", "start": 20, "end": 32, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 2, "column": 12 } }, "value": "use strict", "extra": { "raw": "'use strict'", "rawValue": "use strict" } }, "trailingComments": [ { "type": "CommentLine", "value": " arbitrary comment", "start": 34, "end": 54, "loc": { "start": { "line": 3, "column": 0 }, "end": { "line": 3, "column": 20 } } }, { "type": "CommentLine", "value": " @flow", "start": 55, "end": 63, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 4, "column": 8 } } } ] } ] }, "comments": [ { "type": "CommentLine", "value": " arbitrary comment", "start": 34, "end": 54, "loc": { "start": { "line": 3, "column": 0 }, "end": { "line": 3, "column": 20 } } }, { "type": "CommentLine", "value": " @flow", "start": 55, "end": 63, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 4, "column": 8 } } } ] }