<> <> 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]; <> <<{fromTokenProc: FromTokenProc = {value _ CedarScanner.ContentsFromToken[closure, token]};>> <> <<};>> <<>> GetLine: PROC [stream: IO.STREAM] RETURNS[line: Rope.ROPE]; <> WaitUntilCharsAvail: PROC [stream: IO.STREAM]; noInputStream: IO.STREAM; <> END.