@Override
	public DemangledObject demangle(MangledContext context) throws DemangledException {
		SwiftDemanglerOptions options = getSwiftDemanglerOptions(context.getOptions());
		String mangled = context.getMangled();
		Demangled demangled = getDemangled(mangled, options);
		DemangledObject demangledObject;
		if (demangled instanceof DemangledFunction func) {
			demangledObject = func;
		}
		else if (demangled instanceof DemangledLabel label) {
			demangledObject = label;
		}
		else if (demangled instanceof DemangledUnknown unknown) {
			demangledObject = new DemangledLabel(mangled, unknown.getOriginalDemangled(),
				options.getUnsupportedPrefix() + unknown.getOriginalDemangled());
		}
		else {
			return null;
		}
		demangledObject.setMangledContext(context);
		return demangledObject;
	}
Creates a new {@link SwiftDemangler} that is associated with the given {@link Program}

@param program The {@link Program} to demangle
@throws IOException if there was a problem parsing the Swift type metadata
Ghidra/Features/SwiftDemangler/src/main/java/ghidra/app/util/demangler/swift/SwiftDemangler.java