//ExecutionEngine engine; private void OnStartRun(object sender, RoutedEventArgs e) { Editor.ClearHighlight(); stackTrace.Clear(); //check main function bool hasMain = false; foreach (var f in Editor.Script.Functions) { if (f.Name.Equals("main", StringComparison.OrdinalIgnoreCase)) { hasMain = true; break; } } if (!hasMain) { MessageBox.Show(Properties.Resources.MainNotFound, Properties.Resources.NoMain, MessageBoxButton.OK, MessageBoxImage.Warning); return; } ButtonClearError.IsEnabled = false; IsHighlightStep = ButtonHighligh.IsChecked.Value; stackTrace.Clear(); engine = new ExecutionEnvironment(); engine.EnterNode += Engine_EnterNode; engine.LeaveNode += Engine_LeaveNode; ButtonStart.IsEnabled = false; ButtonStop.IsEnabled = true; //Editor.IsEnabled = false; engine.ExecutionCompleted += Engine_ExecutionCompleted; engine.ExecutionAborted += Engine_ExecutionAborted; engine.ExecuteAsync(Editor.Script); Console.WriteLine("Start run"); return; }