IFUAsmImpl.mesa
Copyright c 1985 by Xerox Corporation. All rights reserved.
Last Edited by Curry, December 26, 1985 2:06:27 pm PST
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.