private void buildModelArrays(List<PrototypeModel> modelList, String putativeDefaultName)
			throws XmlParseException {
		if (putativeDefaultName == null) {
			throw new XmlParseException("Compiler Spec " + description.getCompilerSpecName() +
				" does not provide a default prototype");
		}
		int fullcount = 0;
		int resolvecount = 0;
		boolean foundDefault = false;
		for (PrototypeModel model : modelList) {
			fullcount += 1;
			if (model.isMerged()) {
				resolvecount += 1;
			}
			else if (putativeDefaultName.equals(model.getName())) {
				foundDefault = true;	// Matching name AND not a merged model
			}
		}
		if (!foundDefault) {
			throw new XmlParseException("Could not find default model " + putativeDefaultName +
				"for Compiler Spec " + description.getCompilerSpecName());
		}
		models = new PrototypeModel[fullcount - resolvecount];
		allmodels = new PrototypeModel[fullcount];
		int i = 0;
		int j = 0;
		for (PrototypeModel model : modelList) {
			if (model.isMerged()) {
				allmodels[fullcount - resolvecount + j] = model;
				j += 1;
			}
			else {
				models[i] = model;
				allmodels[i] = model;
				i += 1;
			}

		}
	}
Build the model arrays given a complete list of models.
The array -models- contains all normal PrototypeModel objects
The array -allmodels- contains all models, including merge models.
We also check that a suitable model exists that matches a desired default name.
In principle, the XML schema should guarantee that the model exists, but if for some reason
it doesn't, an exception is thrown.

@param modelList is the complete list of models
@param putativeDefaultName is the desired name of the default model
@throws XmlParseException if a suitable default model cannot be found
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/BasicCompilerSpec.java