<<>> <> <> <> <> <> DIRECTORY CirioTypes USING[BasicTypeInfo, CompilerContext, Mem, Node, Type], CirioSyntacticOperations USING[ParseTree], Rope USING[ROPE]; CedarOtherPureTypes: CEDAR DEFINITIONS = BEGIN ROPE: TYPE ~ Rope.ROPE; CC: TYPE = CirioTypes.CompilerContext; Type: TYPE = CirioTypes.Type; Mem: TYPE = CirioTypes.Mem; Node: TYPE = CirioTypes.Node; BasicTypeInfo: TYPE = CirioTypes.BasicTypeInfo; <> <<>> CreateBooleanType: PROC[cc: CC, bti: BasicTypeInfo] RETURNS[Type]; <> <> <> <<>> CreateCharType: PROC[cc: CC, bti: BasicTypeInfo] RETURNS[Type]; <> <> <> <> <> CreateUnknownType: PROC[cc: CC, explanation: ROPE _ NIL] RETURNS[Type]; <> <> CreateTransparentType: PROC[cc: CC, tti: TransparentTypeInfo] RETURNS[Type]; <> <> TransparentTypeInfo: TYPE ~ REF TransparentTypeInfoBody; TransparentTypeInfoBody: TYPE ~ RECORD [ createIndirectNode: PROC [tti: TransparentTypeInfo, cc: CC, indirectType, targetType: Type, mem: Mem] RETURNS [Node], intro: ROPE, bits: INT, data: REF ANY]; <> <> <<>> EnumeratedTypeProcs: TYPE = RECORD[ createIndirectNode: PROC [procsData: REF ANY, cc: CC, indirectType, targetType: Type, mem: Mem] RETURNS [Node], getBitSize: PROC[procsData: REF ANY, cc: CC, indirectType, targetType: Type] RETURNS[CARD], getPaint: PROC[procsData: REF ANY] RETURNS[REF ANY], comparePaint: PROC[procsData: REF ANY, otherPaint: REF ANY] RETURNS[BOOLEAN], idToIndex: PROC[id: ROPE, procsData: REF ANY] RETURNS[INT], indexToId: PROC[index: INT, procsData: REF ANY] RETURNS[ROPE]]; <> CreateEnumeratedType: PROC[nValues: INT, procs: REF EnumeratedTypeProcs, procsData: REF ANY, cc: CC] RETURNS[Type]; <> <> <> CreateEnumeratedSubtype: PROC[baseType: Type, bottomIndex, topIndex: INT, cc: CC] RETURNS[Type]; <> <> <> <> CreateRopeType: PROC[cc: CC, bti: BasicTypeInfo] RETURNS[Type]; <> <> <> <<>> <> <<>> CreateBooleanNode: PROC[val: BOOLEAN, cc: CC] RETURNS[Node]; <> <<>> CreateCharNode: PROC[val: CHAR, cc: CC] RETURNS[Node]; <> <<>> CreateUnknownTypeNode: PROC[type: Type, explanation: ROPE, cc: CC] RETURNS[Node]; CreateIndirectToAnUnknownType: PROC[type: Type, explanation: ROPE, cc: CC] RETURNS[Node]; CreateTransparentTypeNode: PROC[type: Type, tni: TransparentNodeInfo, cc: CC] RETURNS[Node]; <> TransparentNodeInfo: TYPE ~ REF TransparentNodeInfoBody; TransparentNodeInfoBody: TYPE ~ RECORD [val: ROPE, lpad, rpad: INT]; <> <> CreateEnumeratedTypeNode: PROC[type: Type, id: ROPE, cc: CC] RETURNS[Node]; <> <> <<>> CreateEnumeratedTypeNodeFromIndex: PROC[type: Type, index: CARD, cc: CC] RETURNS[Node]; <> <> CreateParseTreeNode: PROC[parseTree: CirioSyntacticOperations.ParseTree, cc: CC] RETURNS[Node]; <> <<>> CreateRopeNode: PROC[val: ROPE, cc: CC, addr: REF ANY _ NIL] RETURNS[Node]; <> <> <<>> RopeInfo: TYPE ~ RECORD [val: ROPE, addr: REF ANY]; <> <<>> END..