Esempio n. 1
0
        private void AnalyzeSourceFiles()
        {
            IIncludeResolveStrategy includeResolveStrategy = GetIncludeResolveStrategy();

            _analyzedSourceFiles = 0;
            foreach (SourceFile sourceFile in _sourceDirectory.SourceFiles)
            {
                sourceFile.Analyze(includeResolveStrategy);
                _analyzedSourceFiles++;
                UpdateFileProgress(_analyzedSourceFiles, _sourceDirectory.SourceFiles.Count);
            }
        }
Esempio n. 2
0
        public void Analyze(IIncludeResolveStrategy includeResolveStrategy)
        {
            _includes.Clear();

            if (_fileInfo.Exists)
            {
                using (FileStream stream = _fileInfo.OpenRead())
                {
                    StreamReader sr = new StreamReader(stream);
                    string       line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        string relativeIncludeFilename = ExtractFileFromIncludeStatement(line);
                        ResolveIncludeFile(relativeIncludeFilename, includeResolveStrategy);
                    }
                }
            }
        }
Esempio n. 3
0
        internal void ResolveIncludeFile(string relativeIncludeFilename, IIncludeResolveStrategy includeResolveStrategy)
        {
            if (relativeIncludeFilename != null)
            {
                IList <IncludeCandidate> candidates = includeResolveStrategy.GetCandidates(relativeIncludeFilename);
                if (candidates.Count > 1)
                {
                    AmbiguousIncludes.Add(relativeIncludeFilename);
                }
                IList <string> resolvedIncludes = includeResolveStrategy.Resolve(_fileInfo.FullName, relativeIncludeFilename, candidates);
                foreach (string resolvedInclude in resolvedIncludes)
                {
                    _includes.Add(resolvedInclude);
                }

                if (resolvedIncludes.Count == 0)
                {
                    _unresolvedIncludes.Add(relativeIncludeFilename);
                }
            }
        }