=================
Print statement 1
=================

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

---

(source_file
    (test_statement
        (print_statement
            (string)
            (reference (identifier))
            (string)
        )
    )
)


==============
If Statement 1
==============

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

---

(source_file
    (test_statement
        (if_statement
            condition: (binary_expression
                left: (reference (identifier))
                right: (integer)
            )
            body: (return_statement (integer))
            else: (else_section
                body: (return_statement (integer))
            )
        )
    )
)

==============
If Statement 2
==============

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

---

(source_file
    (test_statement
        (if_statement
            condition: (binary_expression
                left: (reference (identifier))
                right: (integer)
            )
            body: (return_statement (integer))
            elif: (elif_section
                condition: (binary_expression
                    left: (reference (identifier))
                    right: (integer)
                )
                body: (return_statement (integer))
            )
            else: (else_section
                body: (return_statement (integer))
            )
        )
    )
)

=============
Switch case 1
=============

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

---

(source_file
    (test_statement
        (switch_statement
            (reference (identifier))
            (case_section
                (integer)
                (return_statement (integer))
            )
            (case_section
                (integer)
                (return_statement (integer))
            )
            (default_section
                (return_statement (integer))
            )
        )
    )
)

============
While Loop 1
============

__test statement:
    while b < 100:
        b *= 10;
    end
end

---

(source_file
    (test_statement
        (while_loop
            (binary_expression 
                (reference (identifier))
                (integer)
            )
            (update_statement
                (reference (identifier))
                (integer)
            )
        )
    )
)

