-- file Strings.Mesa
-- last edited by Satterthwaite on October 11, 1982 3:58 pm

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

Strings: DEFINITIONS IMPORTS String = {
  OPEN S: String;
  
  String: TYPE = LONG STRING;

  SubStringDescriptor: TYPE = S.SubStringDescriptor;
  SubString: TYPE = S.SubString;
  
  AppendChar: PROC [s: String, c: CHARACTER] = INLINE {
    S.AppendChar[s, c]};
  AppendString: PROC [to, from: String] = INLINE {
    S.AppendString[to, from]};
  AppendSubString: PROC [to: String, from: SubString] = INLINE {
    S.AppendSubString[to, from]};

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

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

  }.