private Expression ParseMultiplication(OperationCode currentOpcode) { Multiplication multiplication = new Multiplication(); multiplication.CheckOverflow = currentOpcode != OperationCode.Mul; if (currentOpcode == OperationCode.Mul_Ovf_Un) { multiplication.TreatOperandsAsUnsignedIntegers = true; return this.ParseUnsignedBinaryOperation(multiplication); } else return this.ParseBinaryOperation(multiplication); }
/// <summary> /// Visits the specified multiplication. /// </summary> /// <param name="multiplication">The multiplication.</param> /// <returns></returns> protected virtual IExpression DeepCopy(Multiplication multiplication) { return this.DeepCopy((BinaryOperation)multiplication); }
/// <summary> /// Visits the specified multiplication. /// </summary> /// <param name="multiplication">The multiplication.</param> public override void Visit(IMultiplication multiplication) { Multiplication mutableMultiplication = new Multiplication(multiplication); this.resultExpression = this.myCodeCopier.DeepCopy(mutableMultiplication); }
/// <summary> /// Visits the specified multiplication. /// </summary> /// <param name="multiplication">The multiplication.</param> /// <returns></returns> public virtual IExpression Visit(Multiplication multiplication) { return this.Visit((BinaryOperation)multiplication); }
/// <summary> /// Rewrites the children of the given multiplication expression. /// </summary> public virtual void RewriteChildren(Multiplication multiplication) { this.RewriteChildren((BinaryOperation)multiplication); }
/// <summary> /// Visits the specified multiplication. /// </summary> /// <param name="multiplication">The multiplication.</param> public override void Visit(IMultiplication multiplication) { Multiplication mutableMultiplication = multiplication as Multiplication; if (alwaysMakeACopy || mutableMultiplication == null) mutableMultiplication = new Multiplication(multiplication); this.resultExpression = this.myCodeMutator.Visit(mutableMultiplication); }