<> <> <> <> DIRECTORY CD, CDCells USING [InstEnumerator], CDDirectory USING [ReplaceList], Rope USING [ROPE]; CDCellsBackdoor: CEDAR DEFINITIONS = BEGIN cellClass: READONLY CD.ObjectClass; PushedCellName: PROC [design: CD.Design] RETURNS [Rope.ROPE]; <<--Returns printable name for pushed in cell>> ReplaceDirectChildForCell: PROC [me: CD.Object, design: CD.Design, replace: CDDirectory.ReplaceList] RETURNS [changed: BOOL_FALSE]; <<--A CDDirectory.ReplaceDChildsProc for cells>> CopyInsts: PROC [list: CD.InstanceList, seq: CD.InstanceSequence, inPlace: BOOL_FALSE] RETURNS [lCopy: CD.InstanceList, sCopy: CD.InstanceSequence]; <<--Makes a copy; tries to convert to sequence mode>> <<--inPlace: TRUE -> just reuse old Instances; FALSE -> copy the Instances>> Bounds: PROC [list: CD.InstanceList_NIL, seq: CD.InstanceSequence_NIL, doIr: BOOL_TRUE, doBb: BOOL_TRUE] RETURNS [ir, bbox: CD.Rect]; <<--Computes bounding boxes>> <<--If doIr then ir is the union of all interest rects>> <<--If doBb then bbox is the union of all bounding boxes>> EnumInsts: PROC [list: CD.InstanceList, seq: CD.InstanceSequence, proc: CDCells.InstEnumerator] RETURNS [quit: BOOL]; <<--Enumerates the instances of list and seq in unspecified order.>> <<--If list or seq change while the enumeration, the changed and maybe other instances >> <<--might not be enumerated correctly.>> <<--Applies proc to each instance until proc returns TRUE or no more instances.>> <<--Returns TRUE if some proc returns TRUE>> END.