Allow the control of whether to execute instructions or not according to a computation. Every conditional branch defines its hierarchy level, from the local variables' point of view.
(if [BOOL]
[INSTRUCTION]
)
Executes [INSTRUCTION] if, and only if, [BOOL] yields true.
(if_else [BOOL]
[IF_TRUE = INSTRUCTION]
[IF_FALSE = INSTRUCTION]
)
Executes [IF_TRUE] if [BOOL] yields true, but [IF_FALSE] if it does not.
(cond
([C0 = BOOL] [I0 = INSTRUCTION])
...
([CN = BOOL] [IN = INSTRUCTION])
)
Executes [II], such that [CI] is the first listed boolean to yield true.
(switch [T = COMPUTATION]
([C0 = COMPUTATION] [I0 = INSTRUCTION])
...
([CN = COMPUTATION] [IN = INSTRUCTION])
[DEFAULT = INSTRUCTION]
)
Executes [II], such that [CI] is the first listed computation to be equal
to [T]. Executes [DEFAULT] if there is no such [CI].