DEFINITION MODULE Files; (* Sequential files, layered on IOChan (which wraps the runtime streams and files). File is an opaque handle; NIL means the open failed. Text is written/read as descriptor strings; integers as decimal. *) FROM SYSTEM IMPORT ADDRESS; TYPE FileRec; TYPE File = POINTER TO FileRec; PROCEDURE OpenRead(VAR name : ARRAY OF CHAR) : File; PROCEDURE OpenWrite(VAR name : ARRAY OF CHAR) : File; PROCEDURE Close(f : File); PROCEDURE ReadChar(f : File) : CHAR; PROCEDURE ReadString(f : File; VAR s : ARRAY OF CHAR); (* one line *) PROCEDURE ReadInt(f : File) : INTEGER; PROCEDURE WriteChar(f : File; c : CHAR); PROCEDURE WriteInt(f : File; n : INTEGER); PROCEDURE WriteString(f : File; VAR s : ARRAY OF CHAR); PROCEDURE WriteLn(f : File); END Files.