# Print statement 1

__test statement:
    print("he \" llo", a, "b")
end

==>

SourceFile(
    TestStatement(
        PrintStatement(
            String,
            Reference,
            String,
        )
    )
)


# If Statement 1

__test statement:
    if a > 1:
        return 1
    else:
        return 2
    end
end

==>

SourceFile(
    TestStatement(
        IfStatement(
            BinaryExpression(Reference, ">", Integer)
            ReturnStatement(Integer)
            ElseSection(
                ReturnStatement(Integer)
            )
        )
    )
)

# If Statement 2

__test statement:
    if a > 1:
        return 1
    elif a < 1:
        return 0
    else:
        return 2
    end
end

==>

SourceFile(
    TestStatement(
        IfStatement(
            BinaryExpression(Reference, ">", Integer)
            ReturnStatement(Integer)
            ElifSection(
                BinaryExpression(Reference, Integer)
                ReturnStatement(Integer)
            )
            ElseSection(
                ReturnStatement(Integer)
            )
        )
    )
)

# Switch case 1

__test statement:
    switch a:
        case 1:
            return 1
        case 2:
            return 2
        default:
            return 3
    end
end

==>

SourceFile(
    TestStatement(
        SwitchStatement(
            Reference
            CaseSection(
                Integer
                ReturnStatement(Integer)
            )
            CaseSection(
                Integer
                ReturnStatement(Integer)
            )
            DefaultSection(
                ReturnStatement(Integer)
            )
        )
    )
)
