<> <> <> <> <> DIRECTORY BasicTime USING [GMT, Unpacked], Real USING [MaxSinglePrecision, DefaultSinglePrecision], Rope USING [ROPE, Text]; Convert: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; Base: TYPE = [2..36]; RealPrecision: TYPE = [0 .. Real.MaxSinglePrecision]; TimePrecision: TYPE = { years, months, days, hours, minutes, seconds, unspecified }; Error: ERROR [reason: ErrorType, index: INT]; ErrorType: TYPE = { syntax, overflow, empty, -- parse errors, index gives error location invalidBase, unprintableAtom -- unparse errors, index = 0 }; <> <> <> <From..." proc raises the following errors:>> <> <> <> <> <<>> IntFromRope: PROC [r: ROPE, defaultBase: Base _ 10] RETURNS [INT]; <> CardFromRope: PROC [r: ROPE, defaultBase: Base _ 10] RETURNS [LONG CARDINAL]; <> RealFromRope: PROC [r: ROPE] RETURNS [REAL]; <> TimeFromRope: PROC [r: ROPE] RETURNS [BasicTime.GMT]; <> UnpackedTimeFromRope: PROC [r: ROPE] RETURNS [BasicTime.Unpacked]; <> BoolFromRope: PROC [r: ROPE] RETURNS [BOOL]; <> AtomFromRope: PROC [r: ROPE] RETURNS [ATOM]; <> <<>> <> CardFromDecimalLiteral: PROC [r: ROPE, start: INT _ 0] RETURNS [LONG CARDINAL]; <> CardFromOctalLiteral: PROC [r: ROPE, start: INT _ 0] RETURNS [LONG CARDINAL]; <> CardFromHexLiteral: PROC [r: ROPE, start: INT _ 0] RETURNS [LONG CARDINAL]; <> CardFromWholeNumberLiteral: PROC [r: ROPE, start: INT _ 0] RETURNS [LONG CARDINAL]; <> RealFromLiteral: PROC [r: ROPE, start: INT _ 0] RETURNS [REAL]; <> RopeFromLiteral: PROC [r: ROPE, start: INT _ 0] RETURNS [ROPE]; <> CharFromLiteral: PROC [r: ROPE, start: INT _ 0] RETURNS [CHAR]; <> <> <> <> <> <> <> <> <> RopeFromInt: PROC [from: INT, base: Base _ 10, showRadix: BOOL _ TRUE] RETURNS [Rope.Text]; <> <> RopeFromCard: PROC [from: LONG CARDINAL, base: Base _ 10, showRadix: BOOL _ TRUE] RETURNS [Rope.Text]; <> <> RopeFromReal: PROC [from: REAL, precision: RealPrecision _ Real.DefaultSinglePrecision, useE: BOOL _ FALSE] RETURNS [Rope.Text]; <> <<>> RopeFromTime: PROC [from: BasicTime.GMT, start: TimePrecision _ years, end: TimePrecision _ minutes, includeDayOfWeek: BOOL _ FALSE, useAMPM: BOOL _ TRUE, includeZone: BOOL _ TRUE] RETURNS [Rope.Text]; <> <> RopeFromUnpackedTime: PROC [from: BasicTime.Unpacked, start: TimePrecision _ years, end: TimePrecision _ minutes, includeDayOfWeek: BOOL _ FALSE, useAMPM: BOOL _ TRUE, includeZone: BOOL _ TRUE] RETURNS [Rope.Text]; <> RopeFromBool: PROC [from: BOOL] RETURNS [Rope.Text]; <> RopeFromAtom: PROC [from: ATOM, quote: BOOL _ TRUE] RETURNS [ROPE]; <> <" if from = NIL). If quote then inserts a leading quote ($) and checks that the print name is a valid Cedar identifier.>> RopeFromRope: PROC [from: ROPE, quote: BOOL _ TRUE] RETURNS [Rope.Text]; <> RopeFromChar: PROC [from: CHAR, quote: BOOL _ TRUE] RETURNS [Rope.Text]; <> AppendInt: PROC [to: REF TEXT, from: INT, base: Base _ 10, showRadix: BOOL _ TRUE] RETURNS [REF TEXT]; <> AppendCard: PROC [to: REF TEXT, from: LONG CARDINAL, base: Base _ 10, showRadix: BOOL _ TRUE] RETURNS [REF TEXT]; <> AppendReal: PROC [to: REF TEXT, from: REAL, precision: RealPrecision _ Real.DefaultSinglePrecision, useE: BOOL _ FALSE] RETURNS [REF TEXT]; AppendTime: PROC [to: REF TEXT, from: BasicTime.GMT, start: TimePrecision _ years, end: TimePrecision _ minutes, includeDayOfWeek: BOOL _ FALSE, useAMPM: BOOL _ TRUE, includeZone: BOOL _ TRUE] RETURNS [REF TEXT]; AppendUnpackedTime: PROC [to: REF TEXT, from: BasicTime.Unpacked, start: TimePrecision _ years, end: TimePrecision _ minutes, includeDayOfWeek: BOOL _ FALSE, useAMPM: BOOL _ TRUE, includeZone: BOOL _ TRUE] RETURNS [REF TEXT]; AppendBool: PROC [to: REF TEXT, from: BOOL] RETURNS [REF TEXT]; AppendAtom: PROC [to: REF TEXT, from: ATOM, quote: BOOL _ TRUE] RETURNS [REF TEXT]; <> AppendRope: PROC [to: REF TEXT, from: ROPE, quote: BOOL _ TRUE] RETURNS [REF TEXT]; AppendChar: PROC [to: REF TEXT, from: CHAR, quote: BOOL _ TRUE] RETURNS [REF TEXT]; END.