public static ResolveResult resolve(this O2AstResolver o2AstResolver, Expression expression, IClass callingClass, IMember callingMember)
        {
            o2AstResolver.initialize(expression);
            if (callingClass != null)                   // this is needed on the cases where we need to resolve expressions from partial files
            {
                o2AstResolver.resolver.CallingClass  = callingClass;
                o2AstResolver.resolver.CallingMember = callingMember;
                o2AstResolver.resolver.CaretColumn   = 0;
                o2AstResolver.resolver.CaretLine     = 0;
            }
            var methodDeclaration = expression.parent <MethodDeclaration>();

            if (methodDeclaration != null)
            {
                o2AstResolver.resolver.RunLookupTableVisitor(methodDeclaration);
            }
            else
            {
                var constructorDeclaration = expression.parent <ConstructorDeclaration>();
                if (constructorDeclaration != null)
                {
                    o2AstResolver.resolver.RunLookupTableVisitor(constructorDeclaration);
                }
            }
            //resolver.Initialize(parseInformation, memberReferenceExpression.StartLocation.Line, memberReferenceExpression.StartLocation.Column);
            //resolver.RunLookupTableVisitor(memberReferenceExpression);

            return(o2AstResolver.resolver.ResolveInternal(expression, ExpressionContext.Default));
        }
Пример #2
0
        public void onMethodDeclaration(MethodDeclaration methodDeclaration)
        {
            var mappedMethod = O2AstResolver.getMappedIMethod(methodDeclaration);

            if (mappedMethod != null && mappedMethod.DotNetName == MethodToFind)
            {
                foundMethods.Add(methodDeclaration);
            }
        }
Пример #3
0
 public List <MethodDeclaration> find(string methodToFind)
 {
     MethodToFind = methodToFind;
     foreach (var compilationUnit in O2AstResolver.parsedCompilationUnits.Values)
     {
         //graphAstVisitor.parseInformation.SetCompilationUnit(compilationUnit);
         O2AstResolver.setCurrentCompilationUnit(compilationUnit);
         compilationUnit.AcceptVisitor(O2AstVisitor, null);
         // var methods = compilationUnit.methods();
         // foreach (var method in methods)
         // {
         //      method.
         // }
     }
     return(foundMethods);
 }
 public static ResolveResult resolve(this O2AstResolver o2AstResolver, Expression expression)
 {
     //return o2AstResolver.resolve(expression,null,null);
     return(o2AstResolver.resolve(expression, null, null));
 }
 public static void initialize(this O2AstResolver o2AstResolver, Expression expression)
 {
     o2AstResolver.resolver.Initialize(o2AstResolver.parseInformation, expression.StartLocation.Line, expression.StartLocation.Column);
 }
Пример #6
0
 public AstMethodFinder(O2AstResolver o2AstResolver)
 {
     O2AstResolver = o2AstResolver;
     foundMethods  = new List <MethodDeclaration>();
     setupAstVisitor();
 }