private static Expression ParseToken(IOperation currentOperation) { Contract.Requires(currentOperation != null); TokenOf result = new TokenOf(); result.Definition = currentOperation.Value; return result; }
private static Expression ParseToken(IOperation currentOperation) { TokenOf result = new TokenOf(); result.Definition = currentOperation.Value; return result; }
/// <summary> /// Visits the specified token of. /// </summary> /// <param name="tokenOf">The token of.</param> public override void Visit(ITokenOf tokenOf) { TokenOf mutableTokenOf = new TokenOf(tokenOf); this.resultExpression = this.myCodeCopier.DeepCopy(mutableTokenOf); }
/// <summary> /// Visits the specified token of. /// </summary> /// <param name="tokenOf">The token of.</param> /// <returns></returns> protected virtual IExpression DeepCopy(TokenOf tokenOf) { IFieldReference/*?*/ fieldReference = tokenOf.Definition as IFieldReference; if (fieldReference != null) tokenOf.Definition = this.Substitute(fieldReference); else { IMethodReference/*?*/ methodReference = tokenOf.Definition as IMethodReference; if (methodReference != null) tokenOf.Definition = this.Substitute(methodReference); else tokenOf.Definition = this.Substitute((ITypeReference)tokenOf.Definition); } tokenOf.Type = this.Substitute(tokenOf.Type); return tokenOf; }
/// <summary> /// Rewrites the children of the given tokenof() expression. /// </summary> public virtual void RewriteChildren(TokenOf tokenOf) { this.RewriteChildren((Expression)tokenOf); var fieldReference = tokenOf.Definition as IFieldReference; if (fieldReference != null) tokenOf.Definition = this.Rewrite(fieldReference); else { var methodReference = tokenOf.Definition as IMethodReference; if (methodReference != null) tokenOf.Definition = this.Rewrite(methodReference); else { var typeReference = (ITypeReference)tokenOf.Definition; tokenOf.Definition = this.Rewrite(typeReference); } } }
/// <summary> /// Visits the specified token of. /// </summary> /// <param name="tokenOf">The token of.</param> public override void Visit(ITokenOf tokenOf) { TokenOf mutableTokenOf = tokenOf as TokenOf; if (alwaysMakeACopy || mutableTokenOf == null) mutableTokenOf = new TokenOf(tokenOf); this.resultExpression = this.myCodeMutator.Visit(mutableTokenOf); }
/// <summary> /// Visits the specified token of. /// </summary> /// <param name="tokenOf">The token of.</param> /// <returns></returns> public virtual IExpression Visit(TokenOf tokenOf) { IFieldReference/*?*/ fieldReference = tokenOf.Definition as IFieldReference; if (fieldReference != null) tokenOf.Definition = this.Visit(fieldReference); else { IMethodReference/*?*/ methodReference = tokenOf.Definition as IMethodReference; if (methodReference != null) tokenOf.Definition = this.Visit(methodReference); else tokenOf.Definition = this.Visit((ITypeReference)tokenOf.Definition); } tokenOf.Type = this.Visit(tokenOf.Type); return tokenOf; }