Exemplo n.º 1
0
        public static int Main(string[] args)
        {
            var options = new Options();

            if (!options.Parse())
            {
                PrintUsage(options);
                return(-1);
            }

            var cts = new CancellationTokenSource();
            var ct  = cts.Token;

            Console.CancelKeyPress += delegate { cts.Cancel(); };

            try
            {
                var engine = AnalysisEngine.FromFilePaths(
                    options.FilePaths,
                    symbolConfigurations: options.SymbolConfigurations,
                    alwaysDefinedSymbols: options.DefinedSymbols,
                    alwaysDisabledSymbols: options.DisabledSymbols,
                    alwaysIgnoredSymbols: options.IgnoredSymbols,
                    undefinedSymbolValue: options.UndefinedSymbolValue,
                    cancellationToken: ct).Result;

                engine.DocumentAnalyzed += (analysisEngine, info, cancellationToken) => OnDocumentAnalyzed(analysisEngine, options, info, cancellationToken);
                RunAsync(engine, options, ct).Wait(ct);
            }
            catch (OperationCanceledException)
            {
                Console.WriteLine("Canceled.");
                return(1);
            }

            return(0);
        }