public VisualCodeVisitor(string operatorId, IOperatorCodeVisitor visitor, IModule module) : base(visitor)
        {
            visitor.Parent   = this;
            _processor       = new AstProcessor(module);
            _operatorId      = operatorId;
            _mutationTargets = new List <MutationTarget>();
            _sharedTargets   = new List <MutationTarget>();

            _formatter = new AstFormatter();
        }
Example #2
0
        public MultiDictionary <IMutationOperator, MutationTarget> FindTargets(CciModuleSource module, ProgressCounter subProgress)
        {
            _log.Info("Finding targets for module: " + module.Module.Name);
            _log.Info("Using mutation operators: " + _mutOperators.Select(_ => _.Info.Id)
                      .MayAggregate((a, b) => a + "," + b).Else("None"));

            var mergedTargets = new MultiDictionary <IMutationOperator, MutationTarget>();

            _sharedTargets = new MultiDictionary <IMutationOperator, MutationTarget>();
            subProgress.Initialize(_mutOperators.Count);
            foreach (var mutationOperator in _mutOperators)
            {
                try
                {
                    subProgress.Progress();
                    var ded = mutationOperator.CreateVisitor();
                    IOperatorCodeVisitor operatorVisitor = ded;
                    operatorVisitor.Host          = module.Host;
                    operatorVisitor.OperatorUtils = _operatorUtils;
                    operatorVisitor.Initialize();

                    var visitor = new VisualCodeVisitor(mutationOperator.Info.Id, operatorVisitor, module.Module.Module);

                    var traverser = new VisualCodeTraverser(_filter, visitor, module);

                    traverser.Traverse(module.Module.Module);
                    visitor.PostProcess();

                    IEnumerable <MutationTarget> mutations = LimitMutationTargets(visitor.MutationTargets);


                    mergedTargets.Add(mutationOperator, new HashSet <MutationTarget>(mutations));
                    _sharedTargets.Add(mutationOperator, new HashSet <MutationTarget>(visitor.SharedTargets));
                }
                catch (Exception e)
                {
                    _svc.Logging.ShowError("Finding targets operation failed in operator: {0}. Exception: {1}".Formatted(mutationOperator.Info.Name, e.ToString()));
                    //throw new MutationException("Finding targets operation failed in operator: {0}.".Formatted(mutationOperator.Info.Name), e);
                }
            }
            return(mergedTargets);
        }
        public HighestVisitor(IOperatorCodeVisitor visitor, IModule module, string id) : base(id, visitor, module)
        {

        }
 public VisualCodeVisitorBase(IOperatorCodeVisitor visitor)
 {
     this.visitor = visitor;
 }
Example #5
0
 public HighestVisitor(IOperatorCodeVisitor visitor, IModule module, string id) : base(id, visitor, module)
 {
 }
 public VisualCodeVisitorBase(IOperatorCodeVisitor visitor)
 {
     this.visitor = visitor;
 }