MCrossUtilities.mesa
P.Rovner May 2, 1983 12:42 pm
DIRECTORY
Ascii,
MCrossUtilityDefs,
MessageWindow USING[Confirm],
Rope USING[ROPE, Size, Fetch, Compare];
----------------------------------------------------------------
MCrossUtilities: PROGRAM
IMPORTS --MessageWindow, --Rope
EXPORTS MCrossUtilityDefs
=
BEGIN
Confirm: PUBLIC PROCEDURE RETURNS[BOOLEAN] =
{RETURN[MessageWindow.Confirm["[Confirm] "]]};
IsNumber: PUBLIC PROCEDURE[s: Rope.ROPE] RETURNS[BOOLEAN] =
{
FOR i:
INT
IN [0..Rope.Size[s])
DO IF NOT Rope.Fetch[s, i] IN ['0..'9] THEN RETURN[FALSE] ENDLOOP;
RETURN[TRUE]};
IsTerminator:
PUBLIC
PROCEDURE[ch:
CHARACTER]
RETURNS [
BOOLEAN] =
{
RETURN[
SELECT ch
FROM
IN ['0..'9], IN ['A..'Z], IN ['a..'z] => FALSE,
ENDCASE => TRUE]};
Returns TRUE if the string has only spaces, tabs and CRs
IsLineEmpty: PUBLIC PROCEDURE[line: Rope.ROPE] RETURNS[BOOLEAN] =
{
FOR i:
INT
IN [0..Rope.Size[line])
DO
SELECT Rope.Fetch[line, i]
FROM
Ascii.SP, Ascii.TAB, Ascii.CR => NULL;
ENDCASE => RETURN[FALSE] ENDLOOP;
RETURN[TRUE]};
Returns True if Str1 is Lexically less then Str2
StringLessThan:
PUBLIC
PROCEDURE[str1, str2: Rope.
ROPE]
RETURNS[
BOOLEAN] =
{RETURN[Rope.Compare[str1, str2, FALSE] = less]};
Returns True if Str1 is equal to Str2
EqualString:
PUBLIC
PROCEDURE[str1, str2: Rope.
ROPE]
RETURNS[
BOOLEAN] =
{RETURN[Rope.Compare[str1, str2] = equal]};
END.