Reko.Scanning.Scanner.Scanner C# (CSharp) Method

Scanner() public method

public Scanner ( Program program, IImportResolver importResolver, IServiceProvider services ) : Reko.Analysis
program Program
importResolver IImportResolver
services IServiceProvider
return Reko.Analysis
        public Scanner(
            Program program, 
            IImportResolver importResolver,
            IServiceProvider services)
        {
            this.program = program;
            this.segmentMap = program.SegmentMap;
            this.importResolver = importResolver;
            this.Services = services;
            this.eventListener = services.RequireService<DecompilerEventListener>();
            this.cancelSvc = services.GetService<CancellationTokenSource>();
            if (segmentMap == null)
                throw new InvalidOperationException("Program must have an segment map.");
            if (program.ImageMap == null)
            {
                program.ImageMap = segmentMap.CreateImageMap();
            }
            this.imageMap = program.ImageMap;
            this.queue = new PriorityQueue<WorkItem>();
            this.blocks = new SortedList<Address, BlockRange>();
            this.blockStarts = new Dictionary<Block, Address>();
            this.pseudoProcs = program.PseudoProcedures;
            this.importReferences = program.ImportReferences;
            this.visitedProcs = new HashSet<Procedure>();
            this.noDecompiledProcs = new Dictionary<Address, Procedure_v1>();
        }