DEFINITION MODULE DynamicStrings; (* gm2's dynamic string type. String is opaque here and completed in the implementation as a heap C string (ADDRESS). This is the core subset: the debugging (DB) variants and InitStringCharStar are not provided. *) FROM SYSTEM IMPORT ADDRESS; TYPE String; PROCEDURE InitString (a : ARRAY OF CHAR) : String; PROCEDURE KillString (s : String) : String; PROCEDURE Fin (s : String); PROCEDURE InitStringChar (ch : CHAR) : String; PROCEDURE Length (s : String) : CARDINAL; PROCEDURE ConCat (a, b : String) : String; PROCEDURE ConCatChar (a : String; ch : CHAR) : String; PROCEDURE Assign (a, b : String) : String; PROCEDURE Dup (s : String) : String; PROCEDURE Add (a, b : String) : String; PROCEDURE Equal (a, b : String) : BOOLEAN; PROCEDURE EqualArray (s : String; a : ARRAY OF CHAR) : BOOLEAN; PROCEDURE CopyOut (VAR a : ARRAY OF CHAR; s : String); PROCEDURE char (s : String; i : INTEGER) : CHAR; PROCEDURE string (s : String) : ADDRESS; PROCEDURE Mult (s : String; n : CARDINAL) : String; PROCEDURE Slice (s : String; low, high : INTEGER) : String; PROCEDURE Index (s : String; ch : CHAR; o : CARDINAL) : INTEGER; PROCEDURE RIndex (s : String; ch : CHAR; o : CARDINAL) : INTEGER; PROCEDURE ReplaceChar (s : String; from, to : CHAR) : String; PROCEDURE ToUpper (s : String) : String; PROCEDURE ToLower (s : String) : String; PROCEDURE RemoveWhitePrefix (s : String) : String; PROCEDURE RemoveWhitePostfix (s : String) : String; END DynamicStrings.