/// <summary> /// Kääntää kaikki scriptit. Käyttäjä hallitsee näiden assemblyjen elin aikaa. /// </summary> public void CompileAll() { blockingScriptResolver.LoggingMethod = LoggingMethod; AssemblyLifeTime prefered = scriptAssemblyContainer.PreferedLifeTime; scriptAssemblyContainer.PreferedLifeTime = AssemblyLifeTime.UserManaged; for (int i = 0; i < scriptPathContainer.ScriptPaths.Length; i++) { List <string> files = Directory.GetFiles(scriptPathContainer.ScriptPaths[i]).ToList(); ScriptCompiler compiler = new ScriptCompiler(scriptDepencyContainer.ScriptDepencies); for (int j = 0; j < files.Count; j++) { string fullname = files[j]; string scriptName = files[j].Substring(files[j].LastIndexOf("\\") + 1); scriptName = scriptName.Substring(0, scriptName.LastIndexOf(".")); ScriptAssembly assembly = compiler.CompileScript(fullname, scriptName); if (assembly != null) { scriptAssemblyContainer.AddAssembly(assembly); } } } scriptAssemblyContainer.PreferedLifeTime = prefered; }
static void Main(string[] args) { var scriptCompiler = new ScriptCompiler(); var program_a = scriptCompiler.CompileScript("Scripts/test002.gs"); nodeEngine.RunScriptContinous(program_a.MainScript); }
public void compileScript_SimpleScript_returnsCorrectType() { var compiler = new ScriptCompiler(true); var assembly = compiler.CompileScript(new[] { "System.Core.dll" }, _validScript, null); var result = assembly.GetTypes().ToList().Find(type => type.Name == "CompilerTestClass"); Assert.AreNotEqual(null, result); }
public void compileScript_ScriptDependsOnFramefieldCore_returnsValidAssembly() { var assembliesLoaded = AppDomain.CurrentDomain.GetAssemblies().ToList(); var coreAssembly = assembliesLoaded.Find(asm => asm.GetName().Name == "Core"); var compiler = new ScriptCompiler(true); var assembly = compiler.CompileScript(new[] { "System.Core.dll", coreAssembly.Location }.ToList(), m_ScriptDependingOnFramefieldCore, null); Assert.AreNotEqual(null, assembly); }
public static void Compile(params string[] scripts) { foreach (var script in scripts) { string name = script.GetHashCode() + ""; var fl = script.Split(new string[] { "\r\n" }, StringSplitOptions.None)[0]; if (!string.IsNullOrEmpty(fl)) { name = StringUtils.GetInside(fl, "{", "}"); } ScriptCompiler.CompileScript(script, name); } }
public void CheckScript(string read) { if (read == "Clear") { Console.Clear(); return; } if (read == "Save") { CODE_INFO.SaveAssembly("DarkLanguageAssembly"); Console.WriteLine("This Assembly Was Saved!!!"); Console.ReadKey(); return; } var scr = ScriptCompiler.GetScriptCode("../Script"); CompiledScript script = ScriptCompiler.CompileScript(scr); Console.WriteLine("///////////////Script////////////////"); foreach (var method in script.Methods) { foreach (var e in method.Events) { foreach (var condition in e.Conditions) { foreach (var action in condition.Actions) { Console.WriteLine(action.Code); } Console.WriteLine(condition.Condition); } Console.WriteLine(e.Type); } Console.WriteLine(method.Type); } Console.ReadKey(true); //CODE_EXEC.AutoExecuteCode(read); //Console.WriteLine("///////////FIELDS///////////////"); //foreach(var field in CODE_EXEC.Fields) //{ // Console.WriteLine(field); //} //Console.WriteLine("///////////METHOD//////////////"); //CODE_READER.CheckLanguageRoutines(read); //var rs = CODE_READER.GetReads(read); //foreach(var r in rs) //{ // Console.WriteLine(r); //} }
static void Main(string[] args) { /* * var nullscript = ParseScript("@GossipScript @p{}"); * var nullscriptBinary = ParseBinaryScript(new byte[16]); */ var scriptCompiler = new ScriptCompiler(); /* * var scripts = new List<string> * { * "Scripts/Test001.gs", * "Scripts/Test002.gs", * "Scripts/Test003.gs" * }; * * var program = scriptCompiler.CompileScript("Scripts/Test004.gs", scripts); * * nodeEngine.RunScriptContinous(program.MainScript); * * ScriptNode script4 = LoadScript("Test004.gs"); * nodeEngine.RunScriptContinous(script4); */ /* * var program = scriptCompiler.CompileScript("Scripts/Test005a.gs", new List<string>() { "Scripts/Test005b.gs" }); * * nodeEngine.LoadVariableTable(program.GlobalVariables); * * foreach(var s in program.Scripts.Values) * { * nodeEngine.RunScriptContinous(s); * } */ var program = scriptCompiler.CompileScript("Scripts/Test007.gs", new List <string>()); ScriptNode script4 = LoadScript("Test007.gs"); nodeEngine.LoadVariableTable(program.GlobalVariables); foreach (var s in program.Scripts.Values) { nodeEngine.RunScriptContinous(s); } Console.WriteLine(); }
public void compileScript_InvalidStript_throws() { var compiler = new ScriptCompiler(true); compiler.CompileScript(new[] { "System.Core.dll" }, m_InvalidScript, null); }
public void compileScript_EmptyStript_throws() { var compiler = new ScriptCompiler(true); compiler.CompileScript(new string[] { }, "", null); }