showcase15lib.mod 727 B

123456789101112131415161718192021222324252627282930313233
  1. IMPLEMENTATION MODULE Showcase15Lib;
  2. (* Signatures match the definition exactly (strict 235). *)
  3. IMPORT Conversions;
  4. PROCEDURE InitPoint (VAR p : Point; x, y : INTEGER);
  5. BEGIN
  6. p.x := x;
  7. p.y := y
  8. END InitPoint;
  9. PROCEDURE SumPoint (p : Point) : INTEGER;
  10. BEGIN
  11. RETURN p.x + p.y
  12. END SumPoint;
  13. PROCEDURE AppendInt (VAR s : ARRAY OF CHAR; n : INTEGER);
  14. VAR tmp : ARRAY [0 .. 31] OF CHAR;
  15. i, k : CARDINAL;
  16. BEGIN
  17. Conversions.IntToStr(n, tmp);
  18. (* find the end of s *)
  19. k := 0;
  20. WHILE (k <= HIGH(s)) AND (s[k] # CHR(0)) DO INC(k) END;
  21. i := 0;
  22. WHILE (k < HIGH(s)) AND (tmp[i] # CHR(0)) DO
  23. s[k] := tmp[i];
  24. INC(k); INC(i)
  25. END;
  26. IF k <= HIGH(s) THEN s[k] := CHR(0) END
  27. END AppendInt;
  28. END Showcase15Lib.