private DemangledFunctionPointer parseFunction(String functionString, int offset) {
		//unsigned long (long const &)

		int parenStart = functionString.indexOf('(', offset);
		int parenEnd = findBalancedEnd(functionString, parenStart, '(', ')');

		String returnType = functionString.substring(0, parenStart).trim();

		int paramStart = parenStart;
		int paramEnd = parenEnd;
		String parameters = functionString.substring(paramStart + 1, paramEnd);
		DemangledFunctionPointer dfp = createFunctionPointer(parameters, returnType);

		// disable the function pointer display so this type reads like a function
		dfp.setDisplayDefaultFunctionPointerSyntax(false);
		return dfp;
	}
Walks backward from the given start position to find the next namespace separator.  This
allows clients to determine if a given position is inside of a namespace.

@param text the text to search
@param start the start position
@param stop the stop position
@return the start index of the namespace entry containing the current {@code start}
        index; -1 if no namespace start is found
Ghidra/Features/GnuDemangler/src/main/java/ghidra/app/util/demangler/gnu/GnuDemanglerParser.java