public override string Run(string input)
        {
            DFAMachineBroker broker = new DFAMachineBroker(this);

            broker.InitializeMachine();
            return(broker.Run(input));
        }
Пример #2
0
        private void StartMachineButton_Click(object sender, RoutedEventArgs e)
        {
            string input = InputTextBox.Text;

            if (InputTextBox.Text == "")
            {
                MessageBox.Show("No input is given to the machine.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            DFAMachineBroker broker = new DFAMachineBroker(ContainingMachine);

            try
            {
                broker.InitializeMachine();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
            Vertex TempVertex = null;

            for (int i = 0; i < input.Length; i++)
            {
                try
                {
                    TempVertex = broker.Step(input[i], TempVertex);
                    if (TempVertex == null)
                    {
                        SetNotificationText("Cursor stopped on condition " + input[i]);
                        return;
                    }

                    input = TempVertex.RunVertex(input);
                    SetNotificationText("Cursor Went to " + TempVertex.Name);
                }
                catch (Exception ex)
                {
                    SetNotificationText("Error: " + ex.Message);
                    return;
                }
            }
            if (!TempVertex.IsFinishState)
            {
                SetNotificationText("INPUT NOT ACCEPTED");
            }

            else
            {
                SetNotificationText("INPUT ACCEPTED");
            }
        }