while
mid := (lo + hi) / 2
if mid == target:
- use Found
+ use .Found
if mid < target:
lo = mid
else
hi = mid
if hi - lo < 1:
lo = mid
- use GiveUp
+ use .GiveUp
use True
do pass
- case Found:
+ case .Found:
print "Yay, I found", target
- case GiveUp:
+ case .GiveUp:
print "Closest I found was", lo
###### output: sayhello,55,33,hello,True
b = b + 1
if 3 * 4 and not True: print "Weird"
+ d:number = .fred
###### output: type_err1
.tmp.code:3:25: error: expected string found number
.tmp.code:6:8: error: Cannot assign to a constant: b
.tmp.code:5:8: info: name was defined as a constant here
.tmp.code:8:11: error: Arithmetic returns number but Boolean expected
+ .tmp.code:9:20: error: expected number found label
+ .tmp.code:9:8: info: variable 'd' was set as number here.
oceani: type error in program - not running.
###### test: type_err2
.tmp.code:33:14: error: field reference on string is not supported
.tmp.code:34:14: error: cannot find requested field in foo
.tmp.code:35:17: error: have string but need number
- .tmp.code:38:29: error: expected number (labels not permitted) found Boolean
+ .tmp.code:38:29: error: expected number found Boolean
oceani: type error in program - not running.
###### test: type_err4