private DataType findExistingDataType(CategoryPath cp, String kind, String name) {
		DataType dt = dtParser.parseDataType(name, cp, -1);
		if (dt == null && addForeignTypedefIfNeeded(name)) {
			dt = dtParser.parseDataType(name, cp, -1);
		}
		if (dt != null) {
			return dt;
		}
		dt = dataTypes.get(getPath(cp, name));
		if (dt == null && kind.equals("typedef")) {
			dt = dataTypes.get(cp + "/functions/" + name);
		}
		if (dt != null) {
			return dt;
		}
		return dataTypes.get("/" + name);
	}
Reads the datatypes encoded in SARIF from the specified SARIF parser and
recreates them in a datatype manager.

@param result  the SARIF parser
@param monitor the task monitor
@throws SAXParseException  if an SARIF parse error occurs
@throws CancelledException if the user cancels the read operation
Ghidra/Features/Sarif/src/main/java/sarif/managers/DataTypesSarifMgr.java