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