public static MDDataType parsePrimaryDataType(MDMang dmang, boolean isHighest)
			throws MDException {
		MDDataType dt;
		char code = dmang.peek();
		switch (code) {
			case 'A':
				dmang.increment();
				dt = new MDReferenceType(dmang, isHighest, false, false);
				break;
			case 'B':
				dmang.increment();
				dt = new MDReferenceType(dmang, isHighest, false, true);
				break;
			case MDMang.DONE:
				throw new MDException("PrimaryDataType: no data for type code");
			default:
				dt = parseBasicDataType(dmang, isHighest);
				break;
		}
		return dt;
	}
This method parses references and all types parsed by parseBasicDataType() and
 parseSpecialExtendedType().
@param dmang - the MDMang driver
@param isHighest - boolean indicating whether something else modifies or names the data
 type to be parsed, which impacts when certain overloaded CV modifiers can be applied.
@return - a type derived from MDDataType
@throws MDException on parsing error
Ghidra/Features/MicrosoftDmang/src/main/java/mdemangler/datatype/MDDataTypeParser.java