DefinitionTree { definitions: [ Function( FunctionDefinition { comments: CommentGroup { comments: [], }, attributes: [], function: Keyword { value: "function", position: 0, }, name: Identifier { position: 9, value: "main", }, templates: None, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 13, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 14, }, return_type: FunctionLikeReturnTypeDefinition { colon: 15, type_definition: Void( Keyword { value: "void", position: 17, }, ), }, body: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 22, statements: [ Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 28, name: "$foo", }, ), arrow: 32, method: Identifier { position: 34, value: "bar", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 37, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 38, }, }, ), semicolon: 39, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 45, name: "$foo", }, ), arrow: 49, method: Identifier { position: 51, value: "bar", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 54, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 55, }, }, ), arrow: 56, method: Identifier { position: 58, value: "baz", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 61, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 62, }, }, ), semicolon: 63, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: FunctionOperation( Call { comments: CommentGroup { comments: [], }, function: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 69, name: "$foo", }, ), arrow: 73, method: Identifier { position: 75, value: "bar", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 78, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 79, }, }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 80, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 81, }, }, ), semicolon: 82, }, ), ], right_brace: 84, }, }, ), ], eof: 86, }