private static void addPropertyAliases(
			Map<String, String> propertyAliases,
			String propertyName,
			int property) {
		int nameChoice = UProperty.NameChoice.LONG;
		while (true) {
			String alias;
			try {
				alias = UCharacter.getPropertyName(property, nameChoice);
			} catch (IllegalArgumentException e) {
				// No more aliases.
				break;
			}
			assert alias != null;
			addPropertyAlias(propertyAliases, alias, propertyName);
			nameChoice++;
		}
	}
StringTemplate controller used to generate parameters to feed
to {@code unicodedata.st} to code-generate {@code UnicodeData.java},
used by the tool for Unicode property escapes like {@code \\p\{Lu\}}.

Uses ICU to iterate over Unicode character categories, properties,
and script codes, as well as aliases for those codes.

This class exists in its own Maven module to avoid adding a
dependency from the tool onto the (large) ICU runtime.
tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java