============================================
parses return statements
============================================
package main

func main() {
    return
}

func helper() {
    return 1, two, "three"
}
---
(program (package_directive (package_name))
    (func_declaration (var_name) (block_statement
        (return_statement)))
    (func_declaration (var_name) (block_statement
        (return_statement (number) (var_name) (string)))))

============================================
parses variable declaration statements
============================================
package main

func main() {
    x, y := stuff()
    var z = 10
    println(x, y, z)
}
---
(program (package_directive (package_name))
    (func_declaration (var_name) (block_statement
        (declaration_statement (var_name) (var_name) (call_expression (var_name)))
        (var_declaration (var_name) (number))
        (expression_statement (call_expression (var_name) (var_name) (var_name) (var_name))))))

============================================
parses if statements
============================================
package main

func main() {
    if condition1() {
    }

    if condition2() {
    } else {
    }

    if condition3() {
    } else if condition4() {
    }
}
---
(program (package_directive (package_name))
    (func_declaration (var_name) (block_statement
        (if_statement (call_expression (var_name))
            (block_statement))
        (if_statement (call_expression (var_name))
            (block_statement) (block_statement))
        (if_statement (call_expression (var_name))
            (block_statement)
            (if_statement (call_expression (var_name))
                (block_statement))))))

=============================================
parses range statements
=============================================
package main

func main() {
    for k := range theMap() {
        println(k)
    }

    for k, v := range theMap() {
        println(k, v)
    }
}
---
(program (package_directive (package_name))
    (func_declaration (var_name) (block_statement
        (range_statement (var_name) (call_expression (var_name)) (block_statement
            (expression_statement (call_expression (var_name) (var_name)))))
        (range_statement (var_name) (var_name) (call_expression (var_name)) (block_statement
            (expression_statement (call_expression (var_name) (var_name) (var_name))))))))