RoseDisplayInsides.Mesa
Last Edited by: Spreitzer, October 7, 1984 4:28:15 pm PDT
Last Edited by: Barth, May 9, 1985 2:19:32 pm PDT
Last Edited by: Gasbarro, July 17, 1984 3:58:22 pm PDT
DIRECTORY HierarchicalDisplays, IO, OrderedSymbolTableRef, PrincOps, Rope, RoseConditions, RoseEvents, RoseRun, RoseTypes, Trees, ViewerClasses, ViewRec;
RoseDisplayInsides: CEDAR DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
Viewer: TYPE = ViewerClasses.Viewer;
Cell: TYPE = RoseTypes.Cell;
Node: TYPE = RoseTypes.Node;
TreeNode: TYPE = Trees.TreeNode;
Condition: TYPE = RoseConditions.Condition;
SymbolTable: TYPE = OrderedSymbolTableRef.Table;
TreeNodeList: TYPE = LIST OF TreeNode;
Display: TYPE = REF DisplayRep;
DisplayRep:
TYPE =
RECORD [
sim: RoseTypes.Simulation,
rootCell: Cell,
cth: RoseTypes.CellTestHandle ← NIL,
rootDisplay: HierarchicalDisplays.Parent,
rv: ViewRec.RecordViewer,
ctlPanel: ControlPanel,
log: IO.STREAM,
logging: Logging,
conditionHandle, conditionsHandle: REF ANY ← NIL,
notice: CONDITION,
stopResponse: StopResponse ← Abort,
stopped: PrincOps.FrameHandle ← NIL,
type: TopType,
parms: RoseRun.TestParms ← NIL,
mucking: INTEGER ← 0];
DisplayMode: TYPE = {Value, Test};
Logging: TYPE = ARRAY LogSubject OF BOOL ← ALL[FALSE];
LogSubject: TYPE = {simple, special, switch};
StopResponse: TYPE = {Resume, Abort, Signal};
TopType: TYPE = {Ordinary, Test};
IncList: TYPE = LIST OF RoseConditions.IncrementalCondition;
ControlPanel: TYPE = REF ControlPanelRep;
ControlPanelRep:
TYPE =
RECORD [
display: Display,
status: Status ← Idle,
incrementalDisplay: BOOLEAN ← FALSE,
logging: Logging,
Pack: PROC [display: Display],
NoticeEdits: PROC [display: Display] RETURNS [AOK: BOOLEAN],
Run: PROC [display: Display],
SingleStep: PROC [display: Display] RETURNS [stepType: RoseRun.StepType],
Interrupt: PROC [display: Display],
Disable: PROC [display: Display] RETURNS [ok: BOOL],
Proceed, Abort, Signal: PROC [display: Display],
ClearStack, ClearCondition, Or, PostCondition, RemoveCondition, PostIncremental, RemoveIncremental: PROC [display: Display],
AddNamedCondition, DeleteNamedCondition: PROC [display: Display, name: ROPE],
Save, Restore: PROC [display: Display, fileName: ROPE] RETURNS [errMsg: ROPE],
mode: DisplayMode ← Value,
conditions: SymbolTable,
conditionStack: TreeNodeList ← NIL,
condition: TreeNode ← NIL
];
Status: TYPE = {Idle, Running, Interrupted};
NodeDisplayList: TYPE = LIST OF NodeDisplay;
NodeDisplay:
TYPE =
RECORD [
org: NodeOrigin,
dc: HierarchicalDisplays.Child --where this display is
];
NodeOrigin:
TYPE =
RECORD [
socket: RoseTypes.Socket,
display: Display];
CellBrowser: TYPE = REF CellBrowserRep;
CellBrowserRep:
TYPE =
RECORD [
cell: Cell, display: Display,
changed: BOOLEAN ← FALSE];
NodeElt: TYPE = REF NodeEltRep;
NodeEltRep:
TYPE =
RECORD [
name: ROPE,
node: Node,
org: NodeOrigin,
parent: CellBrowser,
format: RoseTypes.Format,
interfaceIndex: CARDINAL,
interfaceNode, badString, changed: BOOLEAN ← FALSE,
testData: REF ANY ← NIL,
testProc: RoseTypes.NodeTestProc ← NIL];
CellState: TYPE = REF CellStateRep;
CellStateRep: TYPE = RECORD [cb0: CellBrowser];
InterfaceNodes: TYPE = REF InterfaceNodesRep;
InterfaceNodesRep: TYPE = RECORD [cb1: CellBrowser];
InternalNodes: TYPE = REF InternalNodesRep;
InternalNodesRep: TYPE = RECORD [cb2: CellBrowser];
Components: TYPE = REF ComponentsRep;
ComponentsRep: TYPE = RECORD [cb3: CellBrowser];
nodeDisplaysProp, cellStateDisplayProp: ATOM;
leafProp: ATOM;
nodeClass, cellClass, cellStateClass: HierarchicalDisplays.ChildClass;
NDLSearch: PROC [ndl: NodeDisplayList, org: NodeOrigin, remove: BOOLEAN] RETURNS [newdl: NodeDisplayList, nd: NodeDisplay, found: BOOLEAN];
NotifyNodeView: RoseEvents.NotifyProc;
NotifyCellView: RoseEvents.NotifyProc;
NotifyNodeQ: RoseEvents.NotifyProc;
NotifyNodeUD: RoseEvents.NotifyProc;
NotifyPerturb: RoseEvents.NotifyProc;
NotifyFound: RoseEvents.NotifyProc;
Push: PROC [display: Display, cond: Condition];
Pop: PROC [display: Display] RETURNS [cond: Condition];
END.