| 12345678910111213141516171819202122232425262728293031 |
- DEFINITION MODULE IOChan;
- (* A channel abstraction over the runtime streams and files (an
- ISO-style ChanId). ChanId is opaque: the standard channels wrap
- stdio streams, and OpenRead/OpenWrite wrap a file. A failed open
- returns a closed channel (IsOpen = FALSE); operations on a closed
- channel are safe no-ops (ReadChar returns 0C). *)
- TYPE ChanId;
- (* --- standard channels --- *)
- PROCEDURE StdInChan() : ChanId;
- PROCEDURE StdOutChan() : ChanId;
- PROCEDURE StdErrChan() : ChanId;
- (* --- file channels --- *)
- PROCEDURE OpenRead(VAR name : ARRAY OF CHAR) : ChanId;
- PROCEDURE OpenWrite(VAR name : ARRAY OF CHAR) : ChanId;
- PROCEDURE Close(VAR cid : ChanId);
- PROCEDURE IsOpen(cid : ChanId) : BOOLEAN;
- (* --- operations --- *)
- PROCEDURE ReadChar(cid : ChanId) : CHAR;
- PROCEDURE ReadString(cid : ChanId; VAR s : ARRAY OF CHAR); (* one line *)
- PROCEDURE ReadInt(cid : ChanId) : INTEGER;
- PROCEDURE WriteChar(cid : ChanId; c : CHAR);
- PROCEDURE WriteString(cid : ChanId; VAR s : ARRAY OF CHAR);
- PROCEDURE WriteInt(cid : ChanId; n : INTEGER);
- PROCEDURE WriteLn(cid : ChanId);
- END IOChan.
|