private void eliminateBackfillStates(int baseState){
  if (statesToBackfill.contains(new Integer(baseState))) {
    statesToBackfill.removeElement(new Integer(baseState));
    short[] state=tempStateTable.elementAt(baseState);
    for (int i=0; i < numCategories; i++) {
      if (state[i] != 0) {
        eliminateBackfillStates(state[i]);
      }
    }
  }
}

private void eliminateBackfillStates ( int baseState ) { if ( statesToBackfill . contains ( new Integer ( baseState ) ) ) { statesToBackfill . removeElement ( new Integer ( baseState ) ) ; short [ ] state = tempStateTable . elementAt ( baseState ) ; for ( int i = 0 ; i < numCategories ; i ++ ) { if ( state [ i ] != 0 ) { eliminateBackfillStates ( state [ i ] ) ; } } } }
this removes " ending states " and states reachable from them from the list of states to backfill .
