-- CharIO.Mesa -- last edited by Johnsson on Jan 30, 1981 9:56 AM -- last edited by Satterthwaite on December 10, 1982 10:15 am DIRECTORY Format: TYPE USING [NumberFormat], Stream: TYPE USING [Handle], Strings: TYPE USING [String, SubString]; CharIO: DEFINITIONS = { Handle: TYPE = Stream.Handle; -- some control characters Control: PROC [c: CHAR] RETURNS [CHAR] = INLINE { RETURN [VAL[c.ORD-100b]]}; NUL: CHAR = '\000; BS: CHAR = Control['H]; TAB: CHAR = Control['I]; LF: CHAR = Control['J]; FF: CHAR = Control['L]; CR: CHAR = Control['M]; ControlZ: CHAR = Control['Z]; ESC: CHAR = '\033; SP: CHAR = ' ; DEL: CHAR = '\177; -- numerical formats NumberFormat: TYPE = Format.NumberFormat; -- input/output GetChar: PROC [in: Handle] RETURNS [CHAR]; PutChar: PROC [out: Handle, c: CHAR]; GetString: PROC [Handle, Strings.String, PROC [CHAR] RETURNS [BOOL]]; PutString: PROC [Handle, Strings.String]; PutSubString: PROC [Handle, Strings.SubString]; GetID, GetLine: PROC [Handle, Strings.String]; PutLine: PROC [out: Handle, s: Strings.String]; GetNumber: PROC [in: Handle, radix: CARDINAL] RETURNS [UNSPECIFIED]; PutNumber: PROC [Handle, UNSPECIFIED, NumberFormat]; GetOctal: PROC [in: Handle] RETURNS [UNSPECIFIED] = INLINE { RETURN [GetNumber[in, 8]]}; PutOctal: PROC [Handle, UNSPECIFIED]; GetDecimal: PROC [in: Handle] RETURNS [INTEGER] = INLINE { RETURN [GetNumber[in, 10]]}; PutDecimal: PROC [Handle, INTEGER]; }.