public LALR1State itemGoto(LALR1State I,GrammarSymbol transitionLabel)
	{
		// J := emptyset
		LALR1State J = new LALR1State();
		// For any item [A ::= a (*) X b,  z] in I:
		for(LALR1StateItem item : I.getItems())
		{
			if(!isWanted(item)) continue;
			if(item.isShiftable() &&
			   item.getSymbolAtPosition().equals(transitionLabel))
			{
				// Add [A ::= a X (*) b,  z] to J.
				LALR1StateItem newItem = item.advancePosition();
				J.addItem(newItem);
			}
		}
		return itemClosure(J);
	}