<> <> <> DIRECTORY Core, RefTab, Rope; Sequence: CEDAR DEFINITIONS = BEGIN <> <> <> sequenceCellClass: Core.CellClass; SequenceCellType: TYPE = REF SequenceCellTypeRec; SequenceCellTypeRec: TYPE = RECORD [ base: Core.CellType, count: NAT, bindings: WireBindings _ NIL, operations: Operations _ NIL]; <> <> <> <> <> <<>> WireBindings: TYPE = LIST OF WireBindRec; WireBindRec: TYPE = RECORD [this, that: Core.Wire]; Operations: TYPE = RefTab.Ref; Operation: TYPE = REF OperationRec; OperationRec: TYPE = RECORD [ expose: ARRAY PublicWireType OF BOOL _ ALL[FALSE]]; <<>> PublicWireType: TYPE = {sequence, flatSequence, common, first, last}; DecorateProc: TYPE = PROC [baseWire: Core.Wire, parentWires: ARRAY PublicWireType OF Core.Wire _ ALL[NIL]]; CreateSequence: PROC [base: Core.CellType, count: NAT, bindings: WireBindings _ NIL, operations: Operations _ NIL, name: Rope.ROPE _ NIL, props: Core.Properties _ NIL, decorateProc: DecorateProc _ NIL] RETURNS [cellType: Core.CellType]; <<>> END.