示例#1
0
        /// <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);
                }
            }
        }
示例#2
0
        /// <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);
                }
            }
        }
示例#3
0
        /// <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();
            }
        }
示例#4
0
        /// <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();
            }
        }