PHPAnalysis.CTLLTLProgram.Analyze C# (CSharp) Метод

Analyze() приватный статический Метод

private static Analyze ( Arguments arguments, Config configuration ) : void
arguments Arguments
configuration PHPAnalysis.Configuration.Config
Результат void
        private static void Analyze(Arguments arguments, Config configuration)
        {
            Console.WriteLine ("Parsing project at: " + arguments.Target);
            Console.WriteLine ();

            var stopwatch = Stopwatch.StartNew ();

            Console.WriteLine ("Building ASTs..");
            ParseResult parseResult = ParseTarget (arguments, configuration);

            Console.WriteLine (" - AST build for " + parseResult.ParsedFiles.Count + " files (" + parseResult.FilesThatFailedToParse.Count + " failed)..");
            Console.WriteLine ("Traversing ASTs..");

            var filesCollection = new List<File> ();

            foreach (var parsedFile in parseResult.ParsedFiles) {
                ExtractFunctions (parsedFile);
            }

            /*Parallel.ForEach(parseResult.ParsedFiles,parsedFile =>
            {
                ExtractFunctions(parsedFile);
            });*/

            var bag = new ConcurrentBag<File> ();
            Parallel.ForEach (parseResult.ParsedFiles, parsedFile => {
                Console.WriteLine ("File: " + parsedFile.Key);

                var file = BuildFileCFGAndExtractFileInformation (parsedFile);
                bag.Add (file);
            });

            filesCollection.AddRange (bag);

            Console.WriteLine ("Creating CTLLTL Model...");
            File mainfile = filesCollection.Find (x => x.Name == arguments.Main);
            IncludeResolver ir = new IncludeResolver (filesCollection);
            var c = new CTLLTL ();
            string p = Path.Combine (arguments.Result, "graph-ctl");
            mainfile.CFG.VisualizeGraph (p, Configuration.GraphSettings);
            c.makeModel ((QuickGraph.BidirectionalGraph<CFGBlock, QuickGraph.TaggedEdge<CFGBlock, EdgeTag>>)mainfile.CFG, ir, Path.Combine (arguments.Result, "model.smv"));
            stopwatch.Stop ();
            Console.WriteLine ("Time spent: " + stopwatch.Elapsed);
        }