<> <> <> <> <> <> <> DIRECTORY IO USING [Handle], IPXeroxEncoding USING [SequenceType, EncodingValue], Rope USING [MaxLen, ROPE]; IPEncodingOut: CEDAR DEFINITIONS = BEGIN OPEN IPX: IPXeroxEncoding; Handle: TYPE = RECORD[h: IO.Handle]; -- allows Cedar clustering <> OpenOutputMaster: PROCEDURE [name: Rope.ROPE] RETURNS[h: Handle]; <> CloseMaster: PROCEDURE [h: Handle]; <> <> <> AppendByte: PROCEDURE [h: Handle, val: [0..255]]; AppendSequenceDescriptor: PROCEDURE [h: Handle, type: IPX.SequenceType, length: NAT]; AppendString: PROCEDURE [h: Handle, length: NAT, proc: PROCEDURE RETURNS [c: [0..255]]]; AppendRope: PROCEDURE [h: Handle, rope: Rope.ROPE, start: INT _ 0, len: INT _ Rope.MaxLen]; AppendLargeVector: PROCEDURE [ h: Handle, length: NAT, bytesPerItem: [0..255], proc: PROCEDURE RETURNS [c: [0..255]]]; <> AppendReal: PROCEDURE [h: Handle, n: REAL]; AppendRational: PROCEDURE [h: Handle, i, j: INT]; AppendInteger: PROCEDURE [h: Handle, i: INT]; AppendOp: PROCEDURE [h: Handle, op: IPX.EncodingValue]; AppendIdentifier: PROCEDURE [h: Handle, id: Rope.ROPE, start: INT _ 0, len: INT _ Rope.MaxLen]; AppendComment: PROCEDURE [h: Handle, c: Rope.ROPE]; <> Append2Int: PRIVATE PROCEDURE [h: Handle, e: CARDINAL, c: CARDINAL]; AppendLongInteger: PRIVATE PROCEDURE [h: Handle, f: INT, e: CARDINAL]; Append2Rational: PRIVATE PROCEDURE [h: Handle, i: INT, e: INTEGER]; AppendInt: PRIVATE PROCEDURE [h: Handle, i: INT, c: CARDINAL]; WriteInterpressHeader: PRIVATE PROCEDURE [h: Handle]; NotInterpress: SIGNAL; Error: ERROR [errorCode: ErrorCode]; ErrorCode: PUBLIC TYPE = {FileNotAvailable, RopeEncodingError}; END. <> <> <> <<>> <> <> <<>> <> <> <<>> <> <> <<>> <> <>