<> <> <> <> <<>> <> <> <> <<>> DIRECTORY Rope USING [ROPE], SaffronBaseDef USING [FListNode, InstanceNode, LocalContextNode, ProgramGraphNode, TypeGraphNodeNode, TypeGraphNodeListNode], <> SaffronTargetArchitecture USING [TargetArchitecture]; <<>> SaffronInstance: CEDAR DEFINITIONS ~ BEGIN OPEN BD: SaffronBaseDef; <> ROPE: TYPE ~ Rope.ROPE; LocalContextNode: TYPE ~ SaffronBaseDef.LocalContextNode; ProgramGraphNode: TYPE ~ SaffronBaseDef.ProgramGraphNode; TypeGraphNodeNode: TYPE ~ SaffronBaseDef.TypeGraphNodeNode; TypeGraphNodeListNode: TYPE ~ SaffronBaseDef.TypeGraphNodeListNode; TargetArchitecture: TYPE ~ SaffronTargetArchitecture.TargetArchitecture; <> InstanceNode: TYPE ~ SaffronBaseDef.InstanceNode; <> Static: PROC [i: InstanceNode] RETURNS [BOOLEAN]; <> RuntimeValue: PROC [i: InstanceNode] RETURNS [BOOLEAN]; <> Trash: PROC [i: InstanceNode] RETURNS [BOOLEAN]; <> <<>> Type: PROC [i: InstanceNode] RETURNS [TypeGraphNodeNode]; <> <<>> ChangeType: PROC [i: InstanceNode, newType: TypeGraphNodeNode] RETURNS [InstanceNode]; <> <<>> Code: PROC [i: InstanceNode] RETURNS [ProgramGraphNode]; <> <<>> <> <> <<>> RopeFromInstance: PROC [i: InstanceNode] RETURNS [ROPE]; <> <> MakeDummy: PROC [msg: Rope.ROPE] RETURNS [InstanceNode]; <> MakeTrash: PROC [type: TypeGraphNodeNode] RETURNS [InstanceNode]; <> MakeRuntime: PROC [type: TypeGraphNodeNode, code: ProgramGraphNode] RETURNS [InstanceNode]; <> <> <> <> <> <> <> <> <> <<>> <> <> <<>> Sign: TYPE = {plus, minus}; <> IntegerValue: TYPE = REF IntegerValueBody; IntegerValueBody: TYPE; InvalidIntegerType: ERROR; CannotCastInteger: ERROR; MakeIntegerValue: PROC [j: INT] RETURNS [IntegerValue]; <> ParseIntegerLiteral: PROC [text: ROPE, base: [2..36] _ 10] RETURNS [IntegerValue]; <> <<>> UnparseIntegerValue: PROC [value: IntegerValue, base: [2..36] _ 10] RETURNS [ROPE]; <> <<>> CastIntegerValue: PROC [value: IntegerValue, types: TypeGraphNodeListNode] RETURNS [InstanceNode]; <> <<>> CanCastIntegerValue: PROC [value: IntegerValue, type: TypeGraphNodeNode] RETURNS [BOOLEAN]; <> RetrieveIntegerValue: PROC [i: InstanceNode] RETURNS [IntegerValue]; <> <<>> <> <<>> <> <> <<>> AddIntegers: PROC [i1, i2: IntegerValue] RETURNS [IntegerValue]; <> SubtractIntegers: PROC [i1, i2: IntegerValue] RETURNS [IntegerValue]; <> MultiplyIntegers: PROC [i1, i2: IntegerValue] RETURNS [IntegerValue]; <> DivideIntegers: PROC [i1, i2: IntegerValue] RETURNS [IntegerValue]; <> ModIntegers: PROC [i1, i2: IntegerValue] RETURNS [IntegerValue]; <> NegateInteger: PROC [i: IntegerValue] RETURNS [IntegerValue]; <> <> RealValue: TYPE = REF RealValueBody; RealValueBody: TYPE; ParseLiteralReal: PROC [text: ROPE, precision: CARDINAL] RETURNS [RealValue]; AddReals: PROC [r1, r2: RealValue] RETURNS [RealValue]; SubtractReals: PROC [r1, r2: RealValue] RETURNS [RealValue]; MultiplyReals: PROC [r1, r2: RealValue] RETURNS [RealValue]; DivideReals: PROC [r1, r2: RealValue] RETURNS [RealValue]; <> <> <> <<>> <> <> <> <> MakeStaticAtom: PROC [value: ATOM, type: TypeGraphNodeNode] RETURNS [InstanceNode]; MakeUnknownAtom: PROC [code: ProgramGraphNode, type: TypeGraphNodeNode] RETURNS [InstanceNode]; AtomValue: PROC [i: InstanceNode] RETURNS [ATOM]; <> <<>> <> MakeStaticBoolean: PROC [value: BOOLEAN, type: TypeGraphNodeNode] RETURNS [InstanceNode]; MakeUnknownBoolean: PROC [code: ProgramGraphNode, type: TypeGraphNodeNode] RETURNS [InstanceNode]; BooleanValue: PROC [i: InstanceNode] RETURNS [BOOLEAN]; <> <<>> <> MakeStaticChar: PROC [value: CHARACTER, type: TypeGraphNodeNode] RETURNS [InstanceNode]; MakeUnknownChar: PROC [code: ProgramGraphNode, type: TypeGraphNodeNode] RETURNS [InstanceNode]; CharacterValue: PROC [i: InstanceNode] RETURNS [CHARACTER]; <> <<>> <> MakeStaticRope: PROC [value: ROPE, type: TypeGraphNodeNode] RETURNS [InstanceNode]; MakeUnknownRope: PROC [code: ProgramGraphNode, type: TypeGraphNodeNode] RETURNS [InstanceNode]; RopeValue: PROC [i: InstanceNode] RETURNS [ROPE]; <> <> MakeList: PROC [elements: LIST OF InstanceNode, listType: TypeGraphNodeNode] RETURNS [i: InstanceNode]; <> MakeFrame: PROC [procType: BD.TypeGraphNodeNode, definingContext: BD.LocalContextNode, fields: BD.FListNode, code: BD.ProgramGraphNode] RETURNS [i: InstanceNode]; END.