private boolean computeCombinedFirst(int production,int position,BitSet combinedFirst)
	{
		boolean stillNullable = true;
		lookaheadLayoutBuffer.clear();
		
		for(int i = position+1;i < spec.pr.getRHSLength(production) && stillNullable;i++)
		{
			BitSet first = contextSets.getFirst(spec.pr.getRHSSym(production,i));
			combinedFirst.or(first);
			if(lookaheadLayoutBuffer.isEmpty() && !first.isEmpty())
			{
				lookaheadLayoutBuffer.or(spec.pr.getLayouts(production));
			}
			stillNullable &= contextSets.isNullable(spec.pr.getRHSSym(production,i));
		}
		
		return stillNullable;
	}