DIRECTORY CD, CoreRouteFlat, CoreRouteFlatProcs, SymTab; CoreRouteFlatProcsImpl: CEDAR PROGRAM IMPORTS SymTab EXPORTS CoreRouteFlatProcs ~ BEGIN EnumerateInstances: PUBLIC PROC [structure: CoreRouteFlat.Structure, action: CoreRouteFlatProcs.EachInstanceAction] RETURNS [quit: BOOLEAN _ FALSE] ~ { FOR insts: LIST OF CoreRouteFlat.Instance _ structure.instances, insts.rest WHILE insts#NIL AND ~quit DO quit _ action[insts.first]; ENDLOOP}; EnumerateNetONodes: PUBLIC PROC [instance: CoreRouteFlat.Instance, action: CoreRouteFlatProcs.EachNetONodeAction] RETURNS [quit: BOOLEAN _ FALSE] ~ { FOR netONodes: LIST OF CoreRouteFlat.NetONode _ instance.netONodes, netONodes.rest WHILE netONodes#NIL AND ~quit DO quit _ action[instance, netONodes.first]; ENDLOOP}; EnumeratePins: PUBLIC PROC [oNode: CoreRouteFlat.ONode, action: CoreRouteFlatProcs.EachPinAction] RETURNS [quit: BOOLEAN _ FALSE] ~ { FOR pins: LIST OF CoreRouteFlat.Pin _ oNode.pins, pins.rest WHILE pins#NIL AND ~quit DO quit _ action[oNode, pins.first]; ENDLOOP}; PosOfONode: PUBLIC PROC [instance: CoreRouteFlat.Instance, pin: CoreRouteFlat.Pin] RETURNS [position: CD.Position] ~ { }; EnumerateNets: PUBLIC PROC [structure: CoreRouteFlat.Structure, action: CoreRouteFlatProcs.EachNetAction] RETURNS [quit: BOOLEAN _ FALSE] ~ { EachNet: SymTab.EachPairAction ~ { quit _ action[NARROW[val]]}; quit _ SymTab.Pairs[structure.nets, EachNet]}; EnumerateInstONodes: PUBLIC PROC [net: CoreRouteFlat.Net, action: CoreRouteFlatProcs.EachInstONodeAction] RETURNS [quit: BOOLEAN _ FALSE] ~ { FOR instONodes: LIST OF CoreRouteFlat.InstONode _ net.instONodes, instONodes.rest WHILE instONodes#NIL AND ~quit DO quit _ action[net, instONodes.first]; ENDLOOP}; END. ΊCoreRouteFlatProcsImpl.mesa Copyright Σ 1988 by Xerox Corporation. All rights reserved. Preas, April 10, 1988 5:38:54 pm PDT Provides acces procedures for CoreRouteFlat structures Instance Manipulation enumerates instances in flat structure in unspecified order instances inserted/deleted during enumeration may or may not be seen applies action to each object until action returns TRUE or no more instances returns TRUE if some action returns TRUE enumerates bound wires on instance in unspecified order applies action to each bound wires until action returns TRUE or no more bound wires returns TRUE if some action returns TRUE enumerates physical pins on ObjectPin in unspecified order pins inserted/deleted during enumeration may or may not be seen applies action to each segment until action returns TRUE or no more object pins returns TRUE if some action returns TRUE returns position of pin with respect to instance Net Manipulation enumerates nets currently in symbol table in unspecified order nets inserted/deleted during enumeration may or may not be seen applies action to each net until action returns TRUE or no more nets returns TRUE if some action returns TRUE PROC [key: Key, val: Val] RETURNS [quit: BOOL _ FALSE]; enumerates pins on net in unspecified order pins inserted/deleted during enumeration may or may not be seen applies action to each pin until action returns TRUE or no more pins returns TRUE if some action returns TRUE Κ˜code•Mark outsideHeaderšœ™Kšœ<™™>Kšœ?™?Kšœ0œ™DKšœœ™(K™šžœ˜"Kšœ7™7Kšœœ˜K˜—Kšœ.˜.K™—š žœœœJœœœ˜Kšœ+™+Kšœ?™?Kšœ0œ™DKšœœ™(K™š œ œœ;œ œœ˜sKšœ%˜%Jšœ˜ —K™——Kšœ˜—…—Ά‡