DIRECTORY CD, CDFrame, CDIO, Commander, CommandTool, IFUPW, IFUPWControl, IFUAsm, IO, Rope; IFUAsmRun: CEDAR PROGRAM IMPORTS CDFrame, CDIO, Commander, CommandTool, IFUAsm, IFUPW, IFUPWControl, Rope = BEGIN OPEN IFUAsm; design: CD.Design; RunCT: Commander.CommandProc = { nofArgs: INT _ CommandTool.NumArgs[cmd]; top: CDFrame.Frame _ Complete; expand: BOOL _ FALSE; build: LIST OF Rope.ROPE; write: LIST OF Rope.ROPE _ LIST[ -- default list of saved shells "IFUAsmLeftColumn", "IFUAsmDataColumnCore", "IFUAsmDataColumn", "IFUAsmRightColumn"]; list: LIST OF Rope.ROPE; comlist: LIST OF Rope.ROPE _ CommandTool.ParseToList[cmd].list; design _ IFUPW.GetDesign[IFUAsm.RefDesign[]]; FOR list _ comlist, list.rest WHILE list#NIL DO Next: PROC RETURNS[next: Rope.ROPE] = {IF list.rest=NIL THEN ERROR; list _ list.rest; next _ list.first}; SELECT list.first.Fetch[0] FROM '- => SELECT list.first.Fetch[1] FROM 'R, 'r => IF NOT CDFrame.ReadShellFrame[top, Next[]].done THEN ERROR; 'W, 'w => write _ CONS[Next[], write]; 'B, 'b => build _ CONS[Next[], build]; 'E, 'e => expand _ TRUE; ENDCASE; ENDCASE => build _ CONS[list.first, build]; ENDLOOP; IF build.rest # NIL OR build.first=NIL THEN ERROR; top _ IFUPWControl.BuildFrame[top, build.first, design].new; FOR list: LIST OF Rope.ROPE _ write, list.rest WHILE list#NIL DO top _ CDFrame.WriteShellFrame[top, list.first ].new ENDLOOP; IF expand THEN { IFUPWControl.IncludeRecursiveInDesign[design]; -- make it real [ ] _ CDIO.WriteDesign[design, build.first]}; IFUPW.AssembleFrame[design, top, NIL, build.first]}; Commander.Register [proc: RunCT, key: "IFUAsmRun"]; END. ŠIFUAsmRun.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Last Edited by Curry, January 28, 1986 4:44:49 pm PST ʺ˜šœ™Jšœ<™—šœœ˜Jšœ/ž˜>Jšœœ#˜-—Jšœœ˜4—J˜Jšœ6˜6J˜Jšœ˜J˜—J˜—…—v º