DateAndTimeVeneer.mesa
last edited by Levin on August 27, 1982 3:54 pm
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.