--------------------------------------------------------------------
INTERFACE--------------------------------------------------------------------TextReadingUtils ; IMPORT ASCII, Rd, TextSeq; FROM Thread IMPORT Alerted;
PROCEDURE GetString(rd : Rd.T) : TEXT RAISES {Rd.Failure, Rd.EndOfFile, Alerted}; (* skip everything until the next single or double quote, then read upto the following matching quote and return this text *)--------------------------------------------------------------------
PROCEDURE GetToken(rd : Rd.T; skip := ASCII.Spaces; terminate := ASCII.Spaces; unget := FALSE) : TEXT RAISES {Rd.Failure, Rd.EndOfFile, Alerted}; (* get the next token, that is everything that is not considered to be ASCII white space *)--------------------------------------------------------------------
PROCEDURE GetTokenOrString(rd : Rd.T; skip := ASCII.Spaces; terminate := ASCII.Spaces) : TEXT RAISES {Rd.Failure, Rd.EndOfFile, Alerted}; (* skip white space. If the next character is a single or a double quote, return the quoted text, otherwise return the next token *)--------------------------------------------------------------------
PROCEDURE GetStringOrLine(rd : Rd.T) : TEXT RAISES {Rd.Failure, Rd.EndOfFile, Alerted}; (* skip white space. If the next character is a single or a double quote, return the quoted text, otherwise return the rest of the current line. *)--------------------------------------------------------------------
PROCEDURE Tokenize(t : TEXT; sep := ASCII.Spaces) : TextSeq.T; (* tokenize the text `t' and return all separate tokens. *) END TextReadingUtils.