[
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            3,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    3,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                3,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                3,
                                13,
                            ),
                            expr: ComparisonOperation(
                                Equal {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    3,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        3,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    3,
                                                    20,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                3,
                                22,
                            ),
                        },
                    },
                ],
                end: (
                    3,
                    23,
                ),
            },
        },
        end: (
            3,
            24,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            4,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    4,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                4,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                4,
                                13,
                            ),
                            expr: ComparisonOperation(
                                Identical {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    4,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        4,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    4,
                                                    21,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                4,
                                23,
                            ),
                        },
                    },
                ],
                end: (
                    4,
                    24,
                ),
            },
        },
        end: (
            4,
            25,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            5,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    5,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                5,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                5,
                                13,
                            ),
                            expr: ComparisonOperation(
                                NotEqual {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    5,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        5,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    5,
                                                    20,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                5,
                                22,
                            ),
                        },
                    },
                ],
                end: (
                    5,
                    23,
                ),
            },
        },
        end: (
            5,
            24,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            6,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    6,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                6,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                6,
                                13,
                            ),
                            expr: ComparisonOperation(
                                NotIdentical {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    6,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        6,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    6,
                                                    21,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                6,
                                23,
                            ),
                        },
                    },
                ],
                end: (
                    6,
                    24,
                ),
            },
        },
        end: (
            6,
            25,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            7,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    7,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                7,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                7,
                                13,
                            ),
                            expr: ArithmeticOperation(
                                Addition {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    7,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        7,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    7,
                                                    19,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                7,
                                21,
                            ),
                        },
                    },
                ],
                end: (
                    7,
                    22,
                ),
            },
        },
        end: (
            7,
            23,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            8,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    8,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                8,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                8,
                                13,
                            ),
                            expr: ArithmeticOperation(
                                Subtraction {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    8,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        8,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    8,
                                                    19,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                8,
                                21,
                            ),
                        },
                    },
                ],
                end: (
                    8,
                    22,
                ),
            },
        },
        end: (
            8,
            23,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            9,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    9,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                9,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                9,
                                13,
                            ),
                            expr: ArithmeticOperation(
                                Division {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    9,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        9,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    9,
                                                    19,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                9,
                                21,
                            ),
                        },
                    },
                ],
                end: (
                    9,
                    22,
                ),
            },
        },
        end: (
            9,
            23,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            10,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    10,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                10,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                10,
                                13,
                            ),
                            expr: BitwiseOperation(
                                Xor {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    10,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        10,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    10,
                                                    19,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                10,
                                21,
                            ),
                        },
                    },
                ],
                end: (
                    10,
                    22,
                ),
            },
        },
        end: (
            10,
            23,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            11,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    11,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                11,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                11,
                                13,
                            ),
                            expr: ArithmeticOperation(
                                Multiplication {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    11,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        11,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    11,
                                                    19,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                11,
                                21,
                            ),
                        },
                    },
                ],
                end: (
                    11,
                    22,
                ),
            },
        },
        end: (
            11,
            23,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            12,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    12,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                12,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                12,
                                13,
                            ),
                            expr: BitwiseOperation(
                                RightShift {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    12,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        12,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    12,
                                                    20,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                12,
                                22,
                            ),
                        },
                    },
                ],
                end: (
                    12,
                    23,
                ),
            },
        },
        end: (
            12,
            24,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            13,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    13,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                13,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                13,
                                13,
                            ),
                            expr: BitwiseOperation(
                                LeftShift {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    13,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        13,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    13,
                                                    20,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                13,
                                22,
                            ),
                        },
                    },
                ],
                end: (
                    13,
                    23,
                ),
            },
        },
        end: (
            13,
            24,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            14,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    14,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                14,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                14,
                                13,
                            ),
                            expr: BitwiseOperation(
                                Or {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    14,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        14,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    14,
                                                    19,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                14,
                                21,
                            ),
                        },
                    },
                ],
                end: (
                    14,
                    22,
                ),
            },
        },
        end: (
            14,
            23,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            15,
                            1,
                        ),
                        value: "define",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    15,
                    7,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: LiteralString {
                            span: (
                                15,
                                8,
                            ),
                            value: "a",
                        },
                    },
                    Positional {
                        ellipsis: None,
                        value: Parenthesized {
                            start: (
                                15,
                                13,
                            ),
                            expr: BitwiseOperation(
                                And {
                                    left: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    15,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    span: (
                                        15,
                                        17,
                                    ),
                                    right: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    15,
                                                    19,
                                                ),
                                                name: "b",
                                            },
                                        ),
                                    ),
                                },
                            ),
                            end: (
                                15,
                                21,
                            ),
                        },
                    },
                ],
                end: (
                    15,
                    22,
                ),
            },
        },
        end: (
            15,
            23,
        ),
    },
    Echo {
        values: [
            ArithmeticOperation(
                Multiplication {
                    left: Parenthesized {
                        start: (
                            17,
                            6,
                        ),
                        expr: ArithmeticOperation(
                            Addition {
                                left: Variable(
                                    SimpleVariable(
                                        SimpleVariable {
                                            span: (
                                                17,
                                                7,
                                            ),
                                            name: "a",
                                        },
                                    ),
                                ),
                                span: (
                                    17,
                                    10,
                                ),
                                right: Variable(
                                    SimpleVariable(
                                        SimpleVariable {
                                            span: (
                                                17,
                                                12,
                                            ),
                                            name: "b",
                                        },
                                    ),
                                ),
                            },
                        ),
                        end: (
                            17,
                            14,
                        ),
                    },
                    span: (
                        17,
                        16,
                    ),
                    right: Parenthesized {
                        start: (
                            17,
                            18,
                        ),
                        expr: ArithmeticOperation(
                            Subtraction {
                                left: ArithmeticOperation(
                                    Division {
                                        left: Variable(
                                            SimpleVariable(
                                                SimpleVariable {
                                                    span: (
                                                        17,
                                                        19,
                                                    ),
                                                    name: "c",
                                                },
                                            ),
                                        ),
                                        span: (
                                            17,
                                            22,
                                        ),
                                        right: Variable(
                                            SimpleVariable(
                                                SimpleVariable {
                                                    span: (
                                                        17,
                                                        24,
                                                    ),
                                                    name: "d",
                                                },
                                            ),
                                        ),
                                    },
                                ),
                                span: (
                                    17,
                                    27,
                                ),
                                right: Variable(
                                    BracedVariableVariable(
                                        BracedVariableVariable {
                                            start: (
                                                17,
                                                29,
                                            ),
                                            variable: Ternary {
                                                condition: Concat {
                                                    left: LiteralString {
                                                        span: (
                                                            17,
                                                            31,
                                                        ),
                                                        value: "foo",
                                                    },
                                                    span: (
                                                        17,
                                                        37,
                                                    ),
                                                    right: Variable(
                                                        SimpleVariable(
                                                            SimpleVariable {
                                                                span: (
                                                                    17,
                                                                    39,
                                                                ),
                                                                name: "c",
                                                            },
                                                        ),
                                                    ),
                                                },
                                                then: LiteralInteger {
                                                    span: (
                                                        17,
                                                        44,
                                                    ),
                                                    value: "4",
                                                },
                                                else: LiteralInteger {
                                                    span: (
                                                        17,
                                                        48,
                                                    ),
                                                    value: "3",
                                                },
                                            },
                                            end: (
                                                17,
                                                49,
                                            ),
                                        },
                                    ),
                                ),
                            },
                        ),
                        end: (
                            17,
                            50,
                        ),
                    },
                },
            ),
        ],
    },
]
