dynamicstrings.def 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. DEFINITION MODULE DynamicStrings;
  2. (* gm2's dynamic string type. String is opaque here and completed in
  3. the implementation as a heap C string (ADDRESS). This is the core
  4. subset: the debugging (DB) variants and InitStringCharStar are not
  5. provided. *)
  6. FROM SYSTEM IMPORT ADDRESS;
  7. TYPE
  8. String;
  9. PROCEDURE InitString (a : ARRAY OF CHAR) : String;
  10. PROCEDURE KillString (s : String) : String;
  11. PROCEDURE Fin (s : String);
  12. PROCEDURE InitStringChar (ch : CHAR) : String;
  13. PROCEDURE Length (s : String) : CARDINAL;
  14. PROCEDURE ConCat (a, b : String) : String;
  15. PROCEDURE ConCatChar (a : String; ch : CHAR) : String;
  16. PROCEDURE Assign (a, b : String) : String;
  17. PROCEDURE Dup (s : String) : String;
  18. PROCEDURE Add (a, b : String) : String;
  19. PROCEDURE Equal (a, b : String) : BOOLEAN;
  20. PROCEDURE EqualArray (s : String; a : ARRAY OF CHAR) : BOOLEAN;
  21. PROCEDURE CopyOut (VAR a : ARRAY OF CHAR; s : String);
  22. PROCEDURE char (s : String; i : INTEGER) : CHAR;
  23. PROCEDURE string (s : String) : ADDRESS;
  24. PROCEDURE Mult (s : String; n : CARDINAL) : String;
  25. PROCEDURE Slice (s : String; low, high : INTEGER) : String;
  26. PROCEDURE Index (s : String; ch : CHAR; o : CARDINAL) : INTEGER;
  27. PROCEDURE RIndex (s : String; ch : CHAR; o : CARDINAL) : INTEGER;
  28. PROCEDURE ReplaceChar (s : String; from, to : CHAR) : String;
  29. PROCEDURE ToUpper (s : String) : String;
  30. PROCEDURE ToLower (s : String) : String;
  31. PROCEDURE RemoveWhitePrefix (s : String) : String;
  32. PROCEDURE RemoveWhitePostfix (s : String) : String;
  33. END DynamicStrings.