public Decoder(IExpressionContext <Local, Parameter, Method, Field, Type, Expression, Variable> context, IDecodeMetaData <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly> decoderForMetaData) { Contract.Requires(context != null); this.context = context; this.decoderForMetaData = decoderForMetaData; visitorForIsUnaryExpression = new VisitorForIsUnaryExpression(); visitorForIsBinaryExpression = new VisitorForIsBinaryExpression(); visitorForVariablesIn = new VisitorForVariablesIn(context); visitorForValueOf = new VisitorForValueOf(); visitorForSizeOf = new VisitorForSizeOf(); visitorForIsNull = new VisitorForIsNull(); visitorForVariable = new VisitorForVariable(); visitorForIsInst = new VisitorForIsInst(); visitorForUnderlyingVariable = new VisitorForUnderlyingVariable(); visitorForDispatch = new VisitorForDispatch(this); }
public Variable UnderlyingVariable(Expression exp) { return(VisitorForUnderlyingVariable.UnderlyingVariable(exp, this)); }