private static void addUnicodeBinaryPropertyCodesToCodePointRanges(Map<String, IntervalSet> propertyCodePointRanges) {
		for (int property = UProperty.BINARY_START;
		     property < UProperty.BINARY_LIMIT;
		     property++) {
			String propertyName = getShortPropertyName(property);
			IntervalSet intervalSet = new IntervalSet();
			UnicodeSet unicodeSet = new UnicodeSet();
			unicodeSet.applyIntPropertyValue(property, 1);
			for (UnicodeSet.EntryRange range : unicodeSet.ranges()) {
				intervalSet.add(range.codepoint, range.codepointEnd);
			}
			propertyCodePointRanges.put(propertyName, intervalSet);
		}
	}
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