/// <summary> /// Cleans Input and Output dictionaries generating data from current transition list. /// USE WITH CARE. /// </summary> public void RefreshData() { //cleans dictionaries. this.InputAlphabet = new List <string> (); this.OutputAlphabet = new List <string> (); //Adds Input/Output to lists foreach (Transition t in this.Transitions) { if (!InputAlphabet.Contains(t.Input)) { AddInput(t.Input); } if (!OutputAlphabet.Contains(t.Output)) { AddOutput(t.Output); } if (!States.Contains(t.SourceState)) { States.Add(t.SourceState); } if (!States.Contains(t.TargetState)) { States.Add(t.TargetState); } } }
/// <summary> /// Add a input data to input alphabet. /// </summary> /// <param name="inputData"></param> public Boolean AddInput(string inputData) { if (!InputAlphabet.Contains(inputData)) { InputAlphabet.Add(inputData); return(true); } return(false); }
/// <inheritdoc /> public override int GetHashCode() { unchecked { var hashCode = (States != null ? States.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (InputAlphabet != null ? InputAlphabet.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (InitialState != null ? InitialState.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (AcceptStates != null ? AcceptStates.GetHashCode() : 0); return(hashCode); } }