/** Get the transitions of the NFA states on the given character */ public ArrayList<TokenizerNFAState> getNFATransitions(char c) { ArrayList<TokenizerNFAState> trans = new ArrayList<TokenizerNFAState>(); for (TokenizerNFAState s : NFAStates) { trans.addAll(s.getTransitions(c)); } return trans; }
/** Construct a DFA state based on a set of NFA states */ public TokenizerDFAState(ArrayList<TokenizerNFAState> NFAStates) { super(); this.NFAStates = NFAStates; // set this state to accepting if any NFA state is accepting for (TokenizerNFAState s : NFAStates) { if (s.isAccepting()) { addOwners(s.getOwners()); accepting = true; } } }
/** Get all the possible transition characters of the NFA states */ public ArrayList<Character> getNFATransitionCharacters() { ArrayList<Character> result = new ArrayList<Character>(); if (NFAStates != null) { for (TokenizerNFAState s : NFAStates) { for (Character c : s.getTransitionCharacters()) { if (!result.contains(c)) result.add(c); } } } return result; }