-- file Strings.Mesa
-- last edited by Sandman on August 13, 1980  7:36 AM

DIRECTORY
  String: TYPE USING [
    SubStringDescriptor, AppendChar, AppendString, AppendSubString,
    EqualSubStrings, EquivalentSubStrings, StringBoundsFault];

Strings: DEFINITIONS IMPORTS String =
  BEGIN OPEN StringImpl: String;

  String: TYPE = POINTER TO StringBody;

  SubStringDescriptor: TYPE = StringImpl.SubStringDescriptor;
  SubString: TYPE = POINTER TO SubStringDescriptor;

  AppendChar: PROC [s: String, c: CHARACTER] = INLINE {
    StringImpl.AppendChar[s, c]};

  AppendString: PROC [to, from: String] = INLINE {
    StringImpl.AppendString[to, from]};

  AppendSubString: PROC [to: String, from: SubString] = INLINE {
    StringImpl.AppendSubString[to, from]};

  BoundsFault: PROCEDURE RETURNS [SIGNAL [s: String] RETURNS [ns: String]] =
    INLINE {RETURN[StringImpl.StringBoundsFault]};

  EqualSubStrings, EqualSubString: PROC [s1, s2: SubString] RETURNS [BOOLEAN] =
    INLINE {RETURN[StringImpl.EqualSubStrings[s1, s2]]};

  EquivalentSubStrings, EquivalentSubString: PROC [s1, s2: SubString]
    RETURNS [BOOLEAN] = INLINE {RETURN[StringImpl.EquivalentSubStrings[s1, s2]]};

  END.