class RoolVirtualMachine

% Compiled program

pri fstClass : ClassList;

pri Initial : ClassInfo;

 

% Rool Execution Stack

pri TopFrame : FrameList;

 

% Set and Get Methods

meth SetfstClass =^ ( val f: ClassList ·

fstClass:= f;

)

end

meth GetfstClass =^ ( res f: ClassList ·

f:= fstClass;

)

end

meth SetInitial =^ ( val i: ClassInfo ·

Initial:= i;

)

end

meth GetInitial =^ ( res i: ClassInfo ·

i:= Initial;

)

end

% Getting next Bytecode

meth GetNextBytecode =^ ( res b: bytecode ·

var CurrentFrame: FrameInfo ·

TopFrame.GetFrame(CurrentFrame);

currentFrame.GetPC(b);

currentFrame.IncPC;

TopFrame.SetFrame(CurrentFrame);

end

)

end