public static void Main(string [] args) { var compiler = new Compiler(); compiler.tokenizer = new Tokenizer(); Data data = new Data(); //compiler.data = data; data.set("print", (Action <object>)print); data.set("import", (Action <string>)import); //SolType.MapType(typeof(exampleClass), false, true); while (true) { Console.ResetColor(); clear(); string code = read(">"); string fileName = "RUNTIME"; bool debugMode = true; if (code.Contains("-debug")) { code = code.Replace("-debug", ""); code = code.Trim(); debugMode = false; } if (code.Contains(".txt") || code.Contains(".sol")) { fileName = Path.GetFileName(code); code = File.ReadAllText(code); } List <Token> tk = null; if (code.Contains(".sun")) { fileName = Path.GetFileName(code); tk = ByteCode.FromBytes(File.ReadAllBytes(code)); } Script script = null; try { if (tk == null) { script = compiler.Compile(code, data, fileName, new CompilerOptions { debugMode = debugMode }); } else { script = compiler.CompileDirect(tk, data, fileName, new CompilerOptions { debugMode = debugMode }); } }catch (CompilationException compEx) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Compilation Error"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(compEx); pause(); continue; } Stopwatch sw = new Stopwatch(); sw.Start(); try { for (int i = 0; i < 1; i++) { script.Execute(); } }catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Runtime Error"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(ex); Console.WriteLine($"In file -> {Sol.Debug.name} <-, at line {Sol.Debug.line+1}"); pause(); continue; } sw.Stop(); print("Elapsed Time : " + sw.Elapsed.ToString()); print("Elapsed Miliseconds : " + sw.ElapsedMilliseconds.ToString() + "ms"); print(script.Execute()); pause(); } }