<> <> <> <> DIRECTORY CD USING [Design], Core USING [CellClass, CellType, Properties, Wire, Wires], Boole USING [Expression], CoreCreate USING [PA, WR], Rope USING [ROPE], Sisyph USING [Context]; TrueAlps: CEDAR DEFINITIONS = BEGIN <> Expression: TYPE = Boole.Expression; ROPE: TYPE = Rope.ROPE; CellType: TYPE = Core.CellType; Properties: TYPE = Core.Properties; Wire: TYPE = Core.Wire; Wires: TYPE = Core.Wires; WR: TYPE = CoreCreate.WR; PA: TYPE = CoreCreate.PA; <> inputXmeansX: BOOL; InputRec: TYPE = RECORD [ input: WR, driver: CellType, pas: LIST OF PA _ NIL ]; <> OutputRec: TYPE = RECORD [ output: WR, expr: Expression, driver: CellType, pas: LIST OF PA _ NIL ]; <> Inputs: TYPE = LIST OF InputRec; Outputs: TYPE = LIST OF OutputRec; trueAlpsClass: Core.CellClass; <> cellLibrary: CD.Design; -- read from TrueAlps.dale cx: Sisyph.Context; -- the Sysiph context derived form it AlpsCell: PROC [public: Wire, inputs: Inputs, outputs: Outputs, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [recordCell: CellType]; <> <> <> <> WireVar: PROC [public: Wire, wr: WR] RETURNS [expr: Expression]; <> EqualInt: PROC [public: Wire, wr: WR, int: INT] RETURNS [expr: Expression]; <> <> Size: PROC [vars: LIST OF ROPE, expr: Expression] RETURNS [size: INT _ 0]; END.