public DemangledObject parse(String mangled, String demangled, boolean simplify)
			throws DemanglerParseException {

		demangled = cleanupRustLegacySymbol(demangled);

		String rawDemangled = demangled;
		if (simplify) {
			demangled = replaceStdLibraryTypes(demangled);
		}

		this.mangledSource = mangled;
		this.demangledSource = demangled;

		DemangledObjectBuilder builder = getSpecializedBuilder(demangled);
		if (builder != null) {
			DemangledObject dobj = builder.build();
			// note: the raw demangled is before any simplifications
			dobj.setRawDemangledString(rawDemangled);
			return dobj;
		}

		DemangledObject dobj = parseFunctionOrVariable(demangled);
		// note: the raw demangled is before any simplifications
		dobj.setRawDemangledString(rawDemangled);
		return dobj;
	}
Parses the given demangled string and creates a {@link DemangledObject}

@param mangled the original mangled text
@param demangled the demangled text
@param simplify true signals to simplify types where possible, such as using simple c++ 
typedefs where possible.
@return the demangled object
@throws DemanglerParseException if there is an unexpected error parsing
@see #parse(String, String, boolean)
Ghidra/Features/GnuDemangler/src/main/java/ghidra/app/util/demangler/gnu/GnuDemanglerParser.java