/// <summary> /// Runs the P# parsing engine. /// </summary> public void Run() { // Parse the projects. if (this.CompilationContext.Configuration.ProjectName.Equals("")) { foreach (var project in this.CompilationContext.GetSolution().Projects) { var psharpProject = new PSharpProject(this.CompilationContext, project.Name); psharpProject.Parse(); this.CompilationContext.GetProjects().Add(psharpProject); } } else { // Find the project specified by the user. var targetProject = this.CompilationContext.GetSolution().Projects.Where( p => p.Name.Equals(this.CompilationContext.Configuration.ProjectName)).FirstOrDefault(); var projectDependencyGraph = this.CompilationContext.GetSolution().GetProjectDependencyGraph(); var projectDependencies = projectDependencyGraph.GetProjectsThatThisProjectTransitivelyDependsOn(targetProject.Id); foreach (var project in this.CompilationContext.GetSolution().Projects) { if (!projectDependencies.Contains(project.Id) && !project.Id.Equals(targetProject.Id)) { continue; } var psharpProject = new PSharpProject(this.CompilationContext, project.Name); psharpProject.Parse(); this.CompilationContext.GetProjects().Add(psharpProject); } } }
/// <summary> /// Runs the P# parsing engine. /// </summary> public static void Run() { ParsingEngine.PSharpProjects = new List <PSharpProject>(); // Parse the projects. if (Configuration.ProjectName.Equals("")) { foreach (var project in ProgramInfo.Solution.Projects) { var psharpProject = new PSharpProject(project.Name); psharpProject.Parse(); ParsingEngine.PSharpProjects.Add(psharpProject); } } else { // Find the project specified by the user. var targetProject = ProgramInfo.Solution.Projects.Where( p => p.Name.Equals(Configuration.ProjectName)).FirstOrDefault(); var projectDependencyGraph = ProgramInfo.Solution.GetProjectDependencyGraph(); var projectDependencies = projectDependencyGraph.GetProjectsThatThisProjectTransitivelyDependsOn(targetProject.Id); foreach (var project in ProgramInfo.Solution.Projects) { if (!projectDependencies.Contains(project.Id) && !project.Id.Equals(targetProject.Id)) { continue; } var psharpProject = new PSharpProject(project.Name); psharpProject.Parse(); ParsingEngine.PSharpProjects.Add(psharpProject); } } // Rewrite the projects. for (int idx = 0; idx < ParsingEngine.PSharpProjects.Count; idx++) { ParsingEngine.PSharpProjects[idx].Rewrite(); } }
/// <summary> /// Runs the P# parsing engine. /// </summary> public static void Run() { ParsingEngine.PSharpProjects = new List<PSharpProject>(); // Parse the projects. if (Configuration.ProjectName.Equals("")) { foreach (var project in ProgramInfo.Solution.Projects) { var psharpProject = new PSharpProject(project.Name); psharpProject.Parse(); ParsingEngine.PSharpProjects.Add(psharpProject); } } else { // Find the project specified by the user. var targetProject = ProgramInfo.Solution.Projects.Where( p => p.Name.Equals(Configuration.ProjectName)).FirstOrDefault(); var projectDependencyGraph = ProgramInfo.Solution.GetProjectDependencyGraph(); var projectDependencies = projectDependencyGraph.GetProjectsThatThisProjectTransitivelyDependsOn(targetProject.Id); foreach (var project in ProgramInfo.Solution.Projects) { if (!projectDependencies.Contains(project.Id) && !project.Id.Equals(targetProject.Id)) { continue; } var psharpProject = new PSharpProject(project.Name); psharpProject.Parse(); ParsingEngine.PSharpProjects.Add(psharpProject); } } // Rewrite the projects. for (int idx = 0; idx < ParsingEngine.PSharpProjects.Count; idx++) { ParsingEngine.PSharpProjects[idx].Rewrite(); } }