| 1234567891011121314151617181920212223 |
- 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.
|