private String virtualLocMessagetoString(CompilerLogMessage msg)
	{
		if(msg.getParameters().length < 5 ||
		   !(msg.getParameters()[3] instanceof Integer) ||
		   !(msg.getParameters()[4] instanceof Long)) return "<malformed>";
		String location = "";
		location += "line " + msg.getVirtualLocation().getLine() + ", column " + msg.getVirtualLocation().getColumn();
		if(msg.getVirtualLocation().getFileName().length() > 40) location += "\n         ";
		location += " in file " + msg.getVirtualLocation().getFileName();
		location += "\n         (parser state: " + ((Integer) msg.getParameters()[3]) + "; real character index: " + ((Long) msg.getParameters()[4]) + ")";
		return location;
	}