hcl/t/ret-01.hcl
hyung-hwan 758d5e953b
Some checks failed
continuous-integration/drone/push Build is failing
updated multiple test files
2024-01-03 00:45:34 +09:00

36 lines
656 B
HCL

defun repeat(n f) {
while (> n 0) {
f;
set n (- n 1);
};
};
defun test-non-local-ret-1(k) {
repeat 10 (fun() {
set k (+ k 2);
if (= k 28) { return-from-home k };
});
return k;
};
set a (test-non-local-ret-1 20);
if (/= a 28) { printf "ERROR: a must be 28\n" }
else { (printf "OK %d\n" a) };
set a (test-non-local-ret-1 21);
if (/= a 41) { printf "ERROR: a must be 41\n" }
else { printf "OK %d\n" a };
defun ff() { return 999 };
## test a normal block return
set a (ff);
if (/= a 999) { printf "ERROR: a must be 999\n" }
else { printf "OK %d\n" a };
## return from top-level
return 10;
printf "ERROR: this line must not be printed\n";