MODULE TSetConst; // SET CONST declarations: a char-range literal, a literal with a char // constant, and a union of two set constants, all folded to static // masks. Exit 42. TYPE CharSet = SET OF CHAR; Colour = (Red, Green, Blue); CS = SET OF Colour; CONST Digits = CharSet{"0".."9"}; Signs = CharSet{'+', '-'}; NumCh = Signs + Digits; (* union of two set constants *) Warm = CS{Red, Blue}; VAR c : CHAR; s : CharSet; col : CS; ExitCode : INTEGER; BEGIN c := '5'; s := Digits; col := Warm; IF (c IN s) AND ('+' IN NumCh) AND ('9' IN NumCh) AND NOT ('z' IN NumCh) AND (Red IN col) AND NOT (Green IN col) THEN ExitCode := 42 ELSE ExitCode := 1 END END TSetConst.