DIRECTORY CD, CDSequencer, Rope USING [ROPE]; CDCommandOps: CEDAR DEFINITIONS = BEGIN TheInstance: PROC[comm: CDSequencer.Command, text: Rope.ROPE_NIL] RETURNS [inst: CD.Instance]; ImplementSpecificCommand: PROC [specificAtom: ATOM, text: Rope.ROPE_NIL, tipBase: Rope.ROPE_NIL, useFor: Rope.ROPE_NIL, x: REF_NIL, technology: CD.Technology_NIL]; WriteInfo: PROC[inst: CD.Instance, verbosity: INT_1]; RedrawInstance: PROC[design: CD.Design, inst: CD.Instance_NIL, erase: BOOL_TRUE]; CallWithResource: PROC [proc: PROC[CDSequencer.Command], comm: CDSequencer.Command, resource: REF, abortFlag: REF BOOL_NIL] RETURNS [skipped: BOOL]; END. 4CDCommandOps.mesa (part of ChipNDale) Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. by Christian Jacobi, July 12, 1984 3:46:45 pm PDT last edited by Christian Jacobi, September 19, 1985 4:06:26 am PDT Various procedures to ease implementing commands --extracts the application given a command --if returned application is nil, all the messages are made and caller should return quiet; --if returned application is not nil; text line is written and object is there --Implements a command which is executed by using CDCallSpecific --specificAtom: handled through to select CDCallSpecific command --text: logged; defaults to tipBase --tipBase: How command is called in tiptable; defaults to specificAtom --useFor: Suffix letters appended to tipBase getting the tip table entry --x: handled through to CDCallSpecific --technology: NIL => all technologies --command will be queued and changeflag will be set --Monitoring commands using global resources --proc will be called with comm as parameter, but is skipped if resource is already in use --resource: typically atom; every resource is called only once at a time --abortFlag: will be set to TRUE if an abort event occurs while execution of proc --the procedure message on Terminal if it skipped the call, or, if abortFlag is true on return ΚΥ˜codešœ,™,Kšœ Οmœ7™BKšœ2™2KšœB™BK˜—šΟk ˜ Kšžœ˜Kšœ ˜ Kšœžœžœ˜—K˜KšΠbl œžœž œ˜!Kšž˜K™Kšœ0™0K˜š Οn œžœ'žœžœžœžœ ˜^K™*Kšœ[™[KšœN™NK˜—š œžœžœ žœžœžœžœžœžœžœžœžœ žœ˜£Kšœ@™@Kšœ@™@Kšœ#™#KšœF™FKšœH™HKšœ&™&Kšœ%™%K™3K˜—š  œžœžœžœ˜5K˜—š œžœ žœžœ žœ žœžœ˜QK˜—š œžœžœ<žœ žœžœžœžœ žœ˜”Kšœ.™.Kšœ\™\KšœH™HKšœQ™QKšœa™a—K˜Kšžœ˜K˜—…—† 