static void Main(string[] args) {
script = new Script();
Console.WriteLine("the current version : " + Script.Version);
script.LoadLibrary();
script.PushAssembly(typeof(Program).GetTypeInfo().Assembly);
#if !SCORPIO_NET_CORE
string CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
#else
string CurrentDirectory = "";
#endif
LoadLibrary(Path.Combine(CurrentDirectory, "dll"));
LoadFiles(Path.Combine(CurrentDirectory, "cs"));
if (args.Length >= 1) {
try {
string file = Path.GetFullPath(args[0]);
string path = Path.GetDirectoryName(file);
LoadLibrary(Path.Combine(path, "dll"));
LoadFiles(Path.Combine(path, "cs"));
Stopwatch watch = Stopwatch.StartNew();
script.PushSearchPath(CurrentDirectory);
script.PushSearchPath(path);
script.SetObject("__PATH__", path);
LibraryIO.Load(script);
Console.WriteLine("=============================");
ScriptObject value = script.LoadFile(file);
Console.WriteLine("=============================");
Console.WriteLine("return value : " + value);
Console.WriteLine("the execution time : " + watch.ElapsedMilliseconds + " ms");
} catch (System.Exception ex) {
Console.WriteLine(script.GetStackInfo());
Console.WriteLine(ex.ToString());
}
} else {
while (true) {
try {
string str = Console.ReadLine();
if (str == "exit") {
break;
} else if (str == "clear") {
Console.Clear();
} else if (str == "version") {
Console.WriteLine(Script.Version);
} else {
script.LoadString(str);
}
} catch (System.Exception ex) {
Console.WriteLine(script.GetStackInfo());
Console.WriteLine(ex.ToString());
}
}
}
}