private RootUstNode AnalyzeFile(SourceFileBuildResult sourceFileBuildResult, string projectRootPath) { CodeContext codeContext = new CodeContext(sourceFileBuildResult.PrePortSemanticModel, sourceFileBuildResult.SemanticModel, sourceFileBuildResult.SyntaxTree, projectRootPath, sourceFileBuildResult.SourceFilePath, AnalyzerConfiguration, Logger); Logger.LogDebug("Analyzing: " + sourceFileBuildResult.SourceFileFullPath); using CSharpRoslynProcessor processor = new CSharpRoslynProcessor(codeContext); var result = processor.Visit(codeContext.SyntaxTree.GetRoot()); return(result as RootUstNode); }
private ProjectWorkspace AnalyzeProject(ProjectBuildResult projectResult) { Logger.LogDebug("Analyzing the project: " + projectResult.ProjectPath); ProjectWorkspace workspace = new ProjectWorkspace(projectResult.ProjectPath) { SourceFiles = new UstList <string>(projectResult.SourceFiles), BuildErrors = projectResult.BuildErrors, BuildErrorsCount = projectResult.BuildErrors.Count }; if (AnalyzerConfiguration.MetaDataSettings.ReferenceData) { workspace.ExternalReferences = projectResult.ExternalReferences; } workspace.TargetFramework = projectResult.TargetFramework; workspace.TargetFrameworks = projectResult.TargetFrameworks; foreach (var fileBuildResult in projectResult.SourceFileBuildResults) { CodeContext codeContext = new CodeContext(fileBuildResult.SemanticModel, fileBuildResult.SyntaxTree, workspace.ProjectRootPath, fileBuildResult.SourceFilePath, AnalyzerConfiguration, Logger); Logger.LogDebug("Analyzing: " + fileBuildResult.SourceFileFullPath); using (CSharpRoslynProcessor processor = new CSharpRoslynProcessor(codeContext)) { var result = processor.Visit(codeContext.SyntaxTree.GetRoot()); workspace.SourceFileResults.Add((RootUstNode)result); } } return(workspace); }