private void AddTransitions(MagnetPoint prev, MagnetPoint next, string input) { Transition_Wrapper currTrans = _lstTransFunc.Find(x => x.TransitionFunction.PrevState == prev.State.Name && x.TransitionFunction.Input == input); if (!currTrans.IsNull) { throw new Exception("something not deleted"); } _lstTransFunc.Add(new Transition_Wrapper(new TransFunc(prev.State.Name, input, next.State.Name), prev, next)); TransFunc[] dummy = new TransFunc[_lstTransFunc.Count]; for (int i = 0; i < _lstTransFunc.Count; i++) { dummy[i] = _lstTransFunc[i].TransitionFunction; } _dfa.Transitions = dummy; DFAIsEdited?.Invoke(); }
private Transition_Wrapper DeleteTransitions(State_Wrapper prev, string input) { Transition_Wrapper currTrans = _lstTransFunc.Find(x => x.TransitionFunction.PrevState == prev.Name && x.TransitionFunction.Input == input); if (!currTrans.IsNull) { _lstTransFunc.Remove(currTrans); TransFunc[] dummy = new TransFunc[_lstTransFunc.Count]; for (int i = 0; i < _lstTransFunc.Count; i++) { dummy[i] = _lstTransFunc[i].TransitionFunction; } _dfa.Transitions = dummy; return(currTrans); } else { return(new Transition_Wrapper(null, new MagnetPoint(), new MagnetPoint())); } }
public void NullIt() { TransitionFunction = null; SourceIndex.NullIt(); DestinationIndex.NullIt(); }
public Transition_Wrapper(TransFunc x, MagnetPoint src, MagnetPoint dst) { TransitionFunction = x; SourceIndex = src; DestinationIndex = dst; }