<<>> <> <> <> <> <> DIRECTORY CirioTypes USING[CompilerContext, Mem, Node, Type], Rope USING[ROPE]; Sequences: CEDAR DEFINITIONS = BEGIN CC: TYPE = CirioTypes.CompilerContext; Node: TYPE = CirioTypes.Node; Mem: TYPE = CirioTypes.Mem; Type: TYPE = CirioTypes.Type; SequenceTypeProcs: 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[CirioTypes.Type], getNominalArrayType: PROC[cc: CC, data: REF ANY] RETURNS[CirioTypes.Type] ]; CreateSequenceRecordType: PROC[preamble: Type, tailName: Rope.ROPE, tagName: Rope.ROPE, indexType: Type, procs: REF SequenceTypeProcs, cc: CC, data: REF ANY] RETURNS[Type]; <> <> <<>> IndirectSRProcs: TYPE = RECORD[ selectPreamble: PROC[procsData: REF ANY, cc: CC] RETURNS[CirioTypes.Node], selectTag: PROC[procsData: REF ANY, cc: CC] RETURNS[CirioTypes.Node], selectTailEntry: PROC[index: CARD, procsData: REF ANY, cc: CC] RETURNS[CirioTypes.Node], getPointer: PROC[data: REF ANY, cc: CC] RETURNS[CirioTypes.Node]]; CreateIndirectSequenceNode: PROC[targetSeqType: Type, procs: REF IndirectSRProcs, procsData: REF ANY, cc: CC] RETURNS[Node]; <> END.