DefinitionTree { definitions: [ Function( FunctionDefinition { comments: CommentGroup { comments: [], }, attributes: [], function: Keyword { value: "function", position: 0, }, name: Identifier { position: 9, value: "foo", }, templates: None, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 12, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 13, }, return_type: FunctionLikeReturnTypeDefinition { colon: 14, type_definition: Void( Keyword { value: "void", position: 16, }, ), }, body: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 21, statements: [ Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 27, name: "$a", }, ), equals: 30, right: AsyncOperation( Async { comments: CommentGroup { comments: [], }, async: Keyword { value: "async", position: 32, }, expression: FunctionOperation( Call { comments: CommentGroup { comments: [], }, function: Identifier( Identifier { position: 38, value: "bar", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 41, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 42, }, }, ), }, ), }, ), semicolon: 43, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 50, name: "$b", }, ), equals: 53, right: AsyncOperation( Await { comments: CommentGroup { comments: [], }, await: Keyword { value: "await", position: 55, }, expression: Variable( Variable { position: 61, name: "$a", }, ), }, ), }, ), semicolon: 63, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 70, name: "$c", }, ), equals: 73, right: AsyncOperation( Async { comments: CommentGroup { comments: [], }, async: Keyword { value: "async", position: 75, }, expression: FunctionOperation( Call { comments: CommentGroup { comments: [], }, function: Identifier( Identifier { position: 81, value: "baz", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 84, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 85, }, }, ), }, ), }, ), semicolon: 86, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 92, name: "$d", }, ), equals: 95, right: AsyncOperation( Async { comments: CommentGroup { comments: [], }, async: Keyword { value: "async", position: 97, }, expression: FunctionOperation( Call { comments: CommentGroup { comments: [], }, function: Identifier( Identifier { position: 103, value: "qux", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 106, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 107, }, }, ), }, ), }, ), semicolon: 108, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Tuple( TupleExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 115, elements: CommaSeparated { inner: [ Variable( Variable { position: 116, name: "$e", }, ), Variable( Variable { position: 120, name: "$f", }, ), ], commas: [ 118, ], }, right_parenthesis: 122, }, ), equals: 124, right: AsyncOperation( Concurrently { comments: CommentGroup { comments: [], }, concurrently: Keyword { value: "concurrently", position: 126, }, left_brace: 139, expressions: CommaSeparated { inner: [ AsyncOperation( Await { comments: CommentGroup { comments: [], }, await: Keyword { value: "await", position: 149, }, expression: Variable( Variable { position: 155, name: "$c", }, ), }, ), AsyncOperation( Await { comments: CommentGroup { comments: [], }, await: Keyword { value: "await", position: 167, }, expression: Variable( Variable { position: 173, name: "$d", }, ), }, ), ], commas: [ 157, 175, ], }, right_brace: 181, }, ), }, ), semicolon: 182, }, ), ], right_brace: 184, }, }, ), ], eof: 186, }