private static void Compile(string[] source, string[] args) { ConsoleAppender.StartCursorTop = Console.CursorTop + 1; ConsoleAppender.SetCursor(ConsoleAppender.StartCursorTop); var compiler = new Compiler(source); var generatedAssembly = compiler.ToAssembly(); if (compiler.Errors.Any()) { ListErrors(compiler.Errors.Select(x => x.Message).ToArray()); } if (!compiler.Errors.Any()) { var runable = new Runable(generatedAssembly, args); runable.Select += OnSelectResults; runable.Progress += OnProgress; try { PrintRunning(); runable.Run(); Console.WriteLine("Finished."); ConsoleAppender.StartCursorTop = Console.CursorTop; } catch (ThreadAbortException) { Log.Info("Program aborted"); } catch (Exception e) { Log.Fatal("Unexpected Exception", e); } } }
private static void PrintRunning() { ConsoleAppender.SetCursor(ConsoleAppender.StartCursorTop + 2); ConsoleAppender.ClearConsoleLine(Console.CursorTop); Console.WriteLine("Running..."); }