<<>> <> <> <> <> <> DIRECTORY CirioTypes USING[CompilerContext, Mem, Node, Type]; Arrays: CEDAR DEFINITIONS = BEGIN CC: TYPE = CirioTypes.CompilerContext; Node: TYPE = CirioTypes.Node; Mem: TYPE = CirioTypes.Mem; Type: TYPE = CirioTypes.Type; ArrayTypeProcs: TYPE = RECORD [ createIndirectNode: PROC [cc: CC, data: REF ANY, indirectType, targetType: Type, mem: Mem] RETURNS [Node], getBitSize: PROC[indirectType: Type, cc: CC, data: REF ANY] RETURNS[CARD], getEntryType: PROC[cc: CC, data: REF ANY] RETURNS[Type] ]; CreateArrayType: PROC[indexSet: Type, procs: REF ArrayTypeProcs, cc: CC, data: REF ANY] RETURNS[Type]; <> <> ArrayIndirectNodeInfo: TYPE = REF ArrayIndirectNodeInfoBody; ArrayIndirectNodeInfoBody: TYPE = RECORD[ selectEntry: PROC[index: CARD, cc: CC, data: REF ANY] RETURNS[Node], getPointer: PROC[data: REF ANY, cc: CC] RETURNS[CirioTypes.Node], data: REF ANY]; <> CreateArrayIndirectNode: PROC[type: Type, info: ArrayIndirectNodeInfo] RETURNS[Node]; <> <<>> END.