Exemple #1
0
        //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;
        }