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