% Multiply Int

meth imul =^ ( ·

var o : Object ·

var D : DataInfoInt ·

var op1 : int ·

var op2 : int ·

var CurrentFrame : FrameInfo ·

TopFrame.GetFrame(CurrentFrame);

% Getting the first operand on the Operand stack

currentFrame.Pop(o);

if [] o isExactly DataInfoInt ® (DataInfoInt) o.GetInfo(op2);

[] not (o isExactly DataInfoInt) ® miracle

fi

 

% Getting the second operand on the Operand stack

currentFrame.Pop(o);

if [] o isExactly DataInfoInt ® (DataInfoInt) o.GetInfo(op1);

[] not (o isExactly DataInfoInt) ® miracle

fi

% Multiplying the operands

D.SetInfo(op1 * op2);

currentFrame.Push (D);

TopFrame.SetFrame(CurrentFrame);

end end end end end

)

end