private void addAction(MutableLRParseTable parseTable,int state,int symbol,byte type,int parameter)
	{
		// If there is already an action for this symbol:
		if(parseTable.getValidLA(state).get(symbol))
		{
			LRParseTableConflict conflict;
			// If there is already a conflict in the state, retrieve the object with information
			// about it.
			if(parseTable.getActionType(state,symbol) == LRParseTable.CONFLICT)
			{
				conflict = parseTable.getConflict(parseTable.getActionParameter(state, symbol));
			}
			// Otherwise, make a new conflict object and put the information about it in the
			// parse table.
			else
			{
				conflict = new LRParseTableConflict(state,symbol);
				switch(parseTable.getActionType(state,symbol))
				{
				case LRParseTable.SHIFT:
					conflict.shift = parseTable.getActionParameter(state,symbol);
					break;
				case LRParseTable.REDUCE:
					conflict.reduce.set(parseTable.getActionParameter(state,symbol));
					break;
				}
				parseTable.setActionType(state,symbol,LRParseTable.CONFLICT);
				parseTable.setActionParameter(state,symbol,parseTable.addConflict(conflict));
			}
			// Add the new action to the conflict.
			switch(type)
			{
			case LRParseTable.SHIFT:
				conflict.shift = parameter;
				break;
			case LRParseTable.REDUCE:
				conflict.reduce.set(parameter);
				break;
			}
		}
		// If there is not yet an action for the symbol, put the information.
		else
		{
			parseTable.getValidLA(state).set(symbol);
			parseTable.setActionType(state,symbol,type);
			parseTable.setActionParameter(state,symbol,parameter);
		}
	}