@Override
	public void dumpLALR1DFA()
	{
		finalOutputStream.print("===== LALR(1) DFA =====\n");
		
		for(int statenum = 0;statenum <= parseTable.getLastState();statenum++)
		{
			LALR1State state = dfa.getState(statenum);
			finalOutputStream.print("-------------------\nlalr_state [" + statenum + "]: {\n");
			for(LALR1StateItem item : state.getItems())
			{
				finalOutputStream.print("    [" + item + ", {");
				for(Terminal lookahead : dfa.getLookahead(state,item))
				{
					finalOutputStream.print(lookahead.toString() + " ");
				}
				finalOutputStream.print("}]\n");
			}
			finalOutputStream.print("}\n");
			for(LALR1Transition transition : dfa.getTransitions(state))
			{
				finalOutputStream.print("transition on " + transition.getLabel() + " to state " + dfa.getLabel(transition.getDest()) + "\n");
			}
		}
		
	}