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(); }
//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); }
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(); } }