DEFINITION MODULE StdIO ; EXPORT QUALIFIED ProcRead, ProcWrite, Read, Write, PushOutput, PopOutput, GetCurrentOutput, PushInput, PopInput, GetCurrentInput ; TYPE ProcWrite = PROCEDURE (CHAR) ; ProcRead = PROCEDURE (VAR CHAR) ; (* Read - is the generic procedure that all higher application layers should use to receive a character. *) PROCEDURE Read (VAR ch: CHAR) ; (* Write - is the generic procedure that all higher application layers should use to emit a character. *) PROCEDURE Write (ch: CHAR) ; (* PushOutput - pushes the current Write procedure onto a stack, any future references to Write will actually invoke procedure, p. *) PROCEDURE PushOutput (p: ProcWrite) ; (* PopOutput - restores Write to use the previous output procedure. *) PROCEDURE PopOutput ; (* GetCurrentOutput - returns the current output procedure. *) PROCEDURE GetCurrentOutput () : ProcWrite ; (* PushInput - pushes the current Read procedure onto a stack, any future references to Read will actually invoke procedure, p. *) PROCEDURE PushInput (p: ProcRead) ; (* PopInput - restores Write to use the previous output procedure. *) PROCEDURE PopInput ; (* GetCurrentInput - returns the current input procedure. *) PROCEDURE GetCurrentInput () : ProcRead ; END StdIO.