[
    FullOpeningTag(
        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 {
                                            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 {
                                                        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 {
                                            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 {
                                                        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,
                },
            },
        },
    ),
]
