| 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. |