private void cacheDataType(DataType dataType) {
		if (dataType == null || (dataType instanceof Dynamic) ||
			(dataType instanceof FactoryDataType)) {
			return;
		}
		DataType baseType = null;
		if (dataType instanceof Pointer) {
			baseType = ((Pointer) dataType).getDataType();
		}
		else if (dataType instanceof Array) {
			baseType = ((Array) dataType).getDataType();
		}
		else if (dataType instanceof TypeDef) {
			baseType = ((TypeDef) dataType).getDataType();
		}
		dtMap.put(dataType.getName(), dataType);
		cacheDataType(baseType);
	}
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