STR.DEF 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * STR.DEF - Modula-2 string library *
  5. * *
  6. * COPYRIGHT (C) 1987..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# call(o_a_copy => off) *)
  11. (*# module(init_code => on) *)
  12. (*%F _fdata *)
  13. (*# call(seg_name => null) *)
  14. (*# data(seg_name => null) *)
  15. (*%E *)
  16. (*%T _fdata *)
  17. (*# call(seg_name => STR) *)
  18. (*%E *)
  19. (*# module(implementation=>off) *)
  20. DEFINITION MODULE Str;
  21. TYPE
  22. CHARSET = SET OF CHAR;
  23. PosLen = RECORD
  24. Pos,Len: CARDINAL;
  25. END;
  26. (*# save *)
  27. (*%T _DLL *)
  28. (*# call(seg_name=>STRDLL) *)
  29. (*%E *)
  30. PROCEDURE Caps(VAR S: ARRAY OF CHAR);
  31. PROCEDURE Lows(VAR S: ARRAY OF CHAR);
  32. PROCEDURE Compare(S1,S2: ARRAY OF CHAR) : INTEGER;
  33. PROCEDURE Length(S : ARRAY OF CHAR) : CARDINAL;
  34. PROCEDURE Concat(VAR R: ARRAY OF CHAR; S1,S2: ARRAY OF CHAR);
  35. PROCEDURE Append(VAR R: ARRAY OF CHAR; S: ARRAY OF CHAR);
  36. PROCEDURE Copy (VAR R: ARRAY OF CHAR; S: ARRAY OF CHAR);
  37. PROCEDURE Slice (VAR R: ARRAY OF CHAR; S: ARRAY OF CHAR; P,L: CARDINAL);
  38. PROCEDURE Pos(S,P: ARRAY OF CHAR) : CARDINAL;
  39. PROCEDURE NextPos(S,P: ARRAY OF CHAR; Place: CARDINAL) : CARDINAL;
  40. PROCEDURE CharPos(S: ARRAY OF CHAR; C: CHAR) : CARDINAL;
  41. PROCEDURE RCharPos(S: ARRAY OF CHAR; C: CHAR) : CARDINAL;
  42. (*# restore *)
  43. PROCEDURE Item (VAR R: ARRAY OF CHAR;
  44. S: ARRAY OF CHAR;
  45. T: CHARSET;
  46. N: CARDINAL);
  47. PROCEDURE ItemS(VAR R: ARRAY OF CHAR;
  48. S: ARRAY OF CHAR;
  49. T: ARRAY OF CHAR;
  50. N: CARDINAL);
  51. PROCEDURE Prepend(VAR S1: ARRAY OF CHAR; S2: ARRAY OF CHAR);
  52. PROCEDURE Insert(VAR R: ARRAY OF CHAR; S: ARRAY OF CHAR; P: CARDINAL);
  53. PROCEDURE Subst(VAR S1: ARRAY OF CHAR; Target: ARRAY OF CHAR; New: ARRAY OF CHAR);
  54. PROCEDURE Delete(VAR R: ARRAY OF CHAR; P,L: CARDINAL);
  55. PROCEDURE Match(Source,Pattern: ARRAY OF CHAR) : BOOLEAN;
  56. PROCEDURE FindSubStr(Source,Pattern: ARRAY OF CHAR;VAR pos:ARRAY OF PosLen) : BOOLEAN;
  57. PROCEDURE Same(Stg,Pattern:ARRAY OF CHAR):BOOLEAN;
  58. (* Returns TRUE if Stg and Pattern are identical. *)
  59. PROCEDURE Count(Stg:ARRAY OF CHAR;Ch:CHAR):CARDINAL;
  60. (* Returns the number of Ch's in Stg. *)
  61. PROCEDURE IntToStr ( V: LONGINT;
  62. VAR S: ARRAY OF CHAR;
  63. Base: CARDINAL;
  64. VAR OK: BOOLEAN);
  65. PROCEDURE CardToStr( V: LONGCARD;
  66. VAR S: ARRAY OF CHAR;
  67. Base: CARDINAL;
  68. VAR OK: BOOLEAN);
  69. PROCEDURE RealToStr( V: LONGREAL;
  70. Precision: CARDINAL;
  71. Eng: BOOLEAN;
  72. VAR S: ARRAY OF CHAR;
  73. VAR OK : BOOLEAN);
  74. PROCEDURE FixRealToStr( V: LONGREAL;
  75. Precision: CARDINAL;
  76. VAR S: ARRAY OF CHAR;
  77. VAR OK: BOOLEAN);
  78. PROCEDURE StrToInt ( S: ARRAY OF CHAR;
  79. Base: CARDINAL;
  80. VAR OK: BOOLEAN) : LONGINT;
  81. PROCEDURE StrToCard( S: ARRAY OF CHAR;
  82. Base: CARDINAL;
  83. VAR OK: BOOLEAN) : LONGCARD;
  84. PROCEDURE StrToReal(S: ARRAY OF CHAR; VAR OK: BOOLEAN ) : LONGREAL;
  85. PROCEDURE StrToC(S: ARRAY OF CHAR; VAR D: ARRAY OF CHAR): BOOLEAN;
  86. PROCEDURE StrToPas(S: ARRAY OF CHAR; VAR D: ARRAY OF CHAR): BOOLEAN;
  87. END Str.
  88.