class FrameList
pri Frame : FrameInfo;
pri next : FrameList;
meth GetFrame =^ (res f: FrameInfo ·
f:= Frame;
)
end
meth SetFrame =^ (val f: FrameInfo ·
Frame:= f;
)
end
meth GetNext =^ (res f: FrameList ·
f:= Next;
)
end
meth SetNext =^ (val f: FrameList ·
Next:= f;
)
end
% Push and Pop for Frames
meth Push =^ ( vres TopFrame: FrameList; val F: FrameInfo ·
var NewFrameItem: FrameList ·
NewFrameItem := new FrameList;
NewFrameItem.SetFrame(F);
NewFrameItem.SetNext(TopFrame);
TopFrame:=NewFrameItem;
end
)
end
meth Pop =^ (vres TopFrame: FrameList; res F: FrameInfo ·
TopFrame.GetFrame(F);
TopFrame.GetNext(TopFrame);
)
end
end