DIRECTORY IO USING [STREAM], Rope USING [ROPE]; Core: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; Properties: TYPE = REF PropertyRec; PropertyRec: TYPE; Wire: TYPE = REF WireRec; WireRec: TYPE = RECORD [ properties: Properties _ NIL, elements: SEQUENCE size: NAT OF Wire]; CellClass: TYPE = REF CellClassRec; CellClassRec: TYPE = RECORD [ name: ROPE, recast: RecastProc _ NIL, properties: Properties _ NIL]; RecastProc: TYPE = PROC [me: CellType] RETURNS [new: CellType]; CellType: TYPE = REF CellTypeRec; CellTypeRec: TYPE = RECORD [ class: CellClass, public: Wire, data: REF ANY _ NIL, properties: Properties _ NIL]; END. TCore.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Barth, October 2, 1985 9:34:39 am PDT Bertrand Serlet November 26, 1985 11:49:06 am PST Spreitzer, September 9, 1985 11:01:46 pm PDT Theory This interface defines the basic data structures for the Core design automation system. It is actually a general decomposition facility that breaks designs down into cells which are then bound together. Common Types Wires wire.size=0 is atomic Cell Classes A cell class must have recast (except recordCellClass and primitive classes). Returns a new cell type with the same structure as me, expressed in a more familiar way. A recast proc may or may not return a unique copy of the recast; see CoreOps for a procedure that guarantees uniqueness of result. Cell Types CellTypes may not share any part of a public wire. public.size#0 Κ%– "cedar" style˜– "Cedar" stylešœ ™ Jšœ Οmœ1™