DIRECTORY CD; CDSequencer: CEDAR DEFINITIONS = BEGIN Command: TYPE = REF CommandRec; CommandRec: TYPE = RECORD [ a: ATOM _ NIL, design: CD.Design _ NIL, l: CD.Level _ CD.combined, n: CD.Number _ 0, pos: CD.DesignPosition _ [0, 0], -- final position of command sPos: CD.DesignPosition _ [0, 0], -- special position, start position, (exceptional: size) orient: CD.Orientation _ CD.original, ref: REF _ NIL, b: BOOLEAN _ FALSE, private: --PRIVATE-- REF CommandPrivate _ NIL ]; CommandProc: TYPE = PROC[Command]; QueueMethod: TYPE = {doQueueAndMark, doQueue, dontQueue, useDefault}; CommandPrivate: PRIVATE TYPE = RECORD [p: CommandProc, qm: QueueMethod]; ExecuteCommand: PROC [comm: CDSequencer.Command, design: CD.Design_NIL, as: ATOM_NIL, queue: QueueMethod _ useDefault]; ImplementCommand: PROC [a: ATOM, p: CommandProc, technology: CD.Technology_NIL, queue: QueueMethod _ doQueueAndMark]; AbortTheCommand: PROC [design: CD.Design]; Aborted: PROC [design: CD.Design] RETURNS [BOOL]; CheckAborted: PROC [design: CD.Design]; END. RCDSequencer.mesa (A Chipndale module) Copyright c 1983, 1984 by Xerox Corporation. All rights reserved. by Christian Jacobi June 29, 1983 2:34 pm last edited by Christian Jacobi February 16, 1984 10:59 am --if as#NIL replaces comm.a --if design#NIL replaces comm.design --If technology is NIL implement for all technologies. --Reimplementing the same atom in a technology it already exists overwrites the command; --If the same atom is specified for a particular technology and all technologies, --the more specific implementation wins independent of order. --There is a (finite, short) list of atoms you MUST NOT use. --Don't fool with NIL CommandProc's if you don't know exactly how it works. --(NIL CommandProc's serves too install the list of commands you MUST NOT use.) --IF Aborted[design] THEN SIGNAL TerminalIO.UserAbort Ê ˜šœ*™*Jšœ Ïmœ7™BJšœ,™,Jšœ<™<—J˜šÏk ˜ Jšžœ˜J˜—JšÏn œžœž œ˜!Jšž˜J˜Jšœ žœžœ ˜šœ žœžœ˜Jšœžœžœ˜Jšœžœ žœ˜Jšœžœ žœ ˜Jšœžœ ˜JšœžœÏc˜=Jšœžœ 8˜ZJšœžœ˜%Jšœžœžœ˜Jšœžœž˜Jšœ žœž˜-J˜—Jšœ žœžœ ˜"Jšœ žœ4˜EJ˜Jšœžœžœžœ#˜HJ˜J˜š Ÿœžœ%žœžœžœžœ#˜wJšœ™Jšœ$™$—J˜š Ÿœžœžœžœ žœ*˜xJšœ6™6JšœY™YJšœQ™QJšœ>™>Jšœ<™