private void DoEpsilonTransitions_eNFA(){
		
		/*Boolean goAgain = true;
		while (goAgain){
			goAgain = false;
			for (int i = 0; i < mTransitions.size(); ++i){
				State state1 = mTransitions.get(i).mCurrentState;
				State state2 = mTransitions.get(i).mNextState;
				if (mTransitions.get(i).mIsEpsilon &&
						state1.mUsed == true &&
								state2.mUsed == false){
					goAgain = true;
					state2.mUsed = true;
				}
			}
		}*/	
		
		List<State> tempS = new LinkedList<State>();
		for (int i = 0; i < mStates.size(); ++i)
			if (mStates.get(i).mUsed) tempS.add(mStates.get(i));
		
		for (ListIterator<State> itr = tempS.listIterator(); itr.hasNext();){
			State itrState = itr.next();
			if (mEpsilonTransitions.containsKey(itrState)){
				List<Transition> tempT = mEpsilonTransitions.get(itrState);
			
				for (int j = 0; j < tempT.size(); ++j){
					if (!tempS.contains(tempT.get(j).mNextState)){ // if it is not in tempS then
						tempT.get(j).mNextState.mUsed = true;
						itr.add(tempT.get(j).mNextState);
						itr.previous();
					}
				}
			}
		}
	}