[ FullOpeningTag( FullOpeningTagStatement { span: Span { line: 1, column: 1, position: 0, }, }, ), Function( FunctionStatement { comments: CommentGroup { comments: [], }, attributes: [], function: Span { line: 3, column: 1, position: 7, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 3, column: 10, position: 16, }, value: "fib", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 3, column: 13, position: 19, }, parameters: CommaSeparated { inner: [ FunctionParameter { comments: CommentGroup { comments: [], }, name: SimpleVariable { span: Span { line: 3, column: 14, position: 20, }, name: "$n", }, attributes: [], data_type: None, ellipsis: None, default: None, ampersand: None, }, ], commas: [], }, right_parenthesis: Span { line: 3, column: 16, position: 22, }, }, return_type: None, body: FunctionBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 3, column: 18, position: 24, }, statements: [ If( IfStatement { if: Span { line: 4, column: 5, position: 30, }, left_parenthesis: Span { line: 4, column: 8, position: 33, }, condition: ComparisonOperation( LessThan { left: Variable( SimpleVariable( SimpleVariable { span: Span { line: 4, column: 9, position: 34, }, name: "$n", }, ), ), less_than: Span { line: 4, column: 12, position: 37, }, right: Literal( Integer( LiteralInteger { value: "2", span: Span { line: 4, column: 14, position: 39, }, }, ), ), }, ), right_parenthesis: Span { line: 4, column: 15, position: 40, }, body: Statement { statement: Block( BlockStatement { left_brace: Span { line: 4, column: 17, position: 42, }, statements: [ Return( ReturnStatement { return: Span { line: 5, column: 9, position: 52, }, value: Some( Variable( SimpleVariable( SimpleVariable { span: Span { line: 5, column: 16, position: 59, }, name: "$n", }, ), ), ), ending: Semicolon( Span { line: 5, column: 18, position: 61, }, ), }, ), ], right_brace: Span { line: 6, column: 5, position: 67, }, }, ), elseifs: [], else: None, }, }, ), Return( ReturnStatement { return: Span { line: 8, column: 5, position: 74, }, value: Some( ArithmeticOperation( Addition { left: FunctionCall( FunctionCallExpression { target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 8, column: 12, position: 81, }, value: "fib", }, ), ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 8, column: 15, position: 84, }, arguments: [ Positional( PositionalArgument { comments: CommentGroup { comments: [], }, ellipsis: None, value: ArithmeticOperation( Subtraction { left: Variable( SimpleVariable( SimpleVariable { span: Span { line: 8, column: 16, position: 85, }, name: "$n", }, ), ), minus: Span { line: 8, column: 19, position: 88, }, right: Literal( Integer( LiteralInteger { value: "1", span: Span { line: 8, column: 21, position: 90, }, }, ), ), }, ), }, ), ], right_parenthesis: Span { line: 8, column: 22, position: 91, }, }, }, ), plus: Span { line: 8, column: 24, position: 93, }, right: FunctionCall( FunctionCallExpression { target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 8, column: 26, position: 95, }, value: "fib", }, ), ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 8, column: 29, position: 98, }, arguments: [ Positional( PositionalArgument { comments: CommentGroup { comments: [], }, ellipsis: None, value: ArithmeticOperation( Subtraction { left: Variable( SimpleVariable( SimpleVariable { span: Span { line: 8, column: 30, position: 99, }, name: "$n", }, ), ), minus: Span { line: 8, column: 33, position: 102, }, right: Literal( Integer( LiteralInteger { value: "2", span: Span { line: 8, column: 35, position: 104, }, }, ), ), }, ), }, ), ], right_parenthesis: Span { line: 8, column: 36, position: 105, }, }, }, ), }, ), ), ending: Semicolon( Span { line: 8, column: 37, position: 106, }, ), }, ), ], right_brace: Span { line: 9, column: 1, position: 108, }, }, }, ), ]