Test functions. They don't return anything, so we need to get them to print
###### test list
- oceani_tests += functions
+ oceani_tests += functions func_ret_type
###### test: functions
3 2 . 1 .. done
4 3 . 2 .. 1 ... done
+###### test: func_ret_type
+
+ func double(n:number):number
+ use n+n
+
+ func answer
+ prefix:string
+ suffix:string
+ return string
+ do
+ use prefix ++ suffix
+
+ func noarg_returns
+ return Boolean
+ do
+ use 22/7 == 3.14159
+
+ func main()
+ for j:=10; then j = j - 3; while j > -5:
+ print answer("dou","ble"), j, "is", double(j)
+
+###### output: func_ret_type
+ double 10 is 20
+ double 7 is 14
+ double 4 is 8
+ double 1 is 2
+ double -2 is -4
+
## Test code with syntax errors
Syntax errors aren't handled well yet - the result is almost always a
if test1 == test2:
pass
+ func test4(a:number):string
+ use a * a
+
+ func test5(a:number):string
+ print a
+
###### output: func_err_args
+ .tmp.code:28:14: error: expected string, found none
+ .tmp.code:25:8: error: expected string, found number
.tmp.code:15:14: error: insufficient arguments to function.
.tmp.code:16:14: error: expected number found string
.tmp.code:16:22: error: expected string found number