25 lines
617 B
Plaintext
25 lines
617 B
Plaintext
BEGIN # example 2 #
|
|
MODE ENUM = [0]CHAR; # something with minimal size #
|
|
MODE APPLE = STRUCT(ENUM apple), BANANA = STRUCT(ENUM banana), CHERRY = STRUCT(ENUM cherry);
|
|
MODE FRUIT = UNION(APPLE, BANANA, CHERRY);
|
|
|
|
OP REPR = (FRUIT f)STRING:
|
|
CASE f IN
|
|
(APPLE):"Apple",
|
|
(BANANA):"Banana",
|
|
(CHERRY):"Cherry"
|
|
OUT
|
|
"?" # uninitalised #
|
|
ESAC;
|
|
|
|
FRUIT x := LOC CHERRY;
|
|
|
|
CASE x IN
|
|
(APPLE):print(("It is an ",REPR x, new line)),
|
|
(BANANA):print(("It is a ",REPR x, new line)),
|
|
(CHERRY):print(("It is a ",REPR x, new line))
|
|
OUT
|
|
SKIP # uninitialised FRUIT #
|
|
ESAC
|
|
END
|