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]; ReplaceDirectChildForCell: PROC [me: CD.Object, design: CD.Design, replace: CDDirectory.ReplaceList] RETURNS [changed: BOOL_FALSE]; CopyInsts: PROC [list: CD.InstanceList, seq: CD.InstanceSequence, inPlace: BOOL_FALSE] RETURNS [lCopy: CD.InstanceList, sCopy: CD.InstanceSequence]; Bounds: PROC [list: CD.InstanceList_NIL, seq: CD.InstanceSequence_NIL, doIr: BOOL_TRUE, doBb: BOOL_TRUE] RETURNS [ir, bbox: CD.Rect]; EnumInsts: PROC [list: CD.InstanceList, seq: CD.InstanceSequence, proc: CDCells.InstEnumerator] RETURNS [quit: BOOL]; END. ~CDCellsBackdoor.mesa (a ChipNDale module) Copyright (C) 1986 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, October 30, 1986 9:45:57 am PST Last edited by: Christian Jacobi, October 30, 1986 1:37:21 pm PST --Returns printable name for pushed in cell --A CDDirectory.ReplaceDChildsProc for cells --Makes a copy; tries to convert to sequence mode --inPlace: TRUE -> just reuse old Instances; FALSE -> copy the Instances --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 --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 ΚΩ˜codešœ+™+Kšœ>™>Kšœ<™