private void closure()
	{
		int top;

		do {
			top = states.size();
			for ( int i = currentSet; i < states.size(); ++i )
			{
				EarleyState<E, R> state = states.get(i);
	
				if ( state.complete() )
					complete(i);
				else if ( !terminal(state.current()) )
					predict(i);
			}
		} while ( top != states.size() );
	}