RTCoreUtil.mesa
Copyright © 1985, 1986 by Xerox Corporation. All rights reserved.
by Bryan Preas August 29, 1985 2:48:22 pm PDT
last edited by Bryan Preas September 8, 1986 5:19:39 pm PDT
DIRECTORY
Core,
CoreOps,
CoreClasses,
Rope;
RTCoreUtil: CEDAR DEFINITIONS =
BEGIN
GetCoreIntProp: PROC [cellType: Core.CellType, prop: ATOM, default: INT] RETURNS [num: INT];
get a integer number property from a cell
PutCoreIntProp: PROC [cellType: Core.CellType, prop: ATOM, num: INT];
put a integer number property from a cell
GetCoreRealProp: PROC [cellType: Core.CellType, prop: ATOM, default: REAL] RETURNS [num: REAL];
get a real number property from a cell
PutCoreRealProp: PROC [cellType: Core.CellType, prop: ATOM, num: REAL];
put a real number property from a cell
GetCoreAtomProp: PROC [cellType: Core.CellType, prop: ATOM] RETURNS [ATOM];
get a Atom property from a cell
CopyProps: PROC [sourceProperties: Core.Properties, interestingProperties: RTCoreUtil.PropertyKeys] RETURNS [destProperties: Core.Properties];
copy the interesting properties
EnumerateInstances: PROC [cellType: Core.CellType, eachInstance: EachInstanceProc] RETURNS [quit: BOOL];
May raise StructureError[MissingParameter].
EachInstanceProc: TYPE = PROC [cellInstance: CoreClasses.CellInstance] RETURNS [quit: BOOLFALSE];
EnumerateFlatWires: PROC [wire: Core.Wire, eachWire: EachWireProc] RETURNS [quit: BOOL];
EachWireProc: TYPE = CoreOps.EachWireProc;
EnumFlatInstancePins: PROC [cellInstance: CoreClasses.CellInstance, eachInstancePin: EachInstancePinProc];
EachInstancePinProc: TYPE = CoreOps.EachWirePairProc;
Flatten: PROC [root: Core.CellType, flattenCellType: FlattenCellTypeProc, definePublicWire, defineInternalWire: FlatWireProc, defineInstance: FlatInstanceProc, interestingProperties: PropertyKeys ← NIL];
FlatWireProc: TYPE = PROC [wire: Core.Wire, pathName: Rope.ROPE] RETURNS [quit: BOOLFALSE];
FlatInstanceProc: TYPE = PROC [cellInstance: CoreClasses.CellInstance, pathName: Rope.ROPE] RETURNS [quit: BOOLFALSE];
FlattenCellTypeProc: TYPE = PROC [cellType: Core.CellType] RETURNS [flatten: BOOL];
PropertyKeys: TYPE = REF PropertyKeysRec;
PropertyKeysRec: TYPE = RECORD [
p: SEQUENCE size: NAT OF ATOM];
defaultFlatten: RTCoreUtil.FlattenCellTypeProc;
flatten until celltype has a $Layout property
END.