Conditionals

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

(if [BOOL]
   [INSTRUCTION]
)

Executes [INSTRUCTION] if, and only if, [BOOL] yields true.

IF-ELSE

(if_else [BOOL]
   [IF_TRUE = INSTRUCTION]
   [IF_FALSE = INSTRUCTION]
)

Executes [IF_TRUE] if [BOOL] yields true, but [IF_FALSE] if it does not.

COND

(cond
   ([C0 = BOOL] [I0 = INSTRUCTION])
   ...
   ([CN = BOOL] [IN = INSTRUCTION])
)

Executes [II], such that [CI] is the first listed boolean to yield true.

SWITCH

(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].