private URL toURL(String ghidraGoArgument) throws IllegalArgumentException {
		try {

			if (ghidraGoArgument.startsWith(GhidraURL.PROTOCOL + ":?")) {
				String projectFilePath =
					ghidraGoArgument.substring(ghidraGoArgument.indexOf("?") + 1);
				if (!projectFilePath.startsWith("/")) {
					projectFilePath = "/" + projectFilePath;
				}
				return GhidraURL.makeURL(AppInfo.getActiveProject().getProjectLocator(),
					projectFilePath, null);
			}
			return GhidraURL.toURL(ghidraGoArgument);

		}
		catch (IllegalArgumentException e) {
			if (ghidraGoArgument.startsWith(GhidraURL.PROTOCOL + "://") ||
				AppInfo.getActiveProject() == null)
				throw e;
			if (!ghidraGoArgument.startsWith("/")) {
				ghidraGoArgument = "/" + ghidraGoArgument;
			}
			return GhidraURL.makeURL(AppInfo.getActiveProject().getProjectLocator(),
				ghidraGoArgument, null);
		}
	}
Returns a URL given the first argument from GhidraGo.
@param ghidraGoArgument could be a GhidraURL or a projectFilePath.
@return the GhidraURL to a program
@throws IllegalArgumentException in the event the given GhidraGo argument is invalid
Ghidra/Features/GhidraGo/src/main/java/ghidra/app/plugin/core/go/ipc/GhidraGoListener.java