private static void Compile(Language language, string fileName) { var results = IntrospectionReader.Compile(language, fileName); if (results.Errors.Any()) { // Display compilation errors. var originalColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; { Console.WriteLine(Resources.Creating, Util.GetRelativePath(results.PathToAssembly)); Console.WriteLine(); foreach (var error in results.Errors) { Console.WriteLine(error); Console.WriteLine(); } } Console.ForegroundColor = originalColor; Console.WriteLine(Resources.PressAnyKeyToContinue); Console.ReadKey(); } else { Console.WriteLine(Resources.Creating, Util.GetRelativePath(results.PathToAssembly)); } }
private static void Generate(List <string> files, bool prettyPrint) { foreach (var file in files) { IntrospectionReader reader; using (var tr = File.OpenRead(file)) reader = new IntrospectionReader(tr); string prettyCode; var generated = reader.Generate(Language); using (var tr = new StreamReader(generated)) prettyCode = prettyPrint ? Language.PrettyPrinter.Print(tr) : NullPrettyPrinter.Instance.Print(tr); if (prettyCode.Length == 0) { Console.WriteLine(Resources.NoTypesFound, file); continue; } var outFile = Path.ChangeExtension(file, Language.FileExtension); Console.WriteLine(Resources.Creating, Util.GetRelativePath(outFile)); using (var fw = new StreamWriter(outFile, false)) fw.Write(prettyCode); Compile(Language, outFile); } }