A CASE statement has the form:
CASE Expr OF L_1 => S_1 | ... | L_n => S_n ELSE S_0 ENDwhere Expr is an expression whose type is an ordinal type and each L is a list of constant expressions or ranges of constant expressions denoted by "e_1..e_2", which represent the values from e_1 to e_2 inclusive. If e_1 exceeds e_2, the range is empty. It is a static error if the sets represented by any two L's overlap or if the value of any of the constant expressions is not a member of the type of Expr. The "ELSE S_0" is optional.
The statement evaluates Expr. If the resulting value is in any L_i, then S_i is executed. If the value is in no L_i and "ELSE S_0" is present, then it is executed. If the value is in no L_i and "ELSE S_0" is absent, a checked runtime error occurs.