Control Flow
This topic documents control flow structures in the language.
Simple if Statement
The simple if statement checks the top element on the stack. If this value (<CONDITION>) is truthy (non-zero), the interpreter executes the block inside (<CODE>).
Syntax:
<CONDITION> if
<CODE>
end
Example:
1 if
10 Print
end
0 if
20 Print
end
In this example, only 10 will be printed, as 1 is truthy and 0 is falsy.
Compound if Statement
The compound if statement checks the top element on the stack. If this value (<CONDITION>) is truthy, the interpreter executes the block inside (<CODE>). Otherwise, the interpreter executes the block after else (<OTHERWISE>).
Syntax:
<CONDITION> if
<CODE>
else
<OTHERWISE>
end
Example:
0 if
10 Print
else
20 Print
end
In this example, "20" will be printed because the condition is 0 (falsy).
Loops (loop)
The loop keyword creates an infinite loop.
Use break to exit the loop.
Use continue to jump to the next iteration.
Syntax:
loop
<CODE>
end
Example with if and break:
0 loop
dup Print
dup 10 = if
break
end
1 +
end
This will print 1, 2, 3, 4, 5, 6, 7, 8, 9 and 10 and then exit the loop.