-- file LongStrings.Mesa -- last edited by Sandman on August 13, 1980 7:28 AM Strings: DEFINITIONS = BEGIN String: TYPE = LONG POINTER TO StringBody; SubStringDescriptor: TYPE = RECORD [ base: String, offset: CARDINAL, length: CARDINAL]; SubString: TYPE = POINTER TO SubStringDescriptor; AppendChar: PROCEDURE [s: String, c: CHARACTER]; AppendString: PROCEDURE [to, from: String]; AppendSubString: PROCEDURE [to: String, from: SubString]; BoundsFault: PROCEDURE RETURNS [SIGNAL [s: String] RETURNS [ns: String]] = INLINE { RETURN[StringBoundsFault]}; EqualSubStrings, EquivalentSubStrings: PROCEDURE [s1, s2: SubString] RETURNS [BOOLEAN]; EqualSubString, EquivalentSubString: PROCEDURE [s1, s2: SubString] RETURNS [BOOLEAN]; StringBoundsFault: SIGNAL [s: String] RETURNS [ns: String]; END.