public bool IsDeadState() { if (_acceptingState || MatchingStateMap.Count == 0) { return(false); } Hashset setToState; foreach (DictionaryEntry de in MatchingStateMap) { setToState = de.Value as Hashset; TransitionState state = null; foreach (object objState in setToState) { state = objState as TransitionState; if (state.Equals(this) == false) { return(false); } } } return(true); }
public void AddDfaState(TransitionState stateDfa, Hashset setEclosure) { DFAState stateRecord = new DFAState(); stateRecord.SetEclosure = setEclosure; _stateHashTable[stateDfa] = stateRecord; }
public Hashset GetEclosureByDfaState(TransitionState state) { var dsr = _stateHashTable[state] as DFAState; if (dsr != null) { return(dsr.SetEclosure); } return(null); }
public int ReplaceTransitionState(TransitionState stateOld, TransitionState stateNew) { int nReplacementCount = 0; Hashset setTrans; foreach (DictionaryEntry de in MatchingStateMap) { setTrans = de.Value as Hashset; if (setTrans.ElementExist(stateOld) == true) { setTrans.RemoveElement(stateOld); setTrans.AddElement(stateNew); nReplacementCount++; } } return(nReplacementCount); }
public void AddTransition(string sInputSymbol, TransitionState stateTo) { MatchingStateMap.Add(sInputSymbol, stateTo); }
public void MarkVisited(TransitionState stateT) { DFAState stateRecord = (DFAState)_stateHashTable[stateT]; stateRecord.Marked = true; }