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