private static void addEmojiPresentationPropertyCodesToCodePointRanges(Map<String, IntervalSet> propertyCodePointRanges) {
		UnicodeSet emojiDefaultUnicodeSet = new UnicodeSet("[[\\p{Emoji=Yes}]&[\\p{Emoji_Presentation=Yes}]]");
		IntervalSet emojiDefaultIntervalSet = new IntervalSet();
		addUnicodeSetToIntervalSet(emojiDefaultUnicodeSet, emojiDefaultIntervalSet);
		propertyCodePointRanges.put("EmojiPresentation=EmojiDefault", emojiDefaultIntervalSet);

		UnicodeSet textDefaultUnicodeSet = new UnicodeSet("[[\\p{Emoji=Yes}]&[\\p{Emoji_Presentation=No}]]");
		IntervalSet textDefaultIntervalSet = new IntervalSet();
		addUnicodeSetToIntervalSet(textDefaultUnicodeSet, textDefaultIntervalSet);
		propertyCodePointRanges.put("EmojiPresentation=TextDefault", textDefaultIntervalSet);

		UnicodeSet textUnicodeSet = new UnicodeSet("[\\p{Emoji=No}]");
		IntervalSet textIntervalSet = new IntervalSet();
		addUnicodeSetToIntervalSet(textUnicodeSet, textIntervalSet);
		propertyCodePointRanges.put("EmojiPresentation=Text", textIntervalSet);
        }
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