Ejemplo n.º 1
0
 public static void CustomSaveAssembly(string path)
 {
     if (File.Exists(path))
     {
         File.Delete(path);
     }
     CODE_INFO.SaveAssembly(path);
 }
Ejemplo n.º 2
0
        static void GetCurrentAssembly()
        {
            var path  = Application.StartupPath;
            var files = CSEMainClass.SearchForFiles(path, extension: "dla");

            foreach (var file in files)
            {
                CODE_INFO.LoadAssembly(file);
            }
        }
Ejemplo n.º 3
0
 public static void ReadLanguageInfo(DarkLanguageInfo info)
 {
     foreach (var method in info.MethodHandlers)
     {
         CODE_INFO.AddMethod(method);
     }
     foreach (var possible in info.ObjectTypes)
     {
         CODE_INFO.AddPossible(possible);
     }
 }
Ejemplo n.º 4
0
        public void InitializeCodeEditor()
        {
            List <WordCompletion> source = new List <WordCompletion>();
            var objects    = CODE_INFO.Possibles;
            var methods    = CODE_INFO.Methods;
            var fields     = CODE_INFO.AllCodeFields;
            var keywords   = CODE_INFO.GetInfo(CODE_INFO.Keywords);
            var eventWords = CODE_INFO.GetInfo(CODE_INFO.EventWords);
            var common     = CODE_INFO.GetInfo(CODE_INFO.Common);
            var commands   = CODE_INFO.GetInfo(CODE_INFO.Commands);

            objects.ForEach((obj) => source.Add(new WordCompletion(obj.Name)));
            methods.ForEach((obj) => source.Add(new WordCompletion(obj.Name, $"({obj.ParametersRepresentation()})")));
            fields.ForEach((obj) => source.Add(new WordCompletion($"{obj.Name} = {obj.Value+""}")));

            keywords.ForEach((obj) => source.Add(new WordCompletion(obj)));
            eventWords.ForEach((obj) => source.Add(new WordCompletion(obj)));
            common.ForEach((obj) => source.Add(new WordCompletion(obj)));
            commands.ForEach((obj) => source.Add(new WordCompletion(obj)));

            codeBox.AutoCompletionSource = source.ToArray();
            for (var i = 0; i < codeBox.WordInfos.Count; i++)
            {
                var info = codeBox.WordInfos[i];
                if (objects.Exists((obj) => obj.Name != info.Word))
                {
                    codeBox.WordInfos.Remove(info);
                }
                if (fields.Exists((obj) => obj.Name != info.Word))
                {
                    codeBox.WordInfos.Remove(info);
                }
            }
            codeBox.WordInfos.Add(new WordInfo("DECLARE", Color.DodgerBlue));
            codeBox.WordInfos.Add(new WordInfo("EVENT", Color.DodgerBlue));
            objects.ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj.Name, ObjectColor)));
            methods.ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj.Name, MethodColor)));
            fields.ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj.Name, FieldsColor)));
            GetAllStrings().ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj, Color.Gold)));

            keywords.ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj, KeywordColor)));
            eventWords.ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj, EventWordsColor)));
            common.ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj, CommonColor)));
            commands.ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj, CommandsColor)));
            CODE_INFO.GetInfo(CODE_INFO.Specials).ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj, SpecialColor)));
            GetAllStrings().ForEach((obj) => codeBox.WordInfos.Add(new WordInfo(obj, KeywordColor)));
            List <WordDescription> descs = new List <WordDescription>();

            descs.Add(new WordDescription("Declare", "Declares a new variable in this method or script"));
            descs.Add(new WordDescription("var", descs[0].Description));
            descs.Add(new WordDescription("String", "A characted literal array,it can be declared typing a text"));

            AutoCompletionBox.Descriptions.AddRange(descs);
        }
Ejemplo n.º 5
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);
            //}
        }
Ejemplo n.º 6
0
        public static void SaveAssembly(string assemblyName = null)
        {
            if (string.IsNullOrEmpty(assemblyName))
            {
                assemblyName = Path.GetRandomFileName();
            }
            string path = $"../Assembly/{assemblyName}";

            if (File.Exists(path))
            {
                File.Delete(path);
            }
            CODE_INFO.SaveAssembly(path);
        }
Ejemplo n.º 7
0
 public void Run()
 {
     CODE_INFO.LoadAssembly("DarkLanguageAssembly");
     ScriptExecutor.StartAutoExecutor();
     while (true)
     {
         var read = Console.ReadLine();
         //CODE_EXEC.AutoExecuteCode(read);
         //if(CODE_EXEC.Fields.Count > 0)
         //{
         //	Console.WriteLine("/////////After//////////");
         //	Console.WriteLine(CODE_EXEC.Fields[0].Value);
         //	var trl = CodeTranslator.TranslateCode(read);
         //	Console.WriteLine(trl);
         //	Console.WriteLine("/////////Before/////////");
         //	CODE_EXEC.AutoExecuteCode(trl);
         //	Console.WriteLine(CODE_EXEC.Fields[0].Value);
         //}
         CheckScript(read);
     }
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Initialize this instance and make then to add the first Object reference to the code,the null type.
        /// </summary>
        public static void Initialize()
        {
            ScriptObjectType nullV = new ScriptObjectType("null", typeof(object), TryParseNull);

            CODE_INFO.AddPossible(nullV);
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Adds the script method.
 /// </summary>
 /// <param name="methodHandler">Method handler to add to code information class.</param>
 public static void AddScriptMethod(ScriptMethodHandler methodHandler)
 {
     CODE_INFO.AddMethod(methodHandler);
 }
Ejemplo n.º 10
0
        /// <summary>
        /// Adds the type of the object.
        /// </summary>
        /// <param name="name">Name of the object.</param>
        /// <param name="type">Type of the object.</param>
        /// <param name="parseMethod">Parse method for string to object conversion.</param>
        /// <param name="defaultValue">Default value for this object.</param>
        public static void AddObjectType(string name, Type type, TryParseTo parseMethod, object defaultValue = null)
        {
            var objType = new ScriptObjectType(name, type, parseMethod, defaultValue);

            CODE_INFO.AddPossible(objType);
        }