private anytype evalBinary(Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.BinaryExpression _expr) { switch (true) { case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.AddExpression : return this.evalExpression(_expr.get_Left()) + this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.SubtractExpression : return this.evalExpression(_expr.get_Left()) - this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.MultiplyExpression : return this.evalExpression(_expr.get_Left()) * this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.DivideExpression : return this.evalExpression(_expr.get_Left()) / this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.OrExpression : return this.evalExpression(_expr.get_Left()) || this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.AndExpression : return this.evalExpression(_expr.get_Left()) && this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.EqualExpression : return this.evalExpression(_expr.get_Left()) == this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.NotEqualExpression : return this.evalExpression(_expr.get_Left()) != this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.LessThanExpression : return this.evalExpression(_expr.get_Left()) < this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.LessThanOrEqualExpression : return this.evalExpression(_expr.get_Left()) <= this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.GreaterThanExpression : return this.evalExpression(_expr.get_Left()) > this.evalExpression(_expr.get_Right()); case _expr is Microsoft.Dynamics.AX.Framework.Tools.CodeUpgradeTool.Parser.GreaterThanOrEqualExpression : return this.evalExpression(_expr.get_Left()) >= this.evalExpression(_expr.get_Right()); default: type = _expr.GetType(); throw error(strFmt("Expression %1 not implemented", CLRInterop::getAnyTypeForObject(type.get_Name()))); } }