File: PrivateIO.mesa
Teitelman on January 20, 1983 5:56 pm
DIRECTORY
CedarScanner USING [GetClosure, Token],
IO USING [STREAM],
Rope USING [ROPE]
;
IOExtras: CEDAR DEFINITIONS =
BEGIN
FromTokenProc: TYPE = PROC[closure: CedarScanner.GetClosure, token: CedarScanner.Token];
GetCedarScannerToken:
PROC [stream:
IO.STREAM, fromTokenProc: FromTokenProc];
reads one token and then calls FromTokenProc on corresponding closure, e.g. GetCedarToken is defined as
{fromTokenProc: FromTokenProc = {value ← CedarScanner.ContentsFromToken[closure, token]};
GetCedarScannerToken[stream, fromTokenProc];
};
GetLine:
PROC [stream:
IO.
STREAM]
RETURNS[line: Rope.
ROPE];
reads characters until next CR, and returns all characters read up to but not including the CR (EOF also acts as a CR). The CR is also read and discarded.
WaitUntilCharsAvail: PROC [stream: IO.STREAM];
noInputStream:
IO.STREAM;
input stream for which CharsAvail is FALSE, EndOf is TRUE, but any attempt to get characters raises IO.StreamClosed.
END.