diff --git a/DotNetAstGen/Program.cs b/DotNetAstGen/Program.cs index f252807..ffff944 100644 --- a/DotNetAstGen/Program.cs +++ b/DotNetAstGen/Program.cs @@ -82,15 +82,13 @@ private static void _ParseSourceCode(DirectoryInfo inputDirPath, DirectoryInfo r { _logger?.LogInformation("Parsing directory {dirName}", inputPath); var rootDirectory = new DirectoryInfo(inputPath); - foreach (var inputFile in new DirectoryInfo(inputPath).EnumerateFiles("*.cs", - SearchOption.AllDirectories)) - { - _AstForFile(rootDirectory, rootOutputPath, inputFile, exclusionRegex); - } + rootDirectory + .EnumerateFiles("*.cs", SearchOption.AllDirectories) + .AsParallel() + .ForAll(inputFile => _AstForFile(rootDirectory, rootOutputPath, inputFile, exclusionRegex)); } else if (File.Exists(inputPath)) { - _logger?.LogInformation("Parsing file {fileName}", inputPath); var file = new FileInfo(inputPath); Debug.Assert(file.Directory != null, "Given file has a null parent directory!"); _AstForFile(file.Directory, rootOutputPath, file, exclusionRegex); @@ -185,17 +183,12 @@ private static void _ParseByteCode(string inputPath, DirectoryInfo rootOutputPat if (Directory.Exists(inputPath)) { _logger?.LogInformation("Parsing directory {dirName}", inputPath); - - foreach (var inputFile in new DirectoryInfo(inputPath).EnumerateFiles("*.dll", - SearchOption.AllDirectories)) - { - _logger?.LogInformation("Parsing file {fileName}", inputPath); - _SummaryForDLLFile(inputFile, exclusionRegex); - } + new DirectoryInfo(inputPath).EnumerateFiles("*.dll", SearchOption.AllDirectories) + .AsParallel() + .ForAll(inputFile => _SummaryForDLLFile(inputFile, exclusionRegex)); } else if (File.Exists(inputPath)) { - _logger?.LogInformation("Parsing file {fileName}", inputPath); var file = new FileInfo(inputPath); Debug.Assert(file.Directory != null, "Given file has a null parent directory!"); _SummaryForDLLFile(file, exclusionRegex); @@ -218,6 +211,8 @@ private static void _SummaryForDLLFile(FileInfo filePath, string? exclusionRegex return; } + _logger?.LogInformation("Parsing file {fileName}", fullPath); + var jsonName = Path.Combine(filePath.DirectoryName ?? "./", $"{Path.GetFileNameWithoutExtension(fullPath)}_Symbols.json");