% Subtract Int

meth isub =^ (

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

% Subtracting the operands

D.SetInfo(op1 – op2);

currentFrame.Push (D);

TopFrame.SetFrame(CurrentFrame);

end end end end end

)

end