<> <> <> <> <> DIRECTORY IO USING [STREAM], RProperties USING [PropList], Rope USING [ROPE]; Core: CEDAR DEFINITIONS = BEGIN OPEN ImplementationProperties: RProperties; <> <> <> <> <> ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; Properties: TYPE = PRIVATE ImplementationProperties.PropList; <> <> <> <> <<>> Wire: TYPE = REF WireRec; WireRec: TYPE = RECORD [ properties: Properties _ NIL, elements: SEQUENCE size: NAT OF Wire]; Wires: TYPE = LIST OF Wire; <> WireSeq: TYPE = REF WireRec; <> <> CellClass: TYPE = REF CellClassRec; CellClassRec: TYPE = RECORD [ name: ROPE, recast: RecastProc _ NIL, properties: Properties _ NIL, layersProps: BOOL _ TRUE]; RecastProc: TYPE = PROC [me: CellType] RETURNS [new: CellType]; <> <> <> CellType: TYPE = REF CellTypeRec; CellTypeRec: TYPE = RECORD [ class: CellClass, public: WireSeq, data: REF ANY _ NIL, properties: Properties _ NIL]; END.