t_enum.mod 647 B

1234567891011121314151617181920
  1. MODULE TEnum;
  2. (* Enumeration literals in expressions, CASE labels, CONST and as a
  3. parameter type. Exit 15. *)
  4. VAR ExitCode : INTEGER;
  5. TYPE Color = (red, green, blue);
  6. CONST Favourite = blue;
  7. PROCEDURE Name(c : Color) : INTEGER;
  8. BEGIN
  9. CASE c OF
  10. red: RETURN 0
  11. | green: RETURN 1
  12. | blue: RETURN 2
  13. END
  14. END Name;
  15. BEGIN
  16. IF Name(blue) = 2 THEN ExitCode := ExitCode + 1 ELSE ExitCode := 100 END;
  17. IF Name(Favourite) = 2 THEN ExitCode := ExitCode + 2 ELSE ExitCode := 100 END;
  18. IF Favourite = blue THEN ExitCode := ExitCode + 4 ELSE ExitCode := 100 END;
  19. IF red < green THEN ExitCode := ExitCode + 8 ELSE ExitCode := 100 END
  20. END TEnum.