public void removeAllNonEpsilonConditionsTo(NFAState<T> state) { for (Range range : transitions.keySet()) { if (range != null) { Set<Transition<NFAState<T>>> set2 = transitions.get(range); for (Transition<NFAState<T>> tr : set2) { if (state.equals(tr.getTo())) { set2.remove(tr); } } } } } /**
/** * Returns true if transition with condition to state exists * @param condition * @param state * @return */ public boolean hasTransitionTo(Range condition, NFAState<T> state) { Set<Transition<NFAState<T>>> set = transitions.get(condition); if (set != null) { for (Transition<NFAState<T>> tr : set) { if (state.equals(tr.getTo())) { return true; } } } return false; } public RangeSet getNonEpsilonConditions()
for (Transition<NFAState<T>> tr : s) if (state.equals(tr.getTo()))
public RangeSet getNonEpsilonConditionsTo(NFAState<T> state) { RangeSet rs = new RangeSet(); for (Range range : transitions.keySet()) { if (range != null) { Set<Transition<NFAState<T>>> set2 = transitions.get(range); for (Transition<NFAState<T>> tr : set2) { if (state.equals(tr.getTo())) { rs.add(range); } } } } return rs; } /**
while (!s.equals(state))
/** * Returns non epsilon confitions to transit to given state * @param state * @return */ public RangeSet getConditionsTo(NFAState<T> state) { RangeSet rs = new RangeSet(); for (Range range : transitions.keySet()) { if (range != null) { Set<Transition<NFAState<T>>> set2 = transitions.get(range); for (Transition<NFAState<T>> tr : set2) { if (state.equals(tr.getTo())) { rs.add(range); } } } } return rs; } /**