public static List<Namespace> getNamespaceByPath(Program program, Namespace parent,
			String pathString) throws IllegalArgumentException {

		validate(program, parent);

		parent = adjustForNullRootNamespace(parent, pathString, program);

		SymbolPath path = new SymbolPath(parent.getSymbol());
		if (pathString != null) {
			path = path.append(new SymbolPath(pathString));
		}

		List<String> namespaceNames = path.asList();
		List<Namespace> namespaces = doGetNamespaces(namespaceNames, parent, program, false);
		return namespaces;
	}
Returns a list of namespaces that match the given path.  The path can be
relative to the given root namespace or absolute if the path begins with
the global namespace name.

<P>Note: this path must only contain Namespace names and no other symbol types.

@param program the program to search
@param parent the namespace to use as the root for relative paths. If null, the
		  global namespace will be used
@param pathString the path to the desired namespace
@return a list of namespaces that match the given path.  An empty list is returned 
        if none found.
@throws IllegalArgumentException if specified parent Namespace is not valid for 
        specified program.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/NamespaceUtils.java