예제 #1
0
                    public static bool IsIsInst(Expression exp, out Type type, out Expression arg, Decoder decoder)
                    {
                        VisitorForIsInst visitor = decoder.visitorForIsInst;
                        bool             result  = Decode(exp, visitor, decoder);

                        type = visitor.Type;
                        arg  = visitor.Argument;
                        return(result);
                    }
예제 #2
0
                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);
                }
예제 #3
0
 public bool IsInst(Expression exp, out Expression arg, out Type type)
 {
     return(VisitorForIsInst.IsIsInst(exp, out type, out arg, this));
 }