コード例 #1
0
        /// <summary>
        /// Create a new P# static analysis context from the given program unit.
        /// </summary>
        /// <param name="project">Project</param>
        public static void Create(Project project)
        {
            AnalysisContext.Compilation = project.GetCompilationAsync().Result;

            AnalysisContext.Machines              = new List <ClassDeclarationSyntax>();
            AnalysisContext.MachineInheritance    = new Dictionary <ClassDeclarationSyntax, ClassDeclarationSyntax>();
            AnalysisContext.MachineActions        = new Dictionary <ClassDeclarationSyntax, List <string> >();
            AnalysisContext.Summaries             = new Dictionary <BaseMethodDeclarationSyntax, MethodSummary>();
            AnalysisContext.StateTransitionGraphs = new Dictionary <ClassDeclarationSyntax, StateTransitionGraphNode>();

            // Finds all the machines in the project.
            AnalysisContext.FindAllMachines();

            // Finds machine inheritance information.
            AnalysisContext.FindMachineInheritanceInformation();

            // Find all machine actions in the project.
            AnalysisContext.FindAllMachineActions();
        }