26 lines
850 B
Text
26 lines
850 B
Text
{
|
|
error = "0";
|
|
fact = { % number num -> number; set error if something is wrong
|
|
"continue = a"
|
|
% continue = "b"
|
|
continue = {} + ("test 1 -ge " + num).syscall;
|
|
[ continue = "0" :
|
|
[ {} + ("test 0 = " + num).syscall # "0" :
|
|
*error = "1";
|
|
]
|
|
^ "1";
|
|
]
|
|
nextnum = { in = *num + "-1"; } + "bc -lq".iosyscall;
|
|
[ nextnum.result = "0" :
|
|
result = { in = { num = **nextnum.out; } + **fact + "*" + *nextnum.out; } + "bc -lq".iosyscall;
|
|
[ result.result = "0" :
|
|
^ result.out;
|
|
]
|
|
]
|
|
*error = "2";
|
|
^ "0";
|
|
}
|
|
value = { num = "5"; } + fact;
|
|
[ error = "0" : { in = "result: " + *value; } + "echo".iosyscall; ]
|
|
[ error # "0" : { in = "error #" + *error; } + "echo".iosyscall; ]
|
|
}
|