/// <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(); }