<> <> <> DIRECTORY Core; CoreArray: CEDAR DEFINITIONS = BEGIN OPEN Core; <> <> <> <> arrayCellClass: CellClass; ArrayCellType: TYPE = REF ArrayCellTypeRec; ArrayCellTypeRec: TYPE = RECORD [ xparams: ArrayParams _ NIL, yparams: ArrayParams _ NIL, select: XYSelect _ NIL, bind: XYBind _ NIL, cellTypes: SEQUENCE length: NAT OF CellType]; <> <> ArrayParams: TYPE = REF ArrayParamsRec; ArrayParamsRec: TYPE = RECORD [ count: NAT _ 0, orthogonal: Ports _ NIL, chains: SEQUENCE length: NAT OF Ports]; Ports: TYPE = REF PortsRec; PortsRec: TYPE = RECORD [SEQUENCE length: NAT OF PortIndex]; PortIndex: TYPE = NAT; XYSelect: TYPE = PROC [x, y: INT, cellType: CellType] RETURNS [cellTypeIndex: NAT]; XYBind: TYPE = PROC [x, y: INT, cellType: CellType] RETURNS [actual: Wire]; <> <<>> Create: PROC [arrayCellType: ArrayCellType, name: ROPE _ NIL, publicWire: Wire _ NIL] RETURNS [cellType: CellType]; <> <<>> Print: PROC [arrayCellType: ArrayCellType, out: STREAM]; END.