IMPLEMENTATION MODULE TextUtil ; IMPORT IOChan, CharClass, IOConsts ; (* SkipSpaces - skips any spaces. *) PROCEDURE SkipSpaces (cid: IOChan.ChanId) ; VAR ch : CHAR ; res: IOConsts.ReadResults ; BEGIN WHILE CharAvailable (cid) DO IOChan.Look (cid, ch, res) ; IF (res = IOConsts.allRight) AND CharClass.IsWhiteSpace (ch) THEN IOChan.Skip (cid) ELSE RETURN END END END SkipSpaces ; (* The following procedures do not read past line marks. *) PROCEDURE CharAvailable (cid: IOChan.ChanId) : BOOLEAN ; BEGIN RETURN( (IOChan.ReadResult (cid) = IOConsts.notKnown) OR (IOChan.ReadResult (cid) = IOConsts.allRight) ) END CharAvailable ; PROCEDURE EofOrEoln (cid: IOChan.ChanId) : BOOLEAN ; BEGIN RETURN( (IOChan.ReadResult (cid) = IOConsts.endOfLine) OR (IOChan.ReadResult (cid) = IOConsts.endOfInput) ) END EofOrEoln ; END TextUtil.