<> <> <> <> DIRECTORY ChoiceButtons, Core, CoreFlat, IO, Ports, Rosemary, ViewerClasses; RosemaryUser: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Core.ROPE; <> DisplayViewer: PROC [simulation: Rosemary.Simulation, cellType: Core.CellType, name: ROPE _ NIL, displayWires: CoreFlat.FlatWires _ NIL] RETURNS [handle: RoseDisplay]; UpdateDisplay: PROC [handle: RoseDisplay]; <> TestProcedureViewer: PROC [cellType: Core.CellType, testButtons: LIST OF ROPE, name: ROPE _ NIL, displayWires: CoreFlat.FlatWires _ NIL, flatten: BOOL _ FALSE, cutSets: LIST OF ROPE _ NIL, historySize: NAT _ 0] RETURNS [simulation: Rosemary.Simulation]; RegisterTestProc: PROC [name: ROPE, proc: TestProc]; TestProc: TYPE = PROC [cellType: Core.CellType, p: Ports.Port, Eval: PROC]; <> DisplayInstancePortLeafWires: PROC [instance: CoreFlat.FlatInstanceRec] RETURNS [displayWires: CoreFlat.FlatWires]; DisplayCellTypePortLeafWires: PROC [cellType: Core.CellType] RETURNS [displayWires: CoreFlat.FlatWires]; <> <> <<>> RoseDisplay: TYPE = REF RoseDisplayRec; RoseDisplayRec: TYPE = RECORD [ cellType: Core.CellType, simulation: Rosemary.Simulation, displayWires: LIST OF ChoiceButtons.PromptDataRef _ NIL, tsin: IO.STREAM _ NIL, tsout: IO.STREAM _ NIL, path: ViewerClasses.Viewer _ NIL, currentWire: ViewerClasses.Viewer _ NIL]; END.