% 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