private void addParameter(List<ParameterDefinition> parameterList, String arg)
			throws ParseException, CancelledException {
		if ("...".equals(arg)) {
			return;
		}
		if (arg.length() == 0) {
			throw new ParseException("Missing parameter");
		}

		// Attempt to resolve parameter assuming only a datatype is specified
		DataType dt = resolveDataType(arg);
		if (dt != null) {
			parameterList.add(new ParameterDefinitionImpl(null, dt, null));
			return;
		}

		// attempt to separate trailing parameter name from datatype and reparse
		int spaceIndex = arg.lastIndexOf(' ');
		if (spaceIndex < 0) {
			throw new ParseException("Can't resolve datatype: " + arg);
		}
		int starIndex = arg.lastIndexOf('*');
		int nameIndex = Math.max(spaceIndex, starIndex) + 1;

		String name = resolveName(arg.substring(nameIndex).trim());
		String dtName = arg.substring(0, nameIndex).trim();
		dt = resolveDataType(dtName);
		if (dt == null) {
			throw new ParseException("Can't resolve datatype: " + dtName);
		}
		parameterList.add(new ParameterDefinitionImpl(name, dt, null));
	}
Parse the given function signature text into a FunctionDefinitionDataType.

@param originalSignature the function signature before editing. This may be
                         null if the user is entering a new signature instead
                         of editing an existing one.
@param signatureText     the text to be parsed into a function signature.
@return the FunctionDefinitionDataType resulting from parsing.
@throws ParseException if the text could not be parsed.
@throws CancelledException if parse cancelled by user
Ghidra/Features/Base/src/main/java/ghidra/app/util/parser/FunctionSignatureParser.java