- IMPLEMENTATION MODULE DString;
- (* Completes the opaque String here; clients see only the opaque type. *)
- TYPE String = POINTER TO RECORD v : INTEGER END;
- PROCEDURE Make(n : INTEGER) : String;
- VAR s : String;
- BEGIN NEW(s); s^.v := n; RETURN s END Make;
- PROCEDURE Get(s : String) : INTEGER;
- BEGIN RETURN s^.v END Get;
- PROCEDURE IsNil(s : String) : BOOLEAN;
- BEGIN RETURN s = NIL END IsNil;
- END DString.
|