Beispiel #1
0
        static void Main(string[] args)
        {
            //Program program = new Program();
            //program.GameTest();

            Config config = new Config();

            Scheme parentScheme = new Scheme("ParentScheme");

            config.AddScheme(parentScheme);

            Scheme scheme = new Scheme("MyScheme");

            scheme.Code = File.ReadAllText("language/examples/scheme_example1.txt");

            SchemeLang.Compile(scheme, config);

            string code = scheme.CompiledScheme.GetFullCode();

            SchemeLangOptimizer.Optimize(scheme.CompiledScheme.GetFunctionByName("DoStuff"));

            string optimizedCode = scheme.CompiledScheme.GetFullCode();

            //File.WriteAllText("output.txt", code);

            Console.WriteLine(code);
            Console.Write(optimizedCode);
            Console.ReadKey();
        }
Beispiel #2
0
        //Return true if generation is successfull
        public bool GenerateDataFromCode(bool optimize = true)
        {
            RemoveAllErrorHighlight();

            var item = ((ListBoxItem)list.SelectedItem);

            if (item == null)
            {
                return(false);
            }

            Scheme scheme = (Scheme)item.Tag;

            scheme.Code = tbCode.Text;

            if (scheme.Code == null || scheme.Code == "")
            {
                return(true);
            }

            var errors = SchemeLang.CompileWithErrors(scheme, Project.Current.Config);

            item.Content = (scheme?.Name == null ? "<unknown>" : scheme.Name);

            if (errors.Count > 0)
            {
                HighlightErrors(errors);
                return(false);
            }

            if (optimize)
            {
                SchemeLangOptimizer.Optimize(scheme);
            }

            //var visitor = new Classlist_langVisitor();
            //visitor.Visit(tree);

            //Config.ClassLists = visitor.ClassLists;

            return(true);
        }
Beispiel #3
0
        private void bShowCompiled_Click(object sender, RoutedEventArgs e)
        {
            SyntaxCheckTimer.Stop();

            var item = ((ListBoxItem)list.SelectedItem);

            if (item == null)
            {
                return;
            }
            Scheme scheme = (Scheme)item.Tag;

            GenerateDataFromCode(false);
            string funcCodeOriginal = scheme.CompiledScheme?.GetFullCode();

            SchemeLangOptimizer.Optimize(scheme);
            string funcCodeOptimized = scheme.CompiledScheme?.GetFullCode();

            if (funcCodeOriginal != null && funcCodeOptimized != null)
            {
                FuncCodeWindow funcCodeWindow = new FuncCodeWindow(scheme.Code, funcCodeOriginal, funcCodeOptimized);
                funcCodeWindow.Show();
            }
        }