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