private void restoreSpaceBase(XmlPullParser parser) {
		if (spaceBases == null) {
			spaceBases = new TreeMap<>();
		}
		XmlElement el = parser.start();
		String name = el.getAttribute("name");
		Register reg = language.getRegister(el.getAttribute("register"));
		if (reg == null) {
			throw new SleighException("Unknown register: " + name);
		}
		String spaceName = el.getAttribute("space");
		if (language.getAddressFactory().getAddressSpace(name) != null ||
			spaceBases.containsKey(name)) {
			throw new SleighException("Duplicate space name: " + name);
		}
		AddressSpace space = getAddressSpace(spaceName);
		spaceBases.put(name, new Pair<>(space, reg.getName()));
		parser.end(el);
	}
Initialize this object from an XML stream.  A single {@code <compiler_spec>} tag is expected.
@param parser is the XML stream
@throws XmlParseException for badly formed XML
@throws DuplicateNameException if we parse more than one PrototypeModel with the same name
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/BasicCompilerSpec.java