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. ‚DM.mesa Written By: Jean Vuillemin and Pradeep Sindhu Last Edited By: Pradeep Sindhu September 2, 1985 10:27:32 pm PDT Κη˜™J™-J™@—J™šΟk ˜ Jšœ œ˜/Jšœ˜—J™codešΟbœœ œ˜˜Kšžœœ˜Kšœ)˜)Kšœ'˜'K˜KšΟn œœœ˜/Kšžœœ#˜/Kšž œœœ˜#šž œœœ˜Kšœœœ ˜#Kšœ œœ˜ Kšœœ˜Kšœ˜Kšœ œ˜K˜—K˜Kšž œœœœ ˜(Kšžœœœ˜-šžœœœ˜"K˜Kšœœ˜ K˜—K˜Kš Ÿœœœ œœ ˜@Kš Ÿ œœœœœ ˜LKšŸ œœœœœ œœœœœ˜†Kš Ÿ œœœœœœ˜<—Kšœ˜K˜K˜—J™J™—…—φ_