Exemple #1
0
        /// <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;
        }
Exemple #2
0
        static void Main(string[] args)
        {
            var scriptCompiler = new ScriptCompiler();

            var program_a = scriptCompiler.CompileScript("Scripts/test002.gs");

            nodeEngine.RunScriptContinous(program_a.MainScript);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 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);
     }
 }
Exemple #6
0
        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();
        }
Exemple #8
0
        public void compileScript_InvalidStript_throws()
        {
            var compiler = new ScriptCompiler(true);

            compiler.CompileScript(new[] { "System.Core.dll" }, m_InvalidScript, null);
        }
Exemple #9
0
        public void compileScript_EmptyStript_throws()
        {
            var compiler = new ScriptCompiler(true);

            compiler.CompileScript(new string[] { }, "", null);
        }