@SuppressWarnings("null")
	private LanguageTranslator expandTranslator(LanguageTranslator translator, int fromVersion) {

		Language toLanguage;
		try {
			LanguageID languageId = translator.getNewLanguageID();
			toLanguage = DefaultLanguageService.getLanguageService().getLanguage(languageId);
		}
		catch (LanguageNotFoundException e) {
			Msg.error(this, "Invalid translator - language not found: " + translator);
			return null;
		}
		int toVersion = toLanguage.getVersion();

		if (translator.getOldVersion() != fromVersion) {
			LanguageTranslator expandedFromTranslator = getLanguageVersionTranslator(
				translator.getOldLanguageID(), fromVersion, translator.getOldVersion());
			if (expandedFromTranslator == null) {
				return null; // could not build version translator
			}
			translator = new FactoryLanguageTranslator(expandedFromTranslator, translator);
		}

		if (translator.getNewVersion() != toVersion) {
			LanguageTranslator expandedFromTranslator = getLanguageVersionTranslator(
				translator.getNewLanguageID(), translator.getNewVersion(), toVersion);
			if (expandedFromTranslator == null) {
				return null; // could not build version translator
			}
			translator = new FactoryLanguageTranslator(translator, expandedFromTranslator);
		}

		if (translator != null && !translator.isValid()) {
			translator = null;
		}

		return translator;
	}
Expand the to/from sides of a language translator to originate "from" the specified 
fromMajorVersion and terminate at the current version of the "to" language. 
@param translator
@param fromVersion
@return expanded translator or null if it could not be filled-out completely
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/LanguageTranslatorFactory.java