<> <> <> <> <> DIRECTORY Core; CoreRecord: CEDAR DEFINITIONS = BEGIN OPEN Core; <> <> <> <<1) For each instance the actualWire field must conform to the publicWire field of the cell type which is pointed to by the instance.>> <> <> <> <> <<>> <<2) The wires of each actualWire field must point to wires that are reachable from the internalWire of the RecordCell.>> <<3) The publicWire of the CellType must point to wires that are reachable from the internalWire of the RecordCell.>> <> recordCellClass: CellClass; RecordCellType: TYPE = REF RecordCellTypeRec; RecordCellTypeRec: TYPE = RECORD [ internalWire: Wire, instances: CellInstanceList _ NIL]; CellInstance: TYPE = REF CellInstanceRec; CellInstanceList: TYPE = LIST OF CellInstance; CellInstanceRec: TYPE = RECORD [ name: ROPE _ NIL, actualWire: Wire, type: CellType, properties: Properties _ NIL]; Print: PROC [recordCellType: RecordCellType, out: STREAM]; Conform: PROC [w1, w2: Wire] RETURNS [BOOL]; Bound: PROC [instance1, instance2: CellInstance, public1, public2: Wire] RETURNS [b: BOOL]; <> internalWireFullName: ATOM; <> END.