private DemangledObjectBuilder getSpecializedBuilder(String demangled) {

		//
		// Note: we check for the 'special handlers' first, since they are more specific than
		//       the other handlers here.  Checking for the operator handler first can produce
		//       errors, since some 'special handler' strings actually contain 'operator'
		//       signatures.  In those cases, the operator handler will incorrectly match on the
		//       operator text.   Since the 'special handlers' perform more specific checks, it is
		//       safe to do those first.
		//
		DemangledObjectBuilder handler = getSpecialPrefixHandler(demangled);
		if (handler != null) {
			return handler;
		}

		DemangledObjectBuilder operatorHandler = getOperatorHandler(demangled);
		if (operatorHandler != null) {
			return operatorHandler;
		}

		// Note: this really is a 'special handler' check that used to be handled above.  However,
		//       some demangled operator strings begin with this text.  If we do this check above,
		//       then we will not correctly handle those operators.
		if (mangledSource.startsWith("_ZZ") || mangledSource.startsWith("__ZZ")) {
			return new ItemInNamespaceHandler(demangled);
		}

		return null;
	}
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