wholestr.mod 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. IMPLEMENTATION MODULE WholeStr;
  2. (* Delegates the numeric work to Conversions and maps its status onto
  3. ConvTypes' (identical literal order). *)
  4. IMPORT ConvTypes, Conversions;
  5. FROM ConvTypes IMPORT strAllRight, strOutOfRange, strWrongFormat,
  6. strEmpty;
  7. PROCEDURE Map (cr : Conversions.ConvResults) : ConvTypes.ConvResults;
  8. BEGIN
  9. IF ORD(cr) = 0 THEN RETURN strAllRight
  10. ELSIF ORD(cr) = 1 THEN RETURN strOutOfRange
  11. ELSIF ORD(cr) = 2 THEN RETURN strWrongFormat
  12. ELSE RETURN strEmpty
  13. END
  14. END Map;
  15. PROCEDURE StrToInt (str : ARRAY OF CHAR; VAR int : INTEGER;
  16. VAR res : ConvResults);
  17. BEGIN
  18. int := 0;
  19. res := Map(Conversions.StrToInt(str, int))
  20. END StrToInt;
  21. PROCEDURE IntToStr (int : INTEGER; VAR str : ARRAY OF CHAR);
  22. BEGIN
  23. Conversions.IntToStr(int, str)
  24. END IntToStr;
  25. PROCEDURE StrToCard (str : ARRAY OF CHAR; VAR card : CARDINAL;
  26. VAR res : ConvResults);
  27. BEGIN
  28. card := 0;
  29. res := Map(Conversions.StrToCard(str, card))
  30. END StrToCard;
  31. PROCEDURE CardToStr (card : CARDINAL; VAR str : ARRAY OF CHAR);
  32. BEGIN
  33. Conversions.CardToStr(card, str)
  34. END CardToStr;
  35. END WholeStr.