[top] [prev] [next]

The Text interface

INTERFACE Text;

TYPE
  T = TEXT;
A non-nil TEXT represents a zero-based sequence of characters. NIL does not represent any sequence of characters, it will not be returned from any procedure in the interface, and it is a checked runtime error to pass it to any procedure in the interface.

PROCEDURE Cat(t, u: T): T;
The concatenation of t and u.

PROCEDURE Equal(t, u: T): BOOLEAN;
TRUE if t and u have the same length and (case-sensitive) contents.

PROCEDURE GetChar(t: T; i: CARDINAL): CHAR;
Character i of t. A checked runtime error if i >= Length(t).

PROCEDURE Length(t: T): CARDINAL;
The number of characters in t.

PROCEDURE Empty(t: T): BOOLEAN;
TRUE if Length(t) = 0.

PROCEDURE Sub(t: T; start, length: CARDINAL): T;
Return a subsequence of t: empty if start >= Length(t) or length = 0; otherwise the subsequence ranging from start to the minimum of start+length-1 and Length(t)-1.

PROCEDURE SetChars(VAR a: ARRAY OF CHAR; t: T);
For each i from 0 to MIN(LAST(a), Length(t)-1), set a[i] to GetChar(t, i).

PROCEDURE FromChar(ch: CHAR): T;
A text containing the single character ch.

PROCEDURE FromChars(READONLY a: ARRAY OF CHAR): T;
A text containing the characters of a.

PROCEDURE Hash(t: T): INTEGER;
Return a hash function of the contents of t.

END Text.

The CM Modula-3 version of Text is here.

[top] [prev] [next]