<<[Indigo]2.3>Rosemary.df=>RoseCreate.Mesa>> <> DIRECTORY RoseTypes; RoseCreate: CEDAR DEFINITIONS = BEGIN OPEN RoseTypes; InterfaceMismatch: ERROR [cell: Cell, index: CARDINAL, expected, got: NodeType]; RegisterCellClass: PROC [className: ROPE, expandProc: ExpandProc _ NIL, ioCreator: IOCreator _ NIL, initializer: Initializer _ NIL, evals: EvalProcs, blackBox, stateToo: CellTestProc _ NIL, ports: Ports, drivePrototype: REF ANY _ NIL, classData: REF ANY _ NIL] RETURNS [class: CellClass]; GetCellClass: PROC [className: ROPE] RETURNS [class: CellClass]; CreateSim: PROC [steady: BOOL] RETURNS [sim: Simulation]; CreateTopCell: PROC [instanceName, className: ROPE, decider: ExpandDeciderClosure, initData: REF ANY _ NIL, steady: BOOL _ TRUE] RETURNS [cell: Cell, osim: Simulation]; <> <> ExpandDeciderClosure: TYPE = REF ExpandDeciderClosureRep; ExpandDeciderClosureRep: TYPE = RECORD [ Decide: ExpandDecider, otherData: REF ANY]; ExpandDecider: TYPE = PROC [cell: Cell, otherData: REF ANY] RETURNS [ExpandDecision]; Possible: PROC [cell: Cell, whatToDo: ExpandDecision] RETURNS [possible: BOOLEAN]; CreateTest: PROC [rootName, testerName, testeeName, className: ROPE, stateToo: BOOL _ TRUE, decider: ExpandDeciderClosure, initData: REF ANY _ NIL, steady: BOOL _ TRUE] RETURNS [root: Cell, osim: Simulation, cth: CellTestHandle]; WrapTop: PROC [rootName, className: ROPE, decider: ExpandDeciderClosure, initData: REF ANY _ NIL, clocks: ROPE _ NIL, steady: BOOL _ TRUE] RETURNS [root: Cell, osim: Simulation]; <> CreateCell: PROC [within: Cell, instanceName, className, interfaceNodes: ROPE, initData: REF ANY _ NIL] RETURNS [cell: Cell]; CreateNode: PROC [within: Cell, name: ROPE, type: NodeType, initialValue: ROPE _ NIL, initData: REF ANY _ NIL] RETURNS [node: Node]; PortsFromROPE: PROC [asRope: ROPE] RETURNS [ports: Ports]; PortsFromFile: PROC [fileName: ROPE] RETURNS [ports: Ports]; PortsFromStream: PROC [stream: STREAM] RETURNS [ports: Ports]; SplitJoin: PROC [within: Cell, a, b: StretchList, writeA, writeB: BOOLEAN]; <> ChangeReps: PROC [within: Cell, a, b: Node, writeA, writeB: BOOLEAN]; <> DecideFromFile: PROC [fileName: ROPE] RETURNS [dff: ExpandDeciderClosure]; LookupCell: PROC [ path: RopeList, from: Cell _ NIL --NIL means first name names root--] RETURNS [cell: Cell]; LookupNode: PROC [ path: RopeList, from: Cell _ NIL] RETURNS [node: Node]; EnsureEnvironment: PROC [in: Cell, forClass: CellClass]; MirrorPorts: PROC [fwd: Ports, alwaysOutput, alwaysInput: BOOL _ FALSE] RETURNS [bkwd: Ports]; MakeMirrorIO: PROC [cell: Cell] RETURNS [a, b: REF ANY]; END.