public static NameVersions generate(String rawName,Program program) {
		NameVersions result = new NameVersions(rawName);
		if (rawName != null) {
			DemangledObject demangledObj = demangle(program, rawName);
			if (demangledObj != null) {
				result.demangledFull = demangledObj.getOriginalDemangled();
				result.demangledNoTemplate = removeTemplateParams(demangledObj);
				result.demangledBaseName = constructBaseName(demangledObj);
			}
	
			// Put base names with underscores removed in a HashSet
			result.similarName = rawName.replaceFirst("_*", "");
		}
		return result;
	}
If there exists an initial set of template parameters bracketed by '<' and '>'
in the given demangled name, strip them.
@param demangledObj is the object holding the demangled name
@return the stripped name or null if no parameters present
Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/service/NameVersions.java