<> <> <> <> DIRECTORY Core, CoreClasses; CoreCreate: CEDAR DEFINITIONS = BEGIN <> <> <> ROPE: TYPE = Core.ROPE; RopeList: TYPE = LIST OF ROPE; Design: TYPE = Core.Design; CellType: TYPE = Core.CellType; CellInstance: TYPE = CoreClasses.CellInstance; Wire: TYPE = Core.Wire; Attributes: TYPE = LIST OF Attribute; Attribute: TYPE = RECORD [key: ATOM, val: REF ANY _ NIL]; CreateError: ERROR [type: CreateErrorType, message: ROPE]; CreateErrorType: TYPE = {BadBinding, DuplicateName, InvariantFailed, MissingParameter, NotRecordCell}; <> CreateRecordCell: PROC [design: Design, name: ROPE, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL] RETURNS [cell: CellType]; <> <<>> CreateSequenceCell: PROC [design: Design, name: ROPE, baseCell: CellType, count: NAT, sequencePorts: RopeList _ NIL, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL] RETURNS [cell: CellType]; <> <<>> CreateIdentityCell: PROC [design: Design, name: ROPE, baseCell: CellType, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL] RETURNS [cell: CellType]; <> <<>> FetchCell: PROC [design: Design, name: ROPE] RETURNS [cell: CellType]; <> <<>> CreateCellInstance: PROC [design: Design, in: CellType, type: CellType, bind: ROPE _ NIL, bindings: RopeList _ NIL, name: ROPE _ NIL, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL] RETURNS [instance: CellInstance]; <> <> <> <> <> <> <> <> CreateWireSequenceType: PROC [design: Design, name: ROPE _ NIL, count: NAT, base: Wire _ NIL, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL] RETURNS [wire: Wire]; <> CreateWireRecordType: PROC [design: Design, name: ROPE _ NIL, components: LIST OF Wire, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL] RETURNS [wire: Wire]; <> CreateWireType: PROC [design: Design, name: ROPE _ NIL, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL] RETURNS [wire: Wire]; <> CreateWire: PROC [design: Design, in: CellType, name: ROPE _ NIL, names: RopeList _ NIL, type: Wire _ NIL, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL] RETURNS [wire: Wire]; <> CreatePublicWire: PROC [design: Design, on: CellType, name: ROPE _ NIL, names: RopeList _ NIL, type: Wire _ NIL, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL] RETURNS [wire: Wire]; <> <<>> <> PutAttributeOnCell: PROC [design: Design, on: CellType, attribute: Attribute _ [NIL, NIL], attributes: Attributes _ NIL]; END.