Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }