public Demangled getDemangled(String mangled, SwiftDemanglerOptions op)
			throws DemangledException {
		if (!isSwiftMangledSymbol(mangled)) {
			return null;
		}

		SwiftDemanglerOptions options = getSwiftDemanglerOptions(op);
		setSwiftNativeDemangler(options);

		SwiftNode root = cache.containsKey(mangled) ? cache.get(mangled)
				: new SwiftDemangledTree(nativeDemangler, mangled, is64bit).getRoot();
		cache.put(mangled, root);
		if (root == null) {
			return null;
		}

		Demangled demangled = root.demangle(this);
		if (root.walkAndTest(node -> node.childWasSkipped())) {
			demangled.setName(options.getIncompletePrefix() + demangled.getName());
		}

		return demangled;
	}
Get a new {@link Demangled} by demangling the given mangled string

@param mangled The mangled string
@param op The options (could be null)
@return A new {@link Demangled}
@throws DemangledException if there was an issue demangling
Ghidra/Features/SwiftDemangler/src/main/java/ghidra/app/util/demangler/swift/SwiftDemangler.java