strio.mod 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. IMPLEMENTATION MODULE StrIO;
  2. (* Binds the runtime shim directly. *)
  3. PROCEDURE m2write (VAR s : ARRAY OF CHAR);
  4. EXTERNAL;
  5. PROCEDURE m2writeln;
  6. EXTERNAL;
  7. PROCEDURE m2writechar (c : CHAR);
  8. EXTERNAL;
  9. PROCEDURE m2writeint (n : INTEGER);
  10. EXTERNAL;
  11. PROCEDURE m2readchar () : CHAR;
  12. EXTERNAL;
  13. PROCEDURE m2readint () : INTEGER;
  14. EXTERNAL;
  15. PROCEDURE m2readline (VAR s : ARRAY OF CHAR; max : CARDINAL) : CARDINAL;
  16. EXTERNAL;
  17. PROCEDURE WriteString (s : ARRAY OF CHAR);
  18. BEGIN
  19. m2write(s)
  20. END WriteString;
  21. PROCEDURE WriteLn;
  22. BEGIN
  23. m2writeln
  24. END WriteLn;
  25. PROCEDURE WriteChar (c : CHAR);
  26. BEGIN
  27. m2writechar(c)
  28. END WriteChar;
  29. PROCEDURE WriteInt (n : INTEGER);
  30. BEGIN
  31. m2writeint(n)
  32. END WriteInt;
  33. PROCEDURE WriteCard (n : CARDINAL);
  34. BEGIN
  35. m2writeint(n)
  36. END WriteCard;
  37. PROCEDURE ReadString (VAR s : ARRAY OF CHAR);
  38. VAR n : CARDINAL;
  39. BEGIN
  40. n := m2readline(s, HIGH(s) + 1)
  41. END ReadString;
  42. PROCEDURE ReadChar () : CHAR;
  43. BEGIN
  44. RETURN m2readchar()
  45. END ReadChar;
  46. PROCEDURE ReadInt () : INTEGER;
  47. BEGIN
  48. RETURN m2readint()
  49. END ReadInt;
  50. PROCEDURE ReadCard () : CARDINAL;
  51. BEGIN
  52. RETURN VAL(CARDINAL, m2readint())
  53. END ReadCard;
  54. END StrIO.