public void mergeNFA( NFA nfa ) {
        for( String priKey : nfa.theTable.keySet() ) {
            for( State secKey : nfa.theTable.get( priKey ).keySet() ) {
                secKey.setFinal( false );
                secKey.fa = this;
                for( State state : (HashSet<State>)nfa.theTable.get( priKey ).get( secKey ) ) {
                    state.fa = this;
                    state.setFinal( false );
                    try {
                        this.addTransition( secKey, priKey, state );
                    } catch ( StateNotBelongsToFAException e ) {
                        System.err.println( "In Merge NFA: " + e.getMessage() );
                    }
                }
            }
        }
    }