file ///StdCell23/SCObjUtilImpl.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Preas April 14, 1986 12:55:15 pm PST
SCObjUtilImpl:
CEDAR
PROGRAM
EXPORTS SCObjUtil
SHARES SC =
BEGIN
EnumerateAllObjects:
PUBLIC
PROC [handle:
SC.Handle, eachObject: SCObjUtil.EachObjectProc]
RETURNS [quit:
BOOL] = {
structureData: SCPrivate.StructureData ← NARROW[handle.structureData];
quit ← EnumerateObjects[handle, 1, structureData.objects.count, eachObject]};
EnumerateObjects:
PUBLIC PROC [handle:
SC.Handle, startObj, stopObj: SCPrivate.MaxObjectsSr, eachObject: SCObjUtil.EachObjectProc]
RETURNS [quit:
BOOL ←
FALSE] = {
structureData: SCPrivate.StructureData ← NARROW[handle.structureData];
FOR obj: SCPrivate.MaxObjectsSr
IN [startObj .. stopObj]
WHILE ~quit
DO
quit ← eachObject[structureData.objects.ob[obj]];
ENDLOOP};
EnumeratePinsOnObject:
PUBLIC PROC [object: SCPrivate.Object, eachPin: SCObjUtil.EachPinProc]
RETURNS [quit:
BOOL ←
FALSE] = {
FOR pin:
NAT
IN [0 .. object.pins.size)
WHILE ~quit
DO
quit ← eachPin[object, pin, object.pins.p[pin]];
ENDLOOP};
END.