CharIO.Mesa
last edited by Johnsson on Jan 30, 1981 9:56 AM
last edited by Satterthwaite on December 10, 1982 10:15 am
Last Edited by: Maxwell, July 29, 1983 9:26 am
DIRECTORY
ConvertUnsafe: TYPE USING [SubString],
IO: TYPE USING [STREAM];
CharIO: DEFINITIONS = {
Handle: TYPE = IO.STREAM;
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 = RECORD [
base: [2..36], zerofill, unsigned: BOOLEAN, columns: [0..255]];
input/output
GetChar: PROC [in: Handle] RETURNS [CHAR];
PutChar: PROC [out: Handle, c: CHAR];
GetString: PROC [Handle, LONG STRING, PROC [CHAR] RETURNS [BOOL]];
PutString: PROC [Handle, LONG STRING];
PutSubString: PROC [Handle, ConvertUnsafe.SubString];
GetID, GetLine: PROC [Handle, LONG STRING];
PutLine: PROC [out: Handle, s: LONG 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];
}.