DM.mesa
Written By: Jean Vuillemin and Pradeep Sindhu
Last Edited By: Pradeep Sindhu September 2, 1985 10:27:32 pm PDT
DIRECTORY
DragOpsCross USING [Word, OnesWord, ZerosWord],
IO;
DM: CEDAR DEFINITIONS = BEGIN
Word: TYPE = DragOpsCross.Word;
ZerosWord: Word = DragOpsCross.ZerosWord;
OnesWord: Word = DragOpsCross.OnesWord;
ActionProc: TYPE = PROC [component: Component];
Action: TYPE = {Reset, PhA, EvPhA, PhB, EvPhB};
Component: TYPE = REF ComponentRec;
ComponentRec: TYPE = RECORD [
action: ARRAY Action OF ActionProc,
history: LIST OF HistoryElement,
componentType: ATOM,
subComponents: ComponentList,
specific: REF ANY
];
ComponentList: TYPE = LIST OF Component;
HistoryElement: TYPE = REF HistoryElementRec;
HistoryElementRec: TYPE = RECORD [
phase: Action,
data: REF ANY
];
Apply: PUBLIC PROC [component: DM.Component, action: DM.Action];
ListApply: PUBLIC PROC [componentList: DM.ComponentList, action: DM.Action];
ConsHistory: PUBLIC PROC [phase: Action, data: REF ANY, history: LIST OF HistoryElement] RETURNS [newHistory: LIST OF HistoryElement];
PrintHistory: PUBLIC PROC [c: DM.Component, out: IO.STREAM];
END.