IFUAsmImpl.mesa
Copyright c 1985 by Xerox Corporation. All rights reserved.
Last Edited by Curry, December 26, 1985 2:06:27 pm PST
DIRECTORY
CD,
CDFrame,
IFUAsm,
IFUPW,
IFUPWControl,
IO,
Rope;
IFUAsmImpl: CEDAR PROGRAM
IMPORTS CDFrame, IFUAsm, IFUPW, Rope
EXPORTS IFUAsm =
BEGIN
refDesign: CD.Design ← NIL;
RefDesign: PUBLIC PROC RETURNS[CD.Design] = {
IF refDesign=NIL THEN refDesign ← IFUPW.GetDesign["IFUAsm.dale"];
RETURN[refDesign]};
log: PUBLIC IO.STREAM ← CDFrame.GetLog[];
ListFrameName: PUBLIC PROC[name: IO.ROPE ← NIL, frame: CDFrame.Frame ← NIL]
RETURNS [done: BOOL] = {
IF frame=NIL THEN frame ← IFUAsm.Complete;
IF name=NIL THEN name ← frame.shell.name;
IF frame.shell=NIL OR NOT Rope.Equal[frame.shell.name, name] THEN {
done ← FALSE;
FOR index: INT IN [0..frame.seqSize) WHILE NOT done DO
done ← ListFrameName[name, frame[index]] ENDLOOP;
RETURN[done]};
IF frame.father#NIL
THEN CDFrame.LogFrame[frame.father, 3, log]
ELSE CDFrame.LogFrame[frame,   2, log];
RETURN[TRUE]};
END.