conditional_statement::= 'if' expression 'then' block [ alternative ] 'end' . alternative ::= 'else' block | 'elsif' expression 'then' block [ alternative ] .
Example: if a > b then res := 1 elsif a = b then res := 0 else res
:= -1 end
A conditional statement is processed by first evaluating its expression, which must hold a result of type BOOL. Depending on this result the block (true) or the alternative (false), if any, are processed.
If the alternative starts with elsif then it is processed as if it
were a conditional statement on its own.