public String toString()
	{
		String rv = "[\nSTATES = \n";
		for(LALR1State state : states)
		{
			rv += labels.get(state) + "=\n" + state.toString() + ",\n";
		}
		rv += "\nTRANSITIONS = \n";
		for(LALR1State state : states) for(LALR1Transition transition : transitions.get(state))
		{
			rv += labels.get(transition.getSrc()) + "->";
			rv += transition.getLabel() + "->";
			rv += labels.get(transition.getDest());
			rv += "\n";
		}
		rv += "\nTABLES = [\n";
		for(LALR1State state : states)
		{
			rv += "State " + getLabel(state) + ":\n";
			rv += "----------";
			for(LALR1StateItem item : state.getItems())
			{
				rv += "\n    " + item + ": " + lookaheadTables.get(state).get(item);
			}
			rv += "\n";
		}
		rv += "\n]";
		return rv;
	}