<> <> DIRECTORY ConvertUnsafe USING [AppendRope], DateAndTime USING [Notes], DateAndTimeUnsafe USING [Parse, Unintelligible], Heap USING [systemZone], Rope USING [Length, ROPE], System USING [GreenwichMeanTime]; DateAndTimeVeneer: CEDAR PROGRAM IMPORTS ConvertUnsafe, DateAndTimeUnsafe, Heap, Rope EXPORTS DateAndTime = BEGIN Unintelligible: PUBLIC ERROR [vicinity: NAT] = CODE; Parse: PUBLIC PROCEDURE [r: Rope.ROPE] RETURNS [dt: System.GreenwichMeanTime, notes: DateAndTime.Notes, length: NAT] = TRUSTED { s: LONG STRING _ Heap.systemZone.NEW[StringBody[Rope.Length[r]]]; ConvertUnsafe.AppendRope[to: s, from: r]; [dt, notes, length] _ DateAndTimeUnsafe.Parse[s ! DateAndTimeUnsafe.Unintelligible => { Heap.systemZone.FREE[@s]; ERROR Unintelligible[vicinity]; }]; Heap.systemZone.FREE[@s]; }; END.