protected IMethodGraph BuildMethodGraph(Method method)
 {
     IProblemPipe problemPipe = new TypeParser();
       IBlacklistManager blacklistManager = new IDbCommandBlacklistManagerStub();
       IMethodGraphBuilder methodGraphBuilder = new MethodGraphBuilder (method, blacklistManager, problemPipe);
       methodGraphBuilder.Build();
       IMethodGraph methodGraph = methodGraphBuilder.GetResult();
       return methodGraph;
 }
        public void Parse(Method method)
        {
            ArgumentUtility.CheckNotNull("method", method);
            IMethodGraphAnalyzer       methodParser                = new MethodGraphAnalyzer(_problemFilter);
            IMethodGraphBuilder        methodGraphBuilder          = new MethodGraphBuilder(method, _blacklistManager, _problemFilter);
            IInitialSymbolTableBuilder parameterSymbolTableBuilder = new InitialSymbolTableBuilder(method, _blacklistManager);

            methodParser.Parse(methodGraphBuilder, parameterSymbolTableBuilder);
        }
        protected IMethodGraph BuildMethodGraph(Method method)
        {
            IProblemPipe        problemPipe        = new TypeParser();
            IBlacklistManager   blacklistManager   = new IDbCommandBlacklistManagerStub();
            IMethodGraphBuilder methodGraphBuilder = new MethodGraphBuilder(method, blacklistManager, problemPipe);

            methodGraphBuilder.Build();
            IMethodGraph methodGraph = methodGraphBuilder.GetResult();

            return(methodGraph);
        }
        protected override void HandleStatement(HandleContext context)
        {
            AssignmentStatement assignmentStatement = (AssignmentStatement) context.Statement;
              if(!CoversAssignment(assignmentStatement))
            return;

              Method assignedMethod = GetAssignedDelegateMethod (assignmentStatement);
              DelegateNode sourceDelegateType = (DelegateNode) assignmentStatement.Source.Type;
              Fragment returnFragment = GetDelegateTypesReturnFragment (sourceDelegateType);
              ISymbolTable environment = GetDelegatesEnvironment (sourceDelegateType);

              IMethodGraphAnalyzer methodParser = new MethodGraphAnalyzer (_blockParserContext.ProblemPipe);
              IMethodGraphBuilder methodGraphBuilder = new MethodGraphBuilder (assignedMethod, _blockParserContext.BlacklistManager, _blockParserContext.ProblemPipe, returnFragment);
              IInitialSymbolTableBuilder parameterSymbolTableBuilder = new EmbeddedInitialSymbolTableBuilder (assignedMethod, _blockParserContext.BlacklistManager, environment);
              methodParser.Parse (methodGraphBuilder, parameterSymbolTableBuilder);
        }
        protected override void HandleStatement(HandleContext context)
        {
            AssignmentStatement assignmentStatement = (AssignmentStatement)context.Statement;

            if (!CoversAssignment(assignmentStatement))
            {
                return;
            }

            Method       assignedMethod     = GetAssignedDelegateMethod(assignmentStatement);
            DelegateNode sourceDelegateType = (DelegateNode)assignmentStatement.Source.Type;
            Fragment     returnFragment     = GetDelegateTypesReturnFragment(sourceDelegateType);
            ISymbolTable environment        = GetDelegatesEnvironment(sourceDelegateType);

            IMethodGraphAnalyzer       methodParser                = new MethodGraphAnalyzer(_blockParserContext.ProblemPipe);
            IMethodGraphBuilder        methodGraphBuilder          = new MethodGraphBuilder(assignedMethod, _blockParserContext.BlacklistManager, _blockParserContext.ProblemPipe, returnFragment);
            IInitialSymbolTableBuilder parameterSymbolTableBuilder = new EmbeddedInitialSymbolTableBuilder(assignedMethod, _blockParserContext.BlacklistManager, environment);

            methodParser.Parse(methodGraphBuilder, parameterSymbolTableBuilder);
        }
 public void Parse(Method method)
 {
     ArgumentUtility.CheckNotNull ("method", method);
       IMethodGraphAnalyzer methodParser = new MethodGraphAnalyzer (_problemFilter);
       IMethodGraphBuilder methodGraphBuilder = new MethodGraphBuilder (method, _blacklistManager, _problemFilter);
       IInitialSymbolTableBuilder parameterSymbolTableBuilder = new InitialSymbolTableBuilder (method, _blacklistManager);
       methodParser.Parse (methodGraphBuilder, parameterSymbolTableBuilder);
 }