diff --git a/src/main/java/com/github/curiousoddman/rgxgen/RgxGen.java b/src/main/java/com/github/curiousoddman/rgxgen/RgxGen.java index 103a6196..37cf7916 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/RgxGen.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/RgxGen.java @@ -44,7 +44,7 @@ public class RgxGen { * * @param pattern regex pattern for values generation */ - public static RgxGen parse(CharSequence pattern) { + public static RgxGen parse(String pattern) { return parse(null, pattern); } @@ -55,13 +55,13 @@ public static RgxGen parse(CharSequence pattern) { * @param pattern regex pattern for values generation * @see com.github.curiousoddman.rgxgen.config.RgxGenOption */ - public static RgxGen parse(RgxGenProperties rgxGenProperties, CharSequence pattern) { + public static RgxGen parse(RgxGenProperties rgxGenProperties, String pattern) { return new RgxGen(rgxGenProperties, pattern); } - private RgxGen(RgxGenProperties properties, CharSequence pattern) { + private RgxGen(RgxGenProperties properties, String pattern) { this.properties = properties; - DefaultTreeBuilder defaultTreeBuilder = new DefaultTreeBuilder(pattern.toString(), this.properties); + DefaultTreeBuilder defaultTreeBuilder = new DefaultTreeBuilder(pattern, this.properties); node = defaultTreeBuilder.get(); } diff --git a/src/main/java/com/github/curiousoddman/rgxgen/iterators/ArrayIterator.java b/src/main/java/com/github/curiousoddman/rgxgen/iterators/ArrayIterator.java index c6fdd69c..8727e820 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/iterators/ArrayIterator.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/iterators/ArrayIterator.java @@ -20,12 +20,12 @@ public class ArrayIterator implements StringIterator { - private final int aMaxIndex; - private final Character[] aStrings; + private final int aMaxIndex; + private final char[] aStrings; private int aIndex = -1; - public ArrayIterator(Character[] strings) { + public ArrayIterator(char[] strings) { aStrings = strings; aMaxIndex = aStrings.length - 1; // Because of prefix increment in nextImpl() } @@ -41,7 +41,7 @@ public String next() { if (aIndex >= aStrings.length) { throw new NoSuchElementException("Not enough elements in arrays"); } else { - return aStrings[aIndex].toString(); + return String.valueOf(aStrings[aIndex]); } } @@ -52,6 +52,6 @@ public void reset() { @Override public String current() { - return aStrings[aIndex].toString(); + return String.valueOf(aStrings[aIndex]); } } diff --git a/src/main/java/com/github/curiousoddman/rgxgen/iterators/suppliers/ArrayIteratorSupplier.java b/src/main/java/com/github/curiousoddman/rgxgen/iterators/suppliers/ArrayIteratorSupplier.java index 77ba0cdd..f9d2f1d3 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/iterators/suppliers/ArrayIteratorSupplier.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/iterators/suppliers/ArrayIteratorSupplier.java @@ -22,9 +22,9 @@ import java.util.function.Supplier; public class ArrayIteratorSupplier implements Supplier { - private final Character[] aSymbolSet; + private final char[] aSymbolSet; - public ArrayIteratorSupplier(Character[] symbolSet) { + public ArrayIteratorSupplier(char[] symbolSet) { aSymbolSet = symbolSet; } diff --git a/src/main/java/com/github/curiousoddman/rgxgen/model/RgxGenCharsDefinition.java b/src/main/java/com/github/curiousoddman/rgxgen/model/RgxGenCharsDefinition.java index b15bb9a0..995cee84 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/model/RgxGenCharsDefinition.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/model/RgxGenCharsDefinition.java @@ -19,43 +19,48 @@ import com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider; import com.github.curiousoddman.rgxgen.util.Util; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.Stream; public class RgxGenCharsDefinition { + private final List rangeList; - private final List characters; + private final CharList characters; + + public static RgxGenCharsDefinition of(List externalRanges) { + return of(externalRanges, CharList.empty()); + } public static RgxGenCharsDefinition of(UnicodeCategory category) { - return new RgxGenCharsDefinition(category.getSymbolRanges(), Arrays.asList(category.getSymbols())); + return new RgxGenCharsDefinition(category.getSymbolRanges(), CharList.charList(category.getSymbols())); } public static RgxGenCharsDefinition of(SymbolRange... ranges) { - return new RgxGenCharsDefinition(Arrays.asList(ranges), Collections.emptyList()); + return new RgxGenCharsDefinition(Arrays.asList(ranges), CharList.empty()); } - public static RgxGenCharsDefinition of(Character... characters) { - return new RgxGenCharsDefinition(Collections.emptyList(), Arrays.asList(characters)); + public static RgxGenCharsDefinition of(char... characters) { + return new RgxGenCharsDefinition(Collections.emptyList(), CharList.charList(characters)); } - public static RgxGenCharsDefinition of(CharSequence characterString) { - List characterList = characterString.chars().mapToObj(c -> (char) c).collect(Collectors.toList()); + public static RgxGenCharsDefinition of(String characterString) { + CharList characterList = CharList.charList(characterString); List compactedRanges = new ArrayList<>(); - List compactedSymbols = new ArrayList<>(); + CharList compactedSymbols = CharList.empty(); Util.compactOverlappingRangesAndSymbols(Collections.emptyList(), characterList, compactedRanges, compactedSymbols); return new RgxGenCharsDefinition(compactedRanges, compactedSymbols); } - public static RgxGenCharsDefinition of(List symbolRanges, Character[] symbols) { - return of(symbolRanges, Arrays.asList(symbols)); + public static RgxGenCharsDefinition of(CharList charList) { + return of(Collections.emptyList(), charList); } - public static RgxGenCharsDefinition of(List symbolRanges, List symbols) { + public static RgxGenCharsDefinition of(List symbolRanges, CharList symbols) { return new RgxGenCharsDefinition(symbolRanges, symbols); } @@ -73,19 +78,19 @@ public RgxGenCharsDefinition withRanges(List ranges) { return this; } - public RgxGenCharsDefinition withCharacters(Character... characters) { - this.characters.addAll(Arrays.asList(characters)); + public RgxGenCharsDefinition withCharacters(char... characters) { + this.characters.addAll(characters); return this; } - public RgxGenCharsDefinition withCharacters(List characters) { + public RgxGenCharsDefinition withCharacters(CharList characters) { this.characters.addAll(characters); return this; } - private RgxGenCharsDefinition(List rangeList, List characters) { + private RgxGenCharsDefinition(List rangeList, CharList characters) { this.rangeList = new ArrayList<>(rangeList); - this.characters = new ArrayList<>(characters); + this.characters = characters.copy(); } public boolean isAsciiOnly() { @@ -100,7 +105,7 @@ public List getRangeList() { return rangeList; } - public List getCharacters() { + public CharList getCharacters() { return characters; } diff --git a/src/main/java/com/github/curiousoddman/rgxgen/model/SymbolRange.java b/src/main/java/com/github/curiousoddman/rgxgen/model/SymbolRange.java index 52a64523..9e57adbf 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/model/SymbolRange.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/model/SymbolRange.java @@ -16,8 +16,7 @@ limitations under the License. /* **************************************************************************/ -import java.util.stream.IntStream; -import java.util.stream.Stream; +import com.github.curiousoddman.rgxgen.util.chars.CharList; /** * Range of symbols @@ -65,8 +64,8 @@ public int size() { return to - from + 1; } - public Stream chars() { - return IntStream.rangeClosed(from, to).mapToObj(i -> (char) i); + public CharList chars() { + return CharList.rangeClosed(from, to); } public boolean contains(int c) { diff --git a/src/main/java/com/github/curiousoddman/rgxgen/model/UnicodeCategory.java b/src/main/java/com/github/curiousoddman/rgxgen/model/UnicodeCategory.java index 2fc7ee8b..0018fe16 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/model/UnicodeCategory.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/model/UnicodeCategory.java @@ -49,7 +49,7 @@ public enum UnicodeCategory { SPACING_COMBINING_MARK(keys("Mc", "Spacing_Combining_Mark"), "a character intended to be combined with another character that takes up extra space (vowel signs in many Eastern languages).", asList(DEVANAGARI_DEPENDENT_VOWEL_SIGNS_SUBSET_2, DEVANAGARI_DEPENDENT_VOWEL_SIGNS_SUBSET_1, DEVANAGARI_DEPENDENT_VOWEL_SIGNS_2, BENGALI_VARIOUS_SIGNS_SUBSET_6, BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_13, BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_6, BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS, BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_14, BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_15, BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_11, BENGALI_VARIOUS_SIGNS_SUBSET_7, BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_8, BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_1, BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_12, BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_1, BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_5, BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_2, TELUGU_VARIOUS_SIGNS_SUBSET, TELUGU_DEPENDENT_VOWEL_SIGNS_SUBSET, KANNADA_VARIOUS_SIGNS_SUBSET_1, KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET, KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_2, KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_3, KANNADA_VARIOUS_SIGNS_SUBSET_2, MALAYALAM_VARIOUS_SIGNS_SUBSET_4, MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_5, MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_1, MALAYALAM_TWO_PART_DEPENDENT_VOWEL_SIGNS, MALAYALAM_VARIOUS_SIGNS_SUBSET_3, MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_2, MALAYALAM_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS, MALAYALAM_ADDITIONAL_DEPENDENT_VOWEL_SIGNS, TIBETAN_ASTROLOGICAL_SIGNS_1, MYANMAR_DEPENDENT_VOWEL_SIGNS_SUBSET, MYANMAR_DEPENDENT_CONSONANT_SIGNS_SUBSET, MYANMAR_PALI_AND_SANSKRIT_EXTENSIONS_SUBSET_2, MYANMAR_EXTENSIONS_FOR_SGAW_KAREN_SUBSET, MYANMAR_EXTENSIONS_FOR_WESTERN_PWO_KAREN_SUBSET_1, MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_1, MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_3, MYANMAR_EXTENSIONS_FOR_KHAMTI_SHAN_TO_EXTENSIONS_FOR_KHAMTI_SHAN, KHMER_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS, KHMER_VARIOUS_SIGNS_SUBSET, LIMBU_DEPENDENT_VOWEL_SIGNS_SUBSET_1, LIMBU_SUBJOINED_CONSONANTS_SUBSET, LIMBU_FINAL_CONSONANTS_SUBSET, LIMBU_FINAL_CONSONANTS_SUBSET_1, BUGINESE_VOWELS_SUBSET_2, TAI_THAM_DEPENDENT_VOWEL_SIGNS_SUBSET, TAI_THAM_DEPENDENT_VOWEL_SIGNS_SUBSET_2, BALINESE_DEPENDENT_VOWEL_SIGNS_SUBSET_1, BALINESE_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS, SUNDANESE_VOWEL_SIGNS_SUBSET, BATAK_DEPENDENT_VOWEL_SIGNS_SUBSET_1, BATAK_SIGNS_SUBSET, LEPCHA_SUBJOINED_CONSONANTS_TO_DEPENDENT_VOWELS, LEPCHA_CONSONANT_SIGNS_SUBSET, CJK_SYMBOLS_AND_PUNCTUATION_COMBINING_TONE_MARKS_SUBSET_1, SYLOTI_NAGRI_DEPENDENT_VOWEL_SIGNS_SUBSET, SAURASHTRA_VARIOUS_SIGNS, SAURASHTRA_CONSONANTS_TO_DEPENDENT_VOWEL_SIGNS, REJANG_CONSONANT_SIGNS_TO_CONSONANT_SIGNS, JAVANESE_DEPENDENT_VOWEL_SIGNS_SUBSET, JAVANESE_DEPENDENT_VOWEL_SIGNS_SUBSET_2, JAVANESE_DEPENDENT_CONSONANT_SIGNS_TO_DEPENDENT_CONSONANT_SIGNS, CHAM_DEPENDENT_VOWEL_SIGNS_SUBSET_1, CHAM_CONSONANT_SIGNS_SUBSET, MEETEI_MAYEK_EXTENSIONS_DEPENDENT_VOWEL_SIGNS_SUBSET_1, MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS_SUBSET, MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS_SUBSET_1, MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS_SUBSET_2), 'ः', 'ऻ', 'ৗ', 'ਃ', 'ઃ', 'ૉ', 'ା', 'ୀ', 'ୗ', 'ௗ', 'ಾ', 'ൗ', 'ཿ', 'ေ', 'း', 'ႏ', 'ា', 'ᩕ', 'ᩗ', 'ᩡ', 'ᬄ', 'ᬵ', 'ᬻ', 'ᮂ', 'ᮡ', '᮪', 'ᯧ', 'ᯮ', '᳡', '᳷', 'ꠧ', 'ꦃ', 'ꩍ', 'ꩻ', 'ꩽ', 'ꫫ', 'ꫵ', '꯬'), ENCLOSING_MARK(keys("Me", "Enclosing_Mark"), "a character that encloses the character it is combined with (circle, square, keycap, etc.).", asList(CYRILLIC_HISTORIC_MISCELLANEOUS_SUBSET_2, COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_ENCLOSING_DIACRITICS, COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_ADDITIONAL_ENCLOSING_DIACRITICS, CYRILLIC_EXTENDED_B_COMBINING_NUMERIC_SIGNS), '᪾'), SEPARATOR(keys("Z", "Separator"), "any kind of whitespace or invisible separator.", asList(GENERAL_PUNCTUATION_SPACES, GENERAL_PUNCTUATION_SEPARATORS), ' ', ' ', ' ', ' ', ' ', ' '), - SPACE_SEPARATOR(keys("Zs", "Space_Separator"), "a whitespace character that is invisible, but does take up space.", GENERAL_PUNCTUATION_SPACES, new Character[]{' ', ' ', ' ', ' ', ' ', ' '}), + SPACE_SEPARATOR(keys("Zs", "Space_Separator"), "a whitespace character that is invisible, but does take up space.", GENERAL_PUNCTUATION_SPACES, new char[]{' ', ' ', ' ', ' ', ' ', ' '}), LINE_SEPARATOR(keys("Zl", "Line_Separator"), "line separator character U+2028.", '
'), PARAGRAPH_SEPARATOR(keys("Zp", "Paragraph_Separator"), "paragraph separator character U+2029.", '
'), SYMBOL(keys("S", "Symbol"), "math symbols, currency signs, dingbats, box-drawing characters, etc.", asList(BASIC_LATIN_ASCII_MATHEMATICAL_OPERATORS, LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_1, LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_2, LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_3, SPACING_MODIFIER_LETTERS_MISCELLANEOUS_PHONETIC_MODIFIERS_SUBSET, SPACING_MODIFIER_LETTERS_MISCELLANEOUS_PHONETIC_MODIFIERS_TO_ADDITIONS_BASED_ON_1989_IPA, SPACING_MODIFIER_LETTERS_TONE_LETTERS_TO_EXTENDED_BOPOMOFO_TONE_MARKS, SPACING_MODIFIER_LETTERS_UPA_MODIFIERS, GREEK_AND_COPTIC_SPACING_ACCENT_MARKS, CYRILLIC_SUPPLEMENT_RELIGIOUS_SYMBOLS_TO_RELIGIOUS_SYMBOLS, ARABIC_RADIX_SYMBOLS_TO_RADIX_SYMBOLS, ARABIC_POETIC_MARKS, ARABIC_SIGNS_FOR_SINDHI, NKO_CURRENCY_SYMBOLS, BENGALI_CURRENCY_SYMBOLS, BENGALI_SIGN_TO_SIGN, BENGALI_TAMIL_CALENDRICAL_SYMBOLS_TO_CURRENCY_SYMBOL, TIBETAN_HEAD_MARKS_SUBSET, TIBETAN_ASTROLOGICAL_SIGNS_SUBSET, TIBETAN_ASTROLOGICAL_SIGNS_SUBSET_2, TIBETAN_SIGNS_TO_SYMBOLS, TIBETAN_SYMBOLS_SUBSET, TIBETAN_ASTROLOGICAL_SIGNS_2, TIBETAN_RELIGIOUS_SYMBOLS, MYANMAR_SHAN_SYMBOLS, ETHIOPIC_SUPPLEMENT_TONAL_MARKS_SUBSET, NEW_TAI_LUE_TO_KHMER_SYMBOLS, BALINESE_MUSICAL_SYMBOLS_FOR_NOTES, BALINESE_MUSICAL_SYMBOLS, GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_45, GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_10, GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_20, GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_32, GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_44, SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_SUBSET_1, SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_SUBSET_1, CURRENCY_SYMBOLS_CURRENCY_SYMBOLS_SUBSET, LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET, LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_1, LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_2, LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_8, LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_10, LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET_1, LETTERLIKE_SYMBOLS_DOUBLE_STRUCK_LARGE_OPERATOR_TO_ADDITIONAL_LETTERLIKE_SYMBOLS, LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_2, NUMBER_FORMS_TURNED_DIGITS_SUBSET, ARROWS_TO_MISCELLANEOUS_TECHNICAL, MISCELLANEOUS_TECHNICAL_CROPS_TO_KEYBOARD_SYMBOLS, MISCELLANEOUS_TECHNICAL_TO_CONTROL_PICTURES_1, OPTICAL_CHARACTER_RECOGNITION_OCR_A_TO_MICR, ENCLOSED_ALPHANUMERICS_PARENTHESIZED_LATIN_LETTERS_TO_CIRCLED_LATIN_LETTERS, BOX_DRAWING_TO_DINGBATS, DINGBATS_TO_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A, MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_OPERATOR_TO_MODAL_LOGIC_OPERATORS, SUPPLEMENTAL_ARROWS_A_TO_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B, MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_FENCES_TO_BOWTIE_SYMBOLS, MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_TO_SPECIALIZED_PLUS_SIGN_OPERATORS, MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_TO_MISCELLANEOUS_SYMBOLS_AND_ARROWS, MISCELLANEOUS_SYMBOLS_AND_ARROWS_TRIANGLE_HEADED_ARROWS_TO_MISCELLANEOUS_ARROW_SYMBOL, MISCELLANEOUS_SYMBOLS_AND_ARROWS_MISCELLANEOUS_SYMBOL_TO_SYMBOLS_USED_IN_CHESS_NOTATION, COPTIC_SYMBOLS_SUBSET, SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_SUBSET, CJK_RADICALS_SUPPLEMENT_CJK_RADICALS_SUPPLEMENT_SUBSET, CJK_RADICALS_SUPPLEMENT_CJK_RADICALS_SUPPLEMENT_SUBSET_1, KANGXI_RADICALS_KANGXI_RADICALS_SUBSET, IDEOGRAPHIC_DESCRIPTION_CHARACTERS_IDEOGRAPHIC_DESCRIPTION_CHARACTERS_SUBSET, CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS, CJK_SYMBOLS_AND_PUNCTUATION_OTHER_CJK_SYMBOLS, CJK_SYMBOLS_AND_PUNCTUATION_SPECIAL_CJK_INDICATORS, CJK_SYMBOLS_AND_PUNCTUATION_VOICING_MARKS_SUBSET_1, KANBUN_TATETEN_TO_TATETEN, KANBUN_KAERITEN_SUBSET_1, CJK_STROKES_CJK_STROKES_SUBSET, ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_HANGUL_LETTERS_TO_PARENTHESIZED_KOREAN_WORDS, ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_IDEOGRAPHS_TO_CIRCLED_IDEOGRAPHS_FROM_ARIB_STD_B24, ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_HANGUL_LETTERS_TO_CIRCLED_HANGUL_SYLLABLE, ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_IDEOGRAPHS_SUBSET_1, ENCLOSED_CJK_LETTERS_AND_MONTHS_TO_CJK_COMPATIBILITY, YIJING_HEXAGRAM_SYMBOLS_YIJING_HEXAGRAM_SYMBOLS, YI_RADICALS_YI_RADICALS_SUBSET, MODIFIER_TONE_LETTERS_CORNER_TONE_MARKS_FOR_CHINESE_TO_LEFT_STEM_TONE_LETTERS, LATIN_EXTENDED_D_ADDITIONS_FOR_UPA, LATIN_EXTENDED_D_MODIFIER_LETTERS_SUBSET, SYLOTI_NAGRI_POETRY_MARKS, COMMON_INDIC_NUMBER_FORMS_NUMBER_FORMS_TO_CURRENCY_SYMBOL, MYANMAR_EXTENDED_A_AITON_SYMBOLS_AND_LETTERS_SUBSET, LATIN_EXTENDED_E_LETTERS_FOR_SCOTS_DIALECTOLOGY_SUBSET), '$', '+', '^', '`', '|', '~', '¬', '´', '¸', '×', '÷', '˭', '͵', '϶', '҂', '؋', '۞', '۩', '߶', '૱', '୰', '౿', '൏', '൹', '฿', '༓', '༴', '༶', '༸', '᙭', '៛', '᥀', '᾽', '⁄', '⁒', '℔', '℥', '℧', '℩', '℮', '⅏', '〄', '〠', '㉐', '꭛'), @@ -64,10 +64,10 @@ public enum UnicodeCategory { PUNCTUATION(keys("P", "Punctuation"), "any kind of punctuation character.", asList(BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_1, BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_3, BASIC_LATIN_ASCII_PUNCTUATION, BASIC_LATIN_ASCII_PUNCTUATION_1, BASIC_LATIN_ASCII_PUNCTUATION_2, BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET, LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_5, CYRILLIC_SUPPLEMENT_MODIFIER_LETTERS_SUBSET, CYRILLIC_SUPPLEMENT_PUNCTUATION_SUBSET, CYRILLIC_SUPPLEMENT_ADDITIONAL_PUNCTUATION_SUBSET, ARABIC_PUNCTUATION, ARABIC_PUNCTUATION_1, ARABIC_PUNCTUATION_SUBSET, ARABIC_PUNCTUATION_4, SYRIAC_SYRIAC_PUNCTUATION_AND_SIGNS_SUBSET, NKO_PUNCTUATION, SAMARITAN_PUNCTUATION_SUBSET, DEVANAGARI_GENERIC_PUNCTUATION_FOR_SCRIPTS_OF_INDIA, MALAYALAM_SIGNS_SUBSET, TIBETAN_HEAD_MARKS_TO_MARKS_AND_SIGNS, TIBETAN_PAIRED_PUNCTUATION, TIBETAN_MARKS_TO_HEAD_MARKS, TIBETAN_ANNOTATION_MARKS_SUBSET, MYANMAR_PUNCTUATION_TO_VARIOUS_SIGNS, ETHIOPIC_PUNCTUATION, OGHAM_PUNCTUATION_SUBSET, RUNIC_PUNCTUATION, HANUNOO_GENERIC_PUNCTUATION_FOR_PHILIPPINE_SCRIPTS_SUBSET, KHMER_VARIOUS_SIGNS_SUBSET_1, KHMER_VARIOUS_SIGNS_SUBSET_2, MONGOLIAN_PUNCTUATION, LIMBU_VARIOUS_SIGNS_SUBSET, BUGINESE_VARIOUS_SIGNS, TAI_THAM_LOGOGRAPHS_TO_PUNCTUATION, TAI_THAM_PUNCTUATION_SUBSET, BALINESE_PUNCTUATION, BATAK_PUNCTUATION, LEPCHA_PUNCTUATION, OL_CHIKI_PUNCTUATION, SUNDANESE_SUPPLEMENT_PUNCTUATION_SUBSET, GENERAL_PUNCTUATION_DASHES_TO_GENERAL_PUNCTUATION, GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_GENERAL_PUNCTUATION, GENERAL_PUNCTUATION_BRACKETS_TO_GENERAL_PUNCTUATION, GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_ARCHAIC_PUNCTUATION, SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_SUBSET_2, SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_SUBSET_2, MISCELLANEOUS_TECHNICAL_CEILINGS_AND_FLOORS, MISCELLANEOUS_TECHNICAL_DEPRECATED_ANGLE_BRACKETS, DINGBATS_ORNAMENTAL_BRACKETS, MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_PAIRED_PUNCTUATION, MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_MATHEMATICAL_BRACKETS, MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_BRACKETS_TO_BRACKETS, MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_FENCES_1, MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_BRACKETS_2, COPTIC_OLD_NUBIAN_PUNCTUATION, COPTIC_PUNCTUATION, SUPPLEMENTAL_PUNCTUATION_NEW_TESTAMENT_EDITORIAL_SYMBOLS_TO_HISTORIC_PUNCTUATION, SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_TO_HISTORIC_PUNCTUATION, CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS_AND_PUNCTUATION_SUBSET, CJK_SYMBOLS_AND_PUNCTUATION_CJK_ANGLE_BRACKETS_TO_CJK_BRACKETS, CJK_SYMBOLS_AND_PUNCTUATION_CJK_BRACKETS_TO_CJK_PUNCTUATION, LISU_PUNCTUATION, VAI_PUNCTUATION, BAMUM_PUNCTUATION_SUBSET, PHAGS_PA_HEAD_MARKS_FOR_TIBETAN_TO_PUNCTUATION_FOR_TIBETAN, SAURASHTRA_PUNCTUATION, DEVANAGARI_EXTENDED_EDITORIAL_MARKS_SUBSET, KAYAH_LI_PUNCTUATION, JAVANESE_PUNCTUATION_SUBSET, JAVANESE_ELLIPSIS_MARKS, CHAM_PUNCTUATION, TAI_VIET_PUNCTUATION, MEETEI_MAYEK_EXTENSIONS_PUNCTUATION), '_', '{', '}', '¡', '§', '«', '»', '¿', ';', '·', '־', '׀', '׃', '׆', '؛', '۔', '࡞', '॰', '৽', '੶', '૰', '౷', '಄', '෴', '๏', '༔', '྅', '჻', '᐀', '᙮', '᳓', '⵰', '⹒', '〰', '〽', '゠', '・', '꙳', '꙾', '꣼', '꥟', '꯫'), DASH_PUNCTUATION(keys("Pd", "Dash_Punctuation"), "any kind of hyphen or dash.", asList(GENERAL_PUNCTUATION_DASHES, SUPPLEMENTAL_PUNCTUATION_DASHES), '-', '֊', '־', '᐀', '᠆', '⸗', '⸚', '⹀', '〜', '〰', '゠'), OPEN_PUNCTUATION(keys("Ps", "Open_Punctuation"), "any kind of opening bracket.", '(', '[', '{', '༺', '༼', '᚛', '‚', '„', '⁅', '⁽', '₍', '⌈', '⌊', '〈', '❨', '❪', '❬', '❮', '❰', '❲', '❴', '⟅', '⟦', '⟨', '⟪', '⟬', '⟮', '⦃', '⦅', '⦇', '⦉', '⦋', '⦍', '⦏', '⦑', '⦓', '⦕', '⦗', '⧘', '⧚', '⧼', '⸢', '⸤', '⸦', '⸨', '⹂', '〈', '《', '「', '『', '【', '〔', '〖', '〘', '〚', '〝'), - CLOSE_PUNCTUATION(keys("Pe", "Close_Punctuation"), "any kind of closing bracket.", CJK_SYMBOLS_AND_PUNCTUATION_CJK_PUNCTUATION_SUBSET, new Character[]{')', ']', '}', '༻', '༽', '᚜', '⁆', '⁾', '₎', '⌉', '⌋', '〉', '❩', '❫', '❭', '❯', '❱', '❳', '❵', '⟆', '⟧', '⟩', '⟫', '⟭', '⟯', '⦄', '⦆', '⦈', '⦊', '⦌', '⦎', '⦐', '⦒', '⦔', '⦖', '⦘', '⧙', '⧛', '⧽', '⸣', '⸥', '⸧', '⸩', '〉', '》', '」', '』', '】', '〕', '〗', '〙', '〛'}), - INITIAL_PUNCTUATION(keys("Pi", "Initial_Punctuation"), "any kind of opening quote.", GENERAL_PUNCTUATION_QUOTATION_MARKS_AND_APOSTROPHE_SUBSET, new Character[]{'«', '‘', '‟', '‹', '⸂', '⸄', '⸉', '⸌', '⸜', '⸠'}), + CLOSE_PUNCTUATION(keys("Pe", "Close_Punctuation"), "any kind of closing bracket.", CJK_SYMBOLS_AND_PUNCTUATION_CJK_PUNCTUATION_SUBSET, new char[]{')', ']', '}', '༻', '༽', '᚜', '⁆', '⁾', '₎', '⌉', '⌋', '〉', '❩', '❫', '❭', '❯', '❱', '❳', '❵', '⟆', '⟧', '⟩', '⟫', '⟭', '⟯', '⦄', '⦆', '⦈', '⦊', '⦌', '⦎', '⦐', '⦒', '⦔', '⦖', '⦘', '⧙', '⧛', '⧽', '⸣', '⸥', '⸧', '⸩', '〉', '》', '」', '』', '】', '〕', '〗', '〙', '〛'}), + INITIAL_PUNCTUATION(keys("Pi", "Initial_Punctuation"), "any kind of opening quote.", GENERAL_PUNCTUATION_QUOTATION_MARKS_AND_APOSTROPHE_SUBSET, new char[]{'«', '‘', '‟', '‹', '⸂', '⸄', '⸉', '⸌', '⸜', '⸠'}), FINAL_PUNCTUATION(keys("Pf", "Final_Punctuation"), "any kind of closing quote.", '»', '’', '”', '›', '⸃', '⸅', '⸊', '⸍', '⸝', '⸡'), - CONNECTOR_PUNCTUATION(keys("Pc", "Connector_Punctuation"), "a punctuation character such as an underscore that connects words.", GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_SUBSET_1, new Character[]{'_', '⁔'}), + CONNECTOR_PUNCTUATION(keys("Pc", "Connector_Punctuation"), "a punctuation character such as an underscore that connects words.", GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_SUBSET_1, new char[]{'_', '⁔'}), OTHER_PUNCTUATION(keys("Po", "Other_Punctuation"), "any kind of punctuation character that is not a dash, bracket, quote or connector.", asList(BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_1, BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_2, BASIC_LATIN_ASCII_PUNCTUATION_SUBSET, BASIC_LATIN_ASCII_PUNCTUATION_1, BASIC_LATIN_ASCII_PUNCTUATION_2, LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_5, CYRILLIC_SUPPLEMENT_MODIFIER_LETTERS_SUBSET, CYRILLIC_SUPPLEMENT_ADDITIONAL_PUNCTUATION_SUBSET, ARABIC_PUNCTUATION, ARABIC_PUNCTUATION_1, ARABIC_PUNCTUATION_SUBSET, ARABIC_PUNCTUATION_4, SYRIAC_SYRIAC_PUNCTUATION_AND_SIGNS_SUBSET, NKO_PUNCTUATION, SAMARITAN_PUNCTUATION_SUBSET, DEVANAGARI_GENERIC_PUNCTUATION_FOR_SCRIPTS_OF_INDIA, MALAYALAM_SIGNS_SUBSET, TIBETAN_HEAD_MARKS_TO_MARKS_AND_SIGNS, TIBETAN_MARKS_TO_HEAD_MARKS, TIBETAN_ANNOTATION_MARKS_SUBSET, MYANMAR_PUNCTUATION_TO_VARIOUS_SIGNS, ETHIOPIC_PUNCTUATION, RUNIC_PUNCTUATION, HANUNOO_GENERIC_PUNCTUATION_FOR_PHILIPPINE_SCRIPTS_SUBSET, KHMER_VARIOUS_SIGNS_SUBSET_1, KHMER_VARIOUS_SIGNS_SUBSET_2, MONGOLIAN_PUNCTUATION_SUBSET, MONGOLIAN_PUNCTUATION_SUBSET_1, LIMBU_VARIOUS_SIGNS_SUBSET, BUGINESE_VARIOUS_SIGNS, TAI_THAM_LOGOGRAPHS_TO_PUNCTUATION, TAI_THAM_PUNCTUATION_SUBSET, BALINESE_PUNCTUATION, BATAK_PUNCTUATION, LEPCHA_PUNCTUATION, OL_CHIKI_PUNCTUATION, SUNDANESE_SUPPLEMENT_PUNCTUATION_SUBSET, GENERAL_PUNCTUATION_GENERAL_PUNCTUATION, GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_1, GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_2, GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_GENERAL_PUNCTUATION_1, GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_SUBSET, GENERAL_PUNCTUATION_DOUBLE_PUNCTUATION_FOR_VERTICAL_TEXT_TO_GENERAL_PUNCTUATION, GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_ARCHAIC_PUNCTUATION_1, COPTIC_OLD_NUBIAN_PUNCTUATION, COPTIC_PUNCTUATION, SUPPLEMENTAL_PUNCTUATION_NEW_TESTAMENT_EDITORIAL_SYMBOLS_SUBSET, SUPPLEMENTAL_PUNCTUATION_NEW_TESTAMENT_EDITORIAL_SYMBOLS_SUBSET_1, SUPPLEMENTAL_PUNCTUATION_ANCIENT_GREEK_TEXTUAL_SYMBOLS, SUPPLEMENTAL_PUNCTUATION_GENERAL_PUNCTUATION, SUPPLEMENTAL_PUNCTUATION_DICTIONARY_PUNCTUATION_1, SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_SUBSET_1, SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_TO_PALAEOTYPE_TRANSLITERATION_SYMBOLS, SUPPLEMENTAL_PUNCTUATION_ALTERNATE_FORMS_OF_PUNCTUATION_TO_ALTERNATE_FORMS_OF_PUNCTUATION, SUPPLEMENTAL_PUNCTUATION_MISCELLANEOUS_PUNCTUATION_TO_HISTORIC_PUNCTUATION, CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS_AND_PUNCTUATION_SUBSET, LISU_PUNCTUATION, VAI_PUNCTUATION, BAMUM_PUNCTUATION_SUBSET, PHAGS_PA_HEAD_MARKS_FOR_TIBETAN_TO_PUNCTUATION_FOR_TIBETAN, SAURASHTRA_PUNCTUATION, DEVANAGARI_EXTENDED_EDITORIAL_MARKS_SUBSET, KAYAH_LI_PUNCTUATION, JAVANESE_PUNCTUATION_SUBSET, JAVANESE_ELLIPSIS_MARKS, CHAM_PUNCTUATION, TAI_VIET_PUNCTUATION, MEETEI_MAYEK_EXTENSIONS_PUNCTUATION), '*', ',', '\\', '¡', '§', '¿', ';', '·', '։', '׀', '׃', '׆', '؛', '۔', '࡞', '॰', '৽', '੶', '૰', '౷', '಄', '෴', '๏', '༔', '྅', '჻', '᙮', '᳓', '⁓', '⵰', '⸋', '⸛', '⹁', '⹒', '〽', '・', '꙳', '꙾', '꣼', '꥟', '꯫'), CONTROL(keys("Cc", "Control"), "an ASCII or Latin-1 control character", BASIC_LATIN_TO_LATIN_1_SUPPLEMENT), FORMAT(keys("Cf", "Format"), "invisible formatting indicator.", asList(ARABIC_SUBTENDING_MARKS_TO_SUBTENDING_MARKS, GENERAL_PUNCTUATION_FORMAT_CHARACTERS, GENERAL_PUNCTUATION_FORMAT_CHARACTERS_1, GENERAL_PUNCTUATION_FORMAT_CHARACTER_TO_INVISIBLE_OPERATORS, GENERAL_PUNCTUATION_FORMAT_CHARACTERS_TO_DEPRECATED), '­', '؜', '۝', '܏', '࣢', '᠎'), @@ -174,7 +174,7 @@ public enum UnicodeCategory { //IN_LATIN_EXTENDED_B(keys("InLatin_Extended-B"), "U+0180-U+024F", range(0x0180, 0x024F)), //IN_GREEK_AND_COPTIC(keys("InGreek_and_Coptic"), "U+0370-U+03FF", range(0x0370, 0x03FF)), - //CASED_LETTER(keys("L&", "Cased_Letter"), "a letter that exists in lowercase and uppercase variants (combination of Ll, Lu and Lt).", asList(LATIN_UPPERCASE, LATIN_LOWERCASE, range('À', 'Ö'), range('Ø', 'ö'), range('ø', 'İ'), range('IJ', 'ķ'), range('Ĺ', 'ň'), range('Ŋ', 'ž'), range('ƀ', 'ƌ'), range('Ǝ', 'ƚ'), range('Ɯ', 'Ʃ'), range('Ƭ', 'ƹ'), range('Ƽ', 'ƽ'), range('dž', 'LJ'), range('lj', 'NJ'), range('nj', 'ǯ'), range('dz', 'Ƞ'), range('Ȣ', 'ȳ'), range('Ⱥ', 'ɔ'), range('ɖ', 'ɗ'), range('ɛ', 'ɜ'), range('ɠ', 'ɡ'), range('ɥ', 'ɦ'), range('ɨ', 'ɬ'), range('ɱ', 'ɲ'), range('ʇ', 'ʌ'), range('ʝ', 'ʞ'), range('Ͱ', 'ͳ'), range('Ͷ', 'ͷ'), range('ͻ', 'ͽ'), range('Έ', 'Ί'), range('Ύ', 'Ώ'), range('Α', 'Ρ'), range('Σ', 'ί'), range('α', 'ρ'), range('σ', 'Ϗ'), range('ϗ', 'ϯ'), range('ϲ', 'ϴ'), range('Ϸ', 'ϻ'), range('Ͻ', 'ҁ'), range('Ҋ', 'ԯ'), range('Ա', 'Ֆ'), range('ա', 'ֆ'), range('Ⴀ', 'Ⴥ'), range('Ꭰ', 'Ᏽ'), range('ᏸ', 'ᏽ'), range('Ḁ', 'ẕ'), range('Ạ', 'ἕ'), range('Ἐ', 'Ἕ'), range('ἠ', 'ὅ'), range('Ὀ', 'Ὅ'), range('Ὗ', 'ώ'), range('ᾰ', 'ᾱ'), range('Ᾰ', 'Ά'), range('Ὲ', 'Ή'), range('ῐ', 'ῑ'), range('Ῐ', 'Ί'), range('ῠ', 'ῡ'), range('Ῠ', 'Ῥ'), range('Ὸ', 'Ώ'), range('K', 'Å'), range('Ↄ', 'ↄ'), range('Ⰰ', 'Ⱞ'), range('ⰰ', 'ⱞ'), range('Ⱡ', 'Ɒ'), range('Ⱳ', 'ⱳ'), range('Ⱶ', 'ⱶ'), range('Ȿ', 'ⳣ'), range('Ⳬ', 'ⳮ'), range('Ⳳ', 'ⳳ'), range('ⴀ', 'ⴥ'), range('Ꙁ', 'ꙭ'), range('Ꚁ', 'ꚛ'), range('Ꜣ', 'ꜯ'), range('Ꜳ', 'ꝯ'), range('Ꝺ', 'ꞇ'), range('Ꞌ', 'Ɥ'), range('Ꞑ', 'ꞓ'), range('Ꞗ', 'Ɪ'), range('Ʞ', 'ꞷ'), range('ꭰ', 'ꮿ'), range('A', 'Z'), range('a', 'z')), new Character[]{'ƿ', 'DŽ', 'DZ', 'ə', 'ɣ', 'ɯ', 'ɵ', 'ɽ', 'ʀ', 'ʃ', 'ʒ', 'Ϳ', 'Ά', 'Ό', 'Ⴧ', 'Ⴭ', 'ᵹ', 'ᵽ', 'ẞ', 'ὑ', 'ὓ', 'ὕ', 'ὗ', 'Ὑ', 'Ὓ', 'Ὕ', 'ῥ', 'Ω', 'Ⅎ', 'ⅎ', 'ⴧ', 'ⴭ', 'ꭓ'}), + //CASED_LETTER(keys("L&", "Cased_Letter"), "a letter that exists in lowercase and uppercase variants (combination of Ll, Lu and Lt).", asList(LATIN_UPPERCASE, LATIN_LOWERCASE, range('À', 'Ö'), range('Ø', 'ö'), range('ø', 'İ'), range('IJ', 'ķ'), range('Ĺ', 'ň'), range('Ŋ', 'ž'), range('ƀ', 'ƌ'), range('Ǝ', 'ƚ'), range('Ɯ', 'Ʃ'), range('Ƭ', 'ƹ'), range('Ƽ', 'ƽ'), range('dž', 'LJ'), range('lj', 'NJ'), range('nj', 'ǯ'), range('dz', 'Ƞ'), range('Ȣ', 'ȳ'), range('Ⱥ', 'ɔ'), range('ɖ', 'ɗ'), range('ɛ', 'ɜ'), range('ɠ', 'ɡ'), range('ɥ', 'ɦ'), range('ɨ', 'ɬ'), range('ɱ', 'ɲ'), range('ʇ', 'ʌ'), range('ʝ', 'ʞ'), range('Ͱ', 'ͳ'), range('Ͷ', 'ͷ'), range('ͻ', 'ͽ'), range('Έ', 'Ί'), range('Ύ', 'Ώ'), range('Α', 'Ρ'), range('Σ', 'ί'), range('α', 'ρ'), range('σ', 'Ϗ'), range('ϗ', 'ϯ'), range('ϲ', 'ϴ'), range('Ϸ', 'ϻ'), range('Ͻ', 'ҁ'), range('Ҋ', 'ԯ'), range('Ա', 'Ֆ'), range('ա', 'ֆ'), range('Ⴀ', 'Ⴥ'), range('Ꭰ', 'Ᏽ'), range('ᏸ', 'ᏽ'), range('Ḁ', 'ẕ'), range('Ạ', 'ἕ'), range('Ἐ', 'Ἕ'), range('ἠ', 'ὅ'), range('Ὀ', 'Ὅ'), range('Ὗ', 'ώ'), range('ᾰ', 'ᾱ'), range('Ᾰ', 'Ά'), range('Ὲ', 'Ή'), range('ῐ', 'ῑ'), range('Ῐ', 'Ί'), range('ῠ', 'ῡ'), range('Ῠ', 'Ῥ'), range('Ὸ', 'Ώ'), range('K', 'Å'), range('Ↄ', 'ↄ'), range('Ⰰ', 'Ⱞ'), range('ⰰ', 'ⱞ'), range('Ⱡ', 'Ɒ'), range('Ⱳ', 'ⱳ'), range('Ⱶ', 'ⱶ'), range('Ȿ', 'ⳣ'), range('Ⳬ', 'ⳮ'), range('Ⳳ', 'ⳳ'), range('ⴀ', 'ⴥ'), range('Ꙁ', 'ꙭ'), range('Ꚁ', 'ꚛ'), range('Ꜣ', 'ꜯ'), range('Ꜳ', 'ꝯ'), range('Ꝺ', 'ꞇ'), range('Ꞌ', 'Ɥ'), range('Ꞑ', 'ꞓ'), range('Ꞗ', 'Ɪ'), range('Ʞ', 'ꞷ'), range('ꭰ', 'ꮿ'), range('A', 'Z'), range('a', 'z')), new char[]{'ƿ', 'DŽ', 'DZ', 'ə', 'ɣ', 'ɯ', 'ɵ', 'ɽ', 'ʀ', 'ʃ', 'ʒ', 'Ϳ', 'Ά', 'Ό', 'Ⴧ', 'Ⴭ', 'ᵹ', 'ᵽ', 'ẞ', 'ὑ', 'ὓ', 'ὕ', 'ὗ', 'Ὑ', 'Ὓ', 'Ὕ', 'ῥ', 'Ω', 'Ⅎ', 'ⅎ', 'ⴧ', 'ⴭ', 'ꭓ'}), //IN_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS(keys("InCombining_Diacritical_Marks_for_Symbols"), "U+20D0-U+20FF", range(0x20D0, 0x20FF)), @@ -190,8 +190,8 @@ public enum UnicodeCategory { // IN_HIGH_PRIVATE_USE_SURROGATES(keys("InHigh_Private_Use_Surrogates"), "U+DB80-U+DBFF", range(0xDB80, 0xDBFF)) // IN_LOW_SURROGATES(keys("InLow_Surrogates"), "U+DC00-U+DFFF", range(0xDC00, 0xDFFF)), - // OTHER(keys("C", "Other"), "invisible control characters and unused code points.", asList(C1_CONTROLS, UNUSED_CODEPOINT_1, UNUSED_CODEPOINTS_2, UNUSED_CODEPOINTS_3, UNUSED_CODEPOINTS_4, UNUSED_CODEPOINTS_5, UNUSED_CODEPOINTS_6, range('׵', '؅'), range('؜', '؝'), range('܎', '܏'), UNUSED_CODEPOINTS_7, UNUSED_CODEPOINTS_8, UNUSED_CODEPOINTS_9, UNUSED_CODEPOINTS_10, UNUSED_CODEPOINTS_11, UNUSED_CODEPOINTS_12, UNUSED_CODEPOINTS_13, UNUSED_CODEPOINTS_14, UNUSED_CODEPOINTS_15, UNUSED_CODEPOINTS_16, UNUSED_CODEPOINTS_17, UNUSED_CODEPOINTS_18, UNUSED_CODEPOINTS_19, UNUSED_CODEPOINTS_20, UNUSED_CODEPOINTS_21, UNUSED_CODEPOINTS_22, RANGE_470, RANGE_16, RANGE_147, RANGE_296, RANGE_490, RANGE_610, RANGE_724, RANGE_80, RANGE_361, RANGE_122, RANGE_117, RANGE_542, RANGE_607, RANGE_280, RANGE_585, RANGE_428, RANGE_515, RANGE_659, RANGE_161, RANGE_256, RANGE_364, RANGE_579, RANGE_104, RANGE_531, RANGE_204, RANGE_439, RANGE_645, RANGE_25, RANGE_156, RANGE_479, RANGE_668, RANGE_174, RANGE_241, RANGE_390, RANGE_408, RANGE_297, RANGE_726, RANGE_276, RANGE_462, RANGE_725, RANGE_118, RANGE_546, RANGE_0, RANGE_281, RANGE_604, RANGE_400, RANGE_106, RANGE_700, RANGE_460, RANGE_567, RANGE_20, RANGE_119, RANGE_565, RANGE_169, RANGE_285, RANGE_322, RANGE_309, RANGE_442, RANGE_573, RANGE_632, RANGE_459, RANGE_202, RANGE_544, RANGE_70, RANGE_209, RANGE_292, RANGE_465, RANGE_414, RANGE_543, RANGE_728, RANGE_344, RANGE_633, RANGE_28, RANGE_369, RANGE_615, RANGE_634, RANGE_630, RANGE_523, RANGE_303, RANGE_472, RANGE_224, RANGE_732, RANGE_600, RANGE_595, RANGE_489, RANGE_448, RANGE_519, RANGE_45, RANGE_382, range('᠎', '᠏'), RANGE_349, RANGE_162, RANGE_525, RANGE_669, RANGE_363, RANGE_706, RANGE_79, RANGE_316, RANGE_463, RANGE_183, RANGE_94, RANGE_454, RANGE_380, RANGE_271, RANGE_550, RANGE_157, RANGE_590, RANGE_242, RANGE_320, RANGE_628, RANGE_267, RANGE_260, RANGE_636, RANGE_548, RANGE_416, RANGE_15, RANGE_614, RANGE_66, RANGE_192, RANGE_362, RANGE_652, RANGE_308, RANGE_172, RANGE_19, RANGE_686, range('⁠', ''), RANGE_33, RANGE_223, RANGE_249, RANGE_568, RANGE_228, RANGE_625, RANGE_667, RANGE_438, RANGE_443, RANGE_480, RANGE_293, RANGE_176, RANGE_617, RANGE_279, RANGE_405, RANGE_187, RANGE_377, RANGE_464, RANGE_655, RANGE_627, RANGE_355, RANGE_431, RANGE_96, RANGE_148, RANGE_422, RANGE_510, RANGE_649, RANGE_397, RANGE_87, RANGE_597, RANGE_401, RANGE_721, RANGE_730, RANGE_447, RANGE_717, RANGE_284, RANGE_181, RANGE_381, RANGE_58, RANGE_103, RANGE_505, RANGE_613, RANGE_421, RANGE_245, RANGE_714, RANGE_240, RANGE_307, RANGE_709, RANGE_287, RANGE_478, RANGE_656, RANGE_152, RANGE_123, RANGE_373, RANGE_12, RANGE_44, range('퟼', ''), RANGE_676, RANGE_93, RANGE_321, RANGE_641, RANGE_646, RANGE_60, RANGE_315, RANGE_62, RANGE_467, RANGE_334, RANGE_622, range('﻽', '＀'), RANGE_589, RANGE_27, RANGE_227, RANGE_368, RANGE_497, range('￯', '')), new Character[]{'­', '΋', '΍', '΢', '԰', 'ՠ', 'ֈ', '֐', '۝', '࠿', '࡟', 'ࢵ', '࣢', '঄', '঩', '঱', '৞', '਄', '਩', '਱', '਴', '਷', '਽', '੝', '઄', '઎', '઒', '઩', '઱', '઴', '૆', '૊', '଀', '଄', '଩', '଱', '଴', '୞', '஄', '஑', '஛', '஝', '௉', 'ఄ', '఍', '఑', '఩', '౅', '౉', '౗', '಄', '಍', '಑', '಩', '಴', '೅', '೉', '೟', '೰', 'ഄ', '഍', '഑', '൅', '൉', '඄', '඲', '඼', '෕', '෗', '຃', 'ຉ', 'ຘ', 'ຠ', '຤', '຦', 'ຬ', '຺', '໅', '໇', '཈', '྘', '྽', '࿍', '჆', '቉', '቗', '቙', '኉', '኱', '኿', '዁', '዗', '጑', 'ᜍ', '᝭', '᝱', '᤟', '᩟', '᷺', '὘', '὚', '὜', '὞', '᾵', '῅', '῜', '῵', '῿', '₏', '⯉', 'Ⱟ', 'ⱟ', '⴦', '⶧', '⶯', '⶷', '⶿', '⷇', '⷏', '⷗', '⷟', '⺚', '぀', '㆏', '㈟', 'ꞯ', '꧎', '꧿', '꬧', '꬯', '﬷', '﬽', '﬿', '﭂', '﭅', '﹓', '﹧', '﹵', '￧', '￾'}), - // UNASSIGNED(keys("Cn", "Unassigned"), "any code point to which no character has been assigned.", asList(UNUSED_CODEPOINT_1, UNUSED_CODEPOINTS_2, UNUSED_CODEPOINTS_3, UNUSED_CODEPOINTS_4, UNUSED_CODEPOINTS_5, UNUSED_CODEPOINTS_6, range('׵', '׿'), UNUSED_CODEPOINTS_7, UNUSED_CODEPOINTS_8, UNUSED_CODEPOINTS_9, UNUSED_CODEPOINTS_10, UNUSED_CODEPOINTS_11, UNUSED_CODEPOINTS_12, UNUSED_CODEPOINTS_13, UNUSED_CODEPOINTS_14, UNUSED_CODEPOINTS_15, UNUSED_CODEPOINTS_16, UNUSED_CODEPOINTS_17, UNUSED_CODEPOINTS_18, UNUSED_CODEPOINTS_19, UNUSED_CODEPOINTS_20, UNUSED_CODEPOINTS_21, UNUSED_CODEPOINTS_22, RANGE_470, RANGE_16, RANGE_147, RANGE_296, RANGE_490, RANGE_610, RANGE_724, RANGE_80, RANGE_361, RANGE_122, RANGE_117, RANGE_542, RANGE_607, RANGE_280, RANGE_585, RANGE_428, RANGE_515, RANGE_659, RANGE_161, RANGE_256, RANGE_364, RANGE_579, RANGE_104, RANGE_531, RANGE_204, RANGE_439, RANGE_645, RANGE_25, RANGE_156, RANGE_479, RANGE_668, RANGE_174, RANGE_241, RANGE_390, RANGE_408, RANGE_297, RANGE_726, RANGE_276, RANGE_462, RANGE_725, RANGE_118, RANGE_546, RANGE_0, RANGE_281, RANGE_604, RANGE_400, RANGE_106, RANGE_700, RANGE_460, RANGE_567, RANGE_20, RANGE_119, RANGE_565, RANGE_169, RANGE_285, RANGE_322, RANGE_309, RANGE_442, RANGE_573, RANGE_632, RANGE_459, RANGE_202, RANGE_544, RANGE_70, RANGE_209, RANGE_292, RANGE_465, RANGE_414, RANGE_543, RANGE_728, RANGE_344, RANGE_633, RANGE_28, RANGE_369, RANGE_615, RANGE_634, RANGE_630, RANGE_523, RANGE_303, RANGE_472, RANGE_224, RANGE_732, RANGE_600, RANGE_595, RANGE_489, RANGE_448, RANGE_519, RANGE_45, RANGE_382, RANGE_349, RANGE_162, RANGE_525, RANGE_669, RANGE_363, RANGE_706, RANGE_79, RANGE_316, RANGE_463, RANGE_183, RANGE_94, RANGE_454, RANGE_380, RANGE_271, RANGE_550, RANGE_157, RANGE_590, RANGE_242, RANGE_320, RANGE_628, RANGE_267, RANGE_260, RANGE_636, RANGE_548, RANGE_416, RANGE_15, RANGE_614, RANGE_66, RANGE_192, RANGE_362, RANGE_652, RANGE_308, RANGE_172, RANGE_33, RANGE_223, RANGE_249, RANGE_568, RANGE_228, RANGE_625, RANGE_667, RANGE_438, RANGE_443, RANGE_480, RANGE_293, RANGE_176, RANGE_617, RANGE_279, RANGE_405, RANGE_187, RANGE_377, RANGE_464, RANGE_655, RANGE_627, RANGE_355, RANGE_431, RANGE_96, RANGE_148, RANGE_422, RANGE_510, RANGE_649, RANGE_397, RANGE_87, RANGE_597, RANGE_401, RANGE_721, RANGE_730, RANGE_447, RANGE_717, RANGE_284, RANGE_181, RANGE_381, RANGE_58, RANGE_103, RANGE_505, RANGE_613, RANGE_421, RANGE_245, RANGE_714, RANGE_240, RANGE_307, RANGE_709, RANGE_287, RANGE_478, RANGE_656, RANGE_152, RANGE_123, RANGE_373, RANGE_12, RANGE_44, range('퟼', '퟿'), RANGE_676, RANGE_93, RANGE_321, RANGE_641, RANGE_646, RANGE_60, RANGE_315, RANGE_62, RANGE_467, RANGE_334, RANGE_622, range('﻽', '﻾'), RANGE_589, RANGE_27, RANGE_227, RANGE_368, RANGE_497, range('￯', '￸')), new Character[]{'΋', '΍', '΢', '԰', 'ՠ', 'ֈ', '֐', '؝', '܎', '࠿', '࡟', 'ࢵ', '঄', '঩', '঱', '৞', '਄', '਩', '਱', '਴', '਷', '਽', '੝', '઄', '઎', '઒', '઩', '઱', '઴', '૆', '૊', '଀', '଄', '଩', '଱', '଴', '୞', '஄', '஑', '஛', '஝', '௉', 'ఄ', '఍', '఑', '఩', '౅', '౉', '౗', '಄', '಍', '಑', '಩', '಴', '೅', '೉', '೟', '೰', 'ഄ', '഍', '഑', '൅', '൉', '඄', '඲', '඼', '෕', '෗', '຃', 'ຉ', 'ຘ', 'ຠ', '຤', '຦', 'ຬ', '຺', '໅', '໇', '཈', '྘', '྽', '࿍', '჆', '቉', '቗', '቙', '኉', '኱', '኿', '዁', '዗', '጑', 'ᜍ', '᝭', '᝱', '᠏', '᤟', '᩟', '᷺', '὘', '὚', '὜', '὞', '᾵', '῅', '῜', '῵', '῿', '⁥', '₏', '⯉', 'Ⱟ', 'ⱟ', '⴦', '⶧', '⶯', '⶷', '⶿', '⷇', '⷏', '⷗', '⷟', '⺚', '぀', '㆏', '㈟', 'ꞯ', '꧎', '꧿', '꬧', '꬯', '﬷', '﬽', '﬿', '﭂', '﭅', '﹓', '﹧', '﹵', '＀', '￧', '￾'}), + // OTHER(keys("C", "Other"), "invisible control characters and unused code points.", asList(C1_CONTROLS, UNUSED_CODEPOINT_1, UNUSED_CODEPOINTS_2, UNUSED_CODEPOINTS_3, UNUSED_CODEPOINTS_4, UNUSED_CODEPOINTS_5, UNUSED_CODEPOINTS_6, range('׵', '؅'), range('؜', '؝'), range('܎', '܏'), UNUSED_CODEPOINTS_7, UNUSED_CODEPOINTS_8, UNUSED_CODEPOINTS_9, UNUSED_CODEPOINTS_10, UNUSED_CODEPOINTS_11, UNUSED_CODEPOINTS_12, UNUSED_CODEPOINTS_13, UNUSED_CODEPOINTS_14, UNUSED_CODEPOINTS_15, UNUSED_CODEPOINTS_16, UNUSED_CODEPOINTS_17, UNUSED_CODEPOINTS_18, UNUSED_CODEPOINTS_19, UNUSED_CODEPOINTS_20, UNUSED_CODEPOINTS_21, UNUSED_CODEPOINTS_22, RANGE_470, RANGE_16, RANGE_147, RANGE_296, RANGE_490, RANGE_610, RANGE_724, RANGE_80, RANGE_361, RANGE_122, RANGE_117, RANGE_542, RANGE_607, RANGE_280, RANGE_585, RANGE_428, RANGE_515, RANGE_659, RANGE_161, RANGE_256, RANGE_364, RANGE_579, RANGE_104, RANGE_531, RANGE_204, RANGE_439, RANGE_645, RANGE_25, RANGE_156, RANGE_479, RANGE_668, RANGE_174, RANGE_241, RANGE_390, RANGE_408, RANGE_297, RANGE_726, RANGE_276, RANGE_462, RANGE_725, RANGE_118, RANGE_546, RANGE_0, RANGE_281, RANGE_604, RANGE_400, RANGE_106, RANGE_700, RANGE_460, RANGE_567, RANGE_20, RANGE_119, RANGE_565, RANGE_169, RANGE_285, RANGE_322, RANGE_309, RANGE_442, RANGE_573, RANGE_632, RANGE_459, RANGE_202, RANGE_544, RANGE_70, RANGE_209, RANGE_292, RANGE_465, RANGE_414, RANGE_543, RANGE_728, RANGE_344, RANGE_633, RANGE_28, RANGE_369, RANGE_615, RANGE_634, RANGE_630, RANGE_523, RANGE_303, RANGE_472, RANGE_224, RANGE_732, RANGE_600, RANGE_595, RANGE_489, RANGE_448, RANGE_519, RANGE_45, RANGE_382, range('᠎', '᠏'), RANGE_349, RANGE_162, RANGE_525, RANGE_669, RANGE_363, RANGE_706, RANGE_79, RANGE_316, RANGE_463, RANGE_183, RANGE_94, RANGE_454, RANGE_380, RANGE_271, RANGE_550, RANGE_157, RANGE_590, RANGE_242, RANGE_320, RANGE_628, RANGE_267, RANGE_260, RANGE_636, RANGE_548, RANGE_416, RANGE_15, RANGE_614, RANGE_66, RANGE_192, RANGE_362, RANGE_652, RANGE_308, RANGE_172, RANGE_19, RANGE_686, range('⁠', ''), RANGE_33, RANGE_223, RANGE_249, RANGE_568, RANGE_228, RANGE_625, RANGE_667, RANGE_438, RANGE_443, RANGE_480, RANGE_293, RANGE_176, RANGE_617, RANGE_279, RANGE_405, RANGE_187, RANGE_377, RANGE_464, RANGE_655, RANGE_627, RANGE_355, RANGE_431, RANGE_96, RANGE_148, RANGE_422, RANGE_510, RANGE_649, RANGE_397, RANGE_87, RANGE_597, RANGE_401, RANGE_721, RANGE_730, RANGE_447, RANGE_717, RANGE_284, RANGE_181, RANGE_381, RANGE_58, RANGE_103, RANGE_505, RANGE_613, RANGE_421, RANGE_245, RANGE_714, RANGE_240, RANGE_307, RANGE_709, RANGE_287, RANGE_478, RANGE_656, RANGE_152, RANGE_123, RANGE_373, RANGE_12, RANGE_44, range('퟼', ''), RANGE_676, RANGE_93, RANGE_321, RANGE_641, RANGE_646, RANGE_60, RANGE_315, RANGE_62, RANGE_467, RANGE_334, RANGE_622, range('﻽', '＀'), RANGE_589, RANGE_27, RANGE_227, RANGE_368, RANGE_497, range('￯', '')), new char[]{'­', '΋', '΍', '΢', '԰', 'ՠ', 'ֈ', '֐', '۝', '࠿', '࡟', 'ࢵ', '࣢', '঄', '঩', '঱', '৞', '਄', '਩', '਱', '਴', '਷', '਽', '੝', '઄', '઎', '઒', '઩', '઱', '઴', '૆', '૊', '଀', '଄', '଩', '଱', '଴', '୞', '஄', '஑', '஛', '஝', '௉', 'ఄ', '఍', '఑', '఩', '౅', '౉', '౗', '಄', '಍', '಑', '಩', '಴', '೅', '೉', '೟', '೰', 'ഄ', '഍', '഑', '൅', '൉', '඄', '඲', '඼', '෕', '෗', '຃', 'ຉ', 'ຘ', 'ຠ', '຤', '຦', 'ຬ', '຺', '໅', '໇', '཈', '྘', '྽', '࿍', '჆', '቉', '቗', '቙', '኉', '኱', '኿', '዁', '዗', '጑', 'ᜍ', '᝭', '᝱', '᤟', '᩟', '᷺', '὘', '὚', '὜', '὞', '᾵', '῅', '῜', '῵', '῿', '₏', '⯉', 'Ⱟ', 'ⱟ', '⴦', '⶧', '⶯', '⶷', '⶿', '⷇', '⷏', '⷗', '⷟', '⺚', '぀', '㆏', '㈟', 'ꞯ', '꧎', '꧿', '꬧', '꬯', '﬷', '﬽', '﬿', '﭂', '﭅', '﹓', '﹧', '﹵', '￧', '￾'}), + // UNASSIGNED(keys("Cn", "Unassigned"), "any code point to which no character has been assigned.", asList(UNUSED_CODEPOINT_1, UNUSED_CODEPOINTS_2, UNUSED_CODEPOINTS_3, UNUSED_CODEPOINTS_4, UNUSED_CODEPOINTS_5, UNUSED_CODEPOINTS_6, range('׵', '׿'), UNUSED_CODEPOINTS_7, UNUSED_CODEPOINTS_8, UNUSED_CODEPOINTS_9, UNUSED_CODEPOINTS_10, UNUSED_CODEPOINTS_11, UNUSED_CODEPOINTS_12, UNUSED_CODEPOINTS_13, UNUSED_CODEPOINTS_14, UNUSED_CODEPOINTS_15, UNUSED_CODEPOINTS_16, UNUSED_CODEPOINTS_17, UNUSED_CODEPOINTS_18, UNUSED_CODEPOINTS_19, UNUSED_CODEPOINTS_20, UNUSED_CODEPOINTS_21, UNUSED_CODEPOINTS_22, RANGE_470, RANGE_16, RANGE_147, RANGE_296, RANGE_490, RANGE_610, RANGE_724, RANGE_80, RANGE_361, RANGE_122, RANGE_117, RANGE_542, RANGE_607, RANGE_280, RANGE_585, RANGE_428, RANGE_515, RANGE_659, RANGE_161, RANGE_256, RANGE_364, RANGE_579, RANGE_104, RANGE_531, RANGE_204, RANGE_439, RANGE_645, RANGE_25, RANGE_156, RANGE_479, RANGE_668, RANGE_174, RANGE_241, RANGE_390, RANGE_408, RANGE_297, RANGE_726, RANGE_276, RANGE_462, RANGE_725, RANGE_118, RANGE_546, RANGE_0, RANGE_281, RANGE_604, RANGE_400, RANGE_106, RANGE_700, RANGE_460, RANGE_567, RANGE_20, RANGE_119, RANGE_565, RANGE_169, RANGE_285, RANGE_322, RANGE_309, RANGE_442, RANGE_573, RANGE_632, RANGE_459, RANGE_202, RANGE_544, RANGE_70, RANGE_209, RANGE_292, RANGE_465, RANGE_414, RANGE_543, RANGE_728, RANGE_344, RANGE_633, RANGE_28, RANGE_369, RANGE_615, RANGE_634, RANGE_630, RANGE_523, RANGE_303, RANGE_472, RANGE_224, RANGE_732, RANGE_600, RANGE_595, RANGE_489, RANGE_448, RANGE_519, RANGE_45, RANGE_382, RANGE_349, RANGE_162, RANGE_525, RANGE_669, RANGE_363, RANGE_706, RANGE_79, RANGE_316, RANGE_463, RANGE_183, RANGE_94, RANGE_454, RANGE_380, RANGE_271, RANGE_550, RANGE_157, RANGE_590, RANGE_242, RANGE_320, RANGE_628, RANGE_267, RANGE_260, RANGE_636, RANGE_548, RANGE_416, RANGE_15, RANGE_614, RANGE_66, RANGE_192, RANGE_362, RANGE_652, RANGE_308, RANGE_172, RANGE_33, RANGE_223, RANGE_249, RANGE_568, RANGE_228, RANGE_625, RANGE_667, RANGE_438, RANGE_443, RANGE_480, RANGE_293, RANGE_176, RANGE_617, RANGE_279, RANGE_405, RANGE_187, RANGE_377, RANGE_464, RANGE_655, RANGE_627, RANGE_355, RANGE_431, RANGE_96, RANGE_148, RANGE_422, RANGE_510, RANGE_649, RANGE_397, RANGE_87, RANGE_597, RANGE_401, RANGE_721, RANGE_730, RANGE_447, RANGE_717, RANGE_284, RANGE_181, RANGE_381, RANGE_58, RANGE_103, RANGE_505, RANGE_613, RANGE_421, RANGE_245, RANGE_714, RANGE_240, RANGE_307, RANGE_709, RANGE_287, RANGE_478, RANGE_656, RANGE_152, RANGE_123, RANGE_373, RANGE_12, RANGE_44, range('퟼', '퟿'), RANGE_676, RANGE_93, RANGE_321, RANGE_641, RANGE_646, RANGE_60, RANGE_315, RANGE_62, RANGE_467, RANGE_334, RANGE_622, range('﻽', '﻾'), RANGE_589, RANGE_27, RANGE_227, RANGE_368, RANGE_497, range('￯', '￸')), new char[]{'΋', '΍', '΢', '԰', 'ՠ', 'ֈ', '֐', '؝', '܎', '࠿', '࡟', 'ࢵ', '঄', '঩', '঱', '৞', '਄', '਩', '਱', '਴', '਷', '਽', '੝', '઄', '઎', '઒', '઩', '઱', '઴', '૆', '૊', '଀', '଄', '଩', '଱', '଴', '୞', '஄', '஑', '஛', '஝', '௉', 'ఄ', '఍', '఑', '఩', '౅', '౉', '౗', '಄', '಍', '಑', '಩', '಴', '೅', '೉', '೟', '೰', 'ഄ', '഍', '഑', '൅', '൉', '඄', '඲', '඼', '෕', '෗', '຃', 'ຉ', 'ຘ', 'ຠ', '຤', '຦', 'ຬ', '຺', '໅', '໇', '཈', '྘', '྽', '࿍', '჆', '቉', '቗', '቙', '኉', '኱', '኿', '዁', '዗', '጑', 'ᜍ', '᝭', '᝱', '᠏', '᤟', '᩟', '᷺', '὘', '὚', '὜', '὞', '᾵', '῅', '῜', '῵', '῿', '⁥', '₏', '⯉', 'Ⱟ', 'ⱟ', '⴦', '⶧', '⶯', '⶷', '⶿', '⷇', '⷏', '⷗', '⷟', '⺚', '぀', '㆏', '㈟', 'ꞯ', '꧎', '꧿', '꬧', '꬯', '﬷', '﬽', '﬿', '﭂', '﭅', '﹓', '﹧', '﹵', '＀', '￧', '￾'}), // =========================================================================================== // Help needed - unable to find exact list of codepoints in COMMON category @@ -219,20 +219,20 @@ private static Stream allowUseOfHyphenOrSpacesOrUnderscores(UnicodeCat private final List keys; private final String description; private final List symbolRanges; - private final Character[] symbols; + private final char[] symbols; - UnicodeCategory(List keys, String description, List symbolRanges, Character... symbols) { + UnicodeCategory(List keys, String description, List symbolRanges, char... symbols) { this.keys = keys; this.description = description; this.symbolRanges = symbolRanges; this.symbols = symbols; } - UnicodeCategory(List keys, String description, SymbolRange symbolRange, Character[] symbols) { + UnicodeCategory(List keys, String description, SymbolRange symbolRange, char[] symbols) { this(keys, description, singletonList(symbolRange), symbols); } - UnicodeCategory(List keys, String description, Character... symbols) { + UnicodeCategory(List keys, String description, char... symbols) { this(keys, description, emptyList(), symbols); } @@ -240,15 +240,11 @@ private static Stream allowUseOfHyphenOrSpacesOrUnderscores(UnicodeCat this(keys, description, singletonList(symbolRange), ZERO_LENGTH_CHARACTER_ARRAY); } - public boolean isConfigured() { - return (!symbolRanges.isEmpty()) || (symbols.length != 0); - } - public List getSymbolRanges() { return symbolRanges; } - public Character[] getSymbols() { + public char[] getSymbols() { return symbols; } diff --git a/src/main/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryConstants.java b/src/main/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryConstants.java index 9ee51546..98f1480b 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryConstants.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryConstants.java @@ -17,1072 +17,1072 @@ /* **************************************************************************/ public class UnicodeCategoryConstants { - public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_TO_ASCII_PUNCTUATION_AND_SYMBOLS = SymbolRange.range(' ', ''); // 0x20 - 0x7f - public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_1 = SymbolRange.range('!', '#'); // 0x21 - 0x23 - public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_2 = SymbolRange.range('%', '\''); // 0x25 - 0x27 - public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_3 = SymbolRange.range('%', '*'); // 0x25 - 0x2a - public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION = SymbolRange.range(',', '/'); // 0x2c - 0x2f - public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_SUBSET = SymbolRange.range('.', '/'); // 0x2e - 0x2f - public static final SymbolRange BASIC_LATIN_ASCII_DIGITS = SymbolRange.range('0', '9'); // 0x30 - 0x39 - public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_1 = SymbolRange.range(':', ';'); // 0x3a - 0x3b - public static final SymbolRange BASIC_LATIN_ASCII_MATHEMATICAL_OPERATORS = SymbolRange.range('<', '>'); // 0x3c - 0x3e - public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_2 = SymbolRange.range('?', '@'); // 0x3f - 0x40 - public static final SymbolRange BASIC_LATIN_UPPERCASE_LATIN_ALPHABET = SymbolRange.range('A', 'Z'); // 0x41 - 0x5a - public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET = SymbolRange.range('[', ']'); // 0x5b - 0x5d - public static final SymbolRange BASIC_LATIN_LOWERCASE_LATIN_ALPHABET = SymbolRange.range('a', 'z'); // 0x61 - 0x7a - public static final SymbolRange BASIC_LATIN_TO_LATIN_1_SUPPLEMENT = SymbolRange.range('', 'Ÿ'); // 0x7f - 0x9f - public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET = SymbolRange.range('¢', '¥'); // 0xa2 - 0xa5 - public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_1 = SymbolRange.range('¢', '¦'); // 0xa2 - 0xa6 - public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_2 = SymbolRange.range('¨', '©'); // 0xa8 - 0xa9 - public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_3 = SymbolRange.range('®', '±'); // 0xae - 0xb1 - public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_4 = SymbolRange.range('²', '³'); // 0xb2 - 0xb3 - public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_5 = SymbolRange.range('¶', '·'); // 0xb6 - 0xb7 - public static final SymbolRange LATIN_1_SUPPLEMENT_VULGAR_FRACTIONS = SymbolRange.range('¼', '¾'); // 0xbc - 0xbe - public static final SymbolRange LATIN_1_SUPPLEMENT_LETTERS = SymbolRange.range('À', 'Ö'); // 0xc0 - 0xd6 - public static final SymbolRange LATIN_1_SUPPLEMENT_UPPERCASE_LETTERS = SymbolRange.range('Ø', 'Þ'); // 0xd8 - 0xde - public static final SymbolRange LATIN_1_SUPPLEMENT_UPPERCASE_LETTERS_TO_LOWERCASE_LETTERS = SymbolRange.range('Ø', 'ö'); // 0xd8 - 0xf6 - public static final SymbolRange LATIN_1_SUPPLEMENT_LOWERCASE_LETTERS = SymbolRange.range('ß', 'ö'); // 0xdf - 0xf6 - public static final SymbolRange LATIN_1_SUPPLEMENT_TO_SPACING_MODIFIER_LETTERS = SymbolRange.range('ø', 'ˁ'); // 0xf8 - 0x2c1 - public static final SymbolRange LATIN_1_SUPPLEMENT_LETTERS_1 = SymbolRange.range('ø', 'ÿ'); // 0xf8 - 0xff - public static final SymbolRange LATIN_EXTENDED_A_EUROPEAN_LATIN_SUBSET = SymbolRange.range('ķ', 'ĸ'); // 0x137 - 0x138 - public static final SymbolRange LATIN_EXTENDED_A_EUROPEAN_LATIN_TO_EUROPEAN_LATIN = SymbolRange.range('ň', 'ʼn'); // 0x148 - 0x149 - public static final SymbolRange LATIN_EXTENDED_A_EUROPEAN_LATIN_SUBSET_1 = SymbolRange.range('Ÿ', 'Ź'); // 0x178 - 0x179 - public static final SymbolRange LATIN_EXTENDED_A_EUROPEAN_LATIN_TO_EUROPEAN_LATIN_1 = SymbolRange.range('ž', 'ƀ'); // 0x17e - 0x180 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET = SymbolRange.range('Ɓ', 'Ƃ'); // 0x181 - 0x182 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_1 = SymbolRange.range('Ɔ', 'Ƈ'); // 0x186 - 0x187 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_2 = SymbolRange.range('Ɖ', 'Ƌ'); // 0x189 - 0x18b - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_3 = SymbolRange.range('ƌ', 'ƍ'); // 0x18c - 0x18d - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_4 = SymbolRange.range('Ǝ', 'Ƒ'); // 0x18e - 0x191 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_5 = SymbolRange.range('Ɠ', 'Ɣ'); // 0x193 - 0x194 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_6 = SymbolRange.range('Ɩ', 'Ƙ'); // 0x196 - 0x198 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_7 = SymbolRange.range('ƙ', 'ƛ'); // 0x199 - 0x19b - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_8 = SymbolRange.range('Ɯ', 'Ɲ'); // 0x19c - 0x19d - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_9 = SymbolRange.range('Ɵ', 'Ơ'); // 0x19f - 0x1a0 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_10 = SymbolRange.range('Ʀ', 'Ƨ'); // 0x1a6 - 0x1a7 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_11 = SymbolRange.range('ƪ', 'ƫ'); // 0x1aa - 0x1ab - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_12 = SymbolRange.range('Ʈ', 'Ư'); // 0x1ae - 0x1af - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_13 = SymbolRange.range('Ʊ', 'Ƴ'); // 0x1b1 - 0x1b3 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_14 = SymbolRange.range('Ʒ', 'Ƹ'); // 0x1b7 - 0x1b8 - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_15 = SymbolRange.range('ƹ', 'ƺ'); // 0x1b9 - 0x1ba - public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_16 = SymbolRange.range('ƽ', 'ƿ'); // 0x1bd - 0x1bf - public static final SymbolRange LATIN_EXTENDED_B_AFRICAN_LETTERS_FOR_CLICKS = SymbolRange.range('ǀ', 'ǃ'); // 0x1c0 - 0x1c3 - public static final SymbolRange LATIN_EXTENDED_B_PINYIN_DIACRITIC_VOWEL_COMBINATIONS_TO_PINYIN_DIACRITIC_VOWEL_COMBINATIONS = SymbolRange.range('ǜ', 'ǝ'); // 0x1dc - 0x1dd - public static final SymbolRange LATIN_EXTENDED_B_PHONETIC_AND_HISTORIC_LETTERS_SUBSET = SymbolRange.range('ǯ', 'ǰ'); // 0x1ef - 0x1f0 - public static final SymbolRange LATIN_EXTENDED_B_PHONETIC_AND_HISTORIC_LETTERS_SUBSET_1 = SymbolRange.range('Ƕ', 'Ǹ'); // 0x1f6 - 0x1f8 - public static final SymbolRange LATIN_EXTENDED_B_ADDITIONS_FOR_LIVONIAN_TO_ADDITIONS_FOR_AFRICANIST_LINGUISTICS = SymbolRange.range('ȳ', 'ȹ'); // 0x233 - 0x239 - public static final SymbolRange LATIN_EXTENDED_B_ADDITIONS_FOR_SENCOTEN_SUBSET = SymbolRange.range('Ⱥ', 'Ȼ'); // 0x23a - 0x23b - public static final SymbolRange LATIN_EXTENDED_B_ADDITIONS_FOR_SENCOTEN_SUBSET_1 = SymbolRange.range('Ƚ', 'Ⱦ'); // 0x23d - 0x23e - public static final SymbolRange LATIN_EXTENDED_B_ADDITIONS_FOR_AFRICANIST_LINGUISTICS_1 = SymbolRange.range('ȿ', 'ɀ'); // 0x23f - 0x240 - public static final SymbolRange LATIN_EXTENDED_B_MISCELLANEOUS_ADDITIONS_SUBSET = SymbolRange.range('Ƀ', 'Ɇ'); // 0x243 - 0x246 - public static final SymbolRange LATIN_EXTENDED_B_TO_IPA_EXTENSIONS = SymbolRange.range('ɏ', 'ʓ'); // 0x24f - 0x293 - public static final SymbolRange IPA_EXTENSIONS_IPA_EXTENSIONS_TO_ADDITIONS_FOR_SINOLOGY = SymbolRange.range('ɐ', 'ʯ'); // 0x250 - 0x2af - public static final SymbolRange IPA_EXTENSIONS_IPA_EXTENSIONS_TO_ADDITIONS_FOR_SINOLOGY_1 = SymbolRange.range('ʕ', 'ʯ'); // 0x295 - 0x2af - public static final SymbolRange SPACING_MODIFIER_LETTERS_LATIN_SUPERSCRIPT_MODIFIER_LETTERS_TO_MISCELLANEOUS_PHONETIC_MODIFIERS = SymbolRange.range('ʰ', 'ˁ'); // 0x2b0 - 0x2c1 - public static final SymbolRange SPACING_MODIFIER_LETTERS_LATIN_SUPERSCRIPT_MODIFIER_LETTERS_TO_UPA_MODIFIERS = SymbolRange.range('ʰ', '˿'); // 0x2b0 - 0x2ff - public static final SymbolRange SPACING_MODIFIER_LETTERS_MISCELLANEOUS_PHONETIC_MODIFIERS_SUBSET = SymbolRange.range('˂', '˅'); // 0x2c2 - 0x2c5 - public static final SymbolRange SPACING_MODIFIER_LETTERS_MISCELLANEOUS_PHONETIC_MODIFIERS_SUBSET_1 = SymbolRange.range('ˆ', 'ˑ'); // 0x2c6 - 0x2d1 - public static final SymbolRange SPACING_MODIFIER_LETTERS_MISCELLANEOUS_PHONETIC_MODIFIERS_TO_ADDITIONS_BASED_ON_1989_IPA = SymbolRange.range('˒', '˟'); // 0x2d2 - 0x2df - public static final SymbolRange SPACING_MODIFIER_LETTERS_ADDITIONS_BASED_ON_1989_IPA_SUBSET = SymbolRange.range('ˠ', 'ˤ'); // 0x2e0 - 0x2e4 - public static final SymbolRange SPACING_MODIFIER_LETTERS_TONE_LETTERS_TO_EXTENDED_BOPOMOFO_TONE_MARKS = SymbolRange.range('˥', '˫'); // 0x2e5 - 0x2eb - public static final SymbolRange SPACING_MODIFIER_LETTERS_UPA_MODIFIERS = SymbolRange.range('˯', '˿'); // 0x2ef - 0x2ff - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_ORDINARY_DIACRITICS_TO_MEDIEVAL_SUPERSCRIPT_LETTER_DIACRITICS = SymbolRange.range('̀', 'ͯ'); // 0x300 - 0x36f - public static final SymbolRange GREEK_AND_COPTIC_ARCHAIC_LETTERS_TO_ARCHAIC_LETTERS = SymbolRange.range('Ͱ', 'ʹ'); // 0x370 - 0x374 - public static final SymbolRange GREEK_AND_COPTIC_ARCHAIC_LETTERS_SUBSET = SymbolRange.range('Ͷ', 'ͷ'); // 0x376 - 0x377 - public static final SymbolRange GREEK_AND_COPTIC_IOTA_SUBSCRIPT_TO_LOWERCASE_OF_EDITORIAL_SYMBOLS = SymbolRange.range('ͺ', 'ͽ'); // 0x37a - 0x37d - public static final SymbolRange GREEK_AND_COPTIC_LOWERCASE_OF_EDITORIAL_SYMBOLS = SymbolRange.range('ͻ', 'ͽ'); // 0x37b - 0x37d - public static final SymbolRange GREEK_AND_COPTIC_SPACING_ACCENT_MARKS = SymbolRange.range('΄', '΅'); // 0x384 - 0x385 - public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET = SymbolRange.range('Έ', 'Ί'); // 0x388 - 0x38a - public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_1 = SymbolRange.range('Ύ', 'Ώ'); // 0x38e - 0x38f - public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_2 = SymbolRange.range('Ύ', 'Ρ'); // 0x38e - 0x3a1 - public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_3 = SymbolRange.range('Α', 'Ρ'); // 0x391 - 0x3a1 - public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_4 = SymbolRange.range('Σ', 'Ϋ'); // 0x3a3 - 0x3ab - public static final SymbolRange GREEK_AND_COPTIC_LETTERS_TO_VARIANT_LETTERFORMS_AND_SYMBOLS = SymbolRange.range('Σ', 'ϵ'); // 0x3a3 - 0x3f5 - public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_5 = SymbolRange.range('ά', 'ώ'); // 0x3ac - 0x3ce - public static final SymbolRange GREEK_AND_COPTIC_VARIANT_LETTERFORMS_SUBSET = SymbolRange.range('ϐ', 'ϑ'); // 0x3d0 - 0x3d1 - public static final SymbolRange GREEK_AND_COPTIC_VARIANT_LETTERFORMS_SUBSET_1 = SymbolRange.range('ϒ', 'ϔ'); // 0x3d2 - 0x3d4 - public static final SymbolRange GREEK_AND_COPTIC_VARIANT_LETTERFORMS_SUBSET_2 = SymbolRange.range('ϕ', 'ϗ'); // 0x3d5 - 0x3d7 - public static final SymbolRange GREEK_AND_COPTIC_COPTIC_LETTERS_DERIVED_FROM_DEMOTIC_TO_VARIANT_LETTERFORMS = SymbolRange.range('ϯ', 'ϳ'); // 0x3ef - 0x3f3 - public static final SymbolRange GREEK_AND_COPTIC_TO_CYRILLIC = SymbolRange.range('Ϸ', 'ҁ'); // 0x3f7 - 0x481 - public static final SymbolRange GREEK_AND_COPTIC_VARIANT_LETTERFORM_TO_VARIANT_LETTERFORM = SymbolRange.range('Ϲ', 'Ϻ'); // 0x3f9 - 0x3fa - public static final SymbolRange GREEK_AND_COPTIC_ARCHAIC_LETTERS_TO_ARCHAIC_LETTERS_1 = SymbolRange.range('ϻ', 'ϼ'); // 0x3fb - 0x3fc - public static final SymbolRange GREEK_AND_COPTIC_TO_CYRILLIC_1 = SymbolRange.range('Ͻ', 'Я'); // 0x3fd - 0x42f - public static final SymbolRange CYRILLIC_CYRILLIC_EXTENSIONS_TO_ADDITIONS_FOR_NIVKH = SymbolRange.range('Ѐ', 'ӿ'); // 0x400 - 0x4ff - public static final SymbolRange CYRILLIC_BASIC_RUSSIAN_ALPHABET_TO_CYRILLIC_EXTENSIONS = SymbolRange.range('а', 'џ'); // 0x430 - 0x45f - public static final SymbolRange CYRILLIC_HISTORIC_MISCELLANEOUS_SUBSET = SymbolRange.range('҃', '҇'); // 0x483 - 0x487 - public static final SymbolRange CYRILLIC_HISTORIC_MISCELLANEOUS_SUBSET_1 = SymbolRange.range('҃', '҉'); // 0x483 - 0x489 - public static final SymbolRange CYRILLIC_HISTORIC_MISCELLANEOUS_SUBSET_2 = SymbolRange.range('҈', '҉'); // 0x488 - 0x489 - public static final SymbolRange CYRILLIC_TO_CYRILLIC_SUPPLEMENT = SymbolRange.range('Ҋ', 'ԯ'); // 0x48a - 0x52f - public static final SymbolRange CYRILLIC_EXTENDED_CYRILLIC_SUBSET = SymbolRange.range('Ӏ', 'Ӂ'); // 0x4c0 - 0x4c1 - public static final SymbolRange CYRILLIC_EXTENDED_CYRILLIC_SUBSET_1 = SymbolRange.range('ӎ', 'ӏ'); // 0x4ce - 0x4cf - public static final SymbolRange CYRILLIC_SUPPLEMENT_KOMI_LETTERS_TO_KHANTY_LETTERS = SymbolRange.range('Ԁ', 'ԯ'); // 0x500 - 0x52f - public static final SymbolRange CYRILLIC_SUPPLEMENT_ARMENIAN_TO_RELIGIOUS_SYMBOLS = SymbolRange.range('԰', '֏'); // 0x530 - 0x58f - public static final SymbolRange CYRILLIC_SUPPLEMENT_UPPERCASE_LETTERS_SUBSET = SymbolRange.range('Ա', 'Ֆ'); // 0x531 - 0x556 - public static final SymbolRange CYRILLIC_SUPPLEMENT_MODIFIER_LETTERS_SUBSET = SymbolRange.range('՚', '՟'); // 0x55a - 0x55f - public static final SymbolRange CYRILLIC_SUPPLEMENT_LOWERCASE_LETTERS = SymbolRange.range('ՠ', 'ֈ'); // 0x560 - 0x588 - public static final SymbolRange CYRILLIC_SUPPLEMENT_PUNCTUATION_SUBSET = SymbolRange.range('։', '֊'); // 0x589 - 0x58a - public static final SymbolRange CYRILLIC_SUPPLEMENT_RELIGIOUS_SYMBOLS = SymbolRange.range('֍', '֎'); // 0x58d - 0x58e - public static final SymbolRange CYRILLIC_SUPPLEMENT_RELIGIOUS_SYMBOLS_TO_RELIGIOUS_SYMBOLS = SymbolRange.range('֍', '֏'); // 0x58d - 0x58f - public static final SymbolRange CYRILLIC_SUPPLEMENT_HEBREW_TO_ADDITIONAL_PUNCTUATION = SymbolRange.range('֐', '׿'); // 0x590 - 0x5ff - public static final SymbolRange CYRILLIC_SUPPLEMENT_CANTILLATION_MARKS_TO_POINTS_AND_PUNCTUATION = SymbolRange.range('֑', 'ֽ'); // 0x591 - 0x5bd - public static final SymbolRange CYRILLIC_SUPPLEMENT_POINTS_AND_PUNCTUATION_SUBSET = SymbolRange.range('ׁ', 'ׂ'); // 0x5c1 - 0x5c2 - public static final SymbolRange CYRILLIC_SUPPLEMENT_PUNCTA_EXTRAORDINARIA = SymbolRange.range('ׄ', 'ׅ'); // 0x5c4 - 0x5c5 - public static final SymbolRange CYRILLIC_SUPPLEMENT_BASED_ON_ISO_8859_8_SUBSET = SymbolRange.range('א', 'ת'); // 0x5d0 - 0x5ea - public static final SymbolRange CYRILLIC_SUPPLEMENT_SIGN_TO_YIDDISH_DIGRAPHS = SymbolRange.range('ׯ', 'ײ'); // 0x5ef - 0x5f2 - public static final SymbolRange CYRILLIC_SUPPLEMENT_ADDITIONAL_PUNCTUATION_SUBSET = SymbolRange.range('׳', '״'); // 0x5f3 - 0x5f4 - public static final SymbolRange ARABIC_SUBTENDING_MARKS_TO_SUBTENDING_MARKS = SymbolRange.range('؀', '؅'); // 0x600 - 0x605 - public static final SymbolRange ARABIC_SUBTENDING_MARKS_TO_SIGNS_FOR_SINDHI = SymbolRange.range('؀', 'ۿ'); // 0x600 - 0x6ff - public static final SymbolRange ARABIC_RADIX_SYMBOLS_TO_RADIX_SYMBOLS = SymbolRange.range('؆', '؈'); // 0x606 - 0x608 - public static final SymbolRange ARABIC_PUNCTUATION = SymbolRange.range('؉', '؊'); // 0x609 - 0x60a - public static final SymbolRange ARABIC_PUNCTUATION_1 = SymbolRange.range('،', '؍'); // 0x60c - 0x60d - public static final SymbolRange ARABIC_POETIC_MARKS = SymbolRange.range('؎', '؏'); // 0x60e - 0x60f - public static final SymbolRange ARABIC_HONORIFICS_TO_QURANIC_ANNOTATION_SIGNS = SymbolRange.range('ؐ', 'ؚ'); // 0x610 - 0x61a - public static final SymbolRange ARABIC_PUNCTUATION_SUBSET = SymbolRange.range('؞', '؟'); // 0x61e - 0x61f - public static final SymbolRange ARABIC_ADDITION_FOR_KASHMIRI_TO_ADDITIONS_FOR_EARLY_PERSIAN_AND_AZERBAIJANI = SymbolRange.range('ؠ', 'ؿ'); // 0x620 - 0x63f - public static final SymbolRange ARABIC_ADDITION_FOR_KASHMIRI_TO_BASED_ON_ISO_8859_6 = SymbolRange.range('ؠ', 'ي'); // 0x620 - 0x64a - public static final SymbolRange ARABIC_BASED_ON_ISO_8859_6_SUBSET = SymbolRange.range('ف', 'ي'); // 0x641 - 0x64a - public static final SymbolRange ARABIC_TASHKIL_FROM_ISO_8859_6_TO_OTHER_COMBINING_MARKS = SymbolRange.range('ً', 'ٟ'); // 0x64b - 0x65f - public static final SymbolRange ARABIC_ARABIC_INDIC_DIGITS = SymbolRange.range('٠', '٩'); // 0x660 - 0x669 - public static final SymbolRange ARABIC_PUNCTUATION_4 = SymbolRange.range('٪', '٭'); // 0x66a - 0x66d - public static final SymbolRange ARABIC_ARCHAIC_LETTERS = SymbolRange.range('ٮ', 'ٯ'); // 0x66e - 0x66f - public static final SymbolRange ARABIC_EXTENDED_ARABIC_LETTERS_TO_EXTENDED_ARABIC_LETTERS = SymbolRange.range('ٱ', 'ۓ'); // 0x671 - 0x6d3 - public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET = SymbolRange.range('ۖ', 'ۜ'); // 0x6d6 - 0x6dc - public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET_1 = SymbolRange.range('۟', 'ۤ'); // 0x6df - 0x6e4 - public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET_2 = SymbolRange.range('ۥ', 'ۦ'); // 0x6e5 - 0x6e6 - public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET_3 = SymbolRange.range('ۧ', 'ۨ'); // 0x6e7 - 0x6e8 - public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET_4 = SymbolRange.range('۪', 'ۭ'); // 0x6ea - 0x6ed - public static final SymbolRange ARABIC_EXTENDED_ARABIC_LETTERS_FOR_PARKARI = SymbolRange.range('ۮ', 'ۯ'); // 0x6ee - 0x6ef - public static final SymbolRange ARABIC_EASTERN_ARABIC_INDIC_DIGITS = SymbolRange.range('۰', '۹'); // 0x6f0 - 0x6f9 - public static final SymbolRange ARABIC_EXTENDED_ARABIC_LETTERS_2 = SymbolRange.range('ۺ', 'ۼ'); // 0x6fa - 0x6fc - public static final SymbolRange ARABIC_SIGNS_FOR_SINDHI = SymbolRange.range('۽', '۾'); // 0x6fd - 0x6fe - public static final SymbolRange SYRIAC_SYRIAC_PUNCTUATION_AND_SIGNS_SUBSET = SymbolRange.range('܀', '܍'); // 0x700 - 0x70d - public static final SymbolRange SYRIAC_SYRIAC_PUNCTUATION_AND_SIGNS_TO_SOGDIAN_LETTERS = SymbolRange.range('܀', 'ݏ'); // 0x700 - 0x74f - public static final SymbolRange SYRIAC_SYRIAC_LETTERS_TO_PERSIAN_LETTERS = SymbolRange.range('ܒ', 'ܯ'); // 0x712 - 0x72f - public static final SymbolRange SYRIAC_SYRIAC_POINTS_VOWELS_TO_SYRIAC_MARKS = SymbolRange.range('ܰ', '݊'); // 0x730 - 0x74a - public static final SymbolRange SYRIAC_TO_THAANA = SymbolRange.range('ݍ', 'ޥ'); // 0x74d - 0x7a5 - public static final SymbolRange THAANA_BASIC_CONSONANTS_TO_CONSONANT_FOR_ADDU_DIALECT = SymbolRange.range('ހ', '޿'); // 0x780 - 0x7bf - public static final SymbolRange THAANA_VOWELS = SymbolRange.range('ަ', 'ް'); // 0x7a6 - 0x7b0 - public static final SymbolRange NKO_DIGITS = SymbolRange.range('߀', '߉'); // 0x7c0 - 0x7c9 - public static final SymbolRange NKO_LETTERS_TO_ARCHAIC_LETTERS = SymbolRange.range('ߊ', 'ߪ'); // 0x7ca - 0x7ea - public static final SymbolRange NKO_TONE_MARKS_TO_OTHER_DIACRITICS = SymbolRange.range('߫', '߳'); // 0x7eb - 0x7f3 - public static final SymbolRange NKO_TONAL_APOSTROPHES = SymbolRange.range('ߴ', 'ߵ'); // 0x7f4 - 0x7f5 - public static final SymbolRange NKO_PUNCTUATION = SymbolRange.range('߷', '߹'); // 0x7f7 - 0x7f9 - public static final SymbolRange NKO_CURRENCY_SYMBOLS = SymbolRange.range('߾', '߿'); // 0x7fe - 0x7ff - public static final SymbolRange SAMARITAN_LETTERS = SymbolRange.range('ࠀ', 'ࠕ'); // 0x800 - 0x815 - public static final SymbolRange SAMARITAN_CONSONANT_MODIFIERS_SUBSET = SymbolRange.range('ࠖ', '࠙'); // 0x816 - 0x819 - public static final SymbolRange SAMARITAN_CONSONANT_MODIFIERS_TO_VOWEL_SIGNS = SymbolRange.range('ࠛ', 'ࠣ'); // 0x81b - 0x823 - public static final SymbolRange SAMARITAN_VOWEL_SIGNS_SUBSET = SymbolRange.range('ࠥ', 'ࠧ'); // 0x825 - 0x827 - public static final SymbolRange SAMARITAN_VOWEL_SIGNS_TO_VOWEL_SIGNS = SymbolRange.range('ࠩ', '࠭'); // 0x829 - 0x82d - public static final SymbolRange SAMARITAN_PUNCTUATION_SUBSET = SymbolRange.range('࠰', '࠾'); // 0x830 - 0x83e - public static final SymbolRange MANDAIC_LETTERS = SymbolRange.range('ࡀ', 'ࡘ'); // 0x840 - 0x858 - public static final SymbolRange MANDAIC_DIACRITICS_SUBSET = SymbolRange.range('࡙', '࡛'); // 0x859 - 0x85b - public static final SymbolRange SYRIAC_SUPPLEMENT_SYRIAC_LETTERS_SUBSET = SymbolRange.range('ࡠ', 'ࡪ'); // 0x860 - 0x86a - public static final SymbolRange ARABIC_EXTENDED_A_ARABIC_LETTERS_FOR_AFRICAN_LANGUAGES_TO_ARABIC_LETTERS_FOR_ARWI = SymbolRange.range('ࢠ', 'ࢴ'); // 0x8a0 - 0x8b4 - public static final SymbolRange ARABIC_EXTENDED_A_ARABIC_LETTERS_FOR_BRAVANESE_TO_ARABIC_LETTERS_FOR_HAUSA_WOLOF_AND_OTHER_AFRICAN_ORTHOGRAPHIES = SymbolRange.range('ࢶ', 'ࣇ'); // 0x8b6 - 0x8c7 - public static final SymbolRange ARABIC_EXTENDED_A_QURANIC_ANNOTATION_SIGNS_SUBSET = SymbolRange.range('࣓', '࣡'); // 0x8d3 - 0x8e1 - public static final SymbolRange ARABIC_EXTENDED_A_TO_DEVANAGARI = SymbolRange.range('ࣣ', 'ं'); // 0x8e3 - 0x902 - public static final SymbolRange ARABIC_EXTENDED_A_TO_DEVANAGARI_1 = SymbolRange.range('ࣣ', 'ः'); // 0x8e3 - 0x903 - public static final SymbolRange DEVANAGARI_VARIOUS_SIGNS_TO_SINDHI_IMPLOSIVES = SymbolRange.range('ऀ', 'ॿ'); // 0x900 - 0x97f - public static final SymbolRange DEVANAGARI_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ऄ', 'ह'); // 0x904 - 0x939 - public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ऺ', '़'); // 0x93a - 0x93c - public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ा', 'ी'); // 0x93e - 0x940 - public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ा', 'ॏ'); // 0x93e - 0x94f - public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ु', 'ै'); // 0x941 - 0x948 - public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ॉ', 'ौ'); // 0x949 - 0x94c - public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_2 = SymbolRange.range('ॎ', 'ॏ'); // 0x94e - 0x94f - public static final SymbolRange DEVANAGARI_VEDIC_TONE_MARKS_TO_DEPENDENT_VOWEL_SIGNS_FOR_KASHMIRI = SymbolRange.range('॑', 'ॗ'); // 0x951 - 0x957 - public static final SymbolRange DEVANAGARI_ADDITIONAL_CONSONANTS_TO_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('क़', 'ॡ'); // 0x958 - 0x961 - public static final SymbolRange DEVANAGARI_ADDITIONAL_VOWELS_FOR_SANSKRIT_SUBSET = SymbolRange.range('ॢ', 'ॣ'); // 0x962 - 0x963 - public static final SymbolRange DEVANAGARI_GENERIC_PUNCTUATION_FOR_SCRIPTS_OF_INDIA = SymbolRange.range('।', '॥'); // 0x964 - 0x965 - public static final SymbolRange DEVANAGARI_DIGITS = SymbolRange.range('०', '९'); // 0x966 - 0x96f - public static final SymbolRange DEVANAGARI_ADDITIONAL_SIGNS_TO_SINDHI_IMPLOSIVES = SymbolRange.range('ॱ', 'ঀ'); // 0x971 - 0x980 - public static final SymbolRange DEVANAGARI_INDEPENDENT_VOWEL_FOR_MARATHI_TO_SINDHI_IMPLOSIVES = SymbolRange.range('ॲ', 'ঀ'); // 0x972 - 0x980 - public static final SymbolRange BENGALI_VARIOUS_SIGNS_TO_SIGNS = SymbolRange.range('ঀ', '৿'); // 0x980 - 0x9ff - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_2 = SymbolRange.range('ঁ', 'ঃ'); // 0x981 - 0x983 - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_6 = SymbolRange.range('ং', 'ঃ'); // 0x982 - 0x983 - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_2 = SymbolRange.range('অ', 'ঌ'); // 0x985 - 0x98c - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_6 = SymbolRange.range('এ', 'ঐ'); // 0x98f - 0x990 - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ও', 'ন'); // 0x993 - 0x9a8 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_4 = SymbolRange.range('প', 'র'); // 0x9aa - 0x9b0 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_15 = SymbolRange.range('শ', 'হ'); // 0x9b6 - 0x9b9 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_13 = SymbolRange.range('া', 'ী'); // 0x9be - 0x9c0 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_19 = SymbolRange.range('া', 'ৄ'); // 0x9be - 0x9c4 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ু', 'ৄ'); // 0x9c1 - 0x9c4 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_6 = SymbolRange.range('ে', 'ৈ'); // 0x9c7 - 0x9c8 - public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ো', 'ৌ'); // 0x9cb - 0x9cc - public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ো', '্'); // 0x9cb - 0x9cd - public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_SUBSET_1 = SymbolRange.range('ড়', 'ঢ়'); // 0x9dc - 0x9dd - public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_TO_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('য়', 'ৡ'); // 0x9df - 0x9e1 - public static final SymbolRange BENGALI_ADDITIONAL_VOWELS_FOR_SANSKRIT_SUBSET_1 = SymbolRange.range('ৢ', 'ৣ'); // 0x9e2 - 0x9e3 - public static final SymbolRange BENGALI_DIGITS = SymbolRange.range('০', '৯'); // 0x9e6 - 0x9ef - public static final SymbolRange BENGALI_ADDITIONS_FOR_ASSAMESE = SymbolRange.range('ৰ', 'ৱ'); // 0x9f0 - 0x9f1 - public static final SymbolRange BENGALI_CURRENCY_SYMBOLS = SymbolRange.range('৲', '৳'); // 0x9f2 - 0x9f3 - public static final SymbolRange BENGALI_HISTORIC_SYMBOLS_FOR_FRACTIONAL_VALUES = SymbolRange.range('৴', '৹'); // 0x9f4 - 0x9f9 - public static final SymbolRange BENGALI_SIGN_TO_SIGN = SymbolRange.range('৺', '৻'); // 0x9fa - 0x9fb - public static final SymbolRange BENGALI_GURMUKHI_TO_SIGNS = SymbolRange.range('਀', '੿'); // 0xa00 - 0xa7f - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ਁ', 'ਂ'); // 0xa01 - 0xa02 - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_3 = SymbolRange.range('ਁ', 'ਃ'); // 0xa01 - 0xa03 - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET = SymbolRange.range('ਅ', 'ਊ'); // 0xa05 - 0xa0a - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_7 = SymbolRange.range('ਏ', 'ਐ'); // 0xa0f - 0xa10 - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_CONSONANTS_1 = SymbolRange.range('ਓ', 'ਨ'); // 0xa13 - 0xa28 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_5 = SymbolRange.range('ਪ', 'ਰ'); // 0xa2a - 0xa30 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_10 = SymbolRange.range('ਲ', 'ਲ਼'); // 0xa32 - 0xa33 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_12 = SymbolRange.range('ਵ', 'ਸ਼'); // 0xa35 - 0xa36 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_16 = SymbolRange.range('ਸ', 'ਹ'); // 0xa38 - 0xa39 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_14 = SymbolRange.range('ਾ', 'ੀ'); // 0xa3e - 0xa40 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_16 = SymbolRange.range('ਾ', 'ੂ'); // 0xa3e - 0xa42 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ੁ', 'ੂ'); // 0xa41 - 0xa42 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_7 = SymbolRange.range('ੇ', 'ੈ'); // 0xa47 - 0xa48 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ੋ', '੍'); // 0xa4b - 0xa4d - public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_SUBSET = SymbolRange.range('ਖ਼', 'ੜ'); // 0xa59 - 0xa5c - public static final SymbolRange BENGALI_DIGITS_1 = SymbolRange.range('੦', '੯'); // 0xa66 - 0xa6f - public static final SymbolRange BENGALI_SIGNS_1 = SymbolRange.range('ੰ', 'ੱ'); // 0xa70 - 0xa71 - public static final SymbolRange BENGALI_VOWEL_BASES_TO_VOWEL_BASES = SymbolRange.range('ੲ', 'ੴ'); // 0xa72 - 0xa74 - public static final SymbolRange BENGALI_GUJARATI_TO_TRANSLITERATION_SIGNS = SymbolRange.range('઀', '૿'); // 0xa80 - 0xaff - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('ઁ', 'ં'); // 0xa81 - 0xa82 - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_4 = SymbolRange.range('ઁ', 'ઃ'); // 0xa81 - 0xa83 - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_4 = SymbolRange.range('અ', 'ઍ'); // 0xa85 - 0xa8d - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_9 = SymbolRange.range('એ', 'ઑ'); // 0xa8f - 0xa91 - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_CONSONANTS_2 = SymbolRange.range('ઓ', 'ન'); // 0xa93 - 0xaa8 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_6 = SymbolRange.range('પ', 'ર'); // 0xaaa - 0xab0 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_9 = SymbolRange.range('લ', 'ળ'); // 0xab2 - 0xab3 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_13 = SymbolRange.range('વ', 'હ'); // 0xab5 - 0xab9 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_15 = SymbolRange.range('ા', 'ી'); // 0xabe - 0xac0 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_18 = SymbolRange.range('ા', 'ૅ'); // 0xabe - 0xac5 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_4 = SymbolRange.range('ુ', 'ૅ'); // 0xac1 - 0xac5 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_9 = SymbolRange.range('ે', 'ૈ'); // 0xac7 - 0xac8 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_10 = SymbolRange.range('ે', 'ૉ'); // 0xac7 - 0xac9 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_11 = SymbolRange.range('ો', 'ૌ'); // 0xacb - 0xacc - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ો', '્'); // 0xacb - 0xacd - public static final SymbolRange BENGALI_ADDITIONAL_VOWELS_FOR_SANSKRIT_SUBSET = SymbolRange.range('ૠ', 'ૡ'); // 0xae0 - 0xae1 - public static final SymbolRange BENGALI_ADDITIONAL_VOWELS_FOR_SANSKRIT_SUBSET_2 = SymbolRange.range('ૢ', 'ૣ'); // 0xae2 - 0xae3 - public static final SymbolRange BENGALI_DIGITS_2 = SymbolRange.range('૦', '૯'); // 0xae6 - 0xaef - public static final SymbolRange BENGALI_TRANSLITERATION_SIGNS = SymbolRange.range('ૺ', '૿'); // 0xafa - 0xaff - public static final SymbolRange BENGALI_ORIYA_TO_FRACTION_SIGNS = SymbolRange.range('଀', '୿'); // 0xb00 - 0xb7f - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_5 = SymbolRange.range('ଁ', 'ଃ'); // 0xb01 - 0xb03 - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_7 = SymbolRange.range('ଂ', 'ଃ'); // 0xb02 - 0xb03 - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_3 = SymbolRange.range('ଅ', 'ଌ'); // 0xb05 - 0xb0c - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_8 = SymbolRange.range('ଏ', 'ଐ'); // 0xb0f - 0xb10 - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_CONSONANTS_3 = SymbolRange.range('ଓ', 'ନ'); // 0xb13 - 0xb28 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_7 = SymbolRange.range('ପ', 'ର'); // 0xb2a - 0xb30 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_11 = SymbolRange.range('ଲ', 'ଳ'); // 0xb32 - 0xb33 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_14 = SymbolRange.range('ଵ', 'ହ'); // 0xb35 - 0xb39 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_20 = SymbolRange.range('ା', 'ୄ'); // 0xb3e - 0xb44 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_3 = SymbolRange.range('ୁ', 'ୄ'); // 0xb41 - 0xb44 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_8 = SymbolRange.range('େ', 'ୈ'); // 0xb47 - 0xb48 - public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ୋ', 'ୌ'); // 0xb4b - 0xb4c - public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS_2 = SymbolRange.range('ୋ', '୍'); // 0xb4b - 0xb4d - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_8 = SymbolRange.range('୕', 'ୖ'); // 0xb55 - 0xb56 - public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_9 = SymbolRange.range('୕', 'ୗ'); // 0xb55 - 0xb57 - public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_SUBSET_2 = SymbolRange.range('ଡ଼', 'ଢ଼'); // 0xb5c - 0xb5d - public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_TO_ADDITIONAL_VOWELS_FOR_SANSKRIT_1 = SymbolRange.range('ୟ', 'ୡ'); // 0xb5f - 0xb61 - public static final SymbolRange BENGALI_DEPENDENT_VOWELS = SymbolRange.range('ୢ', 'ୣ'); // 0xb62 - 0xb63 - public static final SymbolRange BENGALI_DIGITS_3 = SymbolRange.range('୦', '୯'); // 0xb66 - 0xb6f - public static final SymbolRange BENGALI_FRACTION_SIGNS_SUBSET = SymbolRange.range('୲', '୷'); // 0xb72 - 0xb77 - public static final SymbolRange BENGALI_TAMIL_TO_TAMIL_CLERICAL_SYMBOL = SymbolRange.range('஀', '௿'); // 0xb80 - 0xbff - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_1 = SymbolRange.range('அ', 'ஊ'); // 0xb85 - 0xb8a - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_5 = SymbolRange.range('எ', 'ஐ'); // 0xb8e - 0xb90 - public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_INDEPENDENT_VOWELS = SymbolRange.range('ஒ', 'க'); // 0xb92 - 0xb95 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET = SymbolRange.range('ங', 'ச'); // 0xb99 - 0xb9a - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_1 = SymbolRange.range('ஞ', 'ட'); // 0xb9e - 0xb9f - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_2 = SymbolRange.range('ண', 'த'); // 0xba3 - 0xba4 - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_3 = SymbolRange.range('ந', 'ப'); // 0xba8 - 0xbaa - public static final SymbolRange BENGALI_CONSONANTS_SUBSET_8 = SymbolRange.range('ம', 'ஹ'); // 0xbae - 0xbb9 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_12 = SymbolRange.range('ா', 'ி'); // 0xbbe - 0xbbf - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_17 = SymbolRange.range('ா', 'ூ'); // 0xbbe - 0xbc2 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ு', 'ூ'); // 0xbc1 - 0xbc2 - public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_5 = SymbolRange.range('ெ', 'ை'); // 0xbc6 - 0xbc8 - public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ொ', '்'); // 0xbca - 0xbcd - public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_2 = SymbolRange.range('ொ', 'ௌ'); // 0xbca - 0xbcc - public static final SymbolRange BENGALI_DIGITS_4 = SymbolRange.range('௦', '௯'); // 0xbe6 - 0xbef - public static final SymbolRange BENGALI_DIGITS_TO_TAMIL_NUMERICS = SymbolRange.range('௦', '௲'); // 0xbe6 - 0xbf2 - public static final SymbolRange BENGALI_TAMIL_NUMERICS = SymbolRange.range('௰', '௲'); // 0xbf0 - 0xbf2 - public static final SymbolRange BENGALI_TAMIL_CALENDRICAL_SYMBOLS_TO_TAMIL_CLERICAL_SYMBOLS = SymbolRange.range('௳', '௸'); // 0xbf3 - 0xbf8 - public static final SymbolRange BENGALI_TAMIL_CALENDRICAL_SYMBOLS_TO_CURRENCY_SYMBOL = SymbolRange.range('௳', '௺'); // 0xbf3 - 0xbfa - public static final SymbolRange TELUGU_VARIOUS_SIGNS = SymbolRange.range('ఀ', 'ఄ'); // 0xc00 - 0xc04 - public static final SymbolRange TELUGU_VARIOUS_SIGNS_TO_TELUGU_FRACTIONS_AND_WEIGHTS = SymbolRange.range('ఀ', '౿'); // 0xc00 - 0xc7f - public static final SymbolRange TELUGU_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ఁ', 'ః'); // 0xc01 - 0xc03 - public static final SymbolRange TELUGU_INDEPENDENT_VOWELS_SUBSET = SymbolRange.range('అ', 'ఌ'); // 0xc05 - 0xc0c - public static final SymbolRange TELUGU_INDEPENDENT_VOWELS_SUBSET_1 = SymbolRange.range('ఎ', 'ఐ'); // 0xc0e - 0xc10 - public static final SymbolRange TELUGU_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ఒ', 'న'); // 0xc12 - 0xc28 - public static final SymbolRange TELUGU_CONSONANTS_SUBSET = SymbolRange.range('ప', 'హ'); // 0xc2a - 0xc39 - public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ా', 'ీ'); // 0xc3e - 0xc40 - public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_SUBSET_3 = SymbolRange.range('ా', 'ౄ'); // 0xc3e - 0xc44 - public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ు', 'ౄ'); // 0xc41 - 0xc44 - public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ె', 'ై'); // 0xc46 - 0xc48 - public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ొ', '్'); // 0xc4a - 0xc4d - public static final SymbolRange TELUGU_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('ౕ', 'ౖ'); // 0xc55 - 0xc56 - public static final SymbolRange TELUGU_HISTORIC_PHONETIC_VARIANTS_SUBSET = SymbolRange.range('ౘ', 'ౚ'); // 0xc58 - 0xc5a - public static final SymbolRange TELUGU_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('ౠ', 'ౡ'); // 0xc60 - 0xc61 - public static final SymbolRange TELUGU_DEPENDENT_VOWELS = SymbolRange.range('ౢ', 'ౣ'); // 0xc62 - 0xc63 - public static final SymbolRange TELUGU_DIGITS_SUBSET = SymbolRange.range('౦', '౯'); // 0xc66 - 0xc6f - public static final SymbolRange TELUGU_TELUGU_FRACTIONS_AND_WEIGHTS_SUBSET = SymbolRange.range('౸', '౾'); // 0xc78 - 0xc7e - public static final SymbolRange KANNADA_VARIOUS_SIGNS_TO_SIGNS_USED_IN_SANSKRIT = SymbolRange.range('ಀ', '೿'); // 0xc80 - 0xcff - public static final SymbolRange KANNADA_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ಁ', 'ಃ'); // 0xc81 - 0xc83 - public static final SymbolRange KANNADA_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('ಂ', 'ಃ'); // 0xc82 - 0xc83 - public static final SymbolRange KANNADA_INDEPENDENT_VOWELS_SUBSET = SymbolRange.range('ಅ', 'ಌ'); // 0xc85 - 0xc8c - public static final SymbolRange KANNADA_INDEPENDENT_VOWELS_SUBSET_1 = SymbolRange.range('ಎ', 'ಐ'); // 0xc8e - 0xc90 - public static final SymbolRange KANNADA_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ಒ', 'ನ'); // 0xc92 - 0xca8 - public static final SymbolRange KANNADA_CONSONANTS_SUBSET = SymbolRange.range('ಪ', 'ಳ'); // 0xcaa - 0xcb3 - public static final SymbolRange KANNADA_CONSONANTS_SUBSET_1 = SymbolRange.range('ವ', 'ಹ'); // 0xcb5 - 0xcb9 - public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_4 = SymbolRange.range('ಾ', 'ೄ'); // 0xcbe - 0xcc4 - public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ೀ', 'ೄ'); // 0xcc0 - 0xcc4 - public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ೆ', 'ೈ'); // 0xcc6 - 0xcc8 - public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ೇ', 'ೈ'); // 0xcc7 - 0xcc8 - public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_3 = SymbolRange.range('ೊ', 'ೋ'); // 0xcca - 0xccb - public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ೊ', '್'); // 0xcca - 0xccd - public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ೌ', '್'); // 0xccc - 0xccd - public static final SymbolRange KANNADA_VARIOUS_SIGNS_SUBSET_2 = SymbolRange.range('ೕ', 'ೖ'); // 0xcd5 - 0xcd6 - public static final SymbolRange KANNADA_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('ೠ', 'ೡ'); // 0xce0 - 0xce1 - public static final SymbolRange KANNADA_DEPENDENT_VOWELS = SymbolRange.range('ೢ', 'ೣ'); // 0xce2 - 0xce3 - public static final SymbolRange KANNADA_DIGITS_SUBSET = SymbolRange.range('೦', '೯'); // 0xce6 - 0xcef - public static final SymbolRange KANNADA_SIGNS_USED_IN_SANSKRIT_SUBSET = SymbolRange.range('ೱ', 'ೲ'); // 0xcf1 - 0xcf2 - public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ഀ', 'ഁ'); // 0xd00 - 0xd01 - public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('ഀ', 'ഃ'); // 0xd00 - 0xd03 - public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_TO_CHILLU_LETTERS = SymbolRange.range('ഀ', 'ൿ'); // 0xd00 - 0xd7f - public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET_4 = SymbolRange.range('ം', 'ഃ'); // 0xd02 - 0xd03 - public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_TO_INDEPENDENT_VOWELS = SymbolRange.range('ഄ', 'ഌ'); // 0xd04 - 0xd0c - public static final SymbolRange MALAYALAM_INDEPENDENT_VOWELS_SUBSET_1 = SymbolRange.range('എ', 'ഐ'); // 0xd0e - 0xd10 - public static final SymbolRange MALAYALAM_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ഒ', 'ഺ'); // 0xd12 - 0xd3a - public static final SymbolRange MALAYALAM_VARIANT_SHAPE_VIRAMAS = SymbolRange.range('഻', '഼'); // 0xd3b - 0xd3c - public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_5 = SymbolRange.range('ാ', 'ീ'); // 0xd3e - 0xd40 - public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_6 = SymbolRange.range('ാ', 'ൄ'); // 0xd3e - 0xd44 - public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ു', 'ൄ'); // 0xd41 - 0xd44 - public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('െ', 'ൈ'); // 0xd46 - 0xd48 - public static final SymbolRange MALAYALAM_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ൊ', '്'); // 0xd4a - 0xd4d - public static final SymbolRange MALAYALAM_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ൊ', 'ൌ'); // 0xd4a - 0xd4c - public static final SymbolRange MALAYALAM_ADDITIONAL_HISTORIC_CHILLU_LETTERS = SymbolRange.range('ൔ', 'ൖ'); // 0xd54 - 0xd56 - public static final SymbolRange MALAYALAM_MINOR_FRACTIONS = SymbolRange.range('൘', '൞'); // 0xd58 - 0xd5e - public static final SymbolRange MALAYALAM_ADDITIONAL_HISTORIC_VOWEL_TO_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('ൟ', 'ൡ'); // 0xd5f - 0xd61 - public static final SymbolRange MALAYALAM_DEPENDENT_VOWELS = SymbolRange.range('ൢ', 'ൣ'); // 0xd62 - 0xd63 - public static final SymbolRange MALAYALAM_DIGITS = SymbolRange.range('൦', '൯'); // 0xd66 - 0xd6f - public static final SymbolRange MALAYALAM_DIGITS_TO_FRACTIONS = SymbolRange.range('൦', '൸'); // 0xd66 - 0xd78 - public static final SymbolRange MALAYALAM_MALAYALAM_NUMERICS_TO_FRACTIONS = SymbolRange.range('൰', '൸'); // 0xd70 - 0xd78 - public static final SymbolRange MALAYALAM_CHILLU_LETTERS = SymbolRange.range('ൺ', 'ൿ'); // 0xd7a - 0xd7f - public static final SymbolRange MALAYALAM_SINHALA_TO_PUNCTUATION = SymbolRange.range('඀', '෿'); // 0xd80 - 0xdff - public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET_2 = SymbolRange.range('ඁ', 'ඃ'); // 0xd81 - 0xd83 - public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET_3 = SymbolRange.range('ං', 'ඃ'); // 0xd82 - 0xd83 - public static final SymbolRange MALAYALAM_INDEPENDENT_VOWELS_SUBSET = SymbolRange.range('අ', 'ඖ'); // 0xd85 - 0xd96 - public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_4 = SymbolRange.range('ක', 'න'); // 0xd9a - 0xdb1 - public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_5 = SymbolRange.range('ඳ', 'ර'); // 0xdb3 - 0xdbb - public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET = SymbolRange.range('ව', 'ෆ'); // 0xdc0 - 0xdc6 - public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ා', 'ෑ'); // 0xdcf - 0xdd1 - public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_3 = SymbolRange.range('ා', 'ු'); // 0xdcf - 0xdd4 - public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_4 = SymbolRange.range('ි', 'ු'); // 0xdd2 - 0xdd4 - public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ෘ', 'ෟ'); // 0xdd8 - 0xddf - public static final SymbolRange MALAYALAM_ASTROLOGICAL_DIGITS_SUBSET = SymbolRange.range('෦', '෯'); // 0xde6 - 0xdef - public static final SymbolRange MALAYALAM_ADDITIONAL_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ෲ', 'ෳ'); // 0xdf2 - 0xdf3 - public static final SymbolRange MALAYALAM_THAI_TO_SIGNS = SymbolRange.range('฀', '๿'); // 0xe00 - 0xe7f - public static final SymbolRange MALAYALAM_CONSONANTS_TO_SIGN = SymbolRange.range('ก', 'ะ'); // 0xe01 - 0xe30 - public static final SymbolRange MALAYALAM_VOWELS_SUBSET_1 = SymbolRange.range('า', 'ำ'); // 0xe32 - 0xe33 - public static final SymbolRange MALAYALAM_VOWELS_SUBSET_3 = SymbolRange.range('ิ', 'ฺ'); // 0xe34 - 0xe3a - public static final SymbolRange MALAYALAM_VOWELS_TO_VOWELS = SymbolRange.range('เ', 'ๅ'); // 0xe40 - 0xe45 - public static final SymbolRange MALAYALAM_VOWELS_TO_VOWEL_LENGTH_SIGN = SymbolRange.range('เ', 'ๆ'); // 0xe40 - 0xe46 - public static final SymbolRange MALAYALAM_VOWEL_TO_SIGNS = SymbolRange.range('็', '๎'); // 0xe47 - 0xe4e - public static final SymbolRange MALAYALAM_DIGITS_1 = SymbolRange.range('๐', '๙'); // 0xe50 - 0xe59 - public static final SymbolRange MALAYALAM_SIGNS_SUBSET = SymbolRange.range('๚', '๛'); // 0xe5a - 0xe5b - public static final SymbolRange MALAYALAM_LAO_TO_CONSONANTS_FOR_KHMU = SymbolRange.range('຀', '໿'); // 0xe80 - 0xeff - public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_1 = SymbolRange.range('ກ', 'ຂ'); // 0xe81 - 0xe82 - public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_2 = SymbolRange.range('ຆ', 'ຊ'); // 0xe86 - 0xe8a - public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_3 = SymbolRange.range('ຌ', 'ຣ'); // 0xe8c - 0xea3 - public static final SymbolRange MALAYALAM_CONSONANTS_TO_SIGN_1 = SymbolRange.range('ວ', 'ະ'); // 0xea7 - 0xeb0 - public static final SymbolRange MALAYALAM_VOWELS_SUBSET_2 = SymbolRange.range('າ', 'ຳ'); // 0xeb2 - 0xeb3 - public static final SymbolRange MALAYALAM_VOWELS_TO_VOWEL = SymbolRange.range('ິ', 'ຼ'); // 0xeb4 - 0xebc - public static final SymbolRange MALAYALAM_VOWELS_SUBSET = SymbolRange.range('ເ', 'ໄ'); // 0xec0 - 0xec4 - public static final SymbolRange MALAYALAM_TONE_MARKS_TO_SIGNS = SymbolRange.range('່', 'ໍ'); // 0xec8 - 0xecd - public static final SymbolRange MALAYALAM_DIGITS_SUBSET = SymbolRange.range('໐', '໙'); // 0xed0 - 0xed9 - public static final SymbolRange MALAYALAM_DIGRAPHS_TO_CONSONANTS_FOR_KHMU = SymbolRange.range('ໜ', 'ໟ'); // 0xedc - 0xedf - public static final SymbolRange TIBETAN_SYLLABLE_TO_ANNOTATION_MARKS = SymbolRange.range('ༀ', '࿿'); // 0xf00 - 0xfff - public static final SymbolRange TIBETAN_HEAD_MARKS_SUBSET = SymbolRange.range('༁', '༃'); // 0xf01 - 0xf03 - public static final SymbolRange TIBETAN_HEAD_MARKS_TO_MARKS_AND_SIGNS = SymbolRange.range('༄', '༒'); // 0xf04 - 0xf12 - public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_SUBSET = SymbolRange.range('༕', '༗'); // 0xf15 - 0xf17 - public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_SUBSET_1 = SymbolRange.range('༘', '༙'); // 0xf18 - 0xf19 - public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_SUBSET_2 = SymbolRange.range('༚', '༟'); // 0xf1a - 0xf1f - public static final SymbolRange TIBETAN_DIGITS = SymbolRange.range('༠', '༩'); // 0xf20 - 0xf29 - public static final SymbolRange TIBETAN_DIGITS_TO_DIGITS_MINUS_HALF = SymbolRange.range('༠', '༳'); // 0xf20 - 0xf33 - public static final SymbolRange TIBETAN_DIGITS_MINUS_HALF = SymbolRange.range('༪', '༳'); // 0xf2a - 0xf33 - public static final SymbolRange TIBETAN_PAIRED_PUNCTUATION = SymbolRange.range('༺', '༽'); // 0xf3a - 0xf3d - public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_1 = SymbolRange.range('༾', '༿'); // 0xf3e - 0xf3f - public static final SymbolRange TIBETAN_CONSONANTS_SUBSET = SymbolRange.range('ཀ', 'ཇ'); // 0xf40 - 0xf47 - public static final SymbolRange TIBETAN_CONSONANTS_TO_EXTENSIONS_FOR_BALTI = SymbolRange.range('ཉ', 'ཬ'); // 0xf49 - 0xf6c - public static final SymbolRange TIBETAN_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ཱ', 'ཾ'); // 0xf71 - 0xf7e - public static final SymbolRange TIBETAN_DEPENDENT_VOWEL_SIGNS_TO_MARKS_AND_SIGNS_1 = SymbolRange.range('ཱ', '྄'); // 0xf71 - 0xf84 - public static final SymbolRange TIBETAN_DEPENDENT_VOWEL_SIGNS_TO_MARKS_AND_SIGNS = SymbolRange.range('ྀ', '྄'); // 0xf80 - 0xf84 - public static final SymbolRange TIBETAN_MARKS_AND_SIGNS_SUBSET = SymbolRange.range('྆', '྇'); // 0xf86 - 0xf87 - public static final SymbolRange TIBETAN_TRANSLITERATION_HEAD_LETTERS = SymbolRange.range('ྈ', 'ྌ'); // 0xf88 - 0xf8c - public static final SymbolRange TIBETAN_TRANSLITERATION_SUBJOINED_SIGNS_TO_SUBJOINED_CONSONANTS = SymbolRange.range('ྍ', 'ྗ'); // 0xf8d - 0xf97 - public static final SymbolRange TIBETAN_SUBJOINED_CONSONANTS_TO_FIXED_FORM_SUBJOINED_CONSONANTS = SymbolRange.range('ྙ', 'ྼ'); // 0xf99 - 0xfbc - public static final SymbolRange TIBETAN_SIGNS_TO_SYMBOLS = SymbolRange.range('྾', '࿅'); // 0xfbe - 0xfc5 - public static final SymbolRange TIBETAN_SYMBOLS_SUBSET = SymbolRange.range('࿇', '࿌'); // 0xfc7 - 0xfcc - public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_2 = SymbolRange.range('࿎', '࿏'); // 0xfce - 0xfcf - public static final SymbolRange TIBETAN_MARKS_TO_HEAD_MARKS = SymbolRange.range('࿐', '࿔'); // 0xfd0 - 0xfd4 - public static final SymbolRange TIBETAN_RELIGIOUS_SYMBOLS = SymbolRange.range('࿕', '࿘'); // 0xfd5 - 0xfd8 - public static final SymbolRange TIBETAN_ANNOTATION_MARKS_SUBSET = SymbolRange.range('࿙', '࿚'); // 0xfd9 - 0xfda - public static final SymbolRange MYANMAR_CONSONANTS_TO_INDEPENDENT_VOWELS = SymbolRange.range('က', 'ဪ'); // 0x1000 - 0x102a - public static final SymbolRange MYANMAR_CONSONANTS_TO_SHAN_SYMBOLS = SymbolRange.range('က', '႟'); // 0x1000 - 0x109f - public static final SymbolRange MYANMAR_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ါ', 'ာ'); // 0x102b - 0x102c - public static final SymbolRange MYANMAR_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_CONSONANT_SIGNS = SymbolRange.range('ါ', 'ှ'); // 0x102b - 0x103e - public static final SymbolRange MYANMAR_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ိ', 'ူ'); // 0x102d - 0x1030 - public static final SymbolRange MYANMAR_DEPENDENT_VOWEL_SIGNS_TO_VARIOUS_SIGNS = SymbolRange.range('ဲ', '့'); // 0x1032 - 0x1037 - public static final SymbolRange MYANMAR_VIRAMA_AND_KILLER = SymbolRange.range('္', '်'); // 0x1039 - 0x103a - public static final SymbolRange MYANMAR_DEPENDENT_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ျ', 'ြ'); // 0x103b - 0x103c - public static final SymbolRange MYANMAR_DEPENDENT_CONSONANT_SIGNS_SUBSET_1 = SymbolRange.range('ွ', 'ှ'); // 0x103d - 0x103e - public static final SymbolRange MYANMAR_DIGITS = SymbolRange.range('၀', '၉'); // 0x1040 - 0x1049 - public static final SymbolRange MYANMAR_PUNCTUATION_TO_VARIOUS_SIGNS = SymbolRange.range('၊', '၏'); // 0x104a - 0x104f - public static final SymbolRange MYANMAR_PALI_AND_SANSKRIT_EXTENSIONS_SUBSET = SymbolRange.range('ၐ', 'ၕ'); // 0x1050 - 0x1055 - public static final SymbolRange MYANMAR_PALI_AND_SANSKRIT_EXTENSIONS_SUBSET_1 = SymbolRange.range('ၖ', 'ၙ'); // 0x1056 - 0x1059 - public static final SymbolRange MYANMAR_PALI_AND_SANSKRIT_EXTENSIONS_SUBSET_2 = SymbolRange.range('ၖ', 'ၗ'); // 0x1056 - 0x1057 - public static final SymbolRange MYANMAR_PALI_AND_SANSKRIT_EXTENSIONS_SUBSET_3 = SymbolRange.range('ၘ', 'ၙ'); // 0x1058 - 0x1059 - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_MON_SUBSET = SymbolRange.range('ၚ', 'ၝ'); // 0x105a - 0x105d - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_MON_SUBSET_1 = SymbolRange.range('ၞ', 'ၠ'); // 0x105e - 0x1060 - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SGAW_KAREN_SUBSET = SymbolRange.range('ၢ', 'ၤ'); // 0x1062 - 0x1064 - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_WESTERN_PWO_KAREN_SUBSET = SymbolRange.range('ၥ', 'ၦ'); // 0x1065 - 0x1066 - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_WESTERN_PWO_KAREN_SUBSET_1 = SymbolRange.range('ၧ', 'ၭ'); // 0x1067 - 0x106d - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_EASTERN_PWO_KAREN = SymbolRange.range('ၮ', 'ၰ'); // 0x106e - 0x1070 - public static final SymbolRange MYANMAR_EXTENSION_FOR_GEBA_KAREN_TO_EXTENSIONS_FOR_KAYAH = SymbolRange.range('ၱ', 'ၴ'); // 0x1071 - 0x1074 - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_4 = SymbolRange.range('ၵ', 'ႁ'); // 0x1075 - 0x1081 - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET = SymbolRange.range('ႂ', 'ႍ'); // 0x1082 - 0x108d - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_1 = SymbolRange.range('ႃ', 'ႄ'); // 0x1083 - 0x1084 - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_2 = SymbolRange.range('ႅ', 'ႆ'); // 0x1085 - 0x1086 - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_3 = SymbolRange.range('ႇ', 'ႌ'); // 0x1087 - 0x108c - public static final SymbolRange MYANMAR_SHAN_DIGITS = SymbolRange.range('႐', '႙'); // 0x1090 - 0x1099 - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_KHAMTI_SHAN_TO_EXTENSIONS_FOR_KHAMTI_SHAN = SymbolRange.range('ႚ', 'ႜ'); // 0x109a - 0x109c - public static final SymbolRange MYANMAR_EXTENSIONS_FOR_KHAMTI_SHAN_TO_EXTENSIONS_FOR_AITON_AND_PHAKE = SymbolRange.range('ႚ', 'ႝ'); // 0x109a - 0x109d - public static final SymbolRange MYANMAR_SHAN_SYMBOLS = SymbolRange.range('႞', '႟'); // 0x109e - 0x109f - public static final SymbolRange GEORGIAN_CAPITAL_LETTERS_KHUTSURI_SUBSET = SymbolRange.range('Ⴀ', 'Ⴥ'); // 0x10a0 - 0x10c5 - public static final SymbolRange GEORGIAN_CAPITAL_LETTERS_KHUTSURI_TO_ADDITIONAL_LETTERS_FOR_OSSETIAN_AND_ABKHAZ = SymbolRange.range('Ⴀ', 'ჿ'); // 0x10a0 - 0x10ff - public static final SymbolRange GEORGIAN_MKHEDRULI_TO_ADDITIONAL_LETTERS = SymbolRange.range('ა', 'ჺ'); // 0x10d0 - 0x10fa - public static final SymbolRange GEORGIAN_TO_ETHIOPIC = SymbolRange.range('ჼ', 'ቈ'); // 0x10fc - 0x1248 - public static final SymbolRange GEORGIAN_ADDITIONAL_LETTERS_FOR_OSSETIAN_AND_ABKHAZ = SymbolRange.range('ჽ', 'ჿ'); // 0x10fd - 0x10ff - public static final SymbolRange HANGUL_JAMO_INITIAL_CONSONANTS_TO_OLD_FINAL_CONSONANTS = SymbolRange.range('ᄀ', 'ᇿ'); // 0x1100 - 0x11ff - public static final SymbolRange HANGUL_JAMO_TO_ETHIOPIC = SymbolRange.range('ᄀ', 'ቈ'); // 0x1100 - 0x1248 - public static final SymbolRange ETHIOPIC_SYLLABLES_TO_NUMBERS = SymbolRange.range('ሀ', '፿'); // 0x1200 - 0x137f - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_3 = SymbolRange.range('ቊ', 'ቍ'); // 0x124a - 0x124d - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_4 = SymbolRange.range('ቐ', 'ቖ'); // 0x1250 - 0x1256 - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_9 = SymbolRange.range('ቚ', 'ቝ'); // 0x125a - 0x125d - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_10 = SymbolRange.range('በ', 'ኈ'); // 0x1260 - 0x1288 - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_2 = SymbolRange.range('ኊ', 'ኍ'); // 0x128a - 0x128d - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_5 = SymbolRange.range('ነ', 'ኰ'); // 0x1290 - 0x12b0 - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_11 = SymbolRange.range('ኲ', 'ኵ'); // 0x12b2 - 0x12b5 - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_12 = SymbolRange.range('ኸ', 'ኾ'); // 0x12b8 - 0x12be - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET = SymbolRange.range('ዂ', 'ዅ'); // 0x12c2 - 0x12c5 - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_1 = SymbolRange.range('ወ', 'ዖ'); // 0x12c8 - 0x12d6 - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_7 = SymbolRange.range('ዘ', 'ጐ'); // 0x12d8 - 0x1310 - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_6 = SymbolRange.range('ጒ', 'ጕ'); // 0x1312 - 0x1315 - public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_8 = SymbolRange.range('ጘ', 'ፚ'); // 0x1318 - 0x135a - public static final SymbolRange ETHIOPIC_COMBINING_MARKS = SymbolRange.range('፝', '፟'); // 0x135d - 0x135f - public static final SymbolRange ETHIOPIC_PUNCTUATION = SymbolRange.range('፠', '፨'); // 0x1360 - 0x1368 - public static final SymbolRange ETHIOPIC_DIGITS_TO_NUMBERS = SymbolRange.range('፩', '፼'); // 0x1369 - 0x137c - public static final SymbolRange ETHIOPIC_SUPPLEMENT_SYLLABLES_FOR_SEBATBEIT = SymbolRange.range('ᎀ', 'ᎏ'); // 0x1380 - 0x138f - public static final SymbolRange ETHIOPIC_SUPPLEMENT_TONAL_MARKS_SUBSET = SymbolRange.range('᎐', '᎙'); // 0x1390 - 0x1399 - public static final SymbolRange CHEROKEE_UPPERCASE_SYLLABLES_TO_UPPERCASE_SYLLABLES = SymbolRange.range('Ꭰ', 'Ᏽ'); // 0x13a0 - 0x13f5 - public static final SymbolRange CHEROKEE_UPPERCASE_SYLLABLES_TO_ARCHAIC_LOWERCASE_SYLLABLE = SymbolRange.range('Ꭰ', '᏿'); // 0x13a0 - 0x13ff - public static final SymbolRange CHEROKEE_LOWERCASE_SYLLABLES_TO_LOWERCASE_SYLLABLES = SymbolRange.range('ᏸ', 'ᏽ'); // 0x13f8 - 0x13fd - public static final SymbolRange UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_PUNCTUATION_TO_SYLLABLES = SymbolRange.range('᐀', 'ᙿ'); // 0x1400 - 0x167f - public static final SymbolRange UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_SYLLABLES_TO_SYLLABLES_FOR_CARRIER = SymbolRange.range('ᐁ', 'ᙬ'); // 0x1401 - 0x166c - public static final SymbolRange UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_SYLLABLES_1 = SymbolRange.range('ᙯ', 'ᙿ'); // 0x166f - 0x167f - public static final SymbolRange OGHAM_SPACE_TO_PUNCTUATION = SymbolRange.range(' ', '᚟'); // 0x1680 - 0x169f - public static final SymbolRange OGHAM_TRADITIONAL_LETTERS_TO_FORFEDA_SUPPLEMENTARY_LETTERS = SymbolRange.range('ᚁ', 'ᚚ'); // 0x1681 - 0x169a - public static final SymbolRange OGHAM_PUNCTUATION_SUBSET = SymbolRange.range('᚛', '᚜'); // 0x169b - 0x169c - public static final SymbolRange RUNIC_LETTERS = SymbolRange.range('ᚠ', 'ᛪ'); // 0x16a0 - 0x16ea - public static final SymbolRange RUNIC_LETTERS_TO_CRYPTOGRAMMIC_LETTERS = SymbolRange.range('ᚠ', '᛿'); // 0x16a0 - 0x16ff - public static final SymbolRange RUNIC_PUNCTUATION = SymbolRange.range('᛫', '᛭'); // 0x16eb - 0x16ed - public static final SymbolRange RUNIC_GOLDEN_NUMBER_RUNES = SymbolRange.range('ᛮ', 'ᛰ'); // 0x16ee - 0x16f0 - public static final SymbolRange RUNIC_TOLKIENIAN_EXTENSIONS_TO_CRYPTOGRAMMIC_LETTERS = SymbolRange.range('ᛱ', 'ᛸ'); // 0x16f1 - 0x16f8 - public static final SymbolRange TAGALOG_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᜀ', 'ᜌ'); // 0x1700 - 0x170c - public static final SymbolRange TAGALOG_INDEPENDENT_VOWELS_TO_VIRAMAS = SymbolRange.range('ᜀ', 'ᜟ'); // 0x1700 - 0x171f - public static final SymbolRange TAGALOG_CONSONANTS_SUBSET = SymbolRange.range('ᜎ', 'ᜑ'); // 0x170e - 0x1711 - public static final SymbolRange TAGALOG_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᜒ', '᜔'); // 0x1712 - 0x1714 - public static final SymbolRange HANUNOO_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᜠ', 'ᜱ'); // 0x1720 - 0x1731 - public static final SymbolRange HANUNOO_INDEPENDENT_VOWELS_TO_GENERIC_PUNCTUATION_FOR_PHILIPPINE_SCRIPTS = SymbolRange.range('ᜠ', '᜿'); // 0x1720 - 0x173f - public static final SymbolRange HANUNOO_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᜲ', '᜴'); // 0x1732 - 0x1734 - public static final SymbolRange HANUNOO_GENERIC_PUNCTUATION_FOR_PHILIPPINE_SCRIPTS_SUBSET = SymbolRange.range('᜵', '᜶'); // 0x1735 - 0x1736 - public static final SymbolRange BUHID_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᝀ', 'ᝑ'); // 0x1740 - 0x1751 - public static final SymbolRange BUHID_INDEPENDENT_VOWELS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᝀ', '᝟'); // 0x1740 - 0x175f - public static final SymbolRange BUHID_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᝒ', 'ᝓ'); // 0x1752 - 0x1753 - public static final SymbolRange TAGBANWA_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᝠ', 'ᝬ'); // 0x1760 - 0x176c - public static final SymbolRange TAGBANWA_INDEPENDENT_VOWELS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᝠ', '᝿'); // 0x1760 - 0x177f - public static final SymbolRange TAGBANWA_CONSONANTS_SUBSET = SymbolRange.range('ᝮ', 'ᝰ'); // 0x176e - 0x1770 - public static final SymbolRange TAGBANWA_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᝲ', 'ᝳ'); // 0x1772 - 0x1773 - public static final SymbolRange KHMER_CONSONANTS_TO_INDEPENDENT_VOWELS = SymbolRange.range('ក', 'ឳ'); // 0x1780 - 0x17b3 - public static final SymbolRange KHMER_CONSONANTS_TO_NUMERIC_SYMBOLS_FOR_DIVINATION_LORE = SymbolRange.range('ក', '៿'); // 0x1780 - 0x17ff - public static final SymbolRange KHMER_INHERENT_VOWELS = SymbolRange.range('឴', '឵'); // 0x17b4 - 0x17b5 - public static final SymbolRange KHMER_INHERENT_VOWELS_TO_VARIOUS_SIGNS = SymbolRange.range('឴', '៓'); // 0x17b4 - 0x17d3 - public static final SymbolRange KHMER_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ិ', 'ួ'); // 0x17b7 - 0x17bd - public static final SymbolRange KHMER_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ើ', 'ៅ'); // 0x17be - 0x17c5 - public static final SymbolRange KHMER_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ះ', 'ៈ'); // 0x17c7 - 0x17c8 - public static final SymbolRange KHMER_CONSONANT_SHIFTERS_TO_VARIOUS_SIGNS = SymbolRange.range('៉', '៓'); // 0x17c9 - 0x17d3 - public static final SymbolRange KHMER_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('។', '៖'); // 0x17d4 - 0x17d6 - public static final SymbolRange KHMER_VARIOUS_SIGNS_SUBSET_2 = SymbolRange.range('៘', '៚'); // 0x17d8 - 0x17da - public static final SymbolRange KHMER_DIGITS_SUBSET = SymbolRange.range('០', '៩'); // 0x17e0 - 0x17e9 - public static final SymbolRange KHMER_NUMERIC_SYMBOLS_FOR_DIVINATION_LORE_SUBSET = SymbolRange.range('៰', '៹'); // 0x17f0 - 0x17f9 - public static final SymbolRange MONGOLIAN_PUNCTUATION_SUBSET = SymbolRange.range('᠀', '᠅'); // 0x1800 - 0x1805 - public static final SymbolRange MONGOLIAN_PUNCTUATION = SymbolRange.range('᠀', '᠊'); // 0x1800 - 0x180a - public static final SymbolRange MONGOLIAN_PUNCTUATION_TO_EXTENSIONS_FOR_SANSKRIT_AND_TIBETAN = SymbolRange.range('᠀', '᢯'); // 0x1800 - 0x18af - public static final SymbolRange MONGOLIAN_PUNCTUATION_SUBSET_1 = SymbolRange.range('᠇', '᠊'); // 0x1807 - 0x180a - public static final SymbolRange MONGOLIAN_FORMAT_CONTROLS_SUBSET = SymbolRange.range('᠋', '᠍'); // 0x180b - 0x180d - public static final SymbolRange MONGOLIAN_DIGITS_SUBSET = SymbolRange.range('᠐', '᠙'); // 0x1810 - 0x1819 - public static final SymbolRange MONGOLIAN_BASIC_LETTERS = SymbolRange.range('ᠠ', 'ᡂ'); // 0x1820 - 0x1842 - public static final SymbolRange MONGOLIAN_BASIC_LETTERS_TO_MANCHU_LETTERS = SymbolRange.range('ᠠ', 'ᡸ'); // 0x1820 - 0x1878 - public static final SymbolRange MONGOLIAN_TODO_LETTERS_TO_MANCHU_LETTERS = SymbolRange.range('ᡄ', 'ᡸ'); // 0x1844 - 0x1878 - public static final SymbolRange MONGOLIAN_EXTENSIONS_FOR_SANSKRIT_AND_TIBETAN_SUBSET = SymbolRange.range('ᢀ', 'ᢄ'); // 0x1880 - 0x1884 - public static final SymbolRange MONGOLIAN_EXTENSIONS_FOR_SANSKRIT_AND_TIBETAN_SUBSET_1 = SymbolRange.range('ᢅ', 'ᢆ'); // 0x1885 - 0x1886 - public static final SymbolRange MONGOLIAN_EXTENSIONS_FOR_SANSKRIT_AND_TIBETAN_SUBSET_2 = SymbolRange.range('ᢇ', 'ᢨ'); // 0x1887 - 0x18a8 - public static final SymbolRange UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_SYLLABLES_FOR_MOOSE_CREE_TO_FINALS_FOR_DENE_AND_CARRIER = SymbolRange.range('ᢰ', 'ᣵ'); // 0x18b0 - 0x18f5 - public static final SymbolRange LIMBU_CONSONANTS_SUBSET = SymbolRange.range('ᤀ', 'ᤞ'); // 0x1900 - 0x191e - public static final SymbolRange LIMBU_CONSONANTS_TO_DIGITS = SymbolRange.range('ᤀ', '᥏'); // 0x1900 - 0x194f - public static final SymbolRange LIMBU_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᤠ', 'ᤢ'); // 0x1920 - 0x1922 - public static final SymbolRange LIMBU_DEPENDENT_VOWEL_SIGNS_TO_SUBJOINED_CONSONANTS = SymbolRange.range('ᤠ', 'ᤫ'); // 0x1920 - 0x192b - public static final SymbolRange LIMBU_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᤣ', 'ᤦ'); // 0x1923 - 0x1926 - public static final SymbolRange LIMBU_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ᤧ', 'ᤨ'); // 0x1927 - 0x1928 - public static final SymbolRange LIMBU_SUBJOINED_CONSONANTS_SUBSET = SymbolRange.range('ᤩ', 'ᤫ'); // 0x1929 - 0x192b - public static final SymbolRange LIMBU_FINAL_CONSONANTS_SUBSET = SymbolRange.range('ᤰ', 'ᤱ'); // 0x1930 - 0x1931 - public static final SymbolRange LIMBU_FINAL_CONSONANTS_TO_VARIOUS_SIGNS = SymbolRange.range('ᤰ', '᤻'); // 0x1930 - 0x193b - public static final SymbolRange LIMBU_FINAL_CONSONANTS_SUBSET_1 = SymbolRange.range('ᤳ', 'ᤸ'); // 0x1933 - 0x1938 - public static final SymbolRange LIMBU_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('᤹', '᤻'); // 0x1939 - 0x193b - public static final SymbolRange LIMBU_VARIOUS_SIGNS_SUBSET = SymbolRange.range('᥄', '᥅'); // 0x1944 - 0x1945 - public static final SymbolRange LIMBU_DIGITS = SymbolRange.range('᥆', '᥏'); // 0x1946 - 0x194f - public static final SymbolRange TAI_LE_CONSONANTS_TO_VOWELS = SymbolRange.range('ᥐ', 'ᥭ'); // 0x1950 - 0x196d - public static final SymbolRange TAI_LE_CONSONANTS_TO_TONE_LETTERS = SymbolRange.range('ᥐ', '᥿'); // 0x1950 - 0x197f - public static final SymbolRange TAI_LE_TONE_LETTERS_SUBSET = SymbolRange.range('ᥰ', 'ᥴ'); // 0x1970 - 0x1974 - public static final SymbolRange NEW_TAI_LUE_CONSONANTS_SUBSET = SymbolRange.range('ᦀ', 'ᦫ'); // 0x1980 - 0x19ab - public static final SymbolRange NEW_TAI_LUE_VOWEL_SIGNS_TO_TONE_MARKS = SymbolRange.range('ᦰ', 'ᧉ'); // 0x19b0 - 0x19c9 - public static final SymbolRange NEW_TAI_LUE_DIGITS_SUBSET = SymbolRange.range('᧐', '᧚'); // 0x19d0 - 0x19da - public static final SymbolRange NEW_TAI_LUE_DIGITS_SUBSET_1 = SymbolRange.range('᧐', '᧙'); // 0x19d0 - 0x19d9 - public static final SymbolRange NEW_TAI_LUE_TO_KHMER_SYMBOLS = SymbolRange.range('᧞', '᧿'); // 0x19de - 0x19ff - public static final SymbolRange KHMER_SYMBOLS_LUNAR_DATE_SYMBOLS = SymbolRange.range('᧠', '᧿'); // 0x19e0 - 0x19ff - public static final SymbolRange BUGINESE_CONSONANTS = SymbolRange.range('ᨀ', 'ᨖ'); // 0x1a00 - 0x1a16 - public static final SymbolRange BUGINESE_VOWELS_SUBSET = SymbolRange.range('ᨗ', 'ᨘ'); // 0x1a17 - 0x1a18 - public static final SymbolRange BUGINESE_VOWELS_SUBSET_1 = SymbolRange.range('ᨗ', 'ᨛ'); // 0x1a17 - 0x1a1b - public static final SymbolRange BUGINESE_VOWELS_SUBSET_2 = SymbolRange.range('ᨙ', 'ᨚ'); // 0x1a19 - 0x1a1a - public static final SymbolRange BUGINESE_VARIOUS_SIGNS = SymbolRange.range('᨞', '᨟'); // 0x1a1e - 0x1a1f - public static final SymbolRange TAI_THAM_CONSONANTS_TO_CONSONANTS = SymbolRange.range('ᨠ', 'ᩔ'); // 0x1a20 - 0x1a54 - public static final SymbolRange TAI_THAM_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ᩕ', 'ᩞ'); // 0x1a55 - 0x1a5e - public static final SymbolRange TAI_THAM_CONSONANT_SIGNS_SUBSET_1 = SymbolRange.range('ᩘ', 'ᩞ'); // 0x1a58 - 0x1a5e - public static final SymbolRange TAI_THAM_SIGN_TO_OTHER_MARKS = SymbolRange.range('᩠', '᩼'); // 0x1a60 - 0x1a7c - public static final SymbolRange TAI_THAM_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᩣ', 'ᩤ'); // 0x1a63 - 0x1a64 - public static final SymbolRange TAI_THAM_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᩥ', 'ᩬ'); // 0x1a65 - 0x1a6c - public static final SymbolRange TAI_THAM_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ᩭ', 'ᩲ'); // 0x1a6d - 0x1a72 - public static final SymbolRange TAI_THAM_DEPENDENT_VOWEL_SIGNS_TO_OTHER_MARKS = SymbolRange.range('ᩳ', '᩼'); // 0x1a73 - 0x1a7c - public static final SymbolRange TAI_THAM_HORA_DIGITS_SUBSET = SymbolRange.range('᪀', '᪉'); // 0x1a80 - 0x1a89 - public static final SymbolRange TAI_THAM_THAM_DIGITS_SUBSET = SymbolRange.range('᪐', '᪙'); // 0x1a90 - 0x1a99 - public static final SymbolRange TAI_THAM_LOGOGRAPHS_TO_PUNCTUATION = SymbolRange.range('᪠', '᪦'); // 0x1aa0 - 0x1aa6 - public static final SymbolRange TAI_THAM_PUNCTUATION_SUBSET = SymbolRange.range('᪨', '᪭'); // 0x1aa8 - 0x1aad - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_EXTENDED_USED_IN_GERMAN_DIALECTOLOGY_TO_MARKS_SURROUNDING_OTHER_DIACRITICS_OR_LETTERS = SymbolRange.range('᪰', '᪽'); // 0x1ab0 - 0x1abd - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_EXTENDED_USED_IN_GERMAN_DIALECTOLOGY_TO_USED_FOR_SCOTS_DIALECTOLOGY = SymbolRange.range('᪰', 'ᫀ'); // 0x1ab0 - 0x1ac0 - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_EXTENDED_USED_FOR_SCOTS_DIALECTOLOGY = SymbolRange.range('ᪿ', 'ᫀ'); // 0x1abf - 0x1ac0 - public static final SymbolRange BALINESE_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ᬀ', 'ᬃ'); // 0x1b00 - 0x1b03 - public static final SymbolRange BALINESE_VARIOUS_SIGNS = SymbolRange.range('ᬀ', 'ᬄ'); // 0x1b00 - 0x1b04 - public static final SymbolRange BALINESE_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᬅ', 'ᬳ'); // 0x1b05 - 0x1b33 - public static final SymbolRange BALINESE_SIGN_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('᬴', '᭄'); // 0x1b34 - 0x1b44 - public static final SymbolRange BALINESE_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᬶ', 'ᬺ'); // 0x1b36 - 0x1b3a - public static final SymbolRange BALINESE_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᬽ', 'ᭁ'); // 0x1b3d - 0x1b41 - public static final SymbolRange BALINESE_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᭃ', '᭄'); // 0x1b43 - 0x1b44 - public static final SymbolRange BALINESE_ADDITIONAL_CONSONANTS_SUBSET = SymbolRange.range('ᭅ', 'ᭋ'); // 0x1b45 - 0x1b4b - public static final SymbolRange BALINESE_DIGITS = SymbolRange.range('᭐', '᭙'); // 0x1b50 - 0x1b59 - public static final SymbolRange BALINESE_PUNCTUATION = SymbolRange.range('᭚', '᭠'); // 0x1b5a - 0x1b60 - public static final SymbolRange BALINESE_MUSICAL_SYMBOLS_FOR_NOTES = SymbolRange.range('᭡', '᭪'); // 0x1b61 - 0x1b6a - public static final SymbolRange BALINESE_DIACRITICAL_MARKS_FOR_MUSICAL_SYMBOLS = SymbolRange.range('᭫', '᭳'); // 0x1b6b - 0x1b73 - public static final SymbolRange BALINESE_MUSICAL_SYMBOLS = SymbolRange.range('᭴', '᭼'); // 0x1b74 - 0x1b7c - public static final SymbolRange SUNDANESE_VARIOUS_SIGNS = SymbolRange.range('ᮀ', 'ᮂ'); // 0x1b80 - 0x1b82 - public static final SymbolRange SUNDANESE_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ᮀ', 'ᮁ'); // 0x1b80 - 0x1b81 - public static final SymbolRange SUNDANESE_VOWELS_TO_CONSONANTS = SymbolRange.range('ᮃ', 'ᮠ'); // 0x1b83 - 0x1ba0 - public static final SymbolRange SUNDANESE_CONSONANT_SIGNS_TO_CONSONANT_SIGNS = SymbolRange.range('ᮡ', 'ᮭ'); // 0x1ba1 - 0x1bad - public static final SymbolRange SUNDANESE_CONSONANT_SIGNS_TO_VOWEL_SIGNS = SymbolRange.range('ᮢ', 'ᮥ'); // 0x1ba2 - 0x1ba5 - public static final SymbolRange SUNDANESE_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᮦ', 'ᮧ'); // 0x1ba6 - 0x1ba7 - public static final SymbolRange SUNDANESE_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᮨ', 'ᮩ'); // 0x1ba8 - 0x1ba9 - public static final SymbolRange SUNDANESE_VIRAMAS_TO_CONSONANT_SIGNS = SymbolRange.range('᮫', 'ᮭ'); // 0x1bab - 0x1bad - public static final SymbolRange SUNDANESE_ADDITIONAL_CONSONANTS = SymbolRange.range('ᮮ', 'ᮯ'); // 0x1bae - 0x1baf - public static final SymbolRange SUNDANESE_DIGITS = SymbolRange.range('᮰', '᮹'); // 0x1bb0 - 0x1bb9 - public static final SymbolRange SUNDANESE_TO_BATAK = SymbolRange.range('ᮺ', 'ᯥ'); // 0x1bba - 0x1be5 - public static final SymbolRange BATAK_SIGN_TO_SIGNS = SymbolRange.range('᯦', '᯳'); // 0x1be6 - 0x1bf3 - public static final SymbolRange BATAK_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᯨ', 'ᯩ'); // 0x1be8 - 0x1be9 - public static final SymbolRange BATAK_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᯪ', 'ᯬ'); // 0x1bea - 0x1bec - public static final SymbolRange BATAK_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_CONSONANT_SIGNS = SymbolRange.range('ᯯ', 'ᯱ'); // 0x1bef - 0x1bf1 - public static final SymbolRange BATAK_SIGNS_SUBSET = SymbolRange.range('᯲', '᯳'); // 0x1bf2 - 0x1bf3 - public static final SymbolRange BATAK_PUNCTUATION = SymbolRange.range('᯼', '᯿'); // 0x1bfc - 0x1bff - public static final SymbolRange LEPCHA_CONSONANTS = SymbolRange.range('ᰀ', 'ᰣ'); // 0x1c00 - 0x1c23 - public static final SymbolRange LEPCHA_SUBJOINED_CONSONANTS_TO_DEPENDENT_VOWELS = SymbolRange.range('ᰤ', 'ᰫ'); // 0x1c24 - 0x1c2b - public static final SymbolRange LEPCHA_SUBJOINED_CONSONANTS_TO_VARIOUS_SIGNS = SymbolRange.range('ᰤ', '᰷'); // 0x1c24 - 0x1c37 - public static final SymbolRange LEPCHA_DEPENDENT_VOWELS_TO_CONSONANT_SIGNS = SymbolRange.range('ᰬ', 'ᰳ'); // 0x1c2c - 0x1c33 - public static final SymbolRange LEPCHA_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ᰴ', 'ᰵ'); // 0x1c34 - 0x1c35 - public static final SymbolRange LEPCHA_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ᰶ', '᰷'); // 0x1c36 - 0x1c37 - public static final SymbolRange LEPCHA_PUNCTUATION = SymbolRange.range('᰻', '᰿'); // 0x1c3b - 0x1c3f - public static final SymbolRange LEPCHA_DIGITS_SUBSET = SymbolRange.range('᱀', '᱉'); // 0x1c40 - 0x1c49 - public static final SymbolRange LEPCHA_ADDITIONAL_LETTERS = SymbolRange.range('ᱍ', 'ᱏ'); // 0x1c4d - 0x1c4f - public static final SymbolRange OL_CHIKI_DIGITS = SymbolRange.range('᱐', '᱙'); // 0x1c50 - 0x1c59 - public static final SymbolRange OL_CHIKI_LETTERS = SymbolRange.range('ᱚ', 'ᱷ'); // 0x1c5a - 0x1c77 - public static final SymbolRange OL_CHIKI_LETTERS_TO_MODIFIER_LETTERS = SymbolRange.range('ᱚ', 'ᱽ'); // 0x1c5a - 0x1c7d - public static final SymbolRange OL_CHIKI_MODIFIER_LETTERS = SymbolRange.range('ᱸ', 'ᱽ'); // 0x1c78 - 0x1c7d - public static final SymbolRange OL_CHIKI_PUNCTUATION = SymbolRange.range('᱾', '᱿'); // 0x1c7e - 0x1c7f - public static final SymbolRange CYRILLIC_EXTENDED_C_HISTORIC_LETTER_VARIANTS_SUBSET = SymbolRange.range('ᲀ', 'ᲈ'); // 0x1c80 - 0x1c88 - public static final SymbolRange GEORGIAN_EXTENDED_CAPITAL_LETTERS_MTAVRULI_TO_ADDITIONAL_LETTERS = SymbolRange.range('Ა', 'Ჺ'); // 0x1c90 - 0x1cba - public static final SymbolRange GEORGIAN_EXTENDED_ADDITIONAL_LETTERS_FOR_OSSETIAN_AND_ABKHAZ = SymbolRange.range('Ჽ', 'Ჿ'); // 0x1cbd - 0x1cbf - public static final SymbolRange SUNDANESE_SUPPLEMENT_PUNCTUATION_SUBSET = SymbolRange.range('᳀', '᳇'); // 0x1cc0 - 0x1cc7 - public static final SymbolRange VEDIC_EXTENSIONS_TONE_MARKS_FOR_THE_SAMAVEDA = SymbolRange.range('᳐', '᳒'); // 0x1cd0 - 0x1cd2 - public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_FOR_YAJURVEDIC_TO_TONE_MARKS_FOR_THE_SATAPATHABRAHMANA = SymbolRange.range('᳔', '᳠'); // 0x1cd4 - 0x1ce0 - public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_FOR_YAJURVEDIC_TO_DIACRITICS_FOR_VISARGA = SymbolRange.range('᳔', '᳨'); // 0x1cd4 - 0x1ce8 - public static final SymbolRange VEDIC_EXTENSIONS_DIACRITICS_FOR_VISARGA = SymbolRange.range('᳢', '᳨'); // 0x1ce2 - 0x1ce8 - public static final SymbolRange VEDIC_EXTENSIONS_NASALIZATION_SIGNS_SUBSET = SymbolRange.range('ᳩ', 'ᳬ'); // 0x1ce9 - 0x1cec - public static final SymbolRange VEDIC_EXTENSIONS_NASALIZATION_SIGNS_TO_ARDHAVISARGA = SymbolRange.range('ᳮ', 'ᳳ'); // 0x1cee - 0x1cf3 - public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_SUBSET = SymbolRange.range('ᳵ', 'ᳶ'); // 0x1cf5 - 0x1cf6 - public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_TO_SIGNS_FOR_JAIMINIYA_SAMA_VEDA = SymbolRange.range('᳷', '᳹'); // 0x1cf7 - 0x1cf9 - public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_FOR_JAIMINIYA_SAMA_VEDA = SymbolRange.range('᳸', '᳹'); // 0x1cf8 - 0x1cf9 - public static final SymbolRange PHONETIC_EXTENSIONS_LATIN_LETTERS_TO_GREEK_LETTERS = SymbolRange.range('ᴀ', 'ᴫ'); // 0x1d00 - 0x1d2b - public static final SymbolRange PHONETIC_EXTENSIONS_LATIN_LETTERS_TO_OTHER_PHONETIC_SYMBOLS = SymbolRange.range('ᴀ', 'ᵿ'); // 0x1d00 - 0x1d7f - public static final SymbolRange PHONETIC_EXTENSIONS_TO_PHONETIC_EXTENSIONS_SUPPLEMENT = SymbolRange.range('ᴀ', 'ᶿ'); // 0x1d00 - 0x1dbf - public static final SymbolRange PHONETIC_EXTENSIONS_LATIN_SUPERSCRIPT_MODIFIER_LETTERS_TO_GREEK_SUBSCRIPT_MODIFIER_LETTERS = SymbolRange.range('ᴬ', 'ᵪ'); // 0x1d2c - 0x1d6a - public static final SymbolRange PHONETIC_EXTENSIONS_LATIN_LETTER_TO_LATIN_LETTERS_WITH_MIDDLE_TILDE = SymbolRange.range('ᵫ', 'ᵷ'); // 0x1d6b - 0x1d77 - public static final SymbolRange PHONETIC_EXTENSIONS_TO_PHONETIC_EXTENSIONS_SUPPLEMENT_1 = SymbolRange.range('ᵹ', 'ᶚ'); // 0x1d79 - 0x1d9a - public static final SymbolRange PHONETIC_EXTENSIONS_SUPPLEMENT_MODIFIER_LETTERS = SymbolRange.range('ᶛ', 'ᶿ'); // 0x1d9b - 0x1dbf - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_SUPPLEMENT_USED_FOR_ANCIENT_GREEK_TO_MISCELLANEOUS_MARKS = SymbolRange.range('᷀', '᷹'); // 0x1dc0 - 0x1df9 - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_SUPPLEMENT_MISCELLANEOUS_MARKS_TO_ADDITIONAL_MARKS_FOR_UPA = SymbolRange.range('᷻', '᷿'); // 0x1dfb - 0x1dff - public static final SymbolRange LATIN_EXTENDED_ADDITIONAL_LATIN_GENERAL_USE_EXTENSIONS_TO_MEDIEVALIST_ADDITIONS = SymbolRange.range('Ḁ', 'ỿ'); // 0x1e00 - 0x1eff - public static final SymbolRange LATIN_EXTENDED_ADDITIONAL_TO_GREEK_EXTENDED = SymbolRange.range('Ḁ', 'ἕ'); // 0x1e00 - 0x1f15 - public static final SymbolRange LATIN_EXTENDED_ADDITIONAL_LATIN_GENERAL_USE_EXTENSIONS_TO_MEDIEVALIST_ADDITIONS_1 = SymbolRange.range('ẕ', 'ẝ'); // 0x1e95 - 0x1e9d - public static final SymbolRange LATIN_EXTENDED_ADDITIONAL_TO_GREEK_EXTENDED_1 = SymbolRange.range('ỿ', 'ἇ'); // 0x1eff - 0x1f07 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK = SymbolRange.range('ἀ', '῿'); // 0x1f00 - 0x1fff - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_7 = SymbolRange.range('Ἀ', 'Ἇ'); // 0x1f08 - 0x1f0f - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_14 = SymbolRange.range('ἐ', 'ἕ'); // 0x1f10 - 0x1f15 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_19 = SymbolRange.range('Ἐ', 'Ἕ'); // 0x1f18 - 0x1f1d - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_22 = SymbolRange.range('ἠ', 'ἧ'); // 0x1f20 - 0x1f27 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_27 = SymbolRange.range('ἠ', 'ὅ'); // 0x1f20 - 0x1f45 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_28 = SymbolRange.range('Ἠ', 'Ἧ'); // 0x1f28 - 0x1f2f - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_33 = SymbolRange.range('ἰ', 'ἷ'); // 0x1f30 - 0x1f37 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_43 = SymbolRange.range('Ἰ', 'Ἷ'); // 0x1f38 - 0x1f3f - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_1 = SymbolRange.range('ὀ', 'ὅ'); // 0x1f40 - 0x1f45 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_9 = SymbolRange.range('Ὀ', 'Ὅ'); // 0x1f48 - 0x1f4d - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_12 = SymbolRange.range('ὐ', 'ὗ'); // 0x1f50 - 0x1f57 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_21 = SymbolRange.range('Ὗ', 'ώ'); // 0x1f5f - 0x1f7d - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_23 = SymbolRange.range('ὠ', 'ὧ'); // 0x1f60 - 0x1f67 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_29 = SymbolRange.range('Ὠ', 'Ὧ'); // 0x1f68 - 0x1f6f - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_35 = SymbolRange.range('ὰ', 'ώ'); // 0x1f70 - 0x1f7d - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET = SymbolRange.range('ᾀ', 'ᾇ'); // 0x1f80 - 0x1f87 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_2 = SymbolRange.range('ᾀ', 'ᾴ'); // 0x1f80 - 0x1fb4 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_8 = SymbolRange.range('ᾈ', 'ᾏ'); // 0x1f88 - 0x1f8f - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_13 = SymbolRange.range('ᾐ', 'ᾗ'); // 0x1f90 - 0x1f97 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_18 = SymbolRange.range('ᾘ', 'ᾟ'); // 0x1f98 - 0x1f9f - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_24 = SymbolRange.range('ᾠ', 'ᾧ'); // 0x1fa0 - 0x1fa7 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_30 = SymbolRange.range('ᾨ', 'ᾯ'); // 0x1fa8 - 0x1faf - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_34 = SymbolRange.range('ᾰ', 'ᾴ'); // 0x1fb0 - 0x1fb4 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_37 = SymbolRange.range('ᾶ', 'ᾷ'); // 0x1fb6 - 0x1fb7 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_39 = SymbolRange.range('ᾶ', 'ᾼ'); // 0x1fb6 - 0x1fbc - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_41 = SymbolRange.range('Ᾰ', 'Ά'); // 0x1fb8 - 0x1fbb - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_45 = SymbolRange.range('᾿', '῁'); // 0x1fbf - 0x1fc1 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_3 = SymbolRange.range('ῂ', 'ῄ'); // 0x1fc2 - 0x1fc4 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_4 = SymbolRange.range('ῆ', 'ῇ'); // 0x1fc6 - 0x1fc7 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_5 = SymbolRange.range('ῆ', 'ῌ'); // 0x1fc6 - 0x1fcc - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_6 = SymbolRange.range('Ὲ', 'Ή'); // 0x1fc8 - 0x1fcb - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_10 = SymbolRange.range('῍', '῏'); // 0x1fcd - 0x1fcf - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_11 = SymbolRange.range('ῐ', 'ΐ'); // 0x1fd0 - 0x1fd3 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_15 = SymbolRange.range('ῖ', 'ῗ'); // 0x1fd6 - 0x1fd7 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_16 = SymbolRange.range('ῖ', 'Ί'); // 0x1fd6 - 0x1fdb - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_17 = SymbolRange.range('Ῐ', 'Ί'); // 0x1fd8 - 0x1fdb - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_20 = SymbolRange.range('῝', '῟'); // 0x1fdd - 0x1fdf - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_25 = SymbolRange.range('ῠ', 'ῧ'); // 0x1fe0 - 0x1fe7 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_26 = SymbolRange.range('ῠ', 'Ῥ'); // 0x1fe0 - 0x1fec - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_31 = SymbolRange.range('Ῠ', 'Ῥ'); // 0x1fe8 - 0x1fec - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_32 = SymbolRange.range('῭', '`'); // 0x1fed - 0x1fef - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_36 = SymbolRange.range('ῲ', 'ῴ'); // 0x1ff2 - 0x1ff4 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_38 = SymbolRange.range('ῶ', 'ῷ'); // 0x1ff6 - 0x1ff7 - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_40 = SymbolRange.range('ῶ', 'ῼ'); // 0x1ff6 - 0x1ffc - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_42 = SymbolRange.range('Ὸ', 'Ώ'); // 0x1ff8 - 0x1ffb - public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_44 = SymbolRange.range('´', '῾'); // 0x1ffd - 0x1ffe - public static final SymbolRange GENERAL_PUNCTUATION_SPACES = SymbolRange.range(' ', ' '); // 0x2000 - 0x200a - public static final SymbolRange GENERAL_PUNCTUATION_SPACES_TO_DEPRECATED = SymbolRange.range(' ', ''); // 0x2000 - 0x206f - public static final SymbolRange GENERAL_PUNCTUATION_FORMAT_CHARACTERS = SymbolRange.range('​', '‏'); // 0x200b - 0x200f - public static final SymbolRange GENERAL_PUNCTUATION_DASHES = SymbolRange.range('‐', '―'); // 0x2010 - 0x2015 - public static final SymbolRange GENERAL_PUNCTUATION_DASHES_TO_GENERAL_PUNCTUATION = SymbolRange.range('‐', '‧'); // 0x2010 - 0x2027 - public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION = SymbolRange.range('‖', '‗'); // 0x2016 - 0x2017 - public static final SymbolRange GENERAL_PUNCTUATION_QUOTATION_MARKS_AND_APOSTROPHE_SUBSET = SymbolRange.range('‛', '“'); // 0x201b - 0x201c - public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_1 = SymbolRange.range('†', '‧'); // 0x2020 - 0x2027 - public static final SymbolRange GENERAL_PUNCTUATION_SEPARATORS = SymbolRange.range('
', '
'); // 0x2028 - 0x2029 - public static final SymbolRange GENERAL_PUNCTUATION_FORMAT_CHARACTERS_1 = SymbolRange.range('‪', '‮'); // 0x202a - 0x202e - public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_2 = SymbolRange.range('‰', '‸'); // 0x2030 - 0x2038 - public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_GENERAL_PUNCTUATION = SymbolRange.range('‰', '⁃'); // 0x2030 - 0x2043 - public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_GENERAL_PUNCTUATION_1 = SymbolRange.range('※', '‾'); // 0x203b - 0x203e - public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_SUBSET_1 = SymbolRange.range('‿', '⁀'); // 0x203f - 0x2040 - public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_SUBSET = SymbolRange.range('⁁', '⁃'); // 0x2041 - 0x2043 - public static final SymbolRange GENERAL_PUNCTUATION_BRACKETS_TO_GENERAL_PUNCTUATION = SymbolRange.range('⁅', '⁑'); // 0x2045 - 0x2051 - public static final SymbolRange GENERAL_PUNCTUATION_DOUBLE_PUNCTUATION_FOR_VERTICAL_TEXT_TO_GENERAL_PUNCTUATION = SymbolRange.range('⁇', '⁑'); // 0x2047 - 0x2051 - public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_ARCHAIC_PUNCTUATION = SymbolRange.range('⁓', '⁞'); // 0x2053 - 0x205e - public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_ARCHAIC_PUNCTUATION_1 = SymbolRange.range('⁕', '⁞'); // 0x2055 - 0x205e - public static final SymbolRange GENERAL_PUNCTUATION_FORMAT_CHARACTER_TO_INVISIBLE_OPERATORS = SymbolRange.range('⁠', '⁤'); // 0x2060 - 0x2064 - public static final SymbolRange GENERAL_PUNCTUATION_FORMAT_CHARACTERS_TO_DEPRECATED = SymbolRange.range('⁦', ''); // 0x2066 - 0x206f - public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_TO_SUBSCRIPTS_FOR_UPA = SymbolRange.range('⁰', '₟'); // 0x2070 - 0x209f - public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_SUBSET = SymbolRange.range('⁴', '⁹'); // 0x2074 - 0x2079 - public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_SUBSET_1 = SymbolRange.range('⁺', '⁼'); // 0x207a - 0x207c - public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_SUBSET_2 = SymbolRange.range('⁽', '⁾'); // 0x207d - 0x207e - public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_SUBSET = SymbolRange.range('₀', '₉'); // 0x2080 - 0x2089 - public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_SUBSET_1 = SymbolRange.range('₊', '₌'); // 0x208a - 0x208c - public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_SUBSET_2 = SymbolRange.range('₍', '₎'); // 0x208d - 0x208e - public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_TO_SUBSCRIPTS_FOR_UPA = SymbolRange.range('ₐ', 'ₜ'); // 0x2090 - 0x209c - public static final SymbolRange CURRENCY_SYMBOLS_CURRENCY_SYMBOLS_SUBSET = SymbolRange.range('₠', '₿'); // 0x20a0 - 0x20bf - public static final SymbolRange CURRENCY_SYMBOLS_CURRENCY_SYMBOLS = SymbolRange.range('₠', '⃏'); // 0x20a0 - 0x20cf - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS = SymbolRange.range('⃐', '⃜'); // 0x20d0 - 0x20dc + public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_TO_ASCII_PUNCTUATION_AND_SYMBOLS = SymbolRange.range(' ', ''); // 0x20 - 0x7f + public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_1 = SymbolRange.range('!', '#'); // 0x21 - 0x23 + public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_2 = SymbolRange.range('%', '\''); // 0x25 - 0x27 + public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET_3 = SymbolRange.range('%', '*'); // 0x25 - 0x2a + public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION = SymbolRange.range(',', '/'); // 0x2c - 0x2f + public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_SUBSET = SymbolRange.range('.', '/'); // 0x2e - 0x2f + public static final SymbolRange BASIC_LATIN_ASCII_DIGITS = SymbolRange.range('0', '9'); // 0x30 - 0x39 + public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_1 = SymbolRange.range(':', ';'); // 0x3a - 0x3b + public static final SymbolRange BASIC_LATIN_ASCII_MATHEMATICAL_OPERATORS = SymbolRange.range('<', '>'); // 0x3c - 0x3e + public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_2 = SymbolRange.range('?', '@'); // 0x3f - 0x40 + public static final SymbolRange BASIC_LATIN_UPPERCASE_LATIN_ALPHABET = SymbolRange.range('A', 'Z'); // 0x41 - 0x5a + public static final SymbolRange BASIC_LATIN_ASCII_PUNCTUATION_AND_SYMBOLS_SUBSET = SymbolRange.range('[', ']'); // 0x5b - 0x5d + public static final SymbolRange BASIC_LATIN_LOWERCASE_LATIN_ALPHABET = SymbolRange.range('a', 'z'); // 0x61 - 0x7a + public static final SymbolRange BASIC_LATIN_TO_LATIN_1_SUPPLEMENT = SymbolRange.range('', 'Ÿ'); // 0x7f - 0x9f + public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET = SymbolRange.range('¢', '¥'); // 0xa2 - 0xa5 + public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_1 = SymbolRange.range('¢', '¦'); // 0xa2 - 0xa6 + public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_2 = SymbolRange.range('¨', '©'); // 0xa8 - 0xa9 + public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_3 = SymbolRange.range('®', '±'); // 0xae - 0xb1 + public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_4 = SymbolRange.range('²', '³'); // 0xb2 - 0xb3 + public static final SymbolRange LATIN_1_SUPPLEMENT_LATIN_1_PUNCTUATION_AND_SYMBOLS_SUBSET_5 = SymbolRange.range('¶', '·'); // 0xb6 - 0xb7 + public static final SymbolRange LATIN_1_SUPPLEMENT_VULGAR_FRACTIONS = SymbolRange.range('¼', '¾'); // 0xbc - 0xbe + public static final SymbolRange LATIN_1_SUPPLEMENT_LETTERS = SymbolRange.range('À', 'Ö'); // 0xc0 - 0xd6 + public static final SymbolRange LATIN_1_SUPPLEMENT_UPPERCASE_LETTERS = SymbolRange.range('Ø', 'Þ'); // 0xd8 - 0xde + public static final SymbolRange LATIN_1_SUPPLEMENT_UPPERCASE_LETTERS_TO_LOWERCASE_LETTERS = SymbolRange.range('Ø', 'ö'); // 0xd8 - 0xf6 + public static final SymbolRange LATIN_1_SUPPLEMENT_LOWERCASE_LETTERS = SymbolRange.range('ß', 'ö'); // 0xdf - 0xf6 + public static final SymbolRange LATIN_1_SUPPLEMENT_TO_SPACING_MODIFIER_LETTERS = SymbolRange.range('ø', 'ˁ'); // 0xf8 - 0x2c1 + public static final SymbolRange LATIN_1_SUPPLEMENT_LETTERS_1 = SymbolRange.range('ø', 'ÿ'); // 0xf8 - 0xff + public static final SymbolRange LATIN_EXTENDED_A_EUROPEAN_LATIN_SUBSET = SymbolRange.range('ķ', 'ĸ'); // 0x137 - 0x138 + public static final SymbolRange LATIN_EXTENDED_A_EUROPEAN_LATIN_TO_EUROPEAN_LATIN = SymbolRange.range('ň', 'ʼn'); // 0x148 - 0x149 + public static final SymbolRange LATIN_EXTENDED_A_EUROPEAN_LATIN_SUBSET_1 = SymbolRange.range('Ÿ', 'Ź'); // 0x178 - 0x179 + public static final SymbolRange LATIN_EXTENDED_A_EUROPEAN_LATIN_TO_EUROPEAN_LATIN_1 = SymbolRange.range('ž', 'ƀ'); // 0x17e - 0x180 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET = SymbolRange.range('Ɓ', 'Ƃ'); // 0x181 - 0x182 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_1 = SymbolRange.range('Ɔ', 'Ƈ'); // 0x186 - 0x187 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_2 = SymbolRange.range('Ɖ', 'Ƌ'); // 0x189 - 0x18b + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_3 = SymbolRange.range('ƌ', 'ƍ'); // 0x18c - 0x18d + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_4 = SymbolRange.range('Ǝ', 'Ƒ'); // 0x18e - 0x191 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_5 = SymbolRange.range('Ɠ', 'Ɣ'); // 0x193 - 0x194 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_6 = SymbolRange.range('Ɩ', 'Ƙ'); // 0x196 - 0x198 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_7 = SymbolRange.range('ƙ', 'ƛ'); // 0x199 - 0x19b + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_8 = SymbolRange.range('Ɯ', 'Ɲ'); // 0x19c - 0x19d + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_9 = SymbolRange.range('Ɵ', 'Ơ'); // 0x19f - 0x1a0 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_10 = SymbolRange.range('Ʀ', 'Ƨ'); // 0x1a6 - 0x1a7 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_11 = SymbolRange.range('ƪ', 'ƫ'); // 0x1aa - 0x1ab + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_12 = SymbolRange.range('Ʈ', 'Ư'); // 0x1ae - 0x1af + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_13 = SymbolRange.range('Ʊ', 'Ƴ'); // 0x1b1 - 0x1b3 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_14 = SymbolRange.range('Ʒ', 'Ƹ'); // 0x1b7 - 0x1b8 + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_15 = SymbolRange.range('ƹ', 'ƺ'); // 0x1b9 - 0x1ba + public static final SymbolRange LATIN_EXTENDED_B_NON_EUROPEAN_AND_HISTORIC_LATIN_SUBSET_16 = SymbolRange.range('ƽ', 'ƿ'); // 0x1bd - 0x1bf + public static final SymbolRange LATIN_EXTENDED_B_AFRICAN_LETTERS_FOR_CLICKS = SymbolRange.range('ǀ', 'ǃ'); // 0x1c0 - 0x1c3 + public static final SymbolRange LATIN_EXTENDED_B_PINYIN_DIACRITIC_VOWEL_COMBINATIONS_TO_PINYIN_DIACRITIC_VOWEL_COMBINATIONS = SymbolRange.range('ǜ', 'ǝ'); // 0x1dc - 0x1dd + public static final SymbolRange LATIN_EXTENDED_B_PHONETIC_AND_HISTORIC_LETTERS_SUBSET = SymbolRange.range('ǯ', 'ǰ'); // 0x1ef - 0x1f0 + public static final SymbolRange LATIN_EXTENDED_B_PHONETIC_AND_HISTORIC_LETTERS_SUBSET_1 = SymbolRange.range('Ƕ', 'Ǹ'); // 0x1f6 - 0x1f8 + public static final SymbolRange LATIN_EXTENDED_B_ADDITIONS_FOR_LIVONIAN_TO_ADDITIONS_FOR_AFRICANIST_LINGUISTICS = SymbolRange.range('ȳ', 'ȹ'); // 0x233 - 0x239 + public static final SymbolRange LATIN_EXTENDED_B_ADDITIONS_FOR_SENCOTEN_SUBSET = SymbolRange.range('Ⱥ', 'Ȼ'); // 0x23a - 0x23b + public static final SymbolRange LATIN_EXTENDED_B_ADDITIONS_FOR_SENCOTEN_SUBSET_1 = SymbolRange.range('Ƚ', 'Ⱦ'); // 0x23d - 0x23e + public static final SymbolRange LATIN_EXTENDED_B_ADDITIONS_FOR_AFRICANIST_LINGUISTICS_1 = SymbolRange.range('ȿ', 'ɀ'); // 0x23f - 0x240 + public static final SymbolRange LATIN_EXTENDED_B_MISCELLANEOUS_ADDITIONS_SUBSET = SymbolRange.range('Ƀ', 'Ɇ'); // 0x243 - 0x246 + public static final SymbolRange LATIN_EXTENDED_B_TO_IPA_EXTENSIONS = SymbolRange.range('ɏ', 'ʓ'); // 0x24f - 0x293 + public static final SymbolRange IPA_EXTENSIONS_IPA_EXTENSIONS_TO_ADDITIONS_FOR_SINOLOGY = SymbolRange.range('ɐ', 'ʯ'); // 0x250 - 0x2af + public static final SymbolRange IPA_EXTENSIONS_IPA_EXTENSIONS_TO_ADDITIONS_FOR_SINOLOGY_1 = SymbolRange.range('ʕ', 'ʯ'); // 0x295 - 0x2af + public static final SymbolRange SPACING_MODIFIER_LETTERS_LATIN_SUPERSCRIPT_MODIFIER_LETTERS_TO_MISCELLANEOUS_PHONETIC_MODIFIERS = SymbolRange.range('ʰ', 'ˁ'); // 0x2b0 - 0x2c1 + public static final SymbolRange SPACING_MODIFIER_LETTERS_LATIN_SUPERSCRIPT_MODIFIER_LETTERS_TO_UPA_MODIFIERS = SymbolRange.range('ʰ', '˿'); // 0x2b0 - 0x2ff + public static final SymbolRange SPACING_MODIFIER_LETTERS_MISCELLANEOUS_PHONETIC_MODIFIERS_SUBSET = SymbolRange.range('˂', '˅'); // 0x2c2 - 0x2c5 + public static final SymbolRange SPACING_MODIFIER_LETTERS_MISCELLANEOUS_PHONETIC_MODIFIERS_SUBSET_1 = SymbolRange.range('ˆ', 'ˑ'); // 0x2c6 - 0x2d1 + public static final SymbolRange SPACING_MODIFIER_LETTERS_MISCELLANEOUS_PHONETIC_MODIFIERS_TO_ADDITIONS_BASED_ON_1989_IPA = SymbolRange.range('˒', '˟'); // 0x2d2 - 0x2df + public static final SymbolRange SPACING_MODIFIER_LETTERS_ADDITIONS_BASED_ON_1989_IPA_SUBSET = SymbolRange.range('ˠ', 'ˤ'); // 0x2e0 - 0x2e4 + public static final SymbolRange SPACING_MODIFIER_LETTERS_TONE_LETTERS_TO_EXTENDED_BOPOMOFO_TONE_MARKS = SymbolRange.range('˥', '˫'); // 0x2e5 - 0x2eb + public static final SymbolRange SPACING_MODIFIER_LETTERS_UPA_MODIFIERS = SymbolRange.range('˯', '˿'); // 0x2ef - 0x2ff + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_ORDINARY_DIACRITICS_TO_MEDIEVAL_SUPERSCRIPT_LETTER_DIACRITICS = SymbolRange.range('̀', 'ͯ'); // 0x300 - 0x36f + public static final SymbolRange GREEK_AND_COPTIC_ARCHAIC_LETTERS_TO_ARCHAIC_LETTERS = SymbolRange.range('Ͱ', 'ʹ'); // 0x370 - 0x374 + public static final SymbolRange GREEK_AND_COPTIC_ARCHAIC_LETTERS_SUBSET = SymbolRange.range('Ͷ', 'ͷ'); // 0x376 - 0x377 + public static final SymbolRange GREEK_AND_COPTIC_IOTA_SUBSCRIPT_TO_LOWERCASE_OF_EDITORIAL_SYMBOLS = SymbolRange.range('ͺ', 'ͽ'); // 0x37a - 0x37d + public static final SymbolRange GREEK_AND_COPTIC_LOWERCASE_OF_EDITORIAL_SYMBOLS = SymbolRange.range('ͻ', 'ͽ'); // 0x37b - 0x37d + public static final SymbolRange GREEK_AND_COPTIC_SPACING_ACCENT_MARKS = SymbolRange.range('΄', '΅'); // 0x384 - 0x385 + public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET = SymbolRange.range('Έ', 'Ί'); // 0x388 - 0x38a + public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_1 = SymbolRange.range('Ύ', 'Ώ'); // 0x38e - 0x38f + public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_2 = SymbolRange.range('Ύ', 'Ρ'); // 0x38e - 0x3a1 + public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_3 = SymbolRange.range('Α', 'Ρ'); // 0x391 - 0x3a1 + public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_4 = SymbolRange.range('Σ', 'Ϋ'); // 0x3a3 - 0x3ab + public static final SymbolRange GREEK_AND_COPTIC_LETTERS_TO_VARIANT_LETTERFORMS_AND_SYMBOLS = SymbolRange.range('Σ', 'ϵ'); // 0x3a3 - 0x3f5 + public static final SymbolRange GREEK_AND_COPTIC_LETTERS_SUBSET_5 = SymbolRange.range('ά', 'ώ'); // 0x3ac - 0x3ce + public static final SymbolRange GREEK_AND_COPTIC_VARIANT_LETTERFORMS_SUBSET = SymbolRange.range('ϐ', 'ϑ'); // 0x3d0 - 0x3d1 + public static final SymbolRange GREEK_AND_COPTIC_VARIANT_LETTERFORMS_SUBSET_1 = SymbolRange.range('ϒ', 'ϔ'); // 0x3d2 - 0x3d4 + public static final SymbolRange GREEK_AND_COPTIC_VARIANT_LETTERFORMS_SUBSET_2 = SymbolRange.range('ϕ', 'ϗ'); // 0x3d5 - 0x3d7 + public static final SymbolRange GREEK_AND_COPTIC_COPTIC_LETTERS_DERIVED_FROM_DEMOTIC_TO_VARIANT_LETTERFORMS = SymbolRange.range('ϯ', 'ϳ'); // 0x3ef - 0x3f3 + public static final SymbolRange GREEK_AND_COPTIC_TO_CYRILLIC = SymbolRange.range('Ϸ', 'ҁ'); // 0x3f7 - 0x481 + public static final SymbolRange GREEK_AND_COPTIC_VARIANT_LETTERFORM_TO_VARIANT_LETTERFORM = SymbolRange.range('Ϲ', 'Ϻ'); // 0x3f9 - 0x3fa + public static final SymbolRange GREEK_AND_COPTIC_ARCHAIC_LETTERS_TO_ARCHAIC_LETTERS_1 = SymbolRange.range('ϻ', 'ϼ'); // 0x3fb - 0x3fc + public static final SymbolRange GREEK_AND_COPTIC_TO_CYRILLIC_1 = SymbolRange.range('Ͻ', 'Я'); // 0x3fd - 0x42f + public static final SymbolRange CYRILLIC_CYRILLIC_EXTENSIONS_TO_ADDITIONS_FOR_NIVKH = SymbolRange.range('Ѐ', 'ӿ'); // 0x400 - 0x4ff + public static final SymbolRange CYRILLIC_BASIC_RUSSIAN_ALPHABET_TO_CYRILLIC_EXTENSIONS = SymbolRange.range('а', 'џ'); // 0x430 - 0x45f + public static final SymbolRange CYRILLIC_HISTORIC_MISCELLANEOUS_SUBSET = SymbolRange.range('҃', '҇'); // 0x483 - 0x487 + public static final SymbolRange CYRILLIC_HISTORIC_MISCELLANEOUS_SUBSET_1 = SymbolRange.range('҃', '҉'); // 0x483 - 0x489 + public static final SymbolRange CYRILLIC_HISTORIC_MISCELLANEOUS_SUBSET_2 = SymbolRange.range('҈', '҉'); // 0x488 - 0x489 + public static final SymbolRange CYRILLIC_TO_CYRILLIC_SUPPLEMENT = SymbolRange.range('Ҋ', 'ԯ'); // 0x48a - 0x52f + public static final SymbolRange CYRILLIC_EXTENDED_CYRILLIC_SUBSET = SymbolRange.range('Ӏ', 'Ӂ'); // 0x4c0 - 0x4c1 + public static final SymbolRange CYRILLIC_EXTENDED_CYRILLIC_SUBSET_1 = SymbolRange.range('ӎ', 'ӏ'); // 0x4ce - 0x4cf + public static final SymbolRange CYRILLIC_SUPPLEMENT_KOMI_LETTERS_TO_KHANTY_LETTERS = SymbolRange.range('Ԁ', 'ԯ'); // 0x500 - 0x52f + public static final SymbolRange CYRILLIC_SUPPLEMENT_ARMENIAN_TO_RELIGIOUS_SYMBOLS = SymbolRange.range('԰', '֏'); // 0x530 - 0x58f + public static final SymbolRange CYRILLIC_SUPPLEMENT_UPPERCASE_LETTERS_SUBSET = SymbolRange.range('Ա', 'Ֆ'); // 0x531 - 0x556 + public static final SymbolRange CYRILLIC_SUPPLEMENT_MODIFIER_LETTERS_SUBSET = SymbolRange.range('՚', '՟'); // 0x55a - 0x55f + public static final SymbolRange CYRILLIC_SUPPLEMENT_LOWERCASE_LETTERS = SymbolRange.range('ՠ', 'ֈ'); // 0x560 - 0x588 + public static final SymbolRange CYRILLIC_SUPPLEMENT_PUNCTUATION_SUBSET = SymbolRange.range('։', '֊'); // 0x589 - 0x58a + public static final SymbolRange CYRILLIC_SUPPLEMENT_RELIGIOUS_SYMBOLS = SymbolRange.range('֍', '֎'); // 0x58d - 0x58e + public static final SymbolRange CYRILLIC_SUPPLEMENT_RELIGIOUS_SYMBOLS_TO_RELIGIOUS_SYMBOLS = SymbolRange.range('֍', '֏'); // 0x58d - 0x58f + public static final SymbolRange CYRILLIC_SUPPLEMENT_HEBREW_TO_ADDITIONAL_PUNCTUATION = SymbolRange.range('֐', '׿'); // 0x590 - 0x5ff + public static final SymbolRange CYRILLIC_SUPPLEMENT_CANTILLATION_MARKS_TO_POINTS_AND_PUNCTUATION = SymbolRange.range('֑', 'ֽ'); // 0x591 - 0x5bd + public static final SymbolRange CYRILLIC_SUPPLEMENT_POINTS_AND_PUNCTUATION_SUBSET = SymbolRange.range('ׁ', 'ׂ'); // 0x5c1 - 0x5c2 + public static final SymbolRange CYRILLIC_SUPPLEMENT_PUNCTA_EXTRAORDINARIA = SymbolRange.range('ׄ', 'ׅ'); // 0x5c4 - 0x5c5 + public static final SymbolRange CYRILLIC_SUPPLEMENT_BASED_ON_ISO_8859_8_SUBSET = SymbolRange.range('א', 'ת'); // 0x5d0 - 0x5ea + public static final SymbolRange CYRILLIC_SUPPLEMENT_SIGN_TO_YIDDISH_DIGRAPHS = SymbolRange.range('ׯ', 'ײ'); // 0x5ef - 0x5f2 + public static final SymbolRange CYRILLIC_SUPPLEMENT_ADDITIONAL_PUNCTUATION_SUBSET = SymbolRange.range('׳', '״'); // 0x5f3 - 0x5f4 + public static final SymbolRange ARABIC_SUBTENDING_MARKS_TO_SUBTENDING_MARKS = SymbolRange.range('؀', '؅'); // 0x600 - 0x605 + public static final SymbolRange ARABIC_SUBTENDING_MARKS_TO_SIGNS_FOR_SINDHI = SymbolRange.range('؀', 'ۿ'); // 0x600 - 0x6ff + public static final SymbolRange ARABIC_RADIX_SYMBOLS_TO_RADIX_SYMBOLS = SymbolRange.range('؆', '؈'); // 0x606 - 0x608 + public static final SymbolRange ARABIC_PUNCTUATION = SymbolRange.range('؉', '؊'); // 0x609 - 0x60a + public static final SymbolRange ARABIC_PUNCTUATION_1 = SymbolRange.range('،', '؍'); // 0x60c - 0x60d + public static final SymbolRange ARABIC_POETIC_MARKS = SymbolRange.range('؎', '؏'); // 0x60e - 0x60f + public static final SymbolRange ARABIC_HONORIFICS_TO_QURANIC_ANNOTATION_SIGNS = SymbolRange.range('ؐ', 'ؚ'); // 0x610 - 0x61a + public static final SymbolRange ARABIC_PUNCTUATION_SUBSET = SymbolRange.range('؞', '؟'); // 0x61e - 0x61f + public static final SymbolRange ARABIC_ADDITION_FOR_KASHMIRI_TO_ADDITIONS_FOR_EARLY_PERSIAN_AND_AZERBAIJANI = SymbolRange.range('ؠ', 'ؿ'); // 0x620 - 0x63f + public static final SymbolRange ARABIC_ADDITION_FOR_KASHMIRI_TO_BASED_ON_ISO_8859_6 = SymbolRange.range('ؠ', 'ي'); // 0x620 - 0x64a + public static final SymbolRange ARABIC_BASED_ON_ISO_8859_6_SUBSET = SymbolRange.range('ف', 'ي'); // 0x641 - 0x64a + public static final SymbolRange ARABIC_TASHKIL_FROM_ISO_8859_6_TO_OTHER_COMBINING_MARKS = SymbolRange.range('ً', 'ٟ'); // 0x64b - 0x65f + public static final SymbolRange ARABIC_ARABIC_INDIC_DIGITS = SymbolRange.range('٠', '٩'); // 0x660 - 0x669 + public static final SymbolRange ARABIC_PUNCTUATION_4 = SymbolRange.range('٪', '٭'); // 0x66a - 0x66d + public static final SymbolRange ARABIC_ARCHAIC_LETTERS = SymbolRange.range('ٮ', 'ٯ'); // 0x66e - 0x66f + public static final SymbolRange ARABIC_EXTENDED_ARABIC_LETTERS_TO_EXTENDED_ARABIC_LETTERS = SymbolRange.range('ٱ', 'ۓ'); // 0x671 - 0x6d3 + public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET = SymbolRange.range('ۖ', 'ۜ'); // 0x6d6 - 0x6dc + public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET_1 = SymbolRange.range('۟', 'ۤ'); // 0x6df - 0x6e4 + public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET_2 = SymbolRange.range('ۥ', 'ۦ'); // 0x6e5 - 0x6e6 + public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET_3 = SymbolRange.range('ۧ', 'ۨ'); // 0x6e7 - 0x6e8 + public static final SymbolRange ARABIC_QURANIC_ANNOTATION_SIGNS_SUBSET_4 = SymbolRange.range('۪', 'ۭ'); // 0x6ea - 0x6ed + public static final SymbolRange ARABIC_EXTENDED_ARABIC_LETTERS_FOR_PARKARI = SymbolRange.range('ۮ', 'ۯ'); // 0x6ee - 0x6ef + public static final SymbolRange ARABIC_EASTERN_ARABIC_INDIC_DIGITS = SymbolRange.range('۰', '۹'); // 0x6f0 - 0x6f9 + public static final SymbolRange ARABIC_EXTENDED_ARABIC_LETTERS_2 = SymbolRange.range('ۺ', 'ۼ'); // 0x6fa - 0x6fc + public static final SymbolRange ARABIC_SIGNS_FOR_SINDHI = SymbolRange.range('۽', '۾'); // 0x6fd - 0x6fe + public static final SymbolRange SYRIAC_SYRIAC_PUNCTUATION_AND_SIGNS_SUBSET = SymbolRange.range('܀', '܍'); // 0x700 - 0x70d + public static final SymbolRange SYRIAC_SYRIAC_PUNCTUATION_AND_SIGNS_TO_SOGDIAN_LETTERS = SymbolRange.range('܀', 'ݏ'); // 0x700 - 0x74f + public static final SymbolRange SYRIAC_SYRIAC_LETTERS_TO_PERSIAN_LETTERS = SymbolRange.range('ܒ', 'ܯ'); // 0x712 - 0x72f + public static final SymbolRange SYRIAC_SYRIAC_POINTS_VOWELS_TO_SYRIAC_MARKS = SymbolRange.range('ܰ', '݊'); // 0x730 - 0x74a + public static final SymbolRange SYRIAC_TO_THAANA = SymbolRange.range('ݍ', 'ޥ'); // 0x74d - 0x7a5 + public static final SymbolRange THAANA_BASIC_CONSONANTS_TO_CONSONANT_FOR_ADDU_DIALECT = SymbolRange.range('ހ', '޿'); // 0x780 - 0x7bf + public static final SymbolRange THAANA_VOWELS = SymbolRange.range('ަ', 'ް'); // 0x7a6 - 0x7b0 + public static final SymbolRange NKO_DIGITS = SymbolRange.range('߀', '߉'); // 0x7c0 - 0x7c9 + public static final SymbolRange NKO_LETTERS_TO_ARCHAIC_LETTERS = SymbolRange.range('ߊ', 'ߪ'); // 0x7ca - 0x7ea + public static final SymbolRange NKO_TONE_MARKS_TO_OTHER_DIACRITICS = SymbolRange.range('߫', '߳'); // 0x7eb - 0x7f3 + public static final SymbolRange NKO_TONAL_APOSTROPHES = SymbolRange.range('ߴ', 'ߵ'); // 0x7f4 - 0x7f5 + public static final SymbolRange NKO_PUNCTUATION = SymbolRange.range('߷', '߹'); // 0x7f7 - 0x7f9 + public static final SymbolRange NKO_CURRENCY_SYMBOLS = SymbolRange.range('߾', '߿'); // 0x7fe - 0x7ff + public static final SymbolRange SAMARITAN_LETTERS = SymbolRange.range('ࠀ', 'ࠕ'); // 0x800 - 0x815 + public static final SymbolRange SAMARITAN_CONSONANT_MODIFIERS_SUBSET = SymbolRange.range('ࠖ', '࠙'); // 0x816 - 0x819 + public static final SymbolRange SAMARITAN_CONSONANT_MODIFIERS_TO_VOWEL_SIGNS = SymbolRange.range('ࠛ', 'ࠣ'); // 0x81b - 0x823 + public static final SymbolRange SAMARITAN_VOWEL_SIGNS_SUBSET = SymbolRange.range('ࠥ', 'ࠧ'); // 0x825 - 0x827 + public static final SymbolRange SAMARITAN_VOWEL_SIGNS_TO_VOWEL_SIGNS = SymbolRange.range('ࠩ', '࠭'); // 0x829 - 0x82d + public static final SymbolRange SAMARITAN_PUNCTUATION_SUBSET = SymbolRange.range('࠰', '࠾'); // 0x830 - 0x83e + public static final SymbolRange MANDAIC_LETTERS = SymbolRange.range('ࡀ', 'ࡘ'); // 0x840 - 0x858 + public static final SymbolRange MANDAIC_DIACRITICS_SUBSET = SymbolRange.range('࡙', '࡛'); // 0x859 - 0x85b + public static final SymbolRange SYRIAC_SUPPLEMENT_SYRIAC_LETTERS_SUBSET = SymbolRange.range('ࡠ', 'ࡪ'); // 0x860 - 0x86a + public static final SymbolRange ARABIC_EXTENDED_A_ARABIC_LETTERS_FOR_AFRICAN_LANGUAGES_TO_ARABIC_LETTERS_FOR_ARWI = SymbolRange.range('ࢠ', 'ࢴ'); // 0x8a0 - 0x8b4 + public static final SymbolRange ARABIC_EXTENDED_A_ARABIC_LETTERS_FOR_BRAVANESE_TO_ARABIC_LETTERS_FOR_HAUSA_WOLOF_AND_OTHER_AFRICAN_ORTHOGRAPHIES = SymbolRange.range('ࢶ', 'ࣇ'); // 0x8b6 - 0x8c7 + public static final SymbolRange ARABIC_EXTENDED_A_QURANIC_ANNOTATION_SIGNS_SUBSET = SymbolRange.range('࣓', '࣡'); // 0x8d3 - 0x8e1 + public static final SymbolRange ARABIC_EXTENDED_A_TO_DEVANAGARI = SymbolRange.range('ࣣ', 'ं'); // 0x8e3 - 0x902 + public static final SymbolRange ARABIC_EXTENDED_A_TO_DEVANAGARI_1 = SymbolRange.range('ࣣ', 'ः'); // 0x8e3 - 0x903 + public static final SymbolRange DEVANAGARI_VARIOUS_SIGNS_TO_SINDHI_IMPLOSIVES = SymbolRange.range('ऀ', 'ॿ'); // 0x900 - 0x97f + public static final SymbolRange DEVANAGARI_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ऄ', 'ह'); // 0x904 - 0x939 + public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ऺ', '़'); // 0x93a - 0x93c + public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ा', 'ी'); // 0x93e - 0x940 + public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ा', 'ॏ'); // 0x93e - 0x94f + public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ु', 'ै'); // 0x941 - 0x948 + public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ॉ', 'ौ'); // 0x949 - 0x94c + public static final SymbolRange DEVANAGARI_DEPENDENT_VOWEL_SIGNS_2 = SymbolRange.range('ॎ', 'ॏ'); // 0x94e - 0x94f + public static final SymbolRange DEVANAGARI_VEDIC_TONE_MARKS_TO_DEPENDENT_VOWEL_SIGNS_FOR_KASHMIRI = SymbolRange.range('॑', 'ॗ'); // 0x951 - 0x957 + public static final SymbolRange DEVANAGARI_ADDITIONAL_CONSONANTS_TO_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('क़', 'ॡ'); // 0x958 - 0x961 + public static final SymbolRange DEVANAGARI_ADDITIONAL_VOWELS_FOR_SANSKRIT_SUBSET = SymbolRange.range('ॢ', 'ॣ'); // 0x962 - 0x963 + public static final SymbolRange DEVANAGARI_GENERIC_PUNCTUATION_FOR_SCRIPTS_OF_INDIA = SymbolRange.range('।', '॥'); // 0x964 - 0x965 + public static final SymbolRange DEVANAGARI_DIGITS = SymbolRange.range('०', '९'); // 0x966 - 0x96f + public static final SymbolRange DEVANAGARI_ADDITIONAL_SIGNS_TO_SINDHI_IMPLOSIVES = SymbolRange.range('ॱ', 'ঀ'); // 0x971 - 0x980 + public static final SymbolRange DEVANAGARI_INDEPENDENT_VOWEL_FOR_MARATHI_TO_SINDHI_IMPLOSIVES = SymbolRange.range('ॲ', 'ঀ'); // 0x972 - 0x980 + public static final SymbolRange BENGALI_VARIOUS_SIGNS_TO_SIGNS = SymbolRange.range('ঀ', '৿'); // 0x980 - 0x9ff + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_2 = SymbolRange.range('ঁ', 'ঃ'); // 0x981 - 0x983 + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_6 = SymbolRange.range('ং', 'ঃ'); // 0x982 - 0x983 + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_2 = SymbolRange.range('অ', 'ঌ'); // 0x985 - 0x98c + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_6 = SymbolRange.range('এ', 'ঐ'); // 0x98f - 0x990 + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ও', 'ন'); // 0x993 - 0x9a8 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_4 = SymbolRange.range('প', 'র'); // 0x9aa - 0x9b0 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_15 = SymbolRange.range('শ', 'হ'); // 0x9b6 - 0x9b9 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_13 = SymbolRange.range('া', 'ী'); // 0x9be - 0x9c0 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_19 = SymbolRange.range('া', 'ৄ'); // 0x9be - 0x9c4 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ু', 'ৄ'); // 0x9c1 - 0x9c4 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_6 = SymbolRange.range('ে', 'ৈ'); // 0x9c7 - 0x9c8 + public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ো', 'ৌ'); // 0x9cb - 0x9cc + public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ো', '্'); // 0x9cb - 0x9cd + public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_SUBSET_1 = SymbolRange.range('ড়', 'ঢ়'); // 0x9dc - 0x9dd + public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_TO_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('য়', 'ৡ'); // 0x9df - 0x9e1 + public static final SymbolRange BENGALI_ADDITIONAL_VOWELS_FOR_SANSKRIT_SUBSET_1 = SymbolRange.range('ৢ', 'ৣ'); // 0x9e2 - 0x9e3 + public static final SymbolRange BENGALI_DIGITS = SymbolRange.range('০', '৯'); // 0x9e6 - 0x9ef + public static final SymbolRange BENGALI_ADDITIONS_FOR_ASSAMESE = SymbolRange.range('ৰ', 'ৱ'); // 0x9f0 - 0x9f1 + public static final SymbolRange BENGALI_CURRENCY_SYMBOLS = SymbolRange.range('৲', '৳'); // 0x9f2 - 0x9f3 + public static final SymbolRange BENGALI_HISTORIC_SYMBOLS_FOR_FRACTIONAL_VALUES = SymbolRange.range('৴', '৹'); // 0x9f4 - 0x9f9 + public static final SymbolRange BENGALI_SIGN_TO_SIGN = SymbolRange.range('৺', '৻'); // 0x9fa - 0x9fb + public static final SymbolRange BENGALI_GURMUKHI_TO_SIGNS = SymbolRange.range('਀', '੿'); // 0xa00 - 0xa7f + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ਁ', 'ਂ'); // 0xa01 - 0xa02 + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_3 = SymbolRange.range('ਁ', 'ਃ'); // 0xa01 - 0xa03 + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET = SymbolRange.range('ਅ', 'ਊ'); // 0xa05 - 0xa0a + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_7 = SymbolRange.range('ਏ', 'ਐ'); // 0xa0f - 0xa10 + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_CONSONANTS_1 = SymbolRange.range('ਓ', 'ਨ'); // 0xa13 - 0xa28 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_5 = SymbolRange.range('ਪ', 'ਰ'); // 0xa2a - 0xa30 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_10 = SymbolRange.range('ਲ', 'ਲ਼'); // 0xa32 - 0xa33 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_12 = SymbolRange.range('ਵ', 'ਸ਼'); // 0xa35 - 0xa36 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_16 = SymbolRange.range('ਸ', 'ਹ'); // 0xa38 - 0xa39 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_14 = SymbolRange.range('ਾ', 'ੀ'); // 0xa3e - 0xa40 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_16 = SymbolRange.range('ਾ', 'ੂ'); // 0xa3e - 0xa42 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ੁ', 'ੂ'); // 0xa41 - 0xa42 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_7 = SymbolRange.range('ੇ', 'ੈ'); // 0xa47 - 0xa48 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ੋ', '੍'); // 0xa4b - 0xa4d + public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_SUBSET = SymbolRange.range('ਖ਼', 'ੜ'); // 0xa59 - 0xa5c + public static final SymbolRange BENGALI_DIGITS_1 = SymbolRange.range('੦', '੯'); // 0xa66 - 0xa6f + public static final SymbolRange BENGALI_SIGNS_1 = SymbolRange.range('ੰ', 'ੱ'); // 0xa70 - 0xa71 + public static final SymbolRange BENGALI_VOWEL_BASES_TO_VOWEL_BASES = SymbolRange.range('ੲ', 'ੴ'); // 0xa72 - 0xa74 + public static final SymbolRange BENGALI_GUJARATI_TO_TRANSLITERATION_SIGNS = SymbolRange.range('઀', '૿'); // 0xa80 - 0xaff + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('ઁ', 'ં'); // 0xa81 - 0xa82 + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_4 = SymbolRange.range('ઁ', 'ઃ'); // 0xa81 - 0xa83 + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_4 = SymbolRange.range('અ', 'ઍ'); // 0xa85 - 0xa8d + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_9 = SymbolRange.range('એ', 'ઑ'); // 0xa8f - 0xa91 + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_CONSONANTS_2 = SymbolRange.range('ઓ', 'ન'); // 0xa93 - 0xaa8 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_6 = SymbolRange.range('પ', 'ર'); // 0xaaa - 0xab0 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_9 = SymbolRange.range('લ', 'ળ'); // 0xab2 - 0xab3 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_13 = SymbolRange.range('વ', 'હ'); // 0xab5 - 0xab9 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_15 = SymbolRange.range('ા', 'ી'); // 0xabe - 0xac0 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_18 = SymbolRange.range('ા', 'ૅ'); // 0xabe - 0xac5 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_4 = SymbolRange.range('ુ', 'ૅ'); // 0xac1 - 0xac5 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_9 = SymbolRange.range('ે', 'ૈ'); // 0xac7 - 0xac8 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_10 = SymbolRange.range('ે', 'ૉ'); // 0xac7 - 0xac9 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_11 = SymbolRange.range('ો', 'ૌ'); // 0xacb - 0xacc + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ો', '્'); // 0xacb - 0xacd + public static final SymbolRange BENGALI_ADDITIONAL_VOWELS_FOR_SANSKRIT_SUBSET = SymbolRange.range('ૠ', 'ૡ'); // 0xae0 - 0xae1 + public static final SymbolRange BENGALI_ADDITIONAL_VOWELS_FOR_SANSKRIT_SUBSET_2 = SymbolRange.range('ૢ', 'ૣ'); // 0xae2 - 0xae3 + public static final SymbolRange BENGALI_DIGITS_2 = SymbolRange.range('૦', '૯'); // 0xae6 - 0xaef + public static final SymbolRange BENGALI_TRANSLITERATION_SIGNS = SymbolRange.range('ૺ', '૿'); // 0xafa - 0xaff + public static final SymbolRange BENGALI_ORIYA_TO_FRACTION_SIGNS = SymbolRange.range('଀', '୿'); // 0xb00 - 0xb7f + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_5 = SymbolRange.range('ଁ', 'ଃ'); // 0xb01 - 0xb03 + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_7 = SymbolRange.range('ଂ', 'ଃ'); // 0xb02 - 0xb03 + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_3 = SymbolRange.range('ଅ', 'ଌ'); // 0xb05 - 0xb0c + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_8 = SymbolRange.range('ଏ', 'ଐ'); // 0xb0f - 0xb10 + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_CONSONANTS_3 = SymbolRange.range('ଓ', 'ନ'); // 0xb13 - 0xb28 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_7 = SymbolRange.range('ପ', 'ର'); // 0xb2a - 0xb30 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_11 = SymbolRange.range('ଲ', 'ଳ'); // 0xb32 - 0xb33 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_14 = SymbolRange.range('ଵ', 'ହ'); // 0xb35 - 0xb39 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_20 = SymbolRange.range('ା', 'ୄ'); // 0xb3e - 0xb44 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_3 = SymbolRange.range('ୁ', 'ୄ'); // 0xb41 - 0xb44 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_8 = SymbolRange.range('େ', 'ୈ'); // 0xb47 - 0xb48 + public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ୋ', 'ୌ'); // 0xb4b - 0xb4c + public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS_2 = SymbolRange.range('ୋ', '୍'); // 0xb4b - 0xb4d + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_8 = SymbolRange.range('୕', 'ୖ'); // 0xb55 - 0xb56 + public static final SymbolRange BENGALI_VARIOUS_SIGNS_SUBSET_9 = SymbolRange.range('୕', 'ୗ'); // 0xb55 - 0xb57 + public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_SUBSET_2 = SymbolRange.range('ଡ଼', 'ଢ଼'); // 0xb5c - 0xb5d + public static final SymbolRange BENGALI_ADDITIONAL_CONSONANTS_TO_ADDITIONAL_VOWELS_FOR_SANSKRIT_1 = SymbolRange.range('ୟ', 'ୡ'); // 0xb5f - 0xb61 + public static final SymbolRange BENGALI_DEPENDENT_VOWELS = SymbolRange.range('ୢ', 'ୣ'); // 0xb62 - 0xb63 + public static final SymbolRange BENGALI_DIGITS_3 = SymbolRange.range('୦', '୯'); // 0xb66 - 0xb6f + public static final SymbolRange BENGALI_FRACTION_SIGNS_SUBSET = SymbolRange.range('୲', '୷'); // 0xb72 - 0xb77 + public static final SymbolRange BENGALI_TAMIL_TO_TAMIL_CLERICAL_SYMBOL = SymbolRange.range('஀', '௿'); // 0xb80 - 0xbff + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_1 = SymbolRange.range('அ', 'ஊ'); // 0xb85 - 0xb8a + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_SUBSET_5 = SymbolRange.range('எ', 'ஐ'); // 0xb8e - 0xb90 + public static final SymbolRange BENGALI_INDEPENDENT_VOWELS_TO_INDEPENDENT_VOWELS = SymbolRange.range('ஒ', 'க'); // 0xb92 - 0xb95 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET = SymbolRange.range('ங', 'ச'); // 0xb99 - 0xb9a + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_1 = SymbolRange.range('ஞ', 'ட'); // 0xb9e - 0xb9f + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_2 = SymbolRange.range('ண', 'த'); // 0xba3 - 0xba4 + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_3 = SymbolRange.range('ந', 'ப'); // 0xba8 - 0xbaa + public static final SymbolRange BENGALI_CONSONANTS_SUBSET_8 = SymbolRange.range('ம', 'ஹ'); // 0xbae - 0xbb9 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_12 = SymbolRange.range('ா', 'ி'); // 0xbbe - 0xbbf + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_17 = SymbolRange.range('ா', 'ூ'); // 0xbbe - 0xbc2 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ு', 'ூ'); // 0xbc1 - 0xbc2 + public static final SymbolRange BENGALI_DEPENDENT_VOWEL_SIGNS_SUBSET_5 = SymbolRange.range('ெ', 'ை'); // 0xbc6 - 0xbc8 + public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ொ', '்'); // 0xbca - 0xbcd + public static final SymbolRange BENGALI_TWO_PART_DEPENDENT_VOWEL_SIGNS_2 = SymbolRange.range('ொ', 'ௌ'); // 0xbca - 0xbcc + public static final SymbolRange BENGALI_DIGITS_4 = SymbolRange.range('௦', '௯'); // 0xbe6 - 0xbef + public static final SymbolRange BENGALI_DIGITS_TO_TAMIL_NUMERICS = SymbolRange.range('௦', '௲'); // 0xbe6 - 0xbf2 + public static final SymbolRange BENGALI_TAMIL_NUMERICS = SymbolRange.range('௰', '௲'); // 0xbf0 - 0xbf2 + public static final SymbolRange BENGALI_TAMIL_CALENDRICAL_SYMBOLS_TO_TAMIL_CLERICAL_SYMBOLS = SymbolRange.range('௳', '௸'); // 0xbf3 - 0xbf8 + public static final SymbolRange BENGALI_TAMIL_CALENDRICAL_SYMBOLS_TO_CURRENCY_SYMBOL = SymbolRange.range('௳', '௺'); // 0xbf3 - 0xbfa + public static final SymbolRange TELUGU_VARIOUS_SIGNS = SymbolRange.range('ఀ', 'ఄ'); // 0xc00 - 0xc04 + public static final SymbolRange TELUGU_VARIOUS_SIGNS_TO_TELUGU_FRACTIONS_AND_WEIGHTS = SymbolRange.range('ఀ', '౿'); // 0xc00 - 0xc7f + public static final SymbolRange TELUGU_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ఁ', 'ః'); // 0xc01 - 0xc03 + public static final SymbolRange TELUGU_INDEPENDENT_VOWELS_SUBSET = SymbolRange.range('అ', 'ఌ'); // 0xc05 - 0xc0c + public static final SymbolRange TELUGU_INDEPENDENT_VOWELS_SUBSET_1 = SymbolRange.range('ఎ', 'ఐ'); // 0xc0e - 0xc10 + public static final SymbolRange TELUGU_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ఒ', 'న'); // 0xc12 - 0xc28 + public static final SymbolRange TELUGU_CONSONANTS_SUBSET = SymbolRange.range('ప', 'హ'); // 0xc2a - 0xc39 + public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ా', 'ీ'); // 0xc3e - 0xc40 + public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_SUBSET_3 = SymbolRange.range('ా', 'ౄ'); // 0xc3e - 0xc44 + public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ు', 'ౄ'); // 0xc41 - 0xc44 + public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ె', 'ై'); // 0xc46 - 0xc48 + public static final SymbolRange TELUGU_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ొ', '్'); // 0xc4a - 0xc4d + public static final SymbolRange TELUGU_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('ౕ', 'ౖ'); // 0xc55 - 0xc56 + public static final SymbolRange TELUGU_HISTORIC_PHONETIC_VARIANTS_SUBSET = SymbolRange.range('ౘ', 'ౚ'); // 0xc58 - 0xc5a + public static final SymbolRange TELUGU_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('ౠ', 'ౡ'); // 0xc60 - 0xc61 + public static final SymbolRange TELUGU_DEPENDENT_VOWELS = SymbolRange.range('ౢ', 'ౣ'); // 0xc62 - 0xc63 + public static final SymbolRange TELUGU_DIGITS_SUBSET = SymbolRange.range('౦', '౯'); // 0xc66 - 0xc6f + public static final SymbolRange TELUGU_TELUGU_FRACTIONS_AND_WEIGHTS_SUBSET = SymbolRange.range('౸', '౾'); // 0xc78 - 0xc7e + public static final SymbolRange KANNADA_VARIOUS_SIGNS_TO_SIGNS_USED_IN_SANSKRIT = SymbolRange.range('ಀ', '೿'); // 0xc80 - 0xcff + public static final SymbolRange KANNADA_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ಁ', 'ಃ'); // 0xc81 - 0xc83 + public static final SymbolRange KANNADA_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('ಂ', 'ಃ'); // 0xc82 - 0xc83 + public static final SymbolRange KANNADA_INDEPENDENT_VOWELS_SUBSET = SymbolRange.range('ಅ', 'ಌ'); // 0xc85 - 0xc8c + public static final SymbolRange KANNADA_INDEPENDENT_VOWELS_SUBSET_1 = SymbolRange.range('ಎ', 'ಐ'); // 0xc8e - 0xc90 + public static final SymbolRange KANNADA_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ಒ', 'ನ'); // 0xc92 - 0xca8 + public static final SymbolRange KANNADA_CONSONANTS_SUBSET = SymbolRange.range('ಪ', 'ಳ'); // 0xcaa - 0xcb3 + public static final SymbolRange KANNADA_CONSONANTS_SUBSET_1 = SymbolRange.range('ವ', 'ಹ'); // 0xcb5 - 0xcb9 + public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_4 = SymbolRange.range('ಾ', 'ೄ'); // 0xcbe - 0xcc4 + public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ೀ', 'ೄ'); // 0xcc0 - 0xcc4 + public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ೆ', 'ೈ'); // 0xcc6 - 0xcc8 + public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ೇ', 'ೈ'); // 0xcc7 - 0xcc8 + public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_SUBSET_3 = SymbolRange.range('ೊ', 'ೋ'); // 0xcca - 0xccb + public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ೊ', '್'); // 0xcca - 0xccd + public static final SymbolRange KANNADA_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS_1 = SymbolRange.range('ೌ', '್'); // 0xccc - 0xccd + public static final SymbolRange KANNADA_VARIOUS_SIGNS_SUBSET_2 = SymbolRange.range('ೕ', 'ೖ'); // 0xcd5 - 0xcd6 + public static final SymbolRange KANNADA_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('ೠ', 'ೡ'); // 0xce0 - 0xce1 + public static final SymbolRange KANNADA_DEPENDENT_VOWELS = SymbolRange.range('ೢ', 'ೣ'); // 0xce2 - 0xce3 + public static final SymbolRange KANNADA_DIGITS_SUBSET = SymbolRange.range('೦', '೯'); // 0xce6 - 0xcef + public static final SymbolRange KANNADA_SIGNS_USED_IN_SANSKRIT_SUBSET = SymbolRange.range('ೱ', 'ೲ'); // 0xcf1 - 0xcf2 + public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ഀ', 'ഁ'); // 0xd00 - 0xd01 + public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('ഀ', 'ഃ'); // 0xd00 - 0xd03 + public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_TO_CHILLU_LETTERS = SymbolRange.range('ഀ', 'ൿ'); // 0xd00 - 0xd7f + public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET_4 = SymbolRange.range('ം', 'ഃ'); // 0xd02 - 0xd03 + public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_TO_INDEPENDENT_VOWELS = SymbolRange.range('ഄ', 'ഌ'); // 0xd04 - 0xd0c + public static final SymbolRange MALAYALAM_INDEPENDENT_VOWELS_SUBSET_1 = SymbolRange.range('എ', 'ഐ'); // 0xd0e - 0xd10 + public static final SymbolRange MALAYALAM_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ഒ', 'ഺ'); // 0xd12 - 0xd3a + public static final SymbolRange MALAYALAM_VARIANT_SHAPE_VIRAMAS = SymbolRange.range('഻', '഼'); // 0xd3b - 0xd3c + public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_5 = SymbolRange.range('ാ', 'ീ'); // 0xd3e - 0xd40 + public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_6 = SymbolRange.range('ാ', 'ൄ'); // 0xd3e - 0xd44 + public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ു', 'ൄ'); // 0xd41 - 0xd44 + public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('െ', 'ൈ'); // 0xd46 - 0xd48 + public static final SymbolRange MALAYALAM_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ൊ', '്'); // 0xd4a - 0xd4d + public static final SymbolRange MALAYALAM_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ൊ', 'ൌ'); // 0xd4a - 0xd4c + public static final SymbolRange MALAYALAM_ADDITIONAL_HISTORIC_CHILLU_LETTERS = SymbolRange.range('ൔ', 'ൖ'); // 0xd54 - 0xd56 + public static final SymbolRange MALAYALAM_MINOR_FRACTIONS = SymbolRange.range('൘', '൞'); // 0xd58 - 0xd5e + public static final SymbolRange MALAYALAM_ADDITIONAL_HISTORIC_VOWEL_TO_ADDITIONAL_VOWELS_FOR_SANSKRIT = SymbolRange.range('ൟ', 'ൡ'); // 0xd5f - 0xd61 + public static final SymbolRange MALAYALAM_DEPENDENT_VOWELS = SymbolRange.range('ൢ', 'ൣ'); // 0xd62 - 0xd63 + public static final SymbolRange MALAYALAM_DIGITS = SymbolRange.range('൦', '൯'); // 0xd66 - 0xd6f + public static final SymbolRange MALAYALAM_DIGITS_TO_FRACTIONS = SymbolRange.range('൦', '൸'); // 0xd66 - 0xd78 + public static final SymbolRange MALAYALAM_MALAYALAM_NUMERICS_TO_FRACTIONS = SymbolRange.range('൰', '൸'); // 0xd70 - 0xd78 + public static final SymbolRange MALAYALAM_CHILLU_LETTERS = SymbolRange.range('ൺ', 'ൿ'); // 0xd7a - 0xd7f + public static final SymbolRange MALAYALAM_SINHALA_TO_PUNCTUATION = SymbolRange.range('඀', '෿'); // 0xd80 - 0xdff + public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET_2 = SymbolRange.range('ඁ', 'ඃ'); // 0xd81 - 0xd83 + public static final SymbolRange MALAYALAM_VARIOUS_SIGNS_SUBSET_3 = SymbolRange.range('ං', 'ඃ'); // 0xd82 - 0xd83 + public static final SymbolRange MALAYALAM_INDEPENDENT_VOWELS_SUBSET = SymbolRange.range('අ', 'ඖ'); // 0xd85 - 0xd96 + public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_4 = SymbolRange.range('ක', 'න'); // 0xd9a - 0xdb1 + public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_5 = SymbolRange.range('ඳ', 'ර'); // 0xdb3 - 0xdbb + public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET = SymbolRange.range('ව', 'ෆ'); // 0xdc0 - 0xdc6 + public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ා', 'ෑ'); // 0xdcf - 0xdd1 + public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_3 = SymbolRange.range('ා', 'ු'); // 0xdcf - 0xdd4 + public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_SUBSET_4 = SymbolRange.range('ි', 'ු'); // 0xdd2 - 0xdd4 + public static final SymbolRange MALAYALAM_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ෘ', 'ෟ'); // 0xdd8 - 0xddf + public static final SymbolRange MALAYALAM_ASTROLOGICAL_DIGITS_SUBSET = SymbolRange.range('෦', '෯'); // 0xde6 - 0xdef + public static final SymbolRange MALAYALAM_ADDITIONAL_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ෲ', 'ෳ'); // 0xdf2 - 0xdf3 + public static final SymbolRange MALAYALAM_THAI_TO_SIGNS = SymbolRange.range('฀', '๿'); // 0xe00 - 0xe7f + public static final SymbolRange MALAYALAM_CONSONANTS_TO_SIGN = SymbolRange.range('ก', 'ะ'); // 0xe01 - 0xe30 + public static final SymbolRange MALAYALAM_VOWELS_SUBSET_1 = SymbolRange.range('า', 'ำ'); // 0xe32 - 0xe33 + public static final SymbolRange MALAYALAM_VOWELS_SUBSET_3 = SymbolRange.range('ิ', 'ฺ'); // 0xe34 - 0xe3a + public static final SymbolRange MALAYALAM_VOWELS_TO_VOWELS = SymbolRange.range('เ', 'ๅ'); // 0xe40 - 0xe45 + public static final SymbolRange MALAYALAM_VOWELS_TO_VOWEL_LENGTH_SIGN = SymbolRange.range('เ', 'ๆ'); // 0xe40 - 0xe46 + public static final SymbolRange MALAYALAM_VOWEL_TO_SIGNS = SymbolRange.range('็', '๎'); // 0xe47 - 0xe4e + public static final SymbolRange MALAYALAM_DIGITS_1 = SymbolRange.range('๐', '๙'); // 0xe50 - 0xe59 + public static final SymbolRange MALAYALAM_SIGNS_SUBSET = SymbolRange.range('๚', '๛'); // 0xe5a - 0xe5b + public static final SymbolRange MALAYALAM_LAO_TO_CONSONANTS_FOR_KHMU = SymbolRange.range('຀', '໿'); // 0xe80 - 0xeff + public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_1 = SymbolRange.range('ກ', 'ຂ'); // 0xe81 - 0xe82 + public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_2 = SymbolRange.range('ຆ', 'ຊ'); // 0xe86 - 0xe8a + public static final SymbolRange MALAYALAM_CONSONANTS_SUBSET_3 = SymbolRange.range('ຌ', 'ຣ'); // 0xe8c - 0xea3 + public static final SymbolRange MALAYALAM_CONSONANTS_TO_SIGN_1 = SymbolRange.range('ວ', 'ະ'); // 0xea7 - 0xeb0 + public static final SymbolRange MALAYALAM_VOWELS_SUBSET_2 = SymbolRange.range('າ', 'ຳ'); // 0xeb2 - 0xeb3 + public static final SymbolRange MALAYALAM_VOWELS_TO_VOWEL = SymbolRange.range('ິ', 'ຼ'); // 0xeb4 - 0xebc + public static final SymbolRange MALAYALAM_VOWELS_SUBSET = SymbolRange.range('ເ', 'ໄ'); // 0xec0 - 0xec4 + public static final SymbolRange MALAYALAM_TONE_MARKS_TO_SIGNS = SymbolRange.range('່', 'ໍ'); // 0xec8 - 0xecd + public static final SymbolRange MALAYALAM_DIGITS_SUBSET = SymbolRange.range('໐', '໙'); // 0xed0 - 0xed9 + public static final SymbolRange MALAYALAM_DIGRAPHS_TO_CONSONANTS_FOR_KHMU = SymbolRange.range('ໜ', 'ໟ'); // 0xedc - 0xedf + public static final SymbolRange TIBETAN_SYLLABLE_TO_ANNOTATION_MARKS = SymbolRange.range('ༀ', '࿿'); // 0xf00 - 0xfff + public static final SymbolRange TIBETAN_HEAD_MARKS_SUBSET = SymbolRange.range('༁', '༃'); // 0xf01 - 0xf03 + public static final SymbolRange TIBETAN_HEAD_MARKS_TO_MARKS_AND_SIGNS = SymbolRange.range('༄', '༒'); // 0xf04 - 0xf12 + public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_SUBSET = SymbolRange.range('༕', '༗'); // 0xf15 - 0xf17 + public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_SUBSET_1 = SymbolRange.range('༘', '༙'); // 0xf18 - 0xf19 + public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_SUBSET_2 = SymbolRange.range('༚', '༟'); // 0xf1a - 0xf1f + public static final SymbolRange TIBETAN_DIGITS = SymbolRange.range('༠', '༩'); // 0xf20 - 0xf29 + public static final SymbolRange TIBETAN_DIGITS_TO_DIGITS_MINUS_HALF = SymbolRange.range('༠', '༳'); // 0xf20 - 0xf33 + public static final SymbolRange TIBETAN_DIGITS_MINUS_HALF = SymbolRange.range('༪', '༳'); // 0xf2a - 0xf33 + public static final SymbolRange TIBETAN_PAIRED_PUNCTUATION = SymbolRange.range('༺', '༽'); // 0xf3a - 0xf3d + public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_1 = SymbolRange.range('༾', '༿'); // 0xf3e - 0xf3f + public static final SymbolRange TIBETAN_CONSONANTS_SUBSET = SymbolRange.range('ཀ', 'ཇ'); // 0xf40 - 0xf47 + public static final SymbolRange TIBETAN_CONSONANTS_TO_EXTENSIONS_FOR_BALTI = SymbolRange.range('ཉ', 'ཬ'); // 0xf49 - 0xf6c + public static final SymbolRange TIBETAN_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ཱ', 'ཾ'); // 0xf71 - 0xf7e + public static final SymbolRange TIBETAN_DEPENDENT_VOWEL_SIGNS_TO_MARKS_AND_SIGNS_1 = SymbolRange.range('ཱ', '྄'); // 0xf71 - 0xf84 + public static final SymbolRange TIBETAN_DEPENDENT_VOWEL_SIGNS_TO_MARKS_AND_SIGNS = SymbolRange.range('ྀ', '྄'); // 0xf80 - 0xf84 + public static final SymbolRange TIBETAN_MARKS_AND_SIGNS_SUBSET = SymbolRange.range('྆', '྇'); // 0xf86 - 0xf87 + public static final SymbolRange TIBETAN_TRANSLITERATION_HEAD_LETTERS = SymbolRange.range('ྈ', 'ྌ'); // 0xf88 - 0xf8c + public static final SymbolRange TIBETAN_TRANSLITERATION_SUBJOINED_SIGNS_TO_SUBJOINED_CONSONANTS = SymbolRange.range('ྍ', 'ྗ'); // 0xf8d - 0xf97 + public static final SymbolRange TIBETAN_SUBJOINED_CONSONANTS_TO_FIXED_FORM_SUBJOINED_CONSONANTS = SymbolRange.range('ྙ', 'ྼ'); // 0xf99 - 0xfbc + public static final SymbolRange TIBETAN_SIGNS_TO_SYMBOLS = SymbolRange.range('྾', '࿅'); // 0xfbe - 0xfc5 + public static final SymbolRange TIBETAN_SYMBOLS_SUBSET = SymbolRange.range('࿇', '࿌'); // 0xfc7 - 0xfcc + public static final SymbolRange TIBETAN_ASTROLOGICAL_SIGNS_2 = SymbolRange.range('࿎', '࿏'); // 0xfce - 0xfcf + public static final SymbolRange TIBETAN_MARKS_TO_HEAD_MARKS = SymbolRange.range('࿐', '࿔'); // 0xfd0 - 0xfd4 + public static final SymbolRange TIBETAN_RELIGIOUS_SYMBOLS = SymbolRange.range('࿕', '࿘'); // 0xfd5 - 0xfd8 + public static final SymbolRange TIBETAN_ANNOTATION_MARKS_SUBSET = SymbolRange.range('࿙', '࿚'); // 0xfd9 - 0xfda + public static final SymbolRange MYANMAR_CONSONANTS_TO_INDEPENDENT_VOWELS = SymbolRange.range('က', 'ဪ'); // 0x1000 - 0x102a + public static final SymbolRange MYANMAR_CONSONANTS_TO_SHAN_SYMBOLS = SymbolRange.range('က', '႟'); // 0x1000 - 0x109f + public static final SymbolRange MYANMAR_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ါ', 'ာ'); // 0x102b - 0x102c + public static final SymbolRange MYANMAR_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_CONSONANT_SIGNS = SymbolRange.range('ါ', 'ှ'); // 0x102b - 0x103e + public static final SymbolRange MYANMAR_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ိ', 'ူ'); // 0x102d - 0x1030 + public static final SymbolRange MYANMAR_DEPENDENT_VOWEL_SIGNS_TO_VARIOUS_SIGNS = SymbolRange.range('ဲ', '့'); // 0x1032 - 0x1037 + public static final SymbolRange MYANMAR_VIRAMA_AND_KILLER = SymbolRange.range('္', '်'); // 0x1039 - 0x103a + public static final SymbolRange MYANMAR_DEPENDENT_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ျ', 'ြ'); // 0x103b - 0x103c + public static final SymbolRange MYANMAR_DEPENDENT_CONSONANT_SIGNS_SUBSET_1 = SymbolRange.range('ွ', 'ှ'); // 0x103d - 0x103e + public static final SymbolRange MYANMAR_DIGITS = SymbolRange.range('၀', '၉'); // 0x1040 - 0x1049 + public static final SymbolRange MYANMAR_PUNCTUATION_TO_VARIOUS_SIGNS = SymbolRange.range('၊', '၏'); // 0x104a - 0x104f + public static final SymbolRange MYANMAR_PALI_AND_SANSKRIT_EXTENSIONS_SUBSET = SymbolRange.range('ၐ', 'ၕ'); // 0x1050 - 0x1055 + public static final SymbolRange MYANMAR_PALI_AND_SANSKRIT_EXTENSIONS_SUBSET_1 = SymbolRange.range('ၖ', 'ၙ'); // 0x1056 - 0x1059 + public static final SymbolRange MYANMAR_PALI_AND_SANSKRIT_EXTENSIONS_SUBSET_2 = SymbolRange.range('ၖ', 'ၗ'); // 0x1056 - 0x1057 + public static final SymbolRange MYANMAR_PALI_AND_SANSKRIT_EXTENSIONS_SUBSET_3 = SymbolRange.range('ၘ', 'ၙ'); // 0x1058 - 0x1059 + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_MON_SUBSET = SymbolRange.range('ၚ', 'ၝ'); // 0x105a - 0x105d + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_MON_SUBSET_1 = SymbolRange.range('ၞ', 'ၠ'); // 0x105e - 0x1060 + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SGAW_KAREN_SUBSET = SymbolRange.range('ၢ', 'ၤ'); // 0x1062 - 0x1064 + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_WESTERN_PWO_KAREN_SUBSET = SymbolRange.range('ၥ', 'ၦ'); // 0x1065 - 0x1066 + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_WESTERN_PWO_KAREN_SUBSET_1 = SymbolRange.range('ၧ', 'ၭ'); // 0x1067 - 0x106d + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_EASTERN_PWO_KAREN = SymbolRange.range('ၮ', 'ၰ'); // 0x106e - 0x1070 + public static final SymbolRange MYANMAR_EXTENSION_FOR_GEBA_KAREN_TO_EXTENSIONS_FOR_KAYAH = SymbolRange.range('ၱ', 'ၴ'); // 0x1071 - 0x1074 + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_4 = SymbolRange.range('ၵ', 'ႁ'); // 0x1075 - 0x1081 + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET = SymbolRange.range('ႂ', 'ႍ'); // 0x1082 - 0x108d + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_1 = SymbolRange.range('ႃ', 'ႄ'); // 0x1083 - 0x1084 + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_2 = SymbolRange.range('ႅ', 'ႆ'); // 0x1085 - 0x1086 + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_SHAN_SUBSET_3 = SymbolRange.range('ႇ', 'ႌ'); // 0x1087 - 0x108c + public static final SymbolRange MYANMAR_SHAN_DIGITS = SymbolRange.range('႐', '႙'); // 0x1090 - 0x1099 + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_KHAMTI_SHAN_TO_EXTENSIONS_FOR_KHAMTI_SHAN = SymbolRange.range('ႚ', 'ႜ'); // 0x109a - 0x109c + public static final SymbolRange MYANMAR_EXTENSIONS_FOR_KHAMTI_SHAN_TO_EXTENSIONS_FOR_AITON_AND_PHAKE = SymbolRange.range('ႚ', 'ႝ'); // 0x109a - 0x109d + public static final SymbolRange MYANMAR_SHAN_SYMBOLS = SymbolRange.range('႞', '႟'); // 0x109e - 0x109f + public static final SymbolRange GEORGIAN_CAPITAL_LETTERS_KHUTSURI_SUBSET = SymbolRange.range('Ⴀ', 'Ⴥ'); // 0x10a0 - 0x10c5 + public static final SymbolRange GEORGIAN_CAPITAL_LETTERS_KHUTSURI_TO_ADDITIONAL_LETTERS_FOR_OSSETIAN_AND_ABKHAZ = SymbolRange.range('Ⴀ', 'ჿ'); // 0x10a0 - 0x10ff + public static final SymbolRange GEORGIAN_MKHEDRULI_TO_ADDITIONAL_LETTERS = SymbolRange.range('ა', 'ჺ'); // 0x10d0 - 0x10fa + public static final SymbolRange GEORGIAN_TO_ETHIOPIC = SymbolRange.range('ჼ', 'ቈ'); // 0x10fc - 0x1248 + public static final SymbolRange GEORGIAN_ADDITIONAL_LETTERS_FOR_OSSETIAN_AND_ABKHAZ = SymbolRange.range('ჽ', 'ჿ'); // 0x10fd - 0x10ff + public static final SymbolRange HANGUL_JAMO_INITIAL_CONSONANTS_TO_OLD_FINAL_CONSONANTS = SymbolRange.range('ᄀ', 'ᇿ'); // 0x1100 - 0x11ff + public static final SymbolRange HANGUL_JAMO_TO_ETHIOPIC = SymbolRange.range('ᄀ', 'ቈ'); // 0x1100 - 0x1248 + public static final SymbolRange ETHIOPIC_SYLLABLES_TO_NUMBERS = SymbolRange.range('ሀ', '፿'); // 0x1200 - 0x137f + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_3 = SymbolRange.range('ቊ', 'ቍ'); // 0x124a - 0x124d + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_4 = SymbolRange.range('ቐ', 'ቖ'); // 0x1250 - 0x1256 + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_9 = SymbolRange.range('ቚ', 'ቝ'); // 0x125a - 0x125d + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_10 = SymbolRange.range('በ', 'ኈ'); // 0x1260 - 0x1288 + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_2 = SymbolRange.range('ኊ', 'ኍ'); // 0x128a - 0x128d + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_5 = SymbolRange.range('ነ', 'ኰ'); // 0x1290 - 0x12b0 + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_11 = SymbolRange.range('ኲ', 'ኵ'); // 0x12b2 - 0x12b5 + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_12 = SymbolRange.range('ኸ', 'ኾ'); // 0x12b8 - 0x12be + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET = SymbolRange.range('ዂ', 'ዅ'); // 0x12c2 - 0x12c5 + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_1 = SymbolRange.range('ወ', 'ዖ'); // 0x12c8 - 0x12d6 + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_7 = SymbolRange.range('ዘ', 'ጐ'); // 0x12d8 - 0x1310 + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_6 = SymbolRange.range('ጒ', 'ጕ'); // 0x1312 - 0x1315 + public static final SymbolRange ETHIOPIC_SYLLABLES_SUBSET_8 = SymbolRange.range('ጘ', 'ፚ'); // 0x1318 - 0x135a + public static final SymbolRange ETHIOPIC_COMBINING_MARKS = SymbolRange.range('፝', '፟'); // 0x135d - 0x135f + public static final SymbolRange ETHIOPIC_PUNCTUATION = SymbolRange.range('፠', '፨'); // 0x1360 - 0x1368 + public static final SymbolRange ETHIOPIC_DIGITS_TO_NUMBERS = SymbolRange.range('፩', '፼'); // 0x1369 - 0x137c + public static final SymbolRange ETHIOPIC_SUPPLEMENT_SYLLABLES_FOR_SEBATBEIT = SymbolRange.range('ᎀ', 'ᎏ'); // 0x1380 - 0x138f + public static final SymbolRange ETHIOPIC_SUPPLEMENT_TONAL_MARKS_SUBSET = SymbolRange.range('᎐', '᎙'); // 0x1390 - 0x1399 + public static final SymbolRange CHEROKEE_UPPERCASE_SYLLABLES_TO_UPPERCASE_SYLLABLES = SymbolRange.range('Ꭰ', 'Ᏽ'); // 0x13a0 - 0x13f5 + public static final SymbolRange CHEROKEE_UPPERCASE_SYLLABLES_TO_ARCHAIC_LOWERCASE_SYLLABLE = SymbolRange.range('Ꭰ', '᏿'); // 0x13a0 - 0x13ff + public static final SymbolRange CHEROKEE_LOWERCASE_SYLLABLES_TO_LOWERCASE_SYLLABLES = SymbolRange.range('ᏸ', 'ᏽ'); // 0x13f8 - 0x13fd + public static final SymbolRange UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_PUNCTUATION_TO_SYLLABLES = SymbolRange.range('᐀', 'ᙿ'); // 0x1400 - 0x167f + public static final SymbolRange UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_SYLLABLES_TO_SYLLABLES_FOR_CARRIER = SymbolRange.range('ᐁ', 'ᙬ'); // 0x1401 - 0x166c + public static final SymbolRange UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_SYLLABLES_1 = SymbolRange.range('ᙯ', 'ᙿ'); // 0x166f - 0x167f + public static final SymbolRange OGHAM_SPACE_TO_PUNCTUATION = SymbolRange.range(' ', '᚟'); // 0x1680 - 0x169f + public static final SymbolRange OGHAM_TRADITIONAL_LETTERS_TO_FORFEDA_SUPPLEMENTARY_LETTERS = SymbolRange.range('ᚁ', 'ᚚ'); // 0x1681 - 0x169a + public static final SymbolRange OGHAM_PUNCTUATION_SUBSET = SymbolRange.range('᚛', '᚜'); // 0x169b - 0x169c + public static final SymbolRange RUNIC_LETTERS = SymbolRange.range('ᚠ', 'ᛪ'); // 0x16a0 - 0x16ea + public static final SymbolRange RUNIC_LETTERS_TO_CRYPTOGRAMMIC_LETTERS = SymbolRange.range('ᚠ', '᛿'); // 0x16a0 - 0x16ff + public static final SymbolRange RUNIC_PUNCTUATION = SymbolRange.range('᛫', '᛭'); // 0x16eb - 0x16ed + public static final SymbolRange RUNIC_GOLDEN_NUMBER_RUNES = SymbolRange.range('ᛮ', 'ᛰ'); // 0x16ee - 0x16f0 + public static final SymbolRange RUNIC_TOLKIENIAN_EXTENSIONS_TO_CRYPTOGRAMMIC_LETTERS = SymbolRange.range('ᛱ', 'ᛸ'); // 0x16f1 - 0x16f8 + public static final SymbolRange TAGALOG_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᜀ', 'ᜌ'); // 0x1700 - 0x170c + public static final SymbolRange TAGALOG_INDEPENDENT_VOWELS_TO_VIRAMAS = SymbolRange.range('ᜀ', 'ᜟ'); // 0x1700 - 0x171f + public static final SymbolRange TAGALOG_CONSONANTS_SUBSET = SymbolRange.range('ᜎ', 'ᜑ'); // 0x170e - 0x1711 + public static final SymbolRange TAGALOG_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᜒ', '᜔'); // 0x1712 - 0x1714 + public static final SymbolRange HANUNOO_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᜠ', 'ᜱ'); // 0x1720 - 0x1731 + public static final SymbolRange HANUNOO_INDEPENDENT_VOWELS_TO_GENERIC_PUNCTUATION_FOR_PHILIPPINE_SCRIPTS = SymbolRange.range('ᜠ', '᜿'); // 0x1720 - 0x173f + public static final SymbolRange HANUNOO_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᜲ', '᜴'); // 0x1732 - 0x1734 + public static final SymbolRange HANUNOO_GENERIC_PUNCTUATION_FOR_PHILIPPINE_SCRIPTS_SUBSET = SymbolRange.range('᜵', '᜶'); // 0x1735 - 0x1736 + public static final SymbolRange BUHID_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᝀ', 'ᝑ'); // 0x1740 - 0x1751 + public static final SymbolRange BUHID_INDEPENDENT_VOWELS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᝀ', '᝟'); // 0x1740 - 0x175f + public static final SymbolRange BUHID_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᝒ', 'ᝓ'); // 0x1752 - 0x1753 + public static final SymbolRange TAGBANWA_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᝠ', 'ᝬ'); // 0x1760 - 0x176c + public static final SymbolRange TAGBANWA_INDEPENDENT_VOWELS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᝠ', '᝿'); // 0x1760 - 0x177f + public static final SymbolRange TAGBANWA_CONSONANTS_SUBSET = SymbolRange.range('ᝮ', 'ᝰ'); // 0x176e - 0x1770 + public static final SymbolRange TAGBANWA_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᝲ', 'ᝳ'); // 0x1772 - 0x1773 + public static final SymbolRange KHMER_CONSONANTS_TO_INDEPENDENT_VOWELS = SymbolRange.range('ក', 'ឳ'); // 0x1780 - 0x17b3 + public static final SymbolRange KHMER_CONSONANTS_TO_NUMERIC_SYMBOLS_FOR_DIVINATION_LORE = SymbolRange.range('ក', '៿'); // 0x1780 - 0x17ff + public static final SymbolRange KHMER_INHERENT_VOWELS = SymbolRange.range('឴', '឵'); // 0x17b4 - 0x17b5 + public static final SymbolRange KHMER_INHERENT_VOWELS_TO_VARIOUS_SIGNS = SymbolRange.range('឴', '៓'); // 0x17b4 - 0x17d3 + public static final SymbolRange KHMER_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ិ', 'ួ'); // 0x17b7 - 0x17bd + public static final SymbolRange KHMER_TWO_PART_DEPENDENT_VOWEL_SIGNS_TO_TWO_PART_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ើ', 'ៅ'); // 0x17be - 0x17c5 + public static final SymbolRange KHMER_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ះ', 'ៈ'); // 0x17c7 - 0x17c8 + public static final SymbolRange KHMER_CONSONANT_SHIFTERS_TO_VARIOUS_SIGNS = SymbolRange.range('៉', '៓'); // 0x17c9 - 0x17d3 + public static final SymbolRange KHMER_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('។', '៖'); // 0x17d4 - 0x17d6 + public static final SymbolRange KHMER_VARIOUS_SIGNS_SUBSET_2 = SymbolRange.range('៘', '៚'); // 0x17d8 - 0x17da + public static final SymbolRange KHMER_DIGITS_SUBSET = SymbolRange.range('០', '៩'); // 0x17e0 - 0x17e9 + public static final SymbolRange KHMER_NUMERIC_SYMBOLS_FOR_DIVINATION_LORE_SUBSET = SymbolRange.range('៰', '៹'); // 0x17f0 - 0x17f9 + public static final SymbolRange MONGOLIAN_PUNCTUATION_SUBSET = SymbolRange.range('᠀', '᠅'); // 0x1800 - 0x1805 + public static final SymbolRange MONGOLIAN_PUNCTUATION = SymbolRange.range('᠀', '᠊'); // 0x1800 - 0x180a + public static final SymbolRange MONGOLIAN_PUNCTUATION_TO_EXTENSIONS_FOR_SANSKRIT_AND_TIBETAN = SymbolRange.range('᠀', '᢯'); // 0x1800 - 0x18af + public static final SymbolRange MONGOLIAN_PUNCTUATION_SUBSET_1 = SymbolRange.range('᠇', '᠊'); // 0x1807 - 0x180a + public static final SymbolRange MONGOLIAN_FORMAT_CONTROLS_SUBSET = SymbolRange.range('᠋', '᠍'); // 0x180b - 0x180d + public static final SymbolRange MONGOLIAN_DIGITS_SUBSET = SymbolRange.range('᠐', '᠙'); // 0x1810 - 0x1819 + public static final SymbolRange MONGOLIAN_BASIC_LETTERS = SymbolRange.range('ᠠ', 'ᡂ'); // 0x1820 - 0x1842 + public static final SymbolRange MONGOLIAN_BASIC_LETTERS_TO_MANCHU_LETTERS = SymbolRange.range('ᠠ', 'ᡸ'); // 0x1820 - 0x1878 + public static final SymbolRange MONGOLIAN_TODO_LETTERS_TO_MANCHU_LETTERS = SymbolRange.range('ᡄ', 'ᡸ'); // 0x1844 - 0x1878 + public static final SymbolRange MONGOLIAN_EXTENSIONS_FOR_SANSKRIT_AND_TIBETAN_SUBSET = SymbolRange.range('ᢀ', 'ᢄ'); // 0x1880 - 0x1884 + public static final SymbolRange MONGOLIAN_EXTENSIONS_FOR_SANSKRIT_AND_TIBETAN_SUBSET_1 = SymbolRange.range('ᢅ', 'ᢆ'); // 0x1885 - 0x1886 + public static final SymbolRange MONGOLIAN_EXTENSIONS_FOR_SANSKRIT_AND_TIBETAN_SUBSET_2 = SymbolRange.range('ᢇ', 'ᢨ'); // 0x1887 - 0x18a8 + public static final SymbolRange UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_SYLLABLES_FOR_MOOSE_CREE_TO_FINALS_FOR_DENE_AND_CARRIER = SymbolRange.range('ᢰ', 'ᣵ'); // 0x18b0 - 0x18f5 + public static final SymbolRange LIMBU_CONSONANTS_SUBSET = SymbolRange.range('ᤀ', 'ᤞ'); // 0x1900 - 0x191e + public static final SymbolRange LIMBU_CONSONANTS_TO_DIGITS = SymbolRange.range('ᤀ', '᥏'); // 0x1900 - 0x194f + public static final SymbolRange LIMBU_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᤠ', 'ᤢ'); // 0x1920 - 0x1922 + public static final SymbolRange LIMBU_DEPENDENT_VOWEL_SIGNS_TO_SUBJOINED_CONSONANTS = SymbolRange.range('ᤠ', 'ᤫ'); // 0x1920 - 0x192b + public static final SymbolRange LIMBU_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᤣ', 'ᤦ'); // 0x1923 - 0x1926 + public static final SymbolRange LIMBU_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ᤧ', 'ᤨ'); // 0x1927 - 0x1928 + public static final SymbolRange LIMBU_SUBJOINED_CONSONANTS_SUBSET = SymbolRange.range('ᤩ', 'ᤫ'); // 0x1929 - 0x192b + public static final SymbolRange LIMBU_FINAL_CONSONANTS_SUBSET = SymbolRange.range('ᤰ', 'ᤱ'); // 0x1930 - 0x1931 + public static final SymbolRange LIMBU_FINAL_CONSONANTS_TO_VARIOUS_SIGNS = SymbolRange.range('ᤰ', '᤻'); // 0x1930 - 0x193b + public static final SymbolRange LIMBU_FINAL_CONSONANTS_SUBSET_1 = SymbolRange.range('ᤳ', 'ᤸ'); // 0x1933 - 0x1938 + public static final SymbolRange LIMBU_VARIOUS_SIGNS_SUBSET_1 = SymbolRange.range('᤹', '᤻'); // 0x1939 - 0x193b + public static final SymbolRange LIMBU_VARIOUS_SIGNS_SUBSET = SymbolRange.range('᥄', '᥅'); // 0x1944 - 0x1945 + public static final SymbolRange LIMBU_DIGITS = SymbolRange.range('᥆', '᥏'); // 0x1946 - 0x194f + public static final SymbolRange TAI_LE_CONSONANTS_TO_VOWELS = SymbolRange.range('ᥐ', 'ᥭ'); // 0x1950 - 0x196d + public static final SymbolRange TAI_LE_CONSONANTS_TO_TONE_LETTERS = SymbolRange.range('ᥐ', '᥿'); // 0x1950 - 0x197f + public static final SymbolRange TAI_LE_TONE_LETTERS_SUBSET = SymbolRange.range('ᥰ', 'ᥴ'); // 0x1970 - 0x1974 + public static final SymbolRange NEW_TAI_LUE_CONSONANTS_SUBSET = SymbolRange.range('ᦀ', 'ᦫ'); // 0x1980 - 0x19ab + public static final SymbolRange NEW_TAI_LUE_VOWEL_SIGNS_TO_TONE_MARKS = SymbolRange.range('ᦰ', 'ᧉ'); // 0x19b0 - 0x19c9 + public static final SymbolRange NEW_TAI_LUE_DIGITS_SUBSET = SymbolRange.range('᧐', '᧚'); // 0x19d0 - 0x19da + public static final SymbolRange NEW_TAI_LUE_DIGITS_SUBSET_1 = SymbolRange.range('᧐', '᧙'); // 0x19d0 - 0x19d9 + public static final SymbolRange NEW_TAI_LUE_TO_KHMER_SYMBOLS = SymbolRange.range('᧞', '᧿'); // 0x19de - 0x19ff + public static final SymbolRange KHMER_SYMBOLS_LUNAR_DATE_SYMBOLS = SymbolRange.range('᧠', '᧿'); // 0x19e0 - 0x19ff + public static final SymbolRange BUGINESE_CONSONANTS = SymbolRange.range('ᨀ', 'ᨖ'); // 0x1a00 - 0x1a16 + public static final SymbolRange BUGINESE_VOWELS_SUBSET = SymbolRange.range('ᨗ', 'ᨘ'); // 0x1a17 - 0x1a18 + public static final SymbolRange BUGINESE_VOWELS_SUBSET_1 = SymbolRange.range('ᨗ', 'ᨛ'); // 0x1a17 - 0x1a1b + public static final SymbolRange BUGINESE_VOWELS_SUBSET_2 = SymbolRange.range('ᨙ', 'ᨚ'); // 0x1a19 - 0x1a1a + public static final SymbolRange BUGINESE_VARIOUS_SIGNS = SymbolRange.range('᨞', '᨟'); // 0x1a1e - 0x1a1f + public static final SymbolRange TAI_THAM_CONSONANTS_TO_CONSONANTS = SymbolRange.range('ᨠ', 'ᩔ'); // 0x1a20 - 0x1a54 + public static final SymbolRange TAI_THAM_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ᩕ', 'ᩞ'); // 0x1a55 - 0x1a5e + public static final SymbolRange TAI_THAM_CONSONANT_SIGNS_SUBSET_1 = SymbolRange.range('ᩘ', 'ᩞ'); // 0x1a58 - 0x1a5e + public static final SymbolRange TAI_THAM_SIGN_TO_OTHER_MARKS = SymbolRange.range('᩠', '᩼'); // 0x1a60 - 0x1a7c + public static final SymbolRange TAI_THAM_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᩣ', 'ᩤ'); // 0x1a63 - 0x1a64 + public static final SymbolRange TAI_THAM_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᩥ', 'ᩬ'); // 0x1a65 - 0x1a6c + public static final SymbolRange TAI_THAM_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ᩭ', 'ᩲ'); // 0x1a6d - 0x1a72 + public static final SymbolRange TAI_THAM_DEPENDENT_VOWEL_SIGNS_TO_OTHER_MARKS = SymbolRange.range('ᩳ', '᩼'); // 0x1a73 - 0x1a7c + public static final SymbolRange TAI_THAM_HORA_DIGITS_SUBSET = SymbolRange.range('᪀', '᪉'); // 0x1a80 - 0x1a89 + public static final SymbolRange TAI_THAM_THAM_DIGITS_SUBSET = SymbolRange.range('᪐', '᪙'); // 0x1a90 - 0x1a99 + public static final SymbolRange TAI_THAM_LOGOGRAPHS_TO_PUNCTUATION = SymbolRange.range('᪠', '᪦'); // 0x1aa0 - 0x1aa6 + public static final SymbolRange TAI_THAM_PUNCTUATION_SUBSET = SymbolRange.range('᪨', '᪭'); // 0x1aa8 - 0x1aad + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_EXTENDED_USED_IN_GERMAN_DIALECTOLOGY_TO_MARKS_SURROUNDING_OTHER_DIACRITICS_OR_LETTERS = SymbolRange.range('᪰', '᪽'); // 0x1ab0 - 0x1abd + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_EXTENDED_USED_IN_GERMAN_DIALECTOLOGY_TO_USED_FOR_SCOTS_DIALECTOLOGY = SymbolRange.range('᪰', 'ᫀ'); // 0x1ab0 - 0x1ac0 + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_EXTENDED_USED_FOR_SCOTS_DIALECTOLOGY = SymbolRange.range('ᪿ', 'ᫀ'); // 0x1abf - 0x1ac0 + public static final SymbolRange BALINESE_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ᬀ', 'ᬃ'); // 0x1b00 - 0x1b03 + public static final SymbolRange BALINESE_VARIOUS_SIGNS = SymbolRange.range('ᬀ', 'ᬄ'); // 0x1b00 - 0x1b04 + public static final SymbolRange BALINESE_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ᬅ', 'ᬳ'); // 0x1b05 - 0x1b33 + public static final SymbolRange BALINESE_SIGN_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('᬴', '᭄'); // 0x1b34 - 0x1b44 + public static final SymbolRange BALINESE_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᬶ', 'ᬺ'); // 0x1b36 - 0x1b3a + public static final SymbolRange BALINESE_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᬽ', 'ᭁ'); // 0x1b3d - 0x1b41 + public static final SymbolRange BALINESE_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ᭃ', '᭄'); // 0x1b43 - 0x1b44 + public static final SymbolRange BALINESE_ADDITIONAL_CONSONANTS_SUBSET = SymbolRange.range('ᭅ', 'ᭋ'); // 0x1b45 - 0x1b4b + public static final SymbolRange BALINESE_DIGITS = SymbolRange.range('᭐', '᭙'); // 0x1b50 - 0x1b59 + public static final SymbolRange BALINESE_PUNCTUATION = SymbolRange.range('᭚', '᭠'); // 0x1b5a - 0x1b60 + public static final SymbolRange BALINESE_MUSICAL_SYMBOLS_FOR_NOTES = SymbolRange.range('᭡', '᭪'); // 0x1b61 - 0x1b6a + public static final SymbolRange BALINESE_DIACRITICAL_MARKS_FOR_MUSICAL_SYMBOLS = SymbolRange.range('᭫', '᭳'); // 0x1b6b - 0x1b73 + public static final SymbolRange BALINESE_MUSICAL_SYMBOLS = SymbolRange.range('᭴', '᭼'); // 0x1b74 - 0x1b7c + public static final SymbolRange SUNDANESE_VARIOUS_SIGNS = SymbolRange.range('ᮀ', 'ᮂ'); // 0x1b80 - 0x1b82 + public static final SymbolRange SUNDANESE_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ᮀ', 'ᮁ'); // 0x1b80 - 0x1b81 + public static final SymbolRange SUNDANESE_VOWELS_TO_CONSONANTS = SymbolRange.range('ᮃ', 'ᮠ'); // 0x1b83 - 0x1ba0 + public static final SymbolRange SUNDANESE_CONSONANT_SIGNS_TO_CONSONANT_SIGNS = SymbolRange.range('ᮡ', 'ᮭ'); // 0x1ba1 - 0x1bad + public static final SymbolRange SUNDANESE_CONSONANT_SIGNS_TO_VOWEL_SIGNS = SymbolRange.range('ᮢ', 'ᮥ'); // 0x1ba2 - 0x1ba5 + public static final SymbolRange SUNDANESE_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᮦ', 'ᮧ'); // 0x1ba6 - 0x1ba7 + public static final SymbolRange SUNDANESE_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᮨ', 'ᮩ'); // 0x1ba8 - 0x1ba9 + public static final SymbolRange SUNDANESE_VIRAMAS_TO_CONSONANT_SIGNS = SymbolRange.range('᮫', 'ᮭ'); // 0x1bab - 0x1bad + public static final SymbolRange SUNDANESE_ADDITIONAL_CONSONANTS = SymbolRange.range('ᮮ', 'ᮯ'); // 0x1bae - 0x1baf + public static final SymbolRange SUNDANESE_DIGITS = SymbolRange.range('᮰', '᮹'); // 0x1bb0 - 0x1bb9 + public static final SymbolRange SUNDANESE_TO_BATAK = SymbolRange.range('ᮺ', 'ᯥ'); // 0x1bba - 0x1be5 + public static final SymbolRange BATAK_SIGN_TO_SIGNS = SymbolRange.range('᯦', '᯳'); // 0x1be6 - 0x1bf3 + public static final SymbolRange BATAK_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ᯨ', 'ᯩ'); // 0x1be8 - 0x1be9 + public static final SymbolRange BATAK_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ᯪ', 'ᯬ'); // 0x1bea - 0x1bec + public static final SymbolRange BATAK_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_CONSONANT_SIGNS = SymbolRange.range('ᯯ', 'ᯱ'); // 0x1bef - 0x1bf1 + public static final SymbolRange BATAK_SIGNS_SUBSET = SymbolRange.range('᯲', '᯳'); // 0x1bf2 - 0x1bf3 + public static final SymbolRange BATAK_PUNCTUATION = SymbolRange.range('᯼', '᯿'); // 0x1bfc - 0x1bff + public static final SymbolRange LEPCHA_CONSONANTS = SymbolRange.range('ᰀ', 'ᰣ'); // 0x1c00 - 0x1c23 + public static final SymbolRange LEPCHA_SUBJOINED_CONSONANTS_TO_DEPENDENT_VOWELS = SymbolRange.range('ᰤ', 'ᰫ'); // 0x1c24 - 0x1c2b + public static final SymbolRange LEPCHA_SUBJOINED_CONSONANTS_TO_VARIOUS_SIGNS = SymbolRange.range('ᰤ', '᰷'); // 0x1c24 - 0x1c37 + public static final SymbolRange LEPCHA_DEPENDENT_VOWELS_TO_CONSONANT_SIGNS = SymbolRange.range('ᰬ', 'ᰳ'); // 0x1c2c - 0x1c33 + public static final SymbolRange LEPCHA_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ᰴ', 'ᰵ'); // 0x1c34 - 0x1c35 + public static final SymbolRange LEPCHA_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ᰶ', '᰷'); // 0x1c36 - 0x1c37 + public static final SymbolRange LEPCHA_PUNCTUATION = SymbolRange.range('᰻', '᰿'); // 0x1c3b - 0x1c3f + public static final SymbolRange LEPCHA_DIGITS_SUBSET = SymbolRange.range('᱀', '᱉'); // 0x1c40 - 0x1c49 + public static final SymbolRange LEPCHA_ADDITIONAL_LETTERS = SymbolRange.range('ᱍ', 'ᱏ'); // 0x1c4d - 0x1c4f + public static final SymbolRange OL_CHIKI_DIGITS = SymbolRange.range('᱐', '᱙'); // 0x1c50 - 0x1c59 + public static final SymbolRange OL_CHIKI_LETTERS = SymbolRange.range('ᱚ', 'ᱷ'); // 0x1c5a - 0x1c77 + public static final SymbolRange OL_CHIKI_LETTERS_TO_MODIFIER_LETTERS = SymbolRange.range('ᱚ', 'ᱽ'); // 0x1c5a - 0x1c7d + public static final SymbolRange OL_CHIKI_MODIFIER_LETTERS = SymbolRange.range('ᱸ', 'ᱽ'); // 0x1c78 - 0x1c7d + public static final SymbolRange OL_CHIKI_PUNCTUATION = SymbolRange.range('᱾', '᱿'); // 0x1c7e - 0x1c7f + public static final SymbolRange CYRILLIC_EXTENDED_C_HISTORIC_LETTER_VARIANTS_SUBSET = SymbolRange.range('ᲀ', 'ᲈ'); // 0x1c80 - 0x1c88 + public static final SymbolRange GEORGIAN_EXTENDED_CAPITAL_LETTERS_MTAVRULI_TO_ADDITIONAL_LETTERS = SymbolRange.range('Ა', 'Ჺ'); // 0x1c90 - 0x1cba + public static final SymbolRange GEORGIAN_EXTENDED_ADDITIONAL_LETTERS_FOR_OSSETIAN_AND_ABKHAZ = SymbolRange.range('Ჽ', 'Ჿ'); // 0x1cbd - 0x1cbf + public static final SymbolRange SUNDANESE_SUPPLEMENT_PUNCTUATION_SUBSET = SymbolRange.range('᳀', '᳇'); // 0x1cc0 - 0x1cc7 + public static final SymbolRange VEDIC_EXTENSIONS_TONE_MARKS_FOR_THE_SAMAVEDA = SymbolRange.range('᳐', '᳒'); // 0x1cd0 - 0x1cd2 + public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_FOR_YAJURVEDIC_TO_TONE_MARKS_FOR_THE_SATAPATHABRAHMANA = SymbolRange.range('᳔', '᳠'); // 0x1cd4 - 0x1ce0 + public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_FOR_YAJURVEDIC_TO_DIACRITICS_FOR_VISARGA = SymbolRange.range('᳔', '᳨'); // 0x1cd4 - 0x1ce8 + public static final SymbolRange VEDIC_EXTENSIONS_DIACRITICS_FOR_VISARGA = SymbolRange.range('᳢', '᳨'); // 0x1ce2 - 0x1ce8 + public static final SymbolRange VEDIC_EXTENSIONS_NASALIZATION_SIGNS_SUBSET = SymbolRange.range('ᳩ', 'ᳬ'); // 0x1ce9 - 0x1cec + public static final SymbolRange VEDIC_EXTENSIONS_NASALIZATION_SIGNS_TO_ARDHAVISARGA = SymbolRange.range('ᳮ', 'ᳳ'); // 0x1cee - 0x1cf3 + public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_SUBSET = SymbolRange.range('ᳵ', 'ᳶ'); // 0x1cf5 - 0x1cf6 + public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_TO_SIGNS_FOR_JAIMINIYA_SAMA_VEDA = SymbolRange.range('᳷', '᳹'); // 0x1cf7 - 0x1cf9 + public static final SymbolRange VEDIC_EXTENSIONS_SIGNS_FOR_JAIMINIYA_SAMA_VEDA = SymbolRange.range('᳸', '᳹'); // 0x1cf8 - 0x1cf9 + public static final SymbolRange PHONETIC_EXTENSIONS_LATIN_LETTERS_TO_GREEK_LETTERS = SymbolRange.range('ᴀ', 'ᴫ'); // 0x1d00 - 0x1d2b + public static final SymbolRange PHONETIC_EXTENSIONS_LATIN_LETTERS_TO_OTHER_PHONETIC_SYMBOLS = SymbolRange.range('ᴀ', 'ᵿ'); // 0x1d00 - 0x1d7f + public static final SymbolRange PHONETIC_EXTENSIONS_TO_PHONETIC_EXTENSIONS_SUPPLEMENT = SymbolRange.range('ᴀ', 'ᶿ'); // 0x1d00 - 0x1dbf + public static final SymbolRange PHONETIC_EXTENSIONS_LATIN_SUPERSCRIPT_MODIFIER_LETTERS_TO_GREEK_SUBSCRIPT_MODIFIER_LETTERS = SymbolRange.range('ᴬ', 'ᵪ'); // 0x1d2c - 0x1d6a + public static final SymbolRange PHONETIC_EXTENSIONS_LATIN_LETTER_TO_LATIN_LETTERS_WITH_MIDDLE_TILDE = SymbolRange.range('ᵫ', 'ᵷ'); // 0x1d6b - 0x1d77 + public static final SymbolRange PHONETIC_EXTENSIONS_TO_PHONETIC_EXTENSIONS_SUPPLEMENT_1 = SymbolRange.range('ᵹ', 'ᶚ'); // 0x1d79 - 0x1d9a + public static final SymbolRange PHONETIC_EXTENSIONS_SUPPLEMENT_MODIFIER_LETTERS = SymbolRange.range('ᶛ', 'ᶿ'); // 0x1d9b - 0x1dbf + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_SUPPLEMENT_USED_FOR_ANCIENT_GREEK_TO_MISCELLANEOUS_MARKS = SymbolRange.range('᷀', '᷹'); // 0x1dc0 - 0x1df9 + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_SUPPLEMENT_MISCELLANEOUS_MARKS_TO_ADDITIONAL_MARKS_FOR_UPA = SymbolRange.range('᷻', '᷿'); // 0x1dfb - 0x1dff + public static final SymbolRange LATIN_EXTENDED_ADDITIONAL_LATIN_GENERAL_USE_EXTENSIONS_TO_MEDIEVALIST_ADDITIONS = SymbolRange.range('Ḁ', 'ỿ'); // 0x1e00 - 0x1eff + public static final SymbolRange LATIN_EXTENDED_ADDITIONAL_TO_GREEK_EXTENDED = SymbolRange.range('Ḁ', 'ἕ'); // 0x1e00 - 0x1f15 + public static final SymbolRange LATIN_EXTENDED_ADDITIONAL_LATIN_GENERAL_USE_EXTENSIONS_TO_MEDIEVALIST_ADDITIONS_1 = SymbolRange.range('ẕ', 'ẝ'); // 0x1e95 - 0x1e9d + public static final SymbolRange LATIN_EXTENDED_ADDITIONAL_TO_GREEK_EXTENDED_1 = SymbolRange.range('ỿ', 'ἇ'); // 0x1eff - 0x1f07 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK = SymbolRange.range('ἀ', '῿'); // 0x1f00 - 0x1fff + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_7 = SymbolRange.range('Ἀ', 'Ἇ'); // 0x1f08 - 0x1f0f + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_14 = SymbolRange.range('ἐ', 'ἕ'); // 0x1f10 - 0x1f15 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_19 = SymbolRange.range('Ἐ', 'Ἕ'); // 0x1f18 - 0x1f1d + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_22 = SymbolRange.range('ἠ', 'ἧ'); // 0x1f20 - 0x1f27 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_27 = SymbolRange.range('ἠ', 'ὅ'); // 0x1f20 - 0x1f45 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_28 = SymbolRange.range('Ἠ', 'Ἧ'); // 0x1f28 - 0x1f2f + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_33 = SymbolRange.range('ἰ', 'ἷ'); // 0x1f30 - 0x1f37 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_43 = SymbolRange.range('Ἰ', 'Ἷ'); // 0x1f38 - 0x1f3f + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_1 = SymbolRange.range('ὀ', 'ὅ'); // 0x1f40 - 0x1f45 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_9 = SymbolRange.range('Ὀ', 'Ὅ'); // 0x1f48 - 0x1f4d + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_12 = SymbolRange.range('ὐ', 'ὗ'); // 0x1f50 - 0x1f57 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_21 = SymbolRange.range('Ὗ', 'ώ'); // 0x1f5f - 0x1f7d + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_23 = SymbolRange.range('ὠ', 'ὧ'); // 0x1f60 - 0x1f67 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_29 = SymbolRange.range('Ὠ', 'Ὧ'); // 0x1f68 - 0x1f6f + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_35 = SymbolRange.range('ὰ', 'ώ'); // 0x1f70 - 0x1f7d + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET = SymbolRange.range('ᾀ', 'ᾇ'); // 0x1f80 - 0x1f87 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_2 = SymbolRange.range('ᾀ', 'ᾴ'); // 0x1f80 - 0x1fb4 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_8 = SymbolRange.range('ᾈ', 'ᾏ'); // 0x1f88 - 0x1f8f + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_13 = SymbolRange.range('ᾐ', 'ᾗ'); // 0x1f90 - 0x1f97 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_18 = SymbolRange.range('ᾘ', 'ᾟ'); // 0x1f98 - 0x1f9f + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_24 = SymbolRange.range('ᾠ', 'ᾧ'); // 0x1fa0 - 0x1fa7 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_30 = SymbolRange.range('ᾨ', 'ᾯ'); // 0x1fa8 - 0x1faf + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_34 = SymbolRange.range('ᾰ', 'ᾴ'); // 0x1fb0 - 0x1fb4 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_37 = SymbolRange.range('ᾶ', 'ᾷ'); // 0x1fb6 - 0x1fb7 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_39 = SymbolRange.range('ᾶ', 'ᾼ'); // 0x1fb6 - 0x1fbc + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_41 = SymbolRange.range('Ᾰ', 'Ά'); // 0x1fb8 - 0x1fbb + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_45 = SymbolRange.range('᾿', '῁'); // 0x1fbf - 0x1fc1 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_3 = SymbolRange.range('ῂ', 'ῄ'); // 0x1fc2 - 0x1fc4 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_4 = SymbolRange.range('ῆ', 'ῇ'); // 0x1fc6 - 0x1fc7 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_5 = SymbolRange.range('ῆ', 'ῌ'); // 0x1fc6 - 0x1fcc + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_6 = SymbolRange.range('Ὲ', 'Ή'); // 0x1fc8 - 0x1fcb + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_10 = SymbolRange.range('῍', '῏'); // 0x1fcd - 0x1fcf + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_11 = SymbolRange.range('ῐ', 'ΐ'); // 0x1fd0 - 0x1fd3 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_15 = SymbolRange.range('ῖ', 'ῗ'); // 0x1fd6 - 0x1fd7 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_16 = SymbolRange.range('ῖ', 'Ί'); // 0x1fd6 - 0x1fdb + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_17 = SymbolRange.range('Ῐ', 'Ί'); // 0x1fd8 - 0x1fdb + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_20 = SymbolRange.range('῝', '῟'); // 0x1fdd - 0x1fdf + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_25 = SymbolRange.range('ῠ', 'ῧ'); // 0x1fe0 - 0x1fe7 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_26 = SymbolRange.range('ῠ', 'Ῥ'); // 0x1fe0 - 0x1fec + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_31 = SymbolRange.range('Ῠ', 'Ῥ'); // 0x1fe8 - 0x1fec + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_32 = SymbolRange.range('῭', '`'); // 0x1fed - 0x1fef + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_36 = SymbolRange.range('ῲ', 'ῴ'); // 0x1ff2 - 0x1ff4 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_38 = SymbolRange.range('ῶ', 'ῷ'); // 0x1ff6 - 0x1ff7 + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_40 = SymbolRange.range('ῶ', 'ῼ'); // 0x1ff6 - 0x1ffc + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_42 = SymbolRange.range('Ὸ', 'Ώ'); // 0x1ff8 - 0x1ffb + public static final SymbolRange GREEK_EXTENDED_PRECOMPOSED_POLYTONIC_GREEK_SUBSET_44 = SymbolRange.range('´', '῾'); // 0x1ffd - 0x1ffe + public static final SymbolRange GENERAL_PUNCTUATION_SPACES = SymbolRange.range(' ', ' '); // 0x2000 - 0x200a + public static final SymbolRange GENERAL_PUNCTUATION_SPACES_TO_DEPRECATED = SymbolRange.range(' ', ''); // 0x2000 - 0x206f + public static final SymbolRange GENERAL_PUNCTUATION_FORMAT_CHARACTERS = SymbolRange.range('​', '‏'); // 0x200b - 0x200f + public static final SymbolRange GENERAL_PUNCTUATION_DASHES = SymbolRange.range('‐', '―'); // 0x2010 - 0x2015 + public static final SymbolRange GENERAL_PUNCTUATION_DASHES_TO_GENERAL_PUNCTUATION = SymbolRange.range('‐', '‧'); // 0x2010 - 0x2027 + public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION = SymbolRange.range('‖', '‗'); // 0x2016 - 0x2017 + public static final SymbolRange GENERAL_PUNCTUATION_QUOTATION_MARKS_AND_APOSTROPHE_SUBSET = SymbolRange.range('‛', '“'); // 0x201b - 0x201c + public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_1 = SymbolRange.range('†', '‧'); // 0x2020 - 0x2027 + public static final SymbolRange GENERAL_PUNCTUATION_SEPARATORS = SymbolRange.range('
', '
'); // 0x2028 - 0x2029 + public static final SymbolRange GENERAL_PUNCTUATION_FORMAT_CHARACTERS_1 = SymbolRange.range('‪', '‮'); // 0x202a - 0x202e + public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_2 = SymbolRange.range('‰', '‸'); // 0x2030 - 0x2038 + public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_GENERAL_PUNCTUATION = SymbolRange.range('‰', '⁃'); // 0x2030 - 0x2043 + public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_GENERAL_PUNCTUATION_1 = SymbolRange.range('※', '‾'); // 0x203b - 0x203e + public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_SUBSET_1 = SymbolRange.range('‿', '⁀'); // 0x203f - 0x2040 + public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_SUBSET = SymbolRange.range('⁁', '⁃'); // 0x2041 - 0x2043 + public static final SymbolRange GENERAL_PUNCTUATION_BRACKETS_TO_GENERAL_PUNCTUATION = SymbolRange.range('⁅', '⁑'); // 0x2045 - 0x2051 + public static final SymbolRange GENERAL_PUNCTUATION_DOUBLE_PUNCTUATION_FOR_VERTICAL_TEXT_TO_GENERAL_PUNCTUATION = SymbolRange.range('⁇', '⁑'); // 0x2047 - 0x2051 + public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_ARCHAIC_PUNCTUATION = SymbolRange.range('⁓', '⁞'); // 0x2053 - 0x205e + public static final SymbolRange GENERAL_PUNCTUATION_GENERAL_PUNCTUATION_TO_ARCHAIC_PUNCTUATION_1 = SymbolRange.range('⁕', '⁞'); // 0x2055 - 0x205e + public static final SymbolRange GENERAL_PUNCTUATION_FORMAT_CHARACTER_TO_INVISIBLE_OPERATORS = SymbolRange.range('⁠', '⁤'); // 0x2060 - 0x2064 + public static final SymbolRange GENERAL_PUNCTUATION_FORMAT_CHARACTERS_TO_DEPRECATED = SymbolRange.range('⁦', ''); // 0x2066 - 0x206f + public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_TO_SUBSCRIPTS_FOR_UPA = SymbolRange.range('⁰', '₟'); // 0x2070 - 0x209f + public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_SUBSET = SymbolRange.range('⁴', '⁹'); // 0x2074 - 0x2079 + public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_SUBSET_1 = SymbolRange.range('⁺', '⁼'); // 0x207a - 0x207c + public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUPERSCRIPTS_SUBSET_2 = SymbolRange.range('⁽', '⁾'); // 0x207d - 0x207e + public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_SUBSET = SymbolRange.range('₀', '₉'); // 0x2080 - 0x2089 + public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_SUBSET_1 = SymbolRange.range('₊', '₌'); // 0x208a - 0x208c + public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_SUBSET_2 = SymbolRange.range('₍', '₎'); // 0x208d - 0x208e + public static final SymbolRange SUPERSCRIPTS_AND_SUBSCRIPTS_SUBSCRIPTS_TO_SUBSCRIPTS_FOR_UPA = SymbolRange.range('ₐ', 'ₜ'); // 0x2090 - 0x209c + public static final SymbolRange CURRENCY_SYMBOLS_CURRENCY_SYMBOLS_SUBSET = SymbolRange.range('₠', '₿'); // 0x20a0 - 0x20bf + public static final SymbolRange CURRENCY_SYMBOLS_CURRENCY_SYMBOLS = SymbolRange.range('₠', '⃏'); // 0x20a0 - 0x20cf + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS = SymbolRange.range('⃐', '⃜'); // 0x20d0 - 0x20dc public static final SymbolRange COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_TO_ADDITIONAL_DIACRITICAL_MARKS_FOR_SYMBOLS = SymbolRange.range('⃐', '⃰'); // 0x20d0 - 0x20f0 - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_ENCLOSING_DIACRITICS = SymbolRange.range('⃝', '⃠'); // 0x20dd - 0x20e0 - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_ADDITIONAL_ENCLOSING_DIACRITICS = SymbolRange.range('⃢', '⃤'); // 0x20e2 - 0x20e4 - public static final SymbolRange COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_ADDITIONAL_DIACRITICAL_MARKS_FOR_SYMBOLS_SUBSET = SymbolRange.range('⃥', '⃰'); // 0x20e5 - 0x20f0 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET = SymbolRange.range('℀', '℁'); // 0x2100 - 0x2101 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_TO_LOWERCASE_CLAUDIAN_LETTER = SymbolRange.range('℀', '⅏'); // 0x2100 - 0x214f - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_1 = SymbolRange.range('℃', '℆'); // 0x2103 - 0x2106 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_2 = SymbolRange.range('℈', '℉'); // 0x2108 - 0x2109 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_3 = SymbolRange.range('ℊ', 'ℓ'); // 0x210a - 0x2113 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_4 = SymbolRange.range('ℋ', 'ℍ'); // 0x210b - 0x210d - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_5 = SymbolRange.range('ℎ', 'ℏ'); // 0x210e - 0x210f - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_6 = SymbolRange.range('ℐ', 'ℒ'); // 0x2110 - 0x2112 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_7 = SymbolRange.range('№', '℗'); // 0x2116 - 0x2117 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_8 = SymbolRange.range('№', '℘'); // 0x2116 - 0x2118 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_9 = SymbolRange.range('ℙ', 'ℝ'); // 0x2119 - 0x211d - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_10 = SymbolRange.range('℞', '℣'); // 0x211e - 0x2123 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_11 = SymbolRange.range('K', 'ℭ'); // 0x212a - 0x212d - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_TO_HEBREW_LETTERLIKE_MATH_SYMBOLS = SymbolRange.range('ℯ', 'ℹ'); // 0x212f - 0x2139 - public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_12 = SymbolRange.range('ℰ', 'ℳ'); // 0x2130 - 0x2133 - public static final SymbolRange LETTERLIKE_SYMBOLS_HEBREW_LETTERLIKE_MATH_SYMBOLS = SymbolRange.range('ℵ', 'ℸ'); // 0x2135 - 0x2138 - public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET_1 = SymbolRange.range('℺', '℻'); // 0x213a - 0x213b - public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET_2 = SymbolRange.range('ℼ', 'ℽ'); // 0x213c - 0x213d - public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET_3 = SymbolRange.range('ℼ', 'ℿ'); // 0x213c - 0x213f - public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET_4 = SymbolRange.range('ℾ', 'ℿ'); // 0x213e - 0x213f - public static final SymbolRange LETTERLIKE_SYMBOLS_DOUBLE_STRUCK_LARGE_OPERATOR_TO_ADDITIONAL_LETTERLIKE_SYMBOLS = SymbolRange.range('⅀', '⅄'); // 0x2140 - 0x2144 - public static final SymbolRange LETTERLIKE_SYMBOLS_DOUBLE_STRUCK_ITALIC_MATH_SYMBOLS = SymbolRange.range('ⅅ', 'ⅉ'); // 0x2145 - 0x2149 - public static final SymbolRange LETTERLIKE_SYMBOLS_DOUBLE_STRUCK_ITALIC_MATH_SYMBOLS_SUBSET = SymbolRange.range('ⅆ', 'ⅉ'); // 0x2146 - 0x2149 - public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_2 = SymbolRange.range('⅊', '⅍'); // 0x214a - 0x214d - public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET = SymbolRange.range('⅌', '⅍'); // 0x214c - 0x214d - public static final SymbolRange NUMBER_FORMS_FRACTIONS = SymbolRange.range('⅐', '⅟'); // 0x2150 - 0x215f - public static final SymbolRange NUMBER_FORMS_FRACTIONS_TO_ARCHAIC_ROMAN_NUMERALS = SymbolRange.range('⅐', 'ↂ'); // 0x2150 - 0x2182 - public static final SymbolRange NUMBER_FORMS_FRACTIONS_TO_TURNED_DIGITS = SymbolRange.range('⅐', '↏'); // 0x2150 - 0x218f - public static final SymbolRange NUMBER_FORMS_ROMAN_NUMERALS_TO_ARCHAIC_ROMAN_NUMERALS = SymbolRange.range('Ⅰ', 'ↂ'); // 0x2160 - 0x2182 - public static final SymbolRange NUMBER_FORMS_ARCHAIC_ROMAN_NUMERALS_TO_ARCHAIC_ROMAN_NUMERALS = SymbolRange.range('Ↄ', 'ↄ'); // 0x2183 - 0x2184 - public static final SymbolRange NUMBER_FORMS_ARCHAIC_ROMAN_NUMERALS_TO_ARCHAIC_ROMAN_NUMERALS_1 = SymbolRange.range('ↅ', '↉'); // 0x2185 - 0x2189 - public static final SymbolRange NUMBER_FORMS_ARCHAIC_ROMAN_NUMERALS_1 = SymbolRange.range('ↅ', 'ↈ'); // 0x2185 - 0x2188 - public static final SymbolRange NUMBER_FORMS_TURNED_DIGITS_SUBSET = SymbolRange.range('↊', '↋'); // 0x218a - 0x218b - public static final SymbolRange ARROWS_SIMPLE_ARROWS_SUBSET = SymbolRange.range('←', '↔'); // 0x2190 - 0x2194 - public static final SymbolRange ARROWS_SIMPLE_ARROWS_TO_MISCELLANEOUS_ARROWS = SymbolRange.range('←', '⇿'); // 0x2190 - 0x21ff - public static final SymbolRange ARROWS_TO_MISCELLANEOUS_TECHNICAL = SymbolRange.range('←', '⌇'); // 0x2190 - 0x2307 - public static final SymbolRange ARROWS_SIMPLE_ARROWS_SUBSET_1 = SymbolRange.range('↕', '↙'); // 0x2195 - 0x2199 - public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET = SymbolRange.range('↚', '↛'); // 0x219a - 0x219b - public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET_1 = SymbolRange.range('↜', '↟'); // 0x219c - 0x219f - public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET_2 = SymbolRange.range('↡', '↢'); // 0x21a1 - 0x21a2 - public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET_3 = SymbolRange.range('↤', '↥'); // 0x21a4 - 0x21a5 - public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET_4 = SymbolRange.range('↧', '↭'); // 0x21a7 - 0x21ad - public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_TO_PAIRED_ARROWS_AND_HARPOONS = SymbolRange.range('↯', '⇍'); // 0x21af - 0x21cd - public static final SymbolRange ARROWS_DOUBLE_ARROWS_SUBSET = SymbolRange.range('⇎', '⇏'); // 0x21ce - 0x21cf - public static final SymbolRange ARROWS_DOUBLE_ARROWS_SUBSET_1 = SymbolRange.range('⇐', '⇑'); // 0x21d0 - 0x21d1 - public static final SymbolRange ARROWS_DOUBLE_ARROWS_TO_WHITE_ARROWS_AND_KEYBOARD_SYMBOLS = SymbolRange.range('⇕', '⇳'); // 0x21d5 - 0x21f3 - public static final SymbolRange ARROWS_TO_MATHEMATICAL_OPERATORS = SymbolRange.range('⇴', '⋿'); // 0x21f4 - 0x22ff - public static final SymbolRange MATHEMATICAL_OPERATORS_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_TO_RELATIONS = SymbolRange.range('∀', '⋿'); // 0x2200 - 0x22ff - public static final SymbolRange MISCELLANEOUS_TECHNICAL_MISCELLANEOUS_TECHNICAL = SymbolRange.range('⌀', '⌇'); // 0x2300 - 0x2307 - public static final SymbolRange MISCELLANEOUS_TECHNICAL_MISCELLANEOUS_TECHNICAL_TO_POWER_SYMBOL_FROM_IEEE_1621_2004 = SymbolRange.range('⌀', '⏿'); // 0x2300 - 0x23ff - public static final SymbolRange MISCELLANEOUS_TECHNICAL_CEILINGS_AND_FLOORS = SymbolRange.range('⌈', '⌋'); // 0x2308 - 0x230b - public static final SymbolRange MISCELLANEOUS_TECHNICAL_CROPS_TO_QUINE_CORNERS = SymbolRange.range('⌌', '⌟'); // 0x230c - 0x231f - public static final SymbolRange MISCELLANEOUS_TECHNICAL_CROPS_TO_KEYBOARD_SYMBOLS = SymbolRange.range('⌌', '⌨'); // 0x230c - 0x2328 - public static final SymbolRange MISCELLANEOUS_TECHNICAL_INTEGRAL_PIECES = SymbolRange.range('⌠', '⌡'); // 0x2320 - 0x2321 - public static final SymbolRange MISCELLANEOUS_TECHNICAL_FROWN_AND_SMILE_TO_KEYBOARD_SYMBOLS = SymbolRange.range('⌢', '⌨'); // 0x2322 - 0x2328 - public static final SymbolRange MISCELLANEOUS_TECHNICAL_DEPRECATED_ANGLE_BRACKETS = SymbolRange.range('〈', '〉'); // 0x2329 - 0x232a - public static final SymbolRange MISCELLANEOUS_TECHNICAL_KEYBOARD_SYMBOL_TO_APL = SymbolRange.range('⌫', '⍻'); // 0x232b - 0x237b - public static final SymbolRange MISCELLANEOUS_TECHNICAL_TO_CONTROL_PICTURES_1 = SymbolRange.range('⌫', '␦'); // 0x232b - 0x2426 - public static final SymbolRange MISCELLANEOUS_TECHNICAL_GRAPHICS_FOR_CONTROL_CODES_TO_KEYBOARD_SYMBOLS_FROM_ISO_9995_7 = SymbolRange.range('⍽', '⎚'); // 0x237d - 0x239a - public static final SymbolRange MISCELLANEOUS_TECHNICAL_BRACKET_PIECES_TO_SUMMATION_SIGN_PARTS = SymbolRange.range('⎛', '⎳'); // 0x239b - 0x23b3 - public static final SymbolRange MISCELLANEOUS_TECHNICAL_HORIZONTAL_BRACKETS_TO_ELECTROTECHNICAL_SYMBOLS = SymbolRange.range('⎴', '⏛'); // 0x23b4 - 0x23db - public static final SymbolRange MISCELLANEOUS_TECHNICAL_HORIZONTAL_BRACKETS_1 = SymbolRange.range('⏜', '⏡'); // 0x23dc - 0x23e1 - public static final SymbolRange MISCELLANEOUS_TECHNICAL_TO_CONTROL_PICTURES = SymbolRange.range('⏢', '␦'); // 0x23e2 - 0x2426 - public static final SymbolRange CONTROL_PICTURES_GRAPHIC_PICTURES_FOR_CONTROL_CODES_TO_SPECIFIC_SYMBOL_FOR_CONTROL_CODE = SymbolRange.range('␀', '␿'); // 0x2400 - 0x243f - public static final SymbolRange OPTICAL_CHARACTER_RECOGNITION_OCR_A_TO_MICR = SymbolRange.range('⑀', '⑊'); // 0x2440 - 0x244a - public static final SymbolRange OPTICAL_CHARACTER_RECOGNITION_OCR_A_TO_OCR = SymbolRange.range('⑀', '⑟'); // 0x2440 - 0x245f - public static final SymbolRange ENCLOSED_ALPHANUMERICS_CIRCLED_NUMBERS_TO_NUMBERS_PERIOD = SymbolRange.range('①', '⒛'); // 0x2460 - 0x249b - public static final SymbolRange ENCLOSED_ALPHANUMERICS_CIRCLED_NUMBERS_TO_DOUBLE_CIRCLED_NUMBERS = SymbolRange.range('①', '⓿'); // 0x2460 - 0x24ff - public static final SymbolRange ENCLOSED_ALPHANUMERICS_PARENTHESIZED_LATIN_LETTERS_TO_CIRCLED_LATIN_LETTERS = SymbolRange.range('⒜', 'ⓩ'); // 0x249c - 0x24e9 - public static final SymbolRange ENCLOSED_ALPHANUMERICS_ADDITIONAL_CIRCLED_NUMBER_TO_DOUBLE_CIRCLED_NUMBERS = SymbolRange.range('⓪', '⓿'); // 0x24ea - 0x24ff - public static final SymbolRange BOX_DRAWING_LIGHT_AND_HEAVY_SOLID_LINES_TO_MIXED_LIGHT_AND_HEAVY_LINES = SymbolRange.range('─', '╿'); // 0x2500 - 0x257f - public static final SymbolRange BOX_DRAWING_TO_GEOMETRIC_SHAPES = SymbolRange.range('─', '▶'); // 0x2500 - 0x25b6 - public static final SymbolRange BOX_DRAWING_TO_DINGBATS = SymbolRange.range('─', '❧'); // 0x2500 - 0x2767 - public static final SymbolRange BLOCK_ELEMENTS_BLOCK_ELEMENTS_TO_TERMINAL_GRAPHIC_CHARACTERS = SymbolRange.range('▀', '▟'); // 0x2580 - 0x259f - public static final SymbolRange GEOMETRIC_SHAPES_GEOMETRIC_SHAPES_TO_GEOMETRIC_SHAPES = SymbolRange.range('■', '◿'); // 0x25a0 - 0x25ff - public static final SymbolRange GEOMETRIC_SHAPES_GEOMETRIC_SHAPES_SUBSET = SymbolRange.range('▸', '◀'); // 0x25b8 - 0x25c0 - public static final SymbolRange GEOMETRIC_SHAPES_GEOMETRIC_SHAPES_TO_CONTROL_CODE_GRAPHICS = SymbolRange.range('◂', '◷'); // 0x25c2 - 0x25f7 - public static final SymbolRange GEOMETRIC_SHAPES_GEOMETRIC_SHAPES_1 = SymbolRange.range('◸', '◿'); // 0x25f8 - 0x25ff - public static final SymbolRange MISCELLANEOUS_SYMBOLS_WEATHER_AND_ASTROLOGICAL_SYMBOLS_TO_MUSICAL_SYMBOLS = SymbolRange.range('☀', '♮'); // 0x2600 - 0x266e - public static final SymbolRange MISCELLANEOUS_SYMBOLS_WEATHER_AND_ASTROLOGICAL_SYMBOLS_TO_MAP_SYMBOLS_FROM_ARIB_STD_B24 = SymbolRange.range('☀', '⛿'); // 0x2600 - 0x26ff - public static final SymbolRange MISCELLANEOUS_SYMBOLS_TO_DINGBATS = SymbolRange.range('♰', '❧'); // 0x2670 - 0x2767 - public static final SymbolRange DINGBATS_MISCELLANEOUS_TO_DINGBAT_ARROWS = SymbolRange.range('✀', '➿'); // 0x2700 - 0x27bf - public static final SymbolRange DINGBATS_ORNAMENTAL_BRACKETS = SymbolRange.range('❨', '❵'); // 0x2768 - 0x2775 - public static final SymbolRange DINGBATS_DINGBAT_CIRCLED_DIGITS = SymbolRange.range('❶', '➓'); // 0x2776 - 0x2793 - public static final SymbolRange DINGBATS_DINGBAT_ARROW_TO_DINGBAT_ARROWS = SymbolRange.range('➔', '➿'); // 0x2794 - 0x27bf - public static final SymbolRange DINGBATS_TO_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = SymbolRange.range('➔', '⟄'); // 0x2794 - 0x27c4 - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_MISCELLANEOUS_SYMBOLS = SymbolRange.range('⟀', '⟄'); // 0x27c0 - 0x27c4 - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_PAIRED_PUNCTUATION = SymbolRange.range('⟅', '⟆'); // 0x27c5 - 0x27c6 - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_OPERATOR_TO_MODAL_LOGIC_OPERATORS = SymbolRange.range('⟇', '⟥'); // 0x27c7 - 0x27e5 - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_MATHEMATICAL_BRACKETS = SymbolRange.range('⟦', '⟯'); // 0x27e6 - 0x27ef - public static final SymbolRange SUPPLEMENTAL_ARROWS_A_ARROWS_TO_LONG_ARROWS = SymbolRange.range('⟰', '⟿'); // 0x27f0 - 0x27ff - public static final SymbolRange SUPPLEMENTAL_ARROWS_A_TO_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = SymbolRange.range('⟰', '⦂'); // 0x27f0 - 0x2982 - public static final SymbolRange BRAILLE_PATTERNS_BRAILLE_PATTERNS = SymbolRange.range('⠀', '⣿'); // 0x2800 - 0x28ff - public static final SymbolRange SUPPLEMENTAL_ARROWS_B_TO_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = SymbolRange.range('⤀', '⦂'); // 0x2900 - 0x2982 - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_BRACKETS_TO_BRACKETS = SymbolRange.range('⦃', '⦘'); // 0x2983 - 0x2998 - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_FENCES_TO_BOWTIE_SYMBOLS = SymbolRange.range('⦙', '⧗'); // 0x2999 - 0x29d7 - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_FENCES_1 = SymbolRange.range('⧘', '⧛'); // 0x29d8 - 0x29db - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_TO_SPECIALIZED_PLUS_SIGN_OPERATORS = SymbolRange.range('⧜', '⧻'); // 0x29dc - 0x29fb - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_BRACKETS_2 = SymbolRange.range('⧼', '⧽'); // 0x29fc - 0x29fd - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_TO_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = SymbolRange.range('⧾', '⫿'); // 0x29fe - 0x2aff - public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_TO_MISCELLANEOUS_SYMBOLS_AND_ARROWS = SymbolRange.range('⧾', '⭳'); // 0x29fe - 0x2b73 - public static final SymbolRange SUPPLEMENTAL_MATHEMATICAL_OPERATORS_N_ARY_OPERATORS_TO_OPERATORS = SymbolRange.range('⨀', '⫿'); // 0x2a00 - 0x2aff - public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_WHITE_AND_BLACK_ARROWS_TO_ELLIPSES = SymbolRange.range('⬀', '⬯'); // 0x2b00 - 0x2b2f - public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_WHITE_AND_BLACK_ARROWS_TO_SYMBOLS_USED_IN_CHESS_NOTATION = SymbolRange.range('⬀', '⯿'); // 0x2b00 - 0x2bff - public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MATHEMATICAL_ARROWS_SUBSET_2 = SymbolRange.range('⬰', '⭄'); // 0x2b30 - 0x2b44 - public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MATHEMATICAL_ARROWS_SUBSET = SymbolRange.range('⭅', '⭆'); // 0x2b45 - 0x2b46 - public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MATHEMATICAL_ARROWS_SUBSET_1 = SymbolRange.range('⭇', '⭌'); // 0x2b47 - 0x2b4c - public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MISCELLANEOUS_ARROW_TO_TRIANGLE_HEADED_ARROWS = SymbolRange.range('⭍', '⭳'); // 0x2b4d - 0x2b73 - public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_TRIANGLE_HEADED_ARROWS_TO_MISCELLANEOUS_ARROW_SYMBOL = SymbolRange.range('⭶', '⮕'); // 0x2b76 - 0x2b95 - public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MISCELLANEOUS_SYMBOL_TO_SYMBOLS_USED_IN_CHESS_NOTATION = SymbolRange.range('⮗', '⯿'); // 0x2b97 - 0x2bff - public static final SymbolRange GLAGOLITIC_CAPITAL_LETTERS_SUBSET = SymbolRange.range('Ⰰ', 'Ⱞ'); // 0x2c00 - 0x2c2e - public static final SymbolRange GLAGOLITIC_SMALL_LETTERS_SUBSET = SymbolRange.range('ⰰ', 'ⱞ'); // 0x2c30 - 0x2c5e - public static final SymbolRange LATIN_EXTENDED_C_TO_COPTIC = SymbolRange.range('Ⱡ', 'ⳤ'); // 0x2c60 - 0x2ce4 - public static final SymbolRange LATIN_EXTENDED_C_ORTHOGRAPHIC_LATIN_ADDITIONS_SUBSET = SymbolRange.range('Ɫ', 'Ɽ'); // 0x2c62 - 0x2c64 - public static final SymbolRange LATIN_EXTENDED_C_ORTHOGRAPHIC_LATIN_ADDITIONS_SUBSET_1 = SymbolRange.range('ⱥ', 'ⱦ'); // 0x2c65 - 0x2c66 - public static final SymbolRange LATIN_EXTENDED_C_MISCELLANEOUS_ADDITIONS_SUBSET = SymbolRange.range('Ɑ', 'Ɒ'); // 0x2c6d - 0x2c70 - public static final SymbolRange LATIN_EXTENDED_C_MISCELLANEOUS_ADDITIONS_SUBSET_1 = SymbolRange.range('ⱳ', 'ⱴ'); // 0x2c73 - 0x2c74 - public static final SymbolRange LATIN_EXTENDED_C_CLAUDIAN_LETTERS_TO_ADDITIONS_FOR_UPA = SymbolRange.range('ⱶ', 'ⱻ'); // 0x2c76 - 0x2c7b - public static final SymbolRange LATIN_EXTENDED_C_ADDITIONS_FOR_UPA_SUBSET = SymbolRange.range('ⱼ', 'ⱽ'); // 0x2c7c - 0x2c7d - public static final SymbolRange LATIN_EXTENDED_C_ADDITIONS_FOR_SHONA_TO_ADDITIONS_FOR_SHONA = SymbolRange.range('Ȿ', 'Ⲁ'); // 0x2c7e - 0x2c80 - public static final SymbolRange COPTIC_OLD_NUBIAN_LETTERS_TO_OLD_NUBIAN_LETTERS = SymbolRange.range('ⳣ', 'ⳤ'); // 0x2ce3 - 0x2ce4 - public static final SymbolRange COPTIC_SYMBOLS_SUBSET = SymbolRange.range('⳥', '⳪'); // 0x2ce5 - 0x2cea - public static final SymbolRange COPTIC_CRYPTOGRAMMIC_LETTERS = SymbolRange.range('Ⳬ', 'ⳮ'); // 0x2ceb - 0x2cee - public static final SymbolRange COPTIC_COMBINING_MARKS = SymbolRange.range('⳯', '⳱'); // 0x2cef - 0x2cf1 - public static final SymbolRange COPTIC_BOHAIRIC_COPTIC_LETTERS_SUBSET = SymbolRange.range('Ⳳ', 'ⳳ'); // 0x2cf2 - 0x2cf3 - public static final SymbolRange COPTIC_OLD_NUBIAN_PUNCTUATION = SymbolRange.range('⳹', '⳼'); // 0x2cf9 - 0x2cfc - public static final SymbolRange COPTIC_PUNCTUATION = SymbolRange.range('⳾', '⳿'); // 0x2cfe - 0x2cff - public static final SymbolRange GEORGIAN_SUPPLEMENT_SMALL_LETTERS_KHUTSURI_SUBSET = SymbolRange.range('ⴀ', 'ⴥ'); // 0x2d00 - 0x2d25 - public static final SymbolRange TIFINAGH_LETTERS_SUBSET = SymbolRange.range('ⴰ', 'ⵧ'); // 0x2d30 - 0x2d67 - public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_MEEN_TO_SYLLABLES_FOR_BLIN = SymbolRange.range('ⶀ', 'ⶖ'); // 0x2d80 - 0x2d96 - public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_BENCH_SUBSET = SymbolRange.range('ⶠ', 'ⶦ'); // 0x2da0 - 0x2da6 - public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_BENCH_SUBSET_1 = SymbolRange.range('ⶨ', 'ⶮ'); // 0x2da8 - 0x2dae - public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_BENCH_SUBSET_2 = SymbolRange.range('ⶰ', 'ⶶ'); // 0x2db0 - 0x2db6 - public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_BENCH_SUBSET_3 = SymbolRange.range('ⶸ', 'ⶾ'); // 0x2db8 - 0x2dbe - public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_SEBATBEIT_SUBSET = SymbolRange.range('ⷀ', 'ⷆ'); // 0x2dc0 - 0x2dc6 - public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_SEBATBEIT_SUBSET_1 = SymbolRange.range('ⷈ', 'ⷎ'); // 0x2dc8 - 0x2dce - public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_SEBATBEIT_SUBSET_2 = SymbolRange.range('ⷐ', 'ⷖ'); // 0x2dd0 - 0x2dd6 - public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_SEBATBEIT_SUBSET_3 = SymbolRange.range('ⷘ', 'ⷞ'); // 0x2dd8 - 0x2dde - public static final SymbolRange CYRILLIC_EXTENDED_A_OLD_CHURCH_SLAVONIC_COMBINING_LETTERS = SymbolRange.range('ⷠ', 'ⷿ'); // 0x2de0 - 0x2dff - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_NEW_TESTAMENT_EDITORIAL_SYMBOLS_SUBSET = SymbolRange.range('⸀', '⸁'); // 0x2e00 - 0x2e01 - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_NEW_TESTAMENT_EDITORIAL_SYMBOLS_TO_HISTORIC_PUNCTUATION = SymbolRange.range('⸀', '⸮'); // 0x2e00 - 0x2e2e - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_NEW_TESTAMENT_EDITORIAL_SYMBOLS_SUBSET_1 = SymbolRange.range('⸆', '⸈'); // 0x2e06 - 0x2e08 - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_ANCIENT_GREEK_TEXTUAL_SYMBOLS = SymbolRange.range('⸎', '⸖'); // 0x2e0e - 0x2e16 - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_GENERAL_PUNCTUATION = SymbolRange.range('⸘', '⸙'); // 0x2e18 - 0x2e19 - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_DICTIONARY_PUNCTUATION_1 = SymbolRange.range('⸞', '⸟'); // 0x2e1e - 0x2e1f - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_SUBSET_1 = SymbolRange.range('⸪', '⸮'); // 0x2e2a - 0x2e2e - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_TO_PALAEOTYPE_TRANSLITERATION_SYMBOLS = SymbolRange.range('⸰', '⸹'); // 0x2e30 - 0x2e39 - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_TO_HISTORIC_PUNCTUATION = SymbolRange.range('⸰', '⹏'); // 0x2e30 - 0x2e4f - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_DASHES = SymbolRange.range('⸺', '⸻'); // 0x2e3a - 0x2e3b - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_ALTERNATE_FORMS_OF_PUNCTUATION_TO_ALTERNATE_FORMS_OF_PUNCTUATION = SymbolRange.range('⸼', '⸿'); // 0x2e3c - 0x2e3f - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_MISCELLANEOUS_PUNCTUATION_TO_HISTORIC_PUNCTUATION = SymbolRange.range('⹃', '⹏'); // 0x2e43 - 0x2e4f - public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_SUBSET = SymbolRange.range('⹐', '⹑'); // 0x2e50 - 0x2e51 - public static final SymbolRange CJK_RADICALS_SUPPLEMENT_CJK_RADICALS_SUPPLEMENT_SUBSET = SymbolRange.range('⺀', '⺙'); // 0x2e80 - 0x2e99 - public static final SymbolRange CJK_RADICALS_SUPPLEMENT_CJK_RADICALS_SUPPLEMENT = SymbolRange.range('⺀', '⻿'); // 0x2e80 - 0x2eff - public static final SymbolRange CJK_RADICALS_SUPPLEMENT_CJK_RADICALS_SUPPLEMENT_SUBSET_1 = SymbolRange.range('⺛', '⻳'); // 0x2e9b - 0x2ef3 - public static final SymbolRange KANGXI_RADICALS_KANGXI_RADICALS_SUBSET = SymbolRange.range('⼀', '⿕'); // 0x2f00 - 0x2fd5 - public static final SymbolRange KANGXI_RADICALS_KANGXI_RADICALS_SUBSET_1 = SymbolRange.range('⼀', '⿟'); // 0x2f00 - 0x2fdf - public static final SymbolRange IDEOGRAPHIC_DESCRIPTION_CHARACTERS_IDEOGRAPHIC_DESCRIPTION_CHARACTERS = SymbolRange.range('⿰', '⿿'); // 0x2ff0 - 0x2fff - public static final SymbolRange IDEOGRAPHIC_DESCRIPTION_CHARACTERS_IDEOGRAPHIC_DESCRIPTION_CHARACTERS_SUBSET = SymbolRange.range('⿰', '⿻'); // 0x2ff0 - 0x2ffb - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS_AND_PUNCTUATION_TO_SPECIAL_CJK_INDICATORS = SymbolRange.range(' ', '〿'); // 0x3000 - 0x303f - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS_AND_PUNCTUATION_SUBSET = SymbolRange.range('、', '〃'); // 0x3001 - 0x3003 - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS_AND_PUNCTUATION_SUBSET_1 = SymbolRange.range('々', '〆'); // 0x3005 - 0x3006 - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_ANGLE_BRACKETS_TO_CJK_BRACKETS = SymbolRange.range('〈', '】'); // 0x3008 - 0x3011 - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS = SymbolRange.range('〒', '〓'); // 0x3012 - 0x3013 - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_BRACKETS_TO_CJK_PUNCTUATION = SymbolRange.range('〔', '〟'); // 0x3014 - 0x301f - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_PUNCTUATION_SUBSET = SymbolRange.range('〞', '〟'); // 0x301e - 0x301f - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_SUZHOU_NUMERALS = SymbolRange.range('〡', '〩'); // 0x3021 - 0x3029 - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_COMBINING_TONE_MARKS = SymbolRange.range('〪', '〯'); // 0x302a - 0x302f - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_COMBINING_TONE_MARKS_SUBSET = SymbolRange.range('〪', '〭'); // 0x302a - 0x302d - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_COMBINING_TONE_MARKS_SUBSET_1 = SymbolRange.range('〮', '〯'); // 0x302e - 0x302f - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_KANA_REPEAT_MARKS = SymbolRange.range('〱', '〵'); // 0x3031 - 0x3035 - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_OTHER_CJK_SYMBOLS = SymbolRange.range('〶', '〷'); // 0x3036 - 0x3037 - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_ADDITIONAL_SUZHOU_NUMERALS = SymbolRange.range('〸', '〺'); // 0x3038 - 0x303a - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_OTHER_CJK_PUNCTUATION_SUBSET = SymbolRange.range('〻', '〼'); // 0x303b - 0x303c - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_SPECIAL_CJK_INDICATORS = SymbolRange.range('〾', '〿'); // 0x303e - 0x303f - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_HIRAGANA_TO_ITERATION_MARKS = SymbolRange.range('぀', 'ゟ'); // 0x3040 - 0x309f - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_HIRAGANA_LETTERS_TO_SMALL_LETTERS = SymbolRange.range('ぁ', 'ゖ'); // 0x3041 - 0x3096 - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_VOICING_MARKS_SUBSET = SymbolRange.range('゙', '゚'); // 0x3099 - 0x309a - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_VOICING_MARKS_SUBSET_1 = SymbolRange.range('゛', '゜'); // 0x309b - 0x309c - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_ITERATION_MARKS_TO_ITERATION_MARKS = SymbolRange.range('ゝ', 'ゟ'); // 0x309d - 0x309f - public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_ITERATION_MARKS = SymbolRange.range('ゝ', 'ゞ'); // 0x309d - 0x309e - public static final SymbolRange KATAKANA_KATAKANA_PUNCTUATION_TO_ITERATION_MARKS = SymbolRange.range('゠', 'ヿ'); // 0x30a0 - 0x30ff - public static final SymbolRange KATAKANA_KATAKANA_LETTERS = SymbolRange.range('ァ', 'ヺ'); // 0x30a1 - 0x30fa - public static final SymbolRange KATAKANA_CONJUNCTION_AND_LENGTH_MARKS_TO_ITERATION_MARKS = SymbolRange.range('ー', 'ヾ'); // 0x30fc - 0x30fe - public static final SymbolRange KATAKANA_CONJUNCTION_AND_LENGTH_MARKS_TO_ITERATION_MARKS_1 = SymbolRange.range('ー', 'ヿ'); // 0x30fc - 0x30ff - public static final SymbolRange KATAKANA_BOPOMOFO_TO_MISCELLANEOUS_ADDITIONS = SymbolRange.range('㄀', 'ㄯ'); // 0x3100 - 0x312f - public static final SymbolRange KATAKANA_BASED_ON_GB_2312_TO_MISCELLANEOUS_ADDITIONS = SymbolRange.range('ㄅ', 'ㄯ'); // 0x3105 - 0x312f - public static final SymbolRange KATAKANA_HANGUL_COMPATIBILITY_JAMO_TO_OLD_VOWEL_LETTERS = SymbolRange.range('㄰', '㆏'); // 0x3130 - 0x318f - public static final SymbolRange KATAKANA_CONSONANT_LETTERS_TO_OLD_VOWEL_LETTERS = SymbolRange.range('ㄱ', 'ㆎ'); // 0x3131 - 0x318e - public static final SymbolRange KANBUN_TATETEN_TO_TATETEN = SymbolRange.range('㆐', '㆑'); // 0x3190 - 0x3191 - public static final SymbolRange KANBUN_TATETEN_TO_KAERITEN = SymbolRange.range('㆐', '㆟'); // 0x3190 - 0x319f - public static final SymbolRange KANBUN_KAERITEN_SUBSET = SymbolRange.range('㆒', '㆕'); // 0x3192 - 0x3195 - public static final SymbolRange KANBUN_KAERITEN_SUBSET_1 = SymbolRange.range('㆖', '㆟'); // 0x3196 - 0x319f - public static final SymbolRange BOPOMOFO_EXTENDED_EXTENDED_BOPOMOFO_FOR_MINNAN_AND_HAKKA_TO_EXTENDED_BOPOMOFO_FOR_CANTONESE = SymbolRange.range('ㆠ', 'ㆿ'); // 0x31a0 - 0x31bf - public static final SymbolRange CJK_STROKES_CJK_STROKES_SUBSET = SymbolRange.range('㇀', '㇣'); // 0x31c0 - 0x31e3 - public static final SymbolRange KATAKANA_PHONETIC_EXTENSIONS_PHONETIC_EXTENSIONS_FOR_AINU = SymbolRange.range('ㇰ', 'ㇿ'); // 0x31f0 - 0x31ff - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_HANGUL_LETTERS_TO_PARENTHESIZED_KOREAN_WORDS = SymbolRange.range('㈀', '㈞'); // 0x3200 - 0x321e - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_HANGUL_LETTERS_TO_CIRCLED_KATAKANA = SymbolRange.range('㈀', '㋿'); // 0x3200 - 0x32ff - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_IDEOGRAPHS_SUBSET = SymbolRange.range('㈠', '㈩'); // 0x3220 - 0x3229 - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_IDEOGRAPHS_TO_CIRCLED_IDEOGRAPHS_FROM_ARIB_STD_B24 = SymbolRange.range('㈪', '㉇'); // 0x322a - 0x3247 - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_NUMBERS_ON_BLACK_SQUARES_FROM_ARIB_STD_B24 = SymbolRange.range('㉈', '㉏'); // 0x3248 - 0x324f - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_NUMBERS = SymbolRange.range('㉑', '㉟'); // 0x3251 - 0x325f - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_HANGUL_LETTERS_TO_CIRCLED_HANGUL_SYLLABLE = SymbolRange.range('㉠', '㉿'); // 0x3260 - 0x327f - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_IDEOGRAPHS_SUBSET = SymbolRange.range('㊀', '㊉'); // 0x3280 - 0x3289 - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_IDEOGRAPHS_SUBSET_1 = SymbolRange.range('㊊', '㊰'); // 0x328a - 0x32b0 - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_NUMBERS_1 = SymbolRange.range('㊱', '㊿'); // 0x32b1 - 0x32bf - public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_TO_CJK_COMPATIBILITY = SymbolRange.range('㋀', '㏿'); // 0x32c0 - 0x33ff - public static final SymbolRange CJK_COMPATIBILITY_SQUARED_KATAKANA_WORDS_TO_TELEGRAPH_SYMBOLS_FOR_DAYS = SymbolRange.range('㌀', '㏿'); // 0x3300 - 0x33ff - public static final SymbolRange CJK_COMPATIBILITY_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = SymbolRange.range('㐀', '䶿'); // 0x3400 - 0x4dbf - public static final SymbolRange YIJING_HEXAGRAM_SYMBOLS_YIJING_HEXAGRAM_SYMBOLS = SymbolRange.range('䷀', '䷿'); // 0x4dc0 - 0x4dff - public static final SymbolRange YIJING_HEXAGRAM_SYMBOLS_CJK_UNIFIED_IDEOGRAPHS = SymbolRange.range('一', '鿿'); // 0x4e00 - 0x9fff - public static final SymbolRange YIJING_HEXAGRAM_SYMBOLS_CJK_UNIFIED_IDEOGRAPHS_SUBSET = SymbolRange.range('一', '鿼'); // 0x4e00 - 0x9ffc - public static final SymbolRange YI_SYLLABLES_SYLLABLES = SymbolRange.range('ꀀ', 'ꀔ'); // 0xa000 - 0xa014 - public static final SymbolRange YI_SYLLABLES_SYLLABLES_TO_SYLLABLES = SymbolRange.range('ꀀ', 'ꒌ'); // 0xa000 - 0xa48c - public static final SymbolRange YI_SYLLABLES_SYLLABLES_TO_SYLLABLES_1 = SymbolRange.range('ꀀ', '꒏'); // 0xa000 - 0xa48f - public static final SymbolRange YI_SYLLABLES_SYLLABLES_SUBSET = SymbolRange.range('ꀖ', 'ꒌ'); // 0xa016 - 0xa48c - public static final SymbolRange YI_RADICALS_YI_RADICALS_SUBSET = SymbolRange.range('꒐', '꓆'); // 0xa490 - 0xa4c6 - public static final SymbolRange YI_RADICALS_YI_RADICALS = SymbolRange.range('꒐', '꓏'); // 0xa490 - 0xa4cf - public static final SymbolRange LISU_CONSONANTS_TO_VOWELS = SymbolRange.range('ꓐ', 'ꓷ'); // 0xa4d0 - 0xa4f7 - public static final SymbolRange LISU_CONSONANTS_TO_TONES = SymbolRange.range('ꓐ', 'ꓽ'); // 0xa4d0 - 0xa4fd - public static final SymbolRange LISU_TONES = SymbolRange.range('ꓸ', 'ꓽ'); // 0xa4f8 - 0xa4fd - public static final SymbolRange LISU_PUNCTUATION = SymbolRange.range('꓾', '꓿'); // 0xa4fe - 0xa4ff - public static final SymbolRange VAI_SYLLABLES_IN__EE_TO_SYLLABLE_FINALS = SymbolRange.range('ꔀ', 'ꘌ'); // 0xa500 - 0xa60c - public static final SymbolRange VAI_SYLLABLES_IN__EE_TO_SYLLABLES_IN__E = SymbolRange.range('ꔀ', 'ꘋ'); // 0xa500 - 0xa60b - public static final SymbolRange VAI_PUNCTUATION = SymbolRange.range('꘍', '꘏'); // 0xa60d - 0xa60f - public static final SymbolRange VAI_HISTORIC_SYLLABLES_TO_LOGOGRAMS = SymbolRange.range('ꘐ', 'ꘟ'); // 0xa610 - 0xa61f - public static final SymbolRange VAI_DIGITS = SymbolRange.range('꘠', '꘩'); // 0xa620 - 0xa629 - public static final SymbolRange VAI_HISTORIC_SYLLABLES_SUBSET = SymbolRange.range('ꘪ', 'ꘫ'); // 0xa62a - 0xa62b - public static final SymbolRange CYRILLIC_EXTENDED_B_LETTERS_FOR_OLD_CYRILLIC = SymbolRange.range('Ꙁ', 'ꙮ'); // 0xa640 - 0xa66e - public static final SymbolRange CYRILLIC_EXTENDED_B_ABBREVIATION_MARK_TO_COMBINING_NUMERIC_SIGNS = SymbolRange.range('꙯', '꙲'); // 0xa66f - 0xa672 - public static final SymbolRange CYRILLIC_EXTENDED_B_COMBINING_NUMERIC_SIGNS = SymbolRange.range('꙰', '꙲'); // 0xa670 - 0xa672 - public static final SymbolRange CYRILLIC_EXTENDED_B_COMBINING_MARKS_FOR_OLD_CYRILLIC = SymbolRange.range('ꙴ', '꙽'); // 0xa674 - 0xa67d - public static final SymbolRange CYRILLIC_EXTENDED_B_MODIFIER_LETTER_TO_INTONATION_MARKS_FOR_LITHUANIAN_DIALECTOLOGY = SymbolRange.range('ꙿ', 'ꚝ'); // 0xa67f - 0xa69d - public static final SymbolRange CYRILLIC_EXTENDED_B_INTONATION_MARKS_FOR_LITHUANIAN_DIALECTOLOGY = SymbolRange.range('ꚜ', 'ꚝ'); // 0xa69c - 0xa69d - public static final SymbolRange CYRILLIC_EXTENDED_B_COMBINING_MARKS_FOR_OLD_CYRILLIC_1 = SymbolRange.range('ꚞ', 'ꚟ'); // 0xa69e - 0xa69f - public static final SymbolRange BAMUM_SYLLABLES_SUBSET = SymbolRange.range('ꚠ', 'ꛥ'); // 0xa6a0 - 0xa6e5 - public static final SymbolRange BAMUM_SYLLABLES_SUBSET_1 = SymbolRange.range('ꛦ', 'ꛯ'); // 0xa6e6 - 0xa6ef - public static final SymbolRange BAMUM_COMBINING_MARKS = SymbolRange.range('꛰', '꛱'); // 0xa6f0 - 0xa6f1 - public static final SymbolRange BAMUM_PUNCTUATION_SUBSET = SymbolRange.range('꛲', '꛷'); // 0xa6f2 - 0xa6f7 - public static final SymbolRange MODIFIER_TONE_LETTERS_CORNER_TONE_MARKS_FOR_CHINESE_TO_LEFT_STEM_TONE_LETTERS = SymbolRange.range('꜀', '꜖'); // 0xa700 - 0xa716 - public static final SymbolRange MODIFIER_TONE_LETTERS_CHINANTEC_TONE_MARKS_TO_AFRICANIST_TONE_LETTERS = SymbolRange.range('ꜗ', 'ꜟ'); // 0xa717 - 0xa71f - public static final SymbolRange LATIN_EXTENDED_D_ADDITIONS_FOR_UPA = SymbolRange.range('꜠', '꜡'); // 0xa720 - 0xa721 - public static final SymbolRange LATIN_EXTENDED_D_EGYPTOLOGICAL_ADDITIONS_TO_INSULAR_AND_CELTICIST_LETTERS = SymbolRange.range('Ꜣ', 'ꞈ'); // 0xa722 - 0xa788 - public static final SymbolRange LATIN_EXTENDED_D_MAYANIST_ADDITIONS_TO_MEDIEVALIST_ADDITIONS = SymbolRange.range('ꜯ', 'ꜱ'); // 0xa72f - 0xa731 - public static final SymbolRange LATIN_EXTENDED_D_MEDIEVALIST_ADDITIONS_SUBSET = SymbolRange.range('ꝱ', 'ꝸ'); // 0xa771 - 0xa778 - public static final SymbolRange LATIN_EXTENDED_D_INSULAR_AND_CELTICIST_LETTERS_SUBSET = SymbolRange.range('Ᵹ', 'Ꝿ'); // 0xa77d - 0xa77e - public static final SymbolRange LATIN_EXTENDED_D_MODIFIER_LETTERS_SUBSET = SymbolRange.range('꞉', '꞊'); // 0xa789 - 0xa78a - public static final SymbolRange LATIN_EXTENDED_D_ORTHOGRAPHIC_LETTERS_FOR_GLOTTALS_TO_LETTERS_FOR_UGARITIC_AND_EGYPTOLOGICAL_TRANSLITERATION = SymbolRange.range('Ꞌ', 'ꞿ'); // 0xa78b - 0xa7bf - public static final SymbolRange LATIN_EXTENDED_D_ADDITIONAL_LETTERS_TO_ADDITIONS_FOR_LITHUANIAN_DIALECTOLOGY = SymbolRange.range('ꞓ', 'ꞕ'); // 0xa793 - 0xa795 - public static final SymbolRange LATIN_EXTENDED_D_ADDITIONAL_LETTERS_TO_ADDITIONAL_LETTERS = SymbolRange.range('Ɦ', 'Ɪ'); // 0xa7aa - 0xa7ae - public static final SymbolRange LATIN_EXTENDED_D_LETTERS_FOR_AMERICANIST_ORTHOGRAPHIES_TO_LETTER_FOR_GERMAN_DIALECTOLOGY = SymbolRange.range('Ʞ', 'Ꞵ'); // 0xa7b0 - 0xa7b4 - public static final SymbolRange LATIN_EXTENDED_D_ADDITIONAL_MEDIEVAL_LETTERS_TO_ADDITIONAL_LETTERS_FOR_GAULISH = SymbolRange.range('Ꟃ', 'ꟊ'); // 0xa7c2 - 0xa7ca - public static final SymbolRange LATIN_EXTENDED_D_LETTERS_USED_IN_EARLY_PINYIN_ROMANIZATION_TO_LETTERS_USED_IN_EARLY_PINYIN_ROMANIZATION = SymbolRange.range('Ꞔ', 'Ꟈ'); // 0xa7c4 - 0xa7c7 - public static final SymbolRange LATIN_EXTENDED_D_TO_SYLOTI_NAGRI = SymbolRange.range('Ꟶ', 'ꠁ'); // 0xa7f5 - 0xa801 - public static final SymbolRange LATIN_EXTENDED_D_ADDITIONS_FOR_EXTENDED_IPA = SymbolRange.range('ꟸ', 'ꟹ'); // 0xa7f8 - 0xa7f9 - public static final SymbolRange LATIN_EXTENDED_D_TO_SYLOTI_NAGRI_1 = SymbolRange.range('ꟻ', 'ꠁ'); // 0xa7fb - 0xa801 - public static final SymbolRange SYLOTI_NAGRI_INDEPENDENT_VOWELS_AND_DVISVARA_SUBSET = SymbolRange.range('ꠃ', 'ꠅ'); // 0xa803 - 0xa805 - public static final SymbolRange SYLOTI_NAGRI_CONSONANTS_AND_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ꠇ', 'ꠊ'); // 0xa807 - 0xa80a - public static final SymbolRange SYLOTI_NAGRI_CONSONANTS_AND_CONSONANT_SIGNS_SUBSET_1 = SymbolRange.range('ꠌ', 'ꠢ'); // 0xa80c - 0xa822 - public static final SymbolRange SYLOTI_NAGRI_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꠣ', 'ꠧ'); // 0xa823 - 0xa827 - public static final SymbolRange SYLOTI_NAGRI_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꠣ', 'ꠤ'); // 0xa823 - 0xa824 - public static final SymbolRange SYLOTI_NAGRI_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꠥ', 'ꠦ'); // 0xa825 - 0xa826 - public static final SymbolRange SYLOTI_NAGRI_POETRY_MARKS = SymbolRange.range('꠨', '꠫'); // 0xa828 - 0xa82b - public static final SymbolRange COMMON_INDIC_NUMBER_FORMS_NUMBER_FORMS_SUBSET = SymbolRange.range('꠰', '꠵'); // 0xa830 - 0xa835 - public static final SymbolRange COMMON_INDIC_NUMBER_FORMS_NUMBER_FORMS_TO_NUMBER_FORMS = SymbolRange.range('꠶', '꠷'); // 0xa836 - 0xa837 - public static final SymbolRange COMMON_INDIC_NUMBER_FORMS_NUMBER_FORMS_TO_CURRENCY_SYMBOL = SymbolRange.range('꠶', '꠹'); // 0xa836 - 0xa839 - public static final SymbolRange PHAGS_PA_CONSONANTS_TO_CONSONANT_ADDITION_FOR_TIBETAN = SymbolRange.range('ꡀ', 'ꡳ'); // 0xa840 - 0xa873 - public static final SymbolRange PHAGS_PA_HEAD_MARKS_FOR_TIBETAN_TO_PUNCTUATION_FOR_TIBETAN = SymbolRange.range('꡴', '꡷'); // 0xa874 - 0xa877 - public static final SymbolRange SAURASHTRA_VARIOUS_SIGNS = SymbolRange.range('ꢀ', 'ꢁ'); // 0xa880 - 0xa881 - public static final SymbolRange SAURASHTRA_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ꢂ', 'ꢳ'); // 0xa882 - 0xa8b3 - public static final SymbolRange SAURASHTRA_CONSONANTS_TO_VIRAMA = SymbolRange.range('ꢴ', 'ꣅ'); // 0xa8b4 - 0xa8c5 - public static final SymbolRange SAURASHTRA_CONSONANTS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꢴ', 'ꣃ'); // 0xa8b4 - 0xa8c3 - public static final SymbolRange SAURASHTRA_VIRAMA_TO_VIRAMA = SymbolRange.range('꣄', 'ꣅ'); // 0xa8c4 - 0xa8c5 - public static final SymbolRange SAURASHTRA_PUNCTUATION = SymbolRange.range('꣎', '꣏'); // 0xa8ce - 0xa8cf - public static final SymbolRange SAURASHTRA_DIGITS_SUBSET = SymbolRange.range('꣐', '꣙'); // 0xa8d0 - 0xa8d9 - public static final SymbolRange DEVANAGARI_EXTENDED_CANTILLATION_MARKS_SVARA_FOR_THE_SAMAVEDA = SymbolRange.range('꣠', '꣱'); // 0xa8e0 - 0xa8f1 - public static final SymbolRange DEVANAGARI_EXTENDED_MARKS_OF_NASALIZATION = SymbolRange.range('ꣲ', 'ꣷ'); // 0xa8f2 - 0xa8f7 - public static final SymbolRange DEVANAGARI_EXTENDED_EDITORIAL_MARKS_SUBSET = SymbolRange.range('꣸', '꣺'); // 0xa8f8 - 0xa8fa - public static final SymbolRange DEVANAGARI_EXTENDED_SIGNS_TO_SIGNS = SymbolRange.range('ꣽ', 'ꣾ'); // 0xa8fd - 0xa8fe - public static final SymbolRange KAYAH_LI_DIGITS = SymbolRange.range('꤀', '꤉'); // 0xa900 - 0xa909 - public static final SymbolRange KAYAH_LI_CONSONANTS_TO_VOWELS = SymbolRange.range('ꤊ', 'ꤥ'); // 0xa90a - 0xa925 - public static final SymbolRange KAYAH_LI_VOWELS_TO_TONE_MARKS = SymbolRange.range('ꤦ', '꤭'); // 0xa926 - 0xa92d - public static final SymbolRange KAYAH_LI_PUNCTUATION = SymbolRange.range('꤮', '꤯'); // 0xa92e - 0xa92f - public static final SymbolRange REJANG_CONSONANTS = SymbolRange.range('ꤰ', 'ꥆ'); // 0xa930 - 0xa946 - public static final SymbolRange REJANG_VOWEL_SIGNS_TO_CONSONANT_SIGNS = SymbolRange.range('ꥇ', '꥓'); // 0xa947 - 0xa953 - public static final SymbolRange REJANG_VOWEL_SIGNS_TO_CONSONANT_SIGNS_1 = SymbolRange.range('ꥇ', 'ꥑ'); // 0xa947 - 0xa951 - public static final SymbolRange REJANG_CONSONANT_SIGNS_TO_CONSONANT_SIGNS = SymbolRange.range('ꥒ', '꥓'); // 0xa952 - 0xa953 - public static final SymbolRange HANGUL_JAMO_EXTENDED_A_OLD_INITIAL_CONSONANTS_SUBSET = SymbolRange.range('ꥠ', 'ꥼ'); // 0xa960 - 0xa97c - public static final SymbolRange JAVANESE_VARIOUS_SIGNS = SymbolRange.range('ꦀ', 'ꦃ'); // 0xa980 - 0xa983 - public static final SymbolRange JAVANESE_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ꦀ', 'ꦂ'); // 0xa980 - 0xa982 - public static final SymbolRange JAVANESE_LETTERS = SymbolRange.range('ꦄ', 'ꦲ'); // 0xa984 - 0xa9b2 - public static final SymbolRange JAVANESE_SIGN_TO_DEPENDENT_CONSONANT_SIGNS = SymbolRange.range('꦳', '꧀'); // 0xa9b3 - 0xa9c0 - public static final SymbolRange JAVANESE_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꦴ', 'ꦵ'); // 0xa9b4 - 0xa9b5 - public static final SymbolRange JAVANESE_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꦶ', 'ꦹ'); // 0xa9b6 - 0xa9b9 - public static final SymbolRange JAVANESE_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ꦺ', 'ꦻ'); // 0xa9ba - 0xa9bb - public static final SymbolRange JAVANESE_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꦼ', 'ꦽ'); // 0xa9bc - 0xa9bd - public static final SymbolRange JAVANESE_DEPENDENT_CONSONANT_SIGNS_TO_DEPENDENT_CONSONANT_SIGNS = SymbolRange.range('ꦾ', '꧀'); // 0xa9be - 0xa9c0 - public static final SymbolRange JAVANESE_PUNCTUATION_SUBSET = SymbolRange.range('꧁', '꧍'); // 0xa9c1 - 0xa9cd - public static final SymbolRange JAVANESE_DIGITS_SUBSET = SymbolRange.range('꧐', '꧙'); // 0xa9d0 - 0xa9d9 - public static final SymbolRange JAVANESE_ELLIPSIS_MARKS = SymbolRange.range('꧞', '꧟'); // 0xa9de - 0xa9df - public static final SymbolRange MYANMAR_EXTENDED_B_ADDITIONS_FOR_SHAN_PALI_SUBSET = SymbolRange.range('ꧠ', 'ꧤ'); // 0xa9e0 - 0xa9e4 - public static final SymbolRange MYANMAR_EXTENDED_B_REDUPLICATION_MARK_TO_TAI_LAING_CONSONANTS = SymbolRange.range('ꧦ', 'ꧯ'); // 0xa9e6 - 0xa9ef - public static final SymbolRange MYANMAR_EXTENDED_B_TAI_LAING_CONSONANTS = SymbolRange.range('ꧧ', 'ꧯ'); // 0xa9e7 - 0xa9ef - public static final SymbolRange MYANMAR_EXTENDED_B_TAI_LAING_DIGITS = SymbolRange.range('꧰', '꧹'); // 0xa9f0 - 0xa9f9 - public static final SymbolRange MYANMAR_EXTENDED_B_TAI_LAING_CONSONANTS_SUBSET = SymbolRange.range('ꧺ', 'ꧾ'); // 0xa9fa - 0xa9fe - public static final SymbolRange CHAM_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ꨀ', 'ꨨ'); // 0xaa00 - 0xaa28 - public static final SymbolRange CHAM_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꨩ', 'ꨮ'); // 0xaa29 - 0xaa2e - public static final SymbolRange CHAM_DEPENDENT_VOWEL_SIGNS_TO_CONSONANT_SIGNS = SymbolRange.range('ꨩ', 'ꨶ'); // 0xaa29 - 0xaa36 - public static final SymbolRange CHAM_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꨯ', 'ꨰ'); // 0xaa2f - 0xaa30 - public static final SymbolRange CHAM_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ꨱ', 'ꨲ'); // 0xaa31 - 0xaa32 - public static final SymbolRange CHAM_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ꨳ', 'ꨴ'); // 0xaa33 - 0xaa34 - public static final SymbolRange CHAM_CONSONANT_SIGNS_SUBSET_1 = SymbolRange.range('ꨵ', 'ꨶ'); // 0xaa35 - 0xaa36 - public static final SymbolRange CHAM_FINAL_CONSONANTS_SUBSET = SymbolRange.range('ꩀ', 'ꩂ'); // 0xaa40 - 0xaa42 - public static final SymbolRange CHAM_FINAL_CONSONANTS_SUBSET_1 = SymbolRange.range('ꩄ', 'ꩋ'); // 0xaa44 - 0xaa4b - public static final SymbolRange CHAM_FINAL_CONSONANTS_SUBSET_2 = SymbolRange.range('ꩌ', 'ꩍ'); // 0xaa4c - 0xaa4d - public static final SymbolRange CHAM_DIGITS_SUBSET = SymbolRange.range('꩐', '꩙'); // 0xaa50 - 0xaa59 - public static final SymbolRange CHAM_PUNCTUATION = SymbolRange.range('꩜', '꩟'); // 0xaa5c - 0xaa5f - public static final SymbolRange MYANMAR_EXTENDED_A_KHAMTI_SHAN_CONSONANTS_TO_KHAMTI_SHAN_LOGOGRAMS = SymbolRange.range('ꩠ', 'ꩶ'); // 0xaa60 - 0xaa76 - public static final SymbolRange MYANMAR_EXTENDED_A_KHAMTI_SHAN_CONSONANTS_SUBSET = SymbolRange.range('ꩠ', 'ꩯ'); // 0xaa60 - 0xaa6f - public static final SymbolRange MYANMAR_EXTENDED_A_KHAMTI_SHAN_CONSONANTS_TO_KHAMTI_SHAN_LOGOGRAMS_1 = SymbolRange.range('ꩱ', 'ꩶ'); // 0xaa71 - 0xaa76 - public static final SymbolRange MYANMAR_EXTENDED_A_AITON_SYMBOLS_AND_LETTERS_SUBSET = SymbolRange.range('꩷', '꩹'); // 0xaa77 - 0xaa79 - public static final SymbolRange MYANMAR_EXTENDED_A_PAO_KAREN_TONE_MARK_TO_TAI_LAING_TONE_MARKS = SymbolRange.range('ꩻ', 'ꩽ'); // 0xaa7b - 0xaa7d - public static final SymbolRange MYANMAR_EXTENDED_A_TO_TAI_VIET = SymbolRange.range('ꩾ', 'ꪯ'); // 0xaa7e - 0xaaaf - public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_SUBSET = SymbolRange.range('ꪲ', 'ꪴ'); // 0xaab2 - 0xaab4 - public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_SUBSET_1 = SymbolRange.range('ꪵ', 'ꪶ'); // 0xaab5 - 0xaab6 - public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_SUBSET_2 = SymbolRange.range('ꪷ', 'ꪸ'); // 0xaab7 - 0xaab8 - public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_SUBSET_3 = SymbolRange.range('ꪹ', 'ꪽ'); // 0xaab9 - 0xaabd - public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_TO_VOWELS_AND_FINALS = SymbolRange.range('ꪾ', '꪿'); // 0xaabe - 0xaabf - public static final SymbolRange TAI_VIET_WORD_LIGATURE_SYMBOLS = SymbolRange.range('ꫛ', 'ꫜ'); // 0xaadb - 0xaadc - public static final SymbolRange TAI_VIET_WORD_LIGATURE_SYMBOLS_TO_WORD_LIGATURE_SYMBOLS = SymbolRange.range('ꫛ', 'ꫝ'); // 0xaadb - 0xaadd - public static final SymbolRange TAI_VIET_PUNCTUATION = SymbolRange.range('꫞', '꫟'); // 0xaade - 0xaadf - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_INDEPENDENT_VOWEL_SIGNS_TO_CONSONANTS = SymbolRange.range('ꫠ', 'ꫪ'); // 0xaae0 - 0xaaea - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꫫ', 'ꫯ'); // 0xaaeb - 0xaaef - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꫬ', 'ꫭ'); // 0xaaec - 0xaaed - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꫮ', 'ꫯ'); // 0xaaee - 0xaaef - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_PUNCTUATION = SymbolRange.range('꫰', '꫱'); // 0xaaf0 - 0xaaf1 - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_SIGN_TO_REPETITION_MARKS = SymbolRange.range('ꫲ', 'ꫴ'); // 0xaaf2 - 0xaaf4 - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_REPETITION_MARKS = SymbolRange.range('ꫳ', 'ꫴ'); // 0xaaf3 - 0xaaf4 - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_SIGN_TO_SIGN = SymbolRange.range('ꫵ', '꫶'); // 0xaaf5 - 0xaaf6 - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GAMO_GOFA_DAWRO_AND_BASKETO_SUBSET = SymbolRange.range('ꬁ', 'ꬆ'); // 0xab01 - 0xab06 - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GAMO_GOFA_DAWRO_AND_BASKETO_SUBSET_1 = SymbolRange.range('ꬉ', 'ꬎ'); // 0xab09 - 0xab0e - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GAMO_GOFA_DAWRO_SUBSET = SymbolRange.range('ꬑ', 'ꬖ'); // 0xab11 - 0xab16 - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GUMUZ_SUBSET = SymbolRange.range('ꬠ', 'ꬦ'); // 0xab20 - 0xab26 - public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GUMUZ_SUBSET_1 = SymbolRange.range('ꬨ', 'ꬮ'); // 0xab28 - 0xab2e - public static final SymbolRange LATIN_EXTENDED_E_LETTERS_FOR_GERMAN_DIALECTOLOGY = SymbolRange.range('ꬰ', 'ꭚ'); // 0xab30 - 0xab5a - public static final SymbolRange LATIN_EXTENDED_E_MODIFIER_LETTERS_FOR_GERMAN_DIALECTOLOGY_SUBSET = SymbolRange.range('ꭜ', 'ꭟ'); // 0xab5c - 0xab5f - public static final SymbolRange LATIN_EXTENDED_E_MODIFIER_LETTERS_FOR_GERMAN_DIALECTOLOGY_TO_LETTERS_FOR_SCOTS_DIALECTOLOGY = SymbolRange.range('ꭜ', 'ꭩ'); // 0xab5c - 0xab69 - public static final SymbolRange LATIN_EXTENDED_E_HISTORIC_LETTERS_FOR_SAKHA_YAKUT_TO_LETTERS_FOR_SINOLOGICAL_TRANSCRIPTION = SymbolRange.range('ꭠ', 'ꭨ'); // 0xab60 - 0xab68 - public static final SymbolRange LATIN_EXTENDED_E_LETTERS_FOR_SCOTS_DIALECTOLOGY_SUBSET = SymbolRange.range('꭪', '꭫'); // 0xab6a - 0xab6b - public static final SymbolRange CHEROKEE_SUPPLEMENT_LOWERCASE_SYLLABLES = SymbolRange.range('ꭰ', 'ꮿ'); // 0xab70 - 0xabbf - public static final SymbolRange CHEROKEE_SUPPLEMENT_TO_MEETEI_MAYEK = SymbolRange.range('ꭰ', 'ꯢ'); // 0xab70 - 0xabe2 - public static final SymbolRange MEETEI_MAYEK_LETTERS_TO_FINAL_CONSONANTS = SymbolRange.range('ꯀ', 'ꯢ'); // 0xabc0 - 0xabe2 - public static final SymbolRange MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꯣ', 'ꯪ'); // 0xabe3 - 0xabea - public static final SymbolRange MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꯣ', 'ꯤ'); // 0xabe3 - 0xabe4 - public static final SymbolRange MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꯦ', 'ꯧ'); // 0xabe6 - 0xabe7 - public static final SymbolRange MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ꯩ', 'ꯪ'); // 0xabe9 - 0xabea - public static final SymbolRange MEETEI_MAYEK_PUNCTUATION_SUBSET = SymbolRange.range('꯬', '꯭'); // 0xabec - 0xabed - public static final SymbolRange MEETEI_MAYEK_DIGITS_SUBSET = SymbolRange.range('꯰', '꯹'); // 0xabf0 - 0xabf9 - public static final SymbolRange MEETEI_MAYEK_HANGUL_SYLLABLES_SUBSET = SymbolRange.range('가', '힣'); // 0xac00 - 0xd7a3 - public static final SymbolRange MEETEI_MAYEK_HANGUL_SYLLABLES = SymbolRange.range('가', '힯'); // 0xac00 - 0xd7af - public static final SymbolRange HANGUL_JAMO_EXTENDED_B_OLD_MEDIAL_VOWELS_SUBSET = SymbolRange.range('ힰ', 'ퟆ'); // 0xd7b0 - 0xd7c6 - public static final SymbolRange HANGUL_JAMO_EXTENDED_B_OLD_FINAL_CONSONANTS_SUBSET = SymbolRange.range('ퟋ', 'ퟻ'); // 0xd7cb - 0xd7fb + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_ENCLOSING_DIACRITICS = SymbolRange.range('⃝', '⃠'); // 0x20dd - 0x20e0 + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_ADDITIONAL_ENCLOSING_DIACRITICS = SymbolRange.range('⃢', '⃤'); // 0x20e2 - 0x20e4 + public static final SymbolRange COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS_ADDITIONAL_DIACRITICAL_MARKS_FOR_SYMBOLS_SUBSET = SymbolRange.range('⃥', '⃰'); // 0x20e5 - 0x20f0 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET = SymbolRange.range('℀', '℁'); // 0x2100 - 0x2101 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_TO_LOWERCASE_CLAUDIAN_LETTER = SymbolRange.range('℀', '⅏'); // 0x2100 - 0x214f + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_1 = SymbolRange.range('℃', '℆'); // 0x2103 - 0x2106 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_2 = SymbolRange.range('℈', '℉'); // 0x2108 - 0x2109 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_3 = SymbolRange.range('ℊ', 'ℓ'); // 0x210a - 0x2113 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_4 = SymbolRange.range('ℋ', 'ℍ'); // 0x210b - 0x210d + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_5 = SymbolRange.range('ℎ', 'ℏ'); // 0x210e - 0x210f + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_6 = SymbolRange.range('ℐ', 'ℒ'); // 0x2110 - 0x2112 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_7 = SymbolRange.range('№', '℗'); // 0x2116 - 0x2117 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_8 = SymbolRange.range('№', '℘'); // 0x2116 - 0x2118 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_9 = SymbolRange.range('ℙ', 'ℝ'); // 0x2119 - 0x211d + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_10 = SymbolRange.range('℞', '℣'); // 0x211e - 0x2123 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_11 = SymbolRange.range('K', 'ℭ'); // 0x212a - 0x212d + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_TO_HEBREW_LETTERLIKE_MATH_SYMBOLS = SymbolRange.range('ℯ', 'ℹ'); // 0x212f - 0x2139 + public static final SymbolRange LETTERLIKE_SYMBOLS_LETTERLIKE_SYMBOLS_SUBSET_12 = SymbolRange.range('ℰ', 'ℳ'); // 0x2130 - 0x2133 + public static final SymbolRange LETTERLIKE_SYMBOLS_HEBREW_LETTERLIKE_MATH_SYMBOLS = SymbolRange.range('ℵ', 'ℸ'); // 0x2135 - 0x2138 + public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET_1 = SymbolRange.range('℺', '℻'); // 0x213a - 0x213b + public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET_2 = SymbolRange.range('ℼ', 'ℽ'); // 0x213c - 0x213d + public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET_3 = SymbolRange.range('ℼ', 'ℿ'); // 0x213c - 0x213f + public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET_4 = SymbolRange.range('ℾ', 'ℿ'); // 0x213e - 0x213f + public static final SymbolRange LETTERLIKE_SYMBOLS_DOUBLE_STRUCK_LARGE_OPERATOR_TO_ADDITIONAL_LETTERLIKE_SYMBOLS = SymbolRange.range('⅀', '⅄'); // 0x2140 - 0x2144 + public static final SymbolRange LETTERLIKE_SYMBOLS_DOUBLE_STRUCK_ITALIC_MATH_SYMBOLS = SymbolRange.range('ⅅ', 'ⅉ'); // 0x2145 - 0x2149 + public static final SymbolRange LETTERLIKE_SYMBOLS_DOUBLE_STRUCK_ITALIC_MATH_SYMBOLS_SUBSET = SymbolRange.range('ⅆ', 'ⅉ'); // 0x2146 - 0x2149 + public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_2 = SymbolRange.range('⅊', '⅍'); // 0x214a - 0x214d + public static final SymbolRange LETTERLIKE_SYMBOLS_ADDITIONAL_LETTERLIKE_SYMBOLS_SUBSET = SymbolRange.range('⅌', '⅍'); // 0x214c - 0x214d + public static final SymbolRange NUMBER_FORMS_FRACTIONS = SymbolRange.range('⅐', '⅟'); // 0x2150 - 0x215f + public static final SymbolRange NUMBER_FORMS_FRACTIONS_TO_ARCHAIC_ROMAN_NUMERALS = SymbolRange.range('⅐', 'ↂ'); // 0x2150 - 0x2182 + public static final SymbolRange NUMBER_FORMS_FRACTIONS_TO_TURNED_DIGITS = SymbolRange.range('⅐', '↏'); // 0x2150 - 0x218f + public static final SymbolRange NUMBER_FORMS_ROMAN_NUMERALS_TO_ARCHAIC_ROMAN_NUMERALS = SymbolRange.range('Ⅰ', 'ↂ'); // 0x2160 - 0x2182 + public static final SymbolRange NUMBER_FORMS_ARCHAIC_ROMAN_NUMERALS_TO_ARCHAIC_ROMAN_NUMERALS = SymbolRange.range('Ↄ', 'ↄ'); // 0x2183 - 0x2184 + public static final SymbolRange NUMBER_FORMS_ARCHAIC_ROMAN_NUMERALS_TO_ARCHAIC_ROMAN_NUMERALS_1 = SymbolRange.range('ↅ', '↉'); // 0x2185 - 0x2189 + public static final SymbolRange NUMBER_FORMS_ARCHAIC_ROMAN_NUMERALS_1 = SymbolRange.range('ↅ', 'ↈ'); // 0x2185 - 0x2188 + public static final SymbolRange NUMBER_FORMS_TURNED_DIGITS_SUBSET = SymbolRange.range('↊', '↋'); // 0x218a - 0x218b + public static final SymbolRange ARROWS_SIMPLE_ARROWS_SUBSET = SymbolRange.range('←', '↔'); // 0x2190 - 0x2194 + public static final SymbolRange ARROWS_SIMPLE_ARROWS_TO_MISCELLANEOUS_ARROWS = SymbolRange.range('←', '⇿'); // 0x2190 - 0x21ff + public static final SymbolRange ARROWS_TO_MISCELLANEOUS_TECHNICAL = SymbolRange.range('←', '⌇'); // 0x2190 - 0x2307 + public static final SymbolRange ARROWS_SIMPLE_ARROWS_SUBSET_1 = SymbolRange.range('↕', '↙'); // 0x2195 - 0x2199 + public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET = SymbolRange.range('↚', '↛'); // 0x219a - 0x219b + public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET_1 = SymbolRange.range('↜', '↟'); // 0x219c - 0x219f + public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET_2 = SymbolRange.range('↡', '↢'); // 0x21a1 - 0x21a2 + public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET_3 = SymbolRange.range('↤', '↥'); // 0x21a4 - 0x21a5 + public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_SUBSET_4 = SymbolRange.range('↧', '↭'); // 0x21a7 - 0x21ad + public static final SymbolRange ARROWS_ARROWS_WITH_MODIFICATIONS_TO_PAIRED_ARROWS_AND_HARPOONS = SymbolRange.range('↯', '⇍'); // 0x21af - 0x21cd + public static final SymbolRange ARROWS_DOUBLE_ARROWS_SUBSET = SymbolRange.range('⇎', '⇏'); // 0x21ce - 0x21cf + public static final SymbolRange ARROWS_DOUBLE_ARROWS_SUBSET_1 = SymbolRange.range('⇐', '⇑'); // 0x21d0 - 0x21d1 + public static final SymbolRange ARROWS_DOUBLE_ARROWS_TO_WHITE_ARROWS_AND_KEYBOARD_SYMBOLS = SymbolRange.range('⇕', '⇳'); // 0x21d5 - 0x21f3 + public static final SymbolRange ARROWS_TO_MATHEMATICAL_OPERATORS = SymbolRange.range('⇴', '⋿'); // 0x21f4 - 0x22ff + public static final SymbolRange MATHEMATICAL_OPERATORS_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_TO_RELATIONS = SymbolRange.range('∀', '⋿'); // 0x2200 - 0x22ff + public static final SymbolRange MISCELLANEOUS_TECHNICAL_MISCELLANEOUS_TECHNICAL = SymbolRange.range('⌀', '⌇'); // 0x2300 - 0x2307 + public static final SymbolRange MISCELLANEOUS_TECHNICAL_MISCELLANEOUS_TECHNICAL_TO_POWER_SYMBOL_FROM_IEEE_1621_2004 = SymbolRange.range('⌀', '⏿'); // 0x2300 - 0x23ff + public static final SymbolRange MISCELLANEOUS_TECHNICAL_CEILINGS_AND_FLOORS = SymbolRange.range('⌈', '⌋'); // 0x2308 - 0x230b + public static final SymbolRange MISCELLANEOUS_TECHNICAL_CROPS_TO_QUINE_CORNERS = SymbolRange.range('⌌', '⌟'); // 0x230c - 0x231f + public static final SymbolRange MISCELLANEOUS_TECHNICAL_CROPS_TO_KEYBOARD_SYMBOLS = SymbolRange.range('⌌', '⌨'); // 0x230c - 0x2328 + public static final SymbolRange MISCELLANEOUS_TECHNICAL_INTEGRAL_PIECES = SymbolRange.range('⌠', '⌡'); // 0x2320 - 0x2321 + public static final SymbolRange MISCELLANEOUS_TECHNICAL_FROWN_AND_SMILE_TO_KEYBOARD_SYMBOLS = SymbolRange.range('⌢', '⌨'); // 0x2322 - 0x2328 + public static final SymbolRange MISCELLANEOUS_TECHNICAL_DEPRECATED_ANGLE_BRACKETS = SymbolRange.range('〈', '〉'); // 0x2329 - 0x232a + public static final SymbolRange MISCELLANEOUS_TECHNICAL_KEYBOARD_SYMBOL_TO_APL = SymbolRange.range('⌫', '⍻'); // 0x232b - 0x237b + public static final SymbolRange MISCELLANEOUS_TECHNICAL_TO_CONTROL_PICTURES_1 = SymbolRange.range('⌫', '␦'); // 0x232b - 0x2426 + public static final SymbolRange MISCELLANEOUS_TECHNICAL_GRAPHICS_FOR_CONTROL_CODES_TO_KEYBOARD_SYMBOLS_FROM_ISO_9995_7 = SymbolRange.range('⍽', '⎚'); // 0x237d - 0x239a + public static final SymbolRange MISCELLANEOUS_TECHNICAL_BRACKET_PIECES_TO_SUMMATION_SIGN_PARTS = SymbolRange.range('⎛', '⎳'); // 0x239b - 0x23b3 + public static final SymbolRange MISCELLANEOUS_TECHNICAL_HORIZONTAL_BRACKETS_TO_ELECTROTECHNICAL_SYMBOLS = SymbolRange.range('⎴', '⏛'); // 0x23b4 - 0x23db + public static final SymbolRange MISCELLANEOUS_TECHNICAL_HORIZONTAL_BRACKETS_1 = SymbolRange.range('⏜', '⏡'); // 0x23dc - 0x23e1 + public static final SymbolRange MISCELLANEOUS_TECHNICAL_TO_CONTROL_PICTURES = SymbolRange.range('⏢', '␦'); // 0x23e2 - 0x2426 + public static final SymbolRange CONTROL_PICTURES_GRAPHIC_PICTURES_FOR_CONTROL_CODES_TO_SPECIFIC_SYMBOL_FOR_CONTROL_CODE = SymbolRange.range('␀', '␿'); // 0x2400 - 0x243f + public static final SymbolRange OPTICAL_CHARACTER_RECOGNITION_OCR_A_TO_MICR = SymbolRange.range('⑀', '⑊'); // 0x2440 - 0x244a + public static final SymbolRange OPTICAL_CHARACTER_RECOGNITION_OCR_A_TO_OCR = SymbolRange.range('⑀', '⑟'); // 0x2440 - 0x245f + public static final SymbolRange ENCLOSED_ALPHANUMERICS_CIRCLED_NUMBERS_TO_NUMBERS_PERIOD = SymbolRange.range('①', '⒛'); // 0x2460 - 0x249b + public static final SymbolRange ENCLOSED_ALPHANUMERICS_CIRCLED_NUMBERS_TO_DOUBLE_CIRCLED_NUMBERS = SymbolRange.range('①', '⓿'); // 0x2460 - 0x24ff + public static final SymbolRange ENCLOSED_ALPHANUMERICS_PARENTHESIZED_LATIN_LETTERS_TO_CIRCLED_LATIN_LETTERS = SymbolRange.range('⒜', 'ⓩ'); // 0x249c - 0x24e9 + public static final SymbolRange ENCLOSED_ALPHANUMERICS_ADDITIONAL_CIRCLED_NUMBER_TO_DOUBLE_CIRCLED_NUMBERS = SymbolRange.range('⓪', '⓿'); // 0x24ea - 0x24ff + public static final SymbolRange BOX_DRAWING_LIGHT_AND_HEAVY_SOLID_LINES_TO_MIXED_LIGHT_AND_HEAVY_LINES = SymbolRange.range('─', '╿'); // 0x2500 - 0x257f + public static final SymbolRange BOX_DRAWING_TO_GEOMETRIC_SHAPES = SymbolRange.range('─', '▶'); // 0x2500 - 0x25b6 + public static final SymbolRange BOX_DRAWING_TO_DINGBATS = SymbolRange.range('─', '❧'); // 0x2500 - 0x2767 + public static final SymbolRange BLOCK_ELEMENTS_BLOCK_ELEMENTS_TO_TERMINAL_GRAPHIC_CHARACTERS = SymbolRange.range('▀', '▟'); // 0x2580 - 0x259f + public static final SymbolRange GEOMETRIC_SHAPES_GEOMETRIC_SHAPES_TO_GEOMETRIC_SHAPES = SymbolRange.range('■', '◿'); // 0x25a0 - 0x25ff + public static final SymbolRange GEOMETRIC_SHAPES_GEOMETRIC_SHAPES_SUBSET = SymbolRange.range('▸', '◀'); // 0x25b8 - 0x25c0 + public static final SymbolRange GEOMETRIC_SHAPES_GEOMETRIC_SHAPES_TO_CONTROL_CODE_GRAPHICS = SymbolRange.range('◂', '◷'); // 0x25c2 - 0x25f7 + public static final SymbolRange GEOMETRIC_SHAPES_GEOMETRIC_SHAPES_1 = SymbolRange.range('◸', '◿'); // 0x25f8 - 0x25ff + public static final SymbolRange MISCELLANEOUS_SYMBOLS_WEATHER_AND_ASTROLOGICAL_SYMBOLS_TO_MUSICAL_SYMBOLS = SymbolRange.range('☀', '♮'); // 0x2600 - 0x266e + public static final SymbolRange MISCELLANEOUS_SYMBOLS_WEATHER_AND_ASTROLOGICAL_SYMBOLS_TO_MAP_SYMBOLS_FROM_ARIB_STD_B24 = SymbolRange.range('☀', '⛿'); // 0x2600 - 0x26ff + public static final SymbolRange MISCELLANEOUS_SYMBOLS_TO_DINGBATS = SymbolRange.range('♰', '❧'); // 0x2670 - 0x2767 + public static final SymbolRange DINGBATS_MISCELLANEOUS_TO_DINGBAT_ARROWS = SymbolRange.range('✀', '➿'); // 0x2700 - 0x27bf + public static final SymbolRange DINGBATS_ORNAMENTAL_BRACKETS = SymbolRange.range('❨', '❵'); // 0x2768 - 0x2775 + public static final SymbolRange DINGBATS_DINGBAT_CIRCLED_DIGITS = SymbolRange.range('❶', '➓'); // 0x2776 - 0x2793 + public static final SymbolRange DINGBATS_DINGBAT_ARROW_TO_DINGBAT_ARROWS = SymbolRange.range('➔', '➿'); // 0x2794 - 0x27bf + public static final SymbolRange DINGBATS_TO_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = SymbolRange.range('➔', '⟄'); // 0x2794 - 0x27c4 + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_MISCELLANEOUS_SYMBOLS = SymbolRange.range('⟀', '⟄'); // 0x27c0 - 0x27c4 + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_PAIRED_PUNCTUATION = SymbolRange.range('⟅', '⟆'); // 0x27c5 - 0x27c6 + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_OPERATOR_TO_MODAL_LOGIC_OPERATORS = SymbolRange.range('⟇', '⟥'); // 0x27c7 - 0x27e5 + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_MATHEMATICAL_BRACKETS = SymbolRange.range('⟦', '⟯'); // 0x27e6 - 0x27ef + public static final SymbolRange SUPPLEMENTAL_ARROWS_A_ARROWS_TO_LONG_ARROWS = SymbolRange.range('⟰', '⟿'); // 0x27f0 - 0x27ff + public static final SymbolRange SUPPLEMENTAL_ARROWS_A_TO_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = SymbolRange.range('⟰', '⦂'); // 0x27f0 - 0x2982 + public static final SymbolRange BRAILLE_PATTERNS_BRAILLE_PATTERNS = SymbolRange.range('⠀', '⣿'); // 0x2800 - 0x28ff + public static final SymbolRange SUPPLEMENTAL_ARROWS_B_TO_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = SymbolRange.range('⤀', '⦂'); // 0x2900 - 0x2982 + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_BRACKETS_TO_BRACKETS = SymbolRange.range('⦃', '⦘'); // 0x2983 - 0x2998 + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_FENCES_TO_BOWTIE_SYMBOLS = SymbolRange.range('⦙', '⧗'); // 0x2999 - 0x29d7 + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_FENCES_1 = SymbolRange.range('⧘', '⧛'); // 0x29d8 - 0x29db + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_TO_SPECIALIZED_PLUS_SIGN_OPERATORS = SymbolRange.range('⧜', '⧻'); // 0x29dc - 0x29fb + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_BRACKETS_2 = SymbolRange.range('⧼', '⧽'); // 0x29fc - 0x29fd + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_TO_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = SymbolRange.range('⧾', '⫿'); // 0x29fe - 0x2aff + public static final SymbolRange MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_TO_MISCELLANEOUS_SYMBOLS_AND_ARROWS = SymbolRange.range('⧾', '⭳'); // 0x29fe - 0x2b73 + public static final SymbolRange SUPPLEMENTAL_MATHEMATICAL_OPERATORS_N_ARY_OPERATORS_TO_OPERATORS = SymbolRange.range('⨀', '⫿'); // 0x2a00 - 0x2aff + public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_WHITE_AND_BLACK_ARROWS_TO_ELLIPSES = SymbolRange.range('⬀', '⬯'); // 0x2b00 - 0x2b2f + public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_WHITE_AND_BLACK_ARROWS_TO_SYMBOLS_USED_IN_CHESS_NOTATION = SymbolRange.range('⬀', '⯿'); // 0x2b00 - 0x2bff + public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MATHEMATICAL_ARROWS_SUBSET_2 = SymbolRange.range('⬰', '⭄'); // 0x2b30 - 0x2b44 + public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MATHEMATICAL_ARROWS_SUBSET = SymbolRange.range('⭅', '⭆'); // 0x2b45 - 0x2b46 + public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MATHEMATICAL_ARROWS_SUBSET_1 = SymbolRange.range('⭇', '⭌'); // 0x2b47 - 0x2b4c + public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MISCELLANEOUS_ARROW_TO_TRIANGLE_HEADED_ARROWS = SymbolRange.range('⭍', '⭳'); // 0x2b4d - 0x2b73 + public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_TRIANGLE_HEADED_ARROWS_TO_MISCELLANEOUS_ARROW_SYMBOL = SymbolRange.range('⭶', '⮕'); // 0x2b76 - 0x2b95 + public static final SymbolRange MISCELLANEOUS_SYMBOLS_AND_ARROWS_MISCELLANEOUS_SYMBOL_TO_SYMBOLS_USED_IN_CHESS_NOTATION = SymbolRange.range('⮗', '⯿'); // 0x2b97 - 0x2bff + public static final SymbolRange GLAGOLITIC_CAPITAL_LETTERS_SUBSET = SymbolRange.range('Ⰰ', 'Ⱞ'); // 0x2c00 - 0x2c2e + public static final SymbolRange GLAGOLITIC_SMALL_LETTERS_SUBSET = SymbolRange.range('ⰰ', 'ⱞ'); // 0x2c30 - 0x2c5e + public static final SymbolRange LATIN_EXTENDED_C_TO_COPTIC = SymbolRange.range('Ⱡ', 'ⳤ'); // 0x2c60 - 0x2ce4 + public static final SymbolRange LATIN_EXTENDED_C_ORTHOGRAPHIC_LATIN_ADDITIONS_SUBSET = SymbolRange.range('Ɫ', 'Ɽ'); // 0x2c62 - 0x2c64 + public static final SymbolRange LATIN_EXTENDED_C_ORTHOGRAPHIC_LATIN_ADDITIONS_SUBSET_1 = SymbolRange.range('ⱥ', 'ⱦ'); // 0x2c65 - 0x2c66 + public static final SymbolRange LATIN_EXTENDED_C_MISCELLANEOUS_ADDITIONS_SUBSET = SymbolRange.range('Ɑ', 'Ɒ'); // 0x2c6d - 0x2c70 + public static final SymbolRange LATIN_EXTENDED_C_MISCELLANEOUS_ADDITIONS_SUBSET_1 = SymbolRange.range('ⱳ', 'ⱴ'); // 0x2c73 - 0x2c74 + public static final SymbolRange LATIN_EXTENDED_C_CLAUDIAN_LETTERS_TO_ADDITIONS_FOR_UPA = SymbolRange.range('ⱶ', 'ⱻ'); // 0x2c76 - 0x2c7b + public static final SymbolRange LATIN_EXTENDED_C_ADDITIONS_FOR_UPA_SUBSET = SymbolRange.range('ⱼ', 'ⱽ'); // 0x2c7c - 0x2c7d + public static final SymbolRange LATIN_EXTENDED_C_ADDITIONS_FOR_SHONA_TO_ADDITIONS_FOR_SHONA = SymbolRange.range('Ȿ', 'Ⲁ'); // 0x2c7e - 0x2c80 + public static final SymbolRange COPTIC_OLD_NUBIAN_LETTERS_TO_OLD_NUBIAN_LETTERS = SymbolRange.range('ⳣ', 'ⳤ'); // 0x2ce3 - 0x2ce4 + public static final SymbolRange COPTIC_SYMBOLS_SUBSET = SymbolRange.range('⳥', '⳪'); // 0x2ce5 - 0x2cea + public static final SymbolRange COPTIC_CRYPTOGRAMMIC_LETTERS = SymbolRange.range('Ⳬ', 'ⳮ'); // 0x2ceb - 0x2cee + public static final SymbolRange COPTIC_COMBINING_MARKS = SymbolRange.range('⳯', '⳱'); // 0x2cef - 0x2cf1 + public static final SymbolRange COPTIC_BOHAIRIC_COPTIC_LETTERS_SUBSET = SymbolRange.range('Ⳳ', 'ⳳ'); // 0x2cf2 - 0x2cf3 + public static final SymbolRange COPTIC_OLD_NUBIAN_PUNCTUATION = SymbolRange.range('⳹', '⳼'); // 0x2cf9 - 0x2cfc + public static final SymbolRange COPTIC_PUNCTUATION = SymbolRange.range('⳾', '⳿'); // 0x2cfe - 0x2cff + public static final SymbolRange GEORGIAN_SUPPLEMENT_SMALL_LETTERS_KHUTSURI_SUBSET = SymbolRange.range('ⴀ', 'ⴥ'); // 0x2d00 - 0x2d25 + public static final SymbolRange TIFINAGH_LETTERS_SUBSET = SymbolRange.range('ⴰ', 'ⵧ'); // 0x2d30 - 0x2d67 + public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_MEEN_TO_SYLLABLES_FOR_BLIN = SymbolRange.range('ⶀ', 'ⶖ'); // 0x2d80 - 0x2d96 + public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_BENCH_SUBSET = SymbolRange.range('ⶠ', 'ⶦ'); // 0x2da0 - 0x2da6 + public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_BENCH_SUBSET_1 = SymbolRange.range('ⶨ', 'ⶮ'); // 0x2da8 - 0x2dae + public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_BENCH_SUBSET_2 = SymbolRange.range('ⶰ', 'ⶶ'); // 0x2db0 - 0x2db6 + public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_BENCH_SUBSET_3 = SymbolRange.range('ⶸ', 'ⶾ'); // 0x2db8 - 0x2dbe + public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_SEBATBEIT_SUBSET = SymbolRange.range('ⷀ', 'ⷆ'); // 0x2dc0 - 0x2dc6 + public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_SEBATBEIT_SUBSET_1 = SymbolRange.range('ⷈ', 'ⷎ'); // 0x2dc8 - 0x2dce + public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_SEBATBEIT_SUBSET_2 = SymbolRange.range('ⷐ', 'ⷖ'); // 0x2dd0 - 0x2dd6 + public static final SymbolRange ETHIOPIC_EXTENDED_SYLLABLES_FOR_SEBATBEIT_SUBSET_3 = SymbolRange.range('ⷘ', 'ⷞ'); // 0x2dd8 - 0x2dde + public static final SymbolRange CYRILLIC_EXTENDED_A_OLD_CHURCH_SLAVONIC_COMBINING_LETTERS = SymbolRange.range('ⷠ', 'ⷿ'); // 0x2de0 - 0x2dff + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_NEW_TESTAMENT_EDITORIAL_SYMBOLS_SUBSET = SymbolRange.range('⸀', '⸁'); // 0x2e00 - 0x2e01 + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_NEW_TESTAMENT_EDITORIAL_SYMBOLS_TO_HISTORIC_PUNCTUATION = SymbolRange.range('⸀', '⸮'); // 0x2e00 - 0x2e2e + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_NEW_TESTAMENT_EDITORIAL_SYMBOLS_SUBSET_1 = SymbolRange.range('⸆', '⸈'); // 0x2e06 - 0x2e08 + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_ANCIENT_GREEK_TEXTUAL_SYMBOLS = SymbolRange.range('⸎', '⸖'); // 0x2e0e - 0x2e16 + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_GENERAL_PUNCTUATION = SymbolRange.range('⸘', '⸙'); // 0x2e18 - 0x2e19 + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_DICTIONARY_PUNCTUATION_1 = SymbolRange.range('⸞', '⸟'); // 0x2e1e - 0x2e1f + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_SUBSET_1 = SymbolRange.range('⸪', '⸮'); // 0x2e2a - 0x2e2e + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_TO_PALAEOTYPE_TRANSLITERATION_SYMBOLS = SymbolRange.range('⸰', '⸹'); // 0x2e30 - 0x2e39 + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_TO_HISTORIC_PUNCTUATION = SymbolRange.range('⸰', '⹏'); // 0x2e30 - 0x2e4f + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_DASHES = SymbolRange.range('⸺', '⸻'); // 0x2e3a - 0x2e3b + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_ALTERNATE_FORMS_OF_PUNCTUATION_TO_ALTERNATE_FORMS_OF_PUNCTUATION = SymbolRange.range('⸼', '⸿'); // 0x2e3c - 0x2e3f + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_MISCELLANEOUS_PUNCTUATION_TO_HISTORIC_PUNCTUATION = SymbolRange.range('⹃', '⹏'); // 0x2e43 - 0x2e4f + public static final SymbolRange SUPPLEMENTAL_PUNCTUATION_HISTORIC_PUNCTUATION_SUBSET = SymbolRange.range('⹐', '⹑'); // 0x2e50 - 0x2e51 + public static final SymbolRange CJK_RADICALS_SUPPLEMENT_CJK_RADICALS_SUPPLEMENT_SUBSET = SymbolRange.range('⺀', '⺙'); // 0x2e80 - 0x2e99 + public static final SymbolRange CJK_RADICALS_SUPPLEMENT_CJK_RADICALS_SUPPLEMENT = SymbolRange.range('⺀', '⻿'); // 0x2e80 - 0x2eff + public static final SymbolRange CJK_RADICALS_SUPPLEMENT_CJK_RADICALS_SUPPLEMENT_SUBSET_1 = SymbolRange.range('⺛', '⻳'); // 0x2e9b - 0x2ef3 + public static final SymbolRange KANGXI_RADICALS_KANGXI_RADICALS_SUBSET = SymbolRange.range('⼀', '⿕'); // 0x2f00 - 0x2fd5 + public static final SymbolRange KANGXI_RADICALS_KANGXI_RADICALS_SUBSET_1 = SymbolRange.range('⼀', '⿟'); // 0x2f00 - 0x2fdf + public static final SymbolRange IDEOGRAPHIC_DESCRIPTION_CHARACTERS_IDEOGRAPHIC_DESCRIPTION_CHARACTERS = SymbolRange.range('⿰', '⿿'); // 0x2ff0 - 0x2fff + public static final SymbolRange IDEOGRAPHIC_DESCRIPTION_CHARACTERS_IDEOGRAPHIC_DESCRIPTION_CHARACTERS_SUBSET = SymbolRange.range('⿰', '⿻'); // 0x2ff0 - 0x2ffb + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS_AND_PUNCTUATION_TO_SPECIAL_CJK_INDICATORS = SymbolRange.range(' ', '〿'); // 0x3000 - 0x303f + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS_AND_PUNCTUATION_SUBSET = SymbolRange.range('、', '〃'); // 0x3001 - 0x3003 + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS_AND_PUNCTUATION_SUBSET_1 = SymbolRange.range('々', '〆'); // 0x3005 - 0x3006 + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_ANGLE_BRACKETS_TO_CJK_BRACKETS = SymbolRange.range('〈', '】'); // 0x3008 - 0x3011 + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_SYMBOLS = SymbolRange.range('〒', '〓'); // 0x3012 - 0x3013 + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_BRACKETS_TO_CJK_PUNCTUATION = SymbolRange.range('〔', '〟'); // 0x3014 - 0x301f + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_CJK_PUNCTUATION_SUBSET = SymbolRange.range('〞', '〟'); // 0x301e - 0x301f + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_SUZHOU_NUMERALS = SymbolRange.range('〡', '〩'); // 0x3021 - 0x3029 + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_COMBINING_TONE_MARKS = SymbolRange.range('〪', '〯'); // 0x302a - 0x302f + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_COMBINING_TONE_MARKS_SUBSET = SymbolRange.range('〪', '〭'); // 0x302a - 0x302d + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_COMBINING_TONE_MARKS_SUBSET_1 = SymbolRange.range('〮', '〯'); // 0x302e - 0x302f + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_KANA_REPEAT_MARKS = SymbolRange.range('〱', '〵'); // 0x3031 - 0x3035 + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_OTHER_CJK_SYMBOLS = SymbolRange.range('〶', '〷'); // 0x3036 - 0x3037 + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_ADDITIONAL_SUZHOU_NUMERALS = SymbolRange.range('〸', '〺'); // 0x3038 - 0x303a + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_OTHER_CJK_PUNCTUATION_SUBSET = SymbolRange.range('〻', '〼'); // 0x303b - 0x303c + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_SPECIAL_CJK_INDICATORS = SymbolRange.range('〾', '〿'); // 0x303e - 0x303f + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_HIRAGANA_TO_ITERATION_MARKS = SymbolRange.range('぀', 'ゟ'); // 0x3040 - 0x309f + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_HIRAGANA_LETTERS_TO_SMALL_LETTERS = SymbolRange.range('ぁ', 'ゖ'); // 0x3041 - 0x3096 + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_VOICING_MARKS_SUBSET = SymbolRange.range('゙', '゚'); // 0x3099 - 0x309a + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_VOICING_MARKS_SUBSET_1 = SymbolRange.range('゛', '゜'); // 0x309b - 0x309c + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_ITERATION_MARKS_TO_ITERATION_MARKS = SymbolRange.range('ゝ', 'ゟ'); // 0x309d - 0x309f + public static final SymbolRange CJK_SYMBOLS_AND_PUNCTUATION_ITERATION_MARKS = SymbolRange.range('ゝ', 'ゞ'); // 0x309d - 0x309e + public static final SymbolRange KATAKANA_KATAKANA_PUNCTUATION_TO_ITERATION_MARKS = SymbolRange.range('゠', 'ヿ'); // 0x30a0 - 0x30ff + public static final SymbolRange KATAKANA_KATAKANA_LETTERS = SymbolRange.range('ァ', 'ヺ'); // 0x30a1 - 0x30fa + public static final SymbolRange KATAKANA_CONJUNCTION_AND_LENGTH_MARKS_TO_ITERATION_MARKS = SymbolRange.range('ー', 'ヾ'); // 0x30fc - 0x30fe + public static final SymbolRange KATAKANA_CONJUNCTION_AND_LENGTH_MARKS_TO_ITERATION_MARKS_1 = SymbolRange.range('ー', 'ヿ'); // 0x30fc - 0x30ff + public static final SymbolRange KATAKANA_BOPOMOFO_TO_MISCELLANEOUS_ADDITIONS = SymbolRange.range('㄀', 'ㄯ'); // 0x3100 - 0x312f + public static final SymbolRange KATAKANA_BASED_ON_GB_2312_TO_MISCELLANEOUS_ADDITIONS = SymbolRange.range('ㄅ', 'ㄯ'); // 0x3105 - 0x312f + public static final SymbolRange KATAKANA_HANGUL_COMPATIBILITY_JAMO_TO_OLD_VOWEL_LETTERS = SymbolRange.range('㄰', '㆏'); // 0x3130 - 0x318f + public static final SymbolRange KATAKANA_CONSONANT_LETTERS_TO_OLD_VOWEL_LETTERS = SymbolRange.range('ㄱ', 'ㆎ'); // 0x3131 - 0x318e + public static final SymbolRange KANBUN_TATETEN_TO_TATETEN = SymbolRange.range('㆐', '㆑'); // 0x3190 - 0x3191 + public static final SymbolRange KANBUN_TATETEN_TO_KAERITEN = SymbolRange.range('㆐', '㆟'); // 0x3190 - 0x319f + public static final SymbolRange KANBUN_KAERITEN_SUBSET = SymbolRange.range('㆒', '㆕'); // 0x3192 - 0x3195 + public static final SymbolRange KANBUN_KAERITEN_SUBSET_1 = SymbolRange.range('㆖', '㆟'); // 0x3196 - 0x319f + public static final SymbolRange BOPOMOFO_EXTENDED_EXTENDED_BOPOMOFO_FOR_MINNAN_AND_HAKKA_TO_EXTENDED_BOPOMOFO_FOR_CANTONESE = SymbolRange.range('ㆠ', 'ㆿ'); // 0x31a0 - 0x31bf + public static final SymbolRange CJK_STROKES_CJK_STROKES_SUBSET = SymbolRange.range('㇀', '㇣'); // 0x31c0 - 0x31e3 + public static final SymbolRange KATAKANA_PHONETIC_EXTENSIONS_PHONETIC_EXTENSIONS_FOR_AINU = SymbolRange.range('ㇰ', 'ㇿ'); // 0x31f0 - 0x31ff + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_HANGUL_LETTERS_TO_PARENTHESIZED_KOREAN_WORDS = SymbolRange.range('㈀', '㈞'); // 0x3200 - 0x321e + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_HANGUL_LETTERS_TO_CIRCLED_KATAKANA = SymbolRange.range('㈀', '㋿'); // 0x3200 - 0x32ff + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_IDEOGRAPHS_SUBSET = SymbolRange.range('㈠', '㈩'); // 0x3220 - 0x3229 + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_PARENTHESIZED_IDEOGRAPHS_TO_CIRCLED_IDEOGRAPHS_FROM_ARIB_STD_B24 = SymbolRange.range('㈪', '㉇'); // 0x322a - 0x3247 + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_NUMBERS_ON_BLACK_SQUARES_FROM_ARIB_STD_B24 = SymbolRange.range('㉈', '㉏'); // 0x3248 - 0x324f + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_NUMBERS = SymbolRange.range('㉑', '㉟'); // 0x3251 - 0x325f + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_HANGUL_LETTERS_TO_CIRCLED_HANGUL_SYLLABLE = SymbolRange.range('㉠', '㉿'); // 0x3260 - 0x327f + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_IDEOGRAPHS_SUBSET = SymbolRange.range('㊀', '㊉'); // 0x3280 - 0x3289 + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_IDEOGRAPHS_SUBSET_1 = SymbolRange.range('㊊', '㊰'); // 0x328a - 0x32b0 + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_CIRCLED_NUMBERS_1 = SymbolRange.range('㊱', '㊿'); // 0x32b1 - 0x32bf + public static final SymbolRange ENCLOSED_CJK_LETTERS_AND_MONTHS_TO_CJK_COMPATIBILITY = SymbolRange.range('㋀', '㏿'); // 0x32c0 - 0x33ff + public static final SymbolRange CJK_COMPATIBILITY_SQUARED_KATAKANA_WORDS_TO_TELEGRAPH_SYMBOLS_FOR_DAYS = SymbolRange.range('㌀', '㏿'); // 0x3300 - 0x33ff + public static final SymbolRange CJK_COMPATIBILITY_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = SymbolRange.range('㐀', '䶿'); // 0x3400 - 0x4dbf + public static final SymbolRange YIJING_HEXAGRAM_SYMBOLS_YIJING_HEXAGRAM_SYMBOLS = SymbolRange.range('䷀', '䷿'); // 0x4dc0 - 0x4dff + public static final SymbolRange YIJING_HEXAGRAM_SYMBOLS_CJK_UNIFIED_IDEOGRAPHS = SymbolRange.range('一', '鿿'); // 0x4e00 - 0x9fff + public static final SymbolRange YIJING_HEXAGRAM_SYMBOLS_CJK_UNIFIED_IDEOGRAPHS_SUBSET = SymbolRange.range('一', '鿼'); // 0x4e00 - 0x9ffc + public static final SymbolRange YI_SYLLABLES_SYLLABLES = SymbolRange.range('ꀀ', 'ꀔ'); // 0xa000 - 0xa014 + public static final SymbolRange YI_SYLLABLES_SYLLABLES_TO_SYLLABLES = SymbolRange.range('ꀀ', 'ꒌ'); // 0xa000 - 0xa48c + public static final SymbolRange YI_SYLLABLES_SYLLABLES_TO_SYLLABLES_1 = SymbolRange.range('ꀀ', '꒏'); // 0xa000 - 0xa48f + public static final SymbolRange YI_SYLLABLES_SYLLABLES_SUBSET = SymbolRange.range('ꀖ', 'ꒌ'); // 0xa016 - 0xa48c + public static final SymbolRange YI_RADICALS_YI_RADICALS_SUBSET = SymbolRange.range('꒐', '꓆'); // 0xa490 - 0xa4c6 + public static final SymbolRange YI_RADICALS_YI_RADICALS = SymbolRange.range('꒐', '꓏'); // 0xa490 - 0xa4cf + public static final SymbolRange LISU_CONSONANTS_TO_VOWELS = SymbolRange.range('ꓐ', 'ꓷ'); // 0xa4d0 - 0xa4f7 + public static final SymbolRange LISU_CONSONANTS_TO_TONES = SymbolRange.range('ꓐ', 'ꓽ'); // 0xa4d0 - 0xa4fd + public static final SymbolRange LISU_TONES = SymbolRange.range('ꓸ', 'ꓽ'); // 0xa4f8 - 0xa4fd + public static final SymbolRange LISU_PUNCTUATION = SymbolRange.range('꓾', '꓿'); // 0xa4fe - 0xa4ff + public static final SymbolRange VAI_SYLLABLES_IN__EE_TO_SYLLABLE_FINALS = SymbolRange.range('ꔀ', 'ꘌ'); // 0xa500 - 0xa60c + public static final SymbolRange VAI_SYLLABLES_IN__EE_TO_SYLLABLES_IN__E = SymbolRange.range('ꔀ', 'ꘋ'); // 0xa500 - 0xa60b + public static final SymbolRange VAI_PUNCTUATION = SymbolRange.range('꘍', '꘏'); // 0xa60d - 0xa60f + public static final SymbolRange VAI_HISTORIC_SYLLABLES_TO_LOGOGRAMS = SymbolRange.range('ꘐ', 'ꘟ'); // 0xa610 - 0xa61f + public static final SymbolRange VAI_DIGITS = SymbolRange.range('꘠', '꘩'); // 0xa620 - 0xa629 + public static final SymbolRange VAI_HISTORIC_SYLLABLES_SUBSET = SymbolRange.range('ꘪ', 'ꘫ'); // 0xa62a - 0xa62b + public static final SymbolRange CYRILLIC_EXTENDED_B_LETTERS_FOR_OLD_CYRILLIC = SymbolRange.range('Ꙁ', 'ꙮ'); // 0xa640 - 0xa66e + public static final SymbolRange CYRILLIC_EXTENDED_B_ABBREVIATION_MARK_TO_COMBINING_NUMERIC_SIGNS = SymbolRange.range('꙯', '꙲'); // 0xa66f - 0xa672 + public static final SymbolRange CYRILLIC_EXTENDED_B_COMBINING_NUMERIC_SIGNS = SymbolRange.range('꙰', '꙲'); // 0xa670 - 0xa672 + public static final SymbolRange CYRILLIC_EXTENDED_B_COMBINING_MARKS_FOR_OLD_CYRILLIC = SymbolRange.range('ꙴ', '꙽'); // 0xa674 - 0xa67d + public static final SymbolRange CYRILLIC_EXTENDED_B_MODIFIER_LETTER_TO_INTONATION_MARKS_FOR_LITHUANIAN_DIALECTOLOGY = SymbolRange.range('ꙿ', 'ꚝ'); // 0xa67f - 0xa69d + public static final SymbolRange CYRILLIC_EXTENDED_B_INTONATION_MARKS_FOR_LITHUANIAN_DIALECTOLOGY = SymbolRange.range('ꚜ', 'ꚝ'); // 0xa69c - 0xa69d + public static final SymbolRange CYRILLIC_EXTENDED_B_COMBINING_MARKS_FOR_OLD_CYRILLIC_1 = SymbolRange.range('ꚞ', 'ꚟ'); // 0xa69e - 0xa69f + public static final SymbolRange BAMUM_SYLLABLES_SUBSET = SymbolRange.range('ꚠ', 'ꛥ'); // 0xa6a0 - 0xa6e5 + public static final SymbolRange BAMUM_SYLLABLES_SUBSET_1 = SymbolRange.range('ꛦ', 'ꛯ'); // 0xa6e6 - 0xa6ef + public static final SymbolRange BAMUM_COMBINING_MARKS = SymbolRange.range('꛰', '꛱'); // 0xa6f0 - 0xa6f1 + public static final SymbolRange BAMUM_PUNCTUATION_SUBSET = SymbolRange.range('꛲', '꛷'); // 0xa6f2 - 0xa6f7 + public static final SymbolRange MODIFIER_TONE_LETTERS_CORNER_TONE_MARKS_FOR_CHINESE_TO_LEFT_STEM_TONE_LETTERS = SymbolRange.range('꜀', '꜖'); // 0xa700 - 0xa716 + public static final SymbolRange MODIFIER_TONE_LETTERS_CHINANTEC_TONE_MARKS_TO_AFRICANIST_TONE_LETTERS = SymbolRange.range('ꜗ', 'ꜟ'); // 0xa717 - 0xa71f + public static final SymbolRange LATIN_EXTENDED_D_ADDITIONS_FOR_UPA = SymbolRange.range('꜠', '꜡'); // 0xa720 - 0xa721 + public static final SymbolRange LATIN_EXTENDED_D_EGYPTOLOGICAL_ADDITIONS_TO_INSULAR_AND_CELTICIST_LETTERS = SymbolRange.range('Ꜣ', 'ꞈ'); // 0xa722 - 0xa788 + public static final SymbolRange LATIN_EXTENDED_D_MAYANIST_ADDITIONS_TO_MEDIEVALIST_ADDITIONS = SymbolRange.range('ꜯ', 'ꜱ'); // 0xa72f - 0xa731 + public static final SymbolRange LATIN_EXTENDED_D_MEDIEVALIST_ADDITIONS_SUBSET = SymbolRange.range('ꝱ', 'ꝸ'); // 0xa771 - 0xa778 + public static final SymbolRange LATIN_EXTENDED_D_INSULAR_AND_CELTICIST_LETTERS_SUBSET = SymbolRange.range('Ᵹ', 'Ꝿ'); // 0xa77d - 0xa77e + public static final SymbolRange LATIN_EXTENDED_D_MODIFIER_LETTERS_SUBSET = SymbolRange.range('꞉', '꞊'); // 0xa789 - 0xa78a + public static final SymbolRange LATIN_EXTENDED_D_ORTHOGRAPHIC_LETTERS_FOR_GLOTTALS_TO_LETTERS_FOR_UGARITIC_AND_EGYPTOLOGICAL_TRANSLITERATION = SymbolRange.range('Ꞌ', 'ꞿ'); // 0xa78b - 0xa7bf + public static final SymbolRange LATIN_EXTENDED_D_ADDITIONAL_LETTERS_TO_ADDITIONS_FOR_LITHUANIAN_DIALECTOLOGY = SymbolRange.range('ꞓ', 'ꞕ'); // 0xa793 - 0xa795 + public static final SymbolRange LATIN_EXTENDED_D_ADDITIONAL_LETTERS_TO_ADDITIONAL_LETTERS = SymbolRange.range('Ɦ', 'Ɪ'); // 0xa7aa - 0xa7ae + public static final SymbolRange LATIN_EXTENDED_D_LETTERS_FOR_AMERICANIST_ORTHOGRAPHIES_TO_LETTER_FOR_GERMAN_DIALECTOLOGY = SymbolRange.range('Ʞ', 'Ꞵ'); // 0xa7b0 - 0xa7b4 + public static final SymbolRange LATIN_EXTENDED_D_ADDITIONAL_MEDIEVAL_LETTERS_TO_ADDITIONAL_LETTERS_FOR_GAULISH = SymbolRange.range('Ꟃ', 'ꟊ'); // 0xa7c2 - 0xa7ca + public static final SymbolRange LATIN_EXTENDED_D_LETTERS_USED_IN_EARLY_PINYIN_ROMANIZATION_TO_LETTERS_USED_IN_EARLY_PINYIN_ROMANIZATION = SymbolRange.range('Ꞔ', 'Ꟈ'); // 0xa7c4 - 0xa7c7 + public static final SymbolRange LATIN_EXTENDED_D_TO_SYLOTI_NAGRI = SymbolRange.range('Ꟶ', 'ꠁ'); // 0xa7f5 - 0xa801 + public static final SymbolRange LATIN_EXTENDED_D_ADDITIONS_FOR_EXTENDED_IPA = SymbolRange.range('ꟸ', 'ꟹ'); // 0xa7f8 - 0xa7f9 + public static final SymbolRange LATIN_EXTENDED_D_TO_SYLOTI_NAGRI_1 = SymbolRange.range('ꟻ', 'ꠁ'); // 0xa7fb - 0xa801 + public static final SymbolRange SYLOTI_NAGRI_INDEPENDENT_VOWELS_AND_DVISVARA_SUBSET = SymbolRange.range('ꠃ', 'ꠅ'); // 0xa803 - 0xa805 + public static final SymbolRange SYLOTI_NAGRI_CONSONANTS_AND_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ꠇ', 'ꠊ'); // 0xa807 - 0xa80a + public static final SymbolRange SYLOTI_NAGRI_CONSONANTS_AND_CONSONANT_SIGNS_SUBSET_1 = SymbolRange.range('ꠌ', 'ꠢ'); // 0xa80c - 0xa822 + public static final SymbolRange SYLOTI_NAGRI_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꠣ', 'ꠧ'); // 0xa823 - 0xa827 + public static final SymbolRange SYLOTI_NAGRI_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꠣ', 'ꠤ'); // 0xa823 - 0xa824 + public static final SymbolRange SYLOTI_NAGRI_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꠥ', 'ꠦ'); // 0xa825 - 0xa826 + public static final SymbolRange SYLOTI_NAGRI_POETRY_MARKS = SymbolRange.range('꠨', '꠫'); // 0xa828 - 0xa82b + public static final SymbolRange COMMON_INDIC_NUMBER_FORMS_NUMBER_FORMS_SUBSET = SymbolRange.range('꠰', '꠵'); // 0xa830 - 0xa835 + public static final SymbolRange COMMON_INDIC_NUMBER_FORMS_NUMBER_FORMS_TO_NUMBER_FORMS = SymbolRange.range('꠶', '꠷'); // 0xa836 - 0xa837 + public static final SymbolRange COMMON_INDIC_NUMBER_FORMS_NUMBER_FORMS_TO_CURRENCY_SYMBOL = SymbolRange.range('꠶', '꠹'); // 0xa836 - 0xa839 + public static final SymbolRange PHAGS_PA_CONSONANTS_TO_CONSONANT_ADDITION_FOR_TIBETAN = SymbolRange.range('ꡀ', 'ꡳ'); // 0xa840 - 0xa873 + public static final SymbolRange PHAGS_PA_HEAD_MARKS_FOR_TIBETAN_TO_PUNCTUATION_FOR_TIBETAN = SymbolRange.range('꡴', '꡷'); // 0xa874 - 0xa877 + public static final SymbolRange SAURASHTRA_VARIOUS_SIGNS = SymbolRange.range('ꢀ', 'ꢁ'); // 0xa880 - 0xa881 + public static final SymbolRange SAURASHTRA_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ꢂ', 'ꢳ'); // 0xa882 - 0xa8b3 + public static final SymbolRange SAURASHTRA_CONSONANTS_TO_VIRAMA = SymbolRange.range('ꢴ', 'ꣅ'); // 0xa8b4 - 0xa8c5 + public static final SymbolRange SAURASHTRA_CONSONANTS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꢴ', 'ꣃ'); // 0xa8b4 - 0xa8c3 + public static final SymbolRange SAURASHTRA_VIRAMA_TO_VIRAMA = SymbolRange.range('꣄', 'ꣅ'); // 0xa8c4 - 0xa8c5 + public static final SymbolRange SAURASHTRA_PUNCTUATION = SymbolRange.range('꣎', '꣏'); // 0xa8ce - 0xa8cf + public static final SymbolRange SAURASHTRA_DIGITS_SUBSET = SymbolRange.range('꣐', '꣙'); // 0xa8d0 - 0xa8d9 + public static final SymbolRange DEVANAGARI_EXTENDED_CANTILLATION_MARKS_SVARA_FOR_THE_SAMAVEDA = SymbolRange.range('꣠', '꣱'); // 0xa8e0 - 0xa8f1 + public static final SymbolRange DEVANAGARI_EXTENDED_MARKS_OF_NASALIZATION = SymbolRange.range('ꣲ', 'ꣷ'); // 0xa8f2 - 0xa8f7 + public static final SymbolRange DEVANAGARI_EXTENDED_EDITORIAL_MARKS_SUBSET = SymbolRange.range('꣸', '꣺'); // 0xa8f8 - 0xa8fa + public static final SymbolRange DEVANAGARI_EXTENDED_SIGNS_TO_SIGNS = SymbolRange.range('ꣽ', 'ꣾ'); // 0xa8fd - 0xa8fe + public static final SymbolRange KAYAH_LI_DIGITS = SymbolRange.range('꤀', '꤉'); // 0xa900 - 0xa909 + public static final SymbolRange KAYAH_LI_CONSONANTS_TO_VOWELS = SymbolRange.range('ꤊ', 'ꤥ'); // 0xa90a - 0xa925 + public static final SymbolRange KAYAH_LI_VOWELS_TO_TONE_MARKS = SymbolRange.range('ꤦ', '꤭'); // 0xa926 - 0xa92d + public static final SymbolRange KAYAH_LI_PUNCTUATION = SymbolRange.range('꤮', '꤯'); // 0xa92e - 0xa92f + public static final SymbolRange REJANG_CONSONANTS = SymbolRange.range('ꤰ', 'ꥆ'); // 0xa930 - 0xa946 + public static final SymbolRange REJANG_VOWEL_SIGNS_TO_CONSONANT_SIGNS = SymbolRange.range('ꥇ', '꥓'); // 0xa947 - 0xa953 + public static final SymbolRange REJANG_VOWEL_SIGNS_TO_CONSONANT_SIGNS_1 = SymbolRange.range('ꥇ', 'ꥑ'); // 0xa947 - 0xa951 + public static final SymbolRange REJANG_CONSONANT_SIGNS_TO_CONSONANT_SIGNS = SymbolRange.range('ꥒ', '꥓'); // 0xa952 - 0xa953 + public static final SymbolRange HANGUL_JAMO_EXTENDED_A_OLD_INITIAL_CONSONANTS_SUBSET = SymbolRange.range('ꥠ', 'ꥼ'); // 0xa960 - 0xa97c + public static final SymbolRange JAVANESE_VARIOUS_SIGNS = SymbolRange.range('ꦀ', 'ꦃ'); // 0xa980 - 0xa983 + public static final SymbolRange JAVANESE_VARIOUS_SIGNS_SUBSET = SymbolRange.range('ꦀ', 'ꦂ'); // 0xa980 - 0xa982 + public static final SymbolRange JAVANESE_LETTERS = SymbolRange.range('ꦄ', 'ꦲ'); // 0xa984 - 0xa9b2 + public static final SymbolRange JAVANESE_SIGN_TO_DEPENDENT_CONSONANT_SIGNS = SymbolRange.range('꦳', '꧀'); // 0xa9b3 - 0xa9c0 + public static final SymbolRange JAVANESE_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꦴ', 'ꦵ'); // 0xa9b4 - 0xa9b5 + public static final SymbolRange JAVANESE_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꦶ', 'ꦹ'); // 0xa9b6 - 0xa9b9 + public static final SymbolRange JAVANESE_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ꦺ', 'ꦻ'); // 0xa9ba - 0xa9bb + public static final SymbolRange JAVANESE_DEPENDENT_VOWEL_SIGNS_TO_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꦼ', 'ꦽ'); // 0xa9bc - 0xa9bd + public static final SymbolRange JAVANESE_DEPENDENT_CONSONANT_SIGNS_TO_DEPENDENT_CONSONANT_SIGNS = SymbolRange.range('ꦾ', '꧀'); // 0xa9be - 0xa9c0 + public static final SymbolRange JAVANESE_PUNCTUATION_SUBSET = SymbolRange.range('꧁', '꧍'); // 0xa9c1 - 0xa9cd + public static final SymbolRange JAVANESE_DIGITS_SUBSET = SymbolRange.range('꧐', '꧙'); // 0xa9d0 - 0xa9d9 + public static final SymbolRange JAVANESE_ELLIPSIS_MARKS = SymbolRange.range('꧞', '꧟'); // 0xa9de - 0xa9df + public static final SymbolRange MYANMAR_EXTENDED_B_ADDITIONS_FOR_SHAN_PALI_SUBSET = SymbolRange.range('ꧠ', 'ꧤ'); // 0xa9e0 - 0xa9e4 + public static final SymbolRange MYANMAR_EXTENDED_B_REDUPLICATION_MARK_TO_TAI_LAING_CONSONANTS = SymbolRange.range('ꧦ', 'ꧯ'); // 0xa9e6 - 0xa9ef + public static final SymbolRange MYANMAR_EXTENDED_B_TAI_LAING_CONSONANTS = SymbolRange.range('ꧧ', 'ꧯ'); // 0xa9e7 - 0xa9ef + public static final SymbolRange MYANMAR_EXTENDED_B_TAI_LAING_DIGITS = SymbolRange.range('꧰', '꧹'); // 0xa9f0 - 0xa9f9 + public static final SymbolRange MYANMAR_EXTENDED_B_TAI_LAING_CONSONANTS_SUBSET = SymbolRange.range('ꧺ', 'ꧾ'); // 0xa9fa - 0xa9fe + public static final SymbolRange CHAM_INDEPENDENT_VOWELS_TO_CONSONANTS = SymbolRange.range('ꨀ', 'ꨨ'); // 0xaa00 - 0xaa28 + public static final SymbolRange CHAM_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꨩ', 'ꨮ'); // 0xaa29 - 0xaa2e + public static final SymbolRange CHAM_DEPENDENT_VOWEL_SIGNS_TO_CONSONANT_SIGNS = SymbolRange.range('ꨩ', 'ꨶ'); // 0xaa29 - 0xaa36 + public static final SymbolRange CHAM_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꨯ', 'ꨰ'); // 0xaa2f - 0xaa30 + public static final SymbolRange CHAM_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ꨱ', 'ꨲ'); // 0xaa31 - 0xaa32 + public static final SymbolRange CHAM_CONSONANT_SIGNS_SUBSET = SymbolRange.range('ꨳ', 'ꨴ'); // 0xaa33 - 0xaa34 + public static final SymbolRange CHAM_CONSONANT_SIGNS_SUBSET_1 = SymbolRange.range('ꨵ', 'ꨶ'); // 0xaa35 - 0xaa36 + public static final SymbolRange CHAM_FINAL_CONSONANTS_SUBSET = SymbolRange.range('ꩀ', 'ꩂ'); // 0xaa40 - 0xaa42 + public static final SymbolRange CHAM_FINAL_CONSONANTS_SUBSET_1 = SymbolRange.range('ꩄ', 'ꩋ'); // 0xaa44 - 0xaa4b + public static final SymbolRange CHAM_FINAL_CONSONANTS_SUBSET_2 = SymbolRange.range('ꩌ', 'ꩍ'); // 0xaa4c - 0xaa4d + public static final SymbolRange CHAM_DIGITS_SUBSET = SymbolRange.range('꩐', '꩙'); // 0xaa50 - 0xaa59 + public static final SymbolRange CHAM_PUNCTUATION = SymbolRange.range('꩜', '꩟'); // 0xaa5c - 0xaa5f + public static final SymbolRange MYANMAR_EXTENDED_A_KHAMTI_SHAN_CONSONANTS_TO_KHAMTI_SHAN_LOGOGRAMS = SymbolRange.range('ꩠ', 'ꩶ'); // 0xaa60 - 0xaa76 + public static final SymbolRange MYANMAR_EXTENDED_A_KHAMTI_SHAN_CONSONANTS_SUBSET = SymbolRange.range('ꩠ', 'ꩯ'); // 0xaa60 - 0xaa6f + public static final SymbolRange MYANMAR_EXTENDED_A_KHAMTI_SHAN_CONSONANTS_TO_KHAMTI_SHAN_LOGOGRAMS_1 = SymbolRange.range('ꩱ', 'ꩶ'); // 0xaa71 - 0xaa76 + public static final SymbolRange MYANMAR_EXTENDED_A_AITON_SYMBOLS_AND_LETTERS_SUBSET = SymbolRange.range('꩷', '꩹'); // 0xaa77 - 0xaa79 + public static final SymbolRange MYANMAR_EXTENDED_A_PAO_KAREN_TONE_MARK_TO_TAI_LAING_TONE_MARKS = SymbolRange.range('ꩻ', 'ꩽ'); // 0xaa7b - 0xaa7d + public static final SymbolRange MYANMAR_EXTENDED_A_TO_TAI_VIET = SymbolRange.range('ꩾ', 'ꪯ'); // 0xaa7e - 0xaaaf + public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_SUBSET = SymbolRange.range('ꪲ', 'ꪴ'); // 0xaab2 - 0xaab4 + public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_SUBSET_1 = SymbolRange.range('ꪵ', 'ꪶ'); // 0xaab5 - 0xaab6 + public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_SUBSET_2 = SymbolRange.range('ꪷ', 'ꪸ'); // 0xaab7 - 0xaab8 + public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_SUBSET_3 = SymbolRange.range('ꪹ', 'ꪽ'); // 0xaab9 - 0xaabd + public static final SymbolRange TAI_VIET_VOWELS_AND_FINALS_TO_VOWELS_AND_FINALS = SymbolRange.range('ꪾ', '꪿'); // 0xaabe - 0xaabf + public static final SymbolRange TAI_VIET_WORD_LIGATURE_SYMBOLS = SymbolRange.range('ꫛ', 'ꫜ'); // 0xaadb - 0xaadc + public static final SymbolRange TAI_VIET_WORD_LIGATURE_SYMBOLS_TO_WORD_LIGATURE_SYMBOLS = SymbolRange.range('ꫛ', 'ꫝ'); // 0xaadb - 0xaadd + public static final SymbolRange TAI_VIET_PUNCTUATION = SymbolRange.range('꫞', '꫟'); // 0xaade - 0xaadf + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_INDEPENDENT_VOWEL_SIGNS_TO_CONSONANTS = SymbolRange.range('ꫠ', 'ꫪ'); // 0xaae0 - 0xaaea + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꫫ', 'ꫯ'); // 0xaaeb - 0xaaef + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꫬ', 'ꫭ'); // 0xaaec - 0xaaed + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꫮ', 'ꫯ'); // 0xaaee - 0xaaef + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_PUNCTUATION = SymbolRange.range('꫰', '꫱'); // 0xaaf0 - 0xaaf1 + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_SIGN_TO_REPETITION_MARKS = SymbolRange.range('ꫲ', 'ꫴ'); // 0xaaf2 - 0xaaf4 + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_REPETITION_MARKS = SymbolRange.range('ꫳ', 'ꫴ'); // 0xaaf3 - 0xaaf4 + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_SIGN_TO_SIGN = SymbolRange.range('ꫵ', '꫶'); // 0xaaf5 - 0xaaf6 + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GAMO_GOFA_DAWRO_AND_BASKETO_SUBSET = SymbolRange.range('ꬁ', 'ꬆ'); // 0xab01 - 0xab06 + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GAMO_GOFA_DAWRO_AND_BASKETO_SUBSET_1 = SymbolRange.range('ꬉ', 'ꬎ'); // 0xab09 - 0xab0e + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GAMO_GOFA_DAWRO_SUBSET = SymbolRange.range('ꬑ', 'ꬖ'); // 0xab11 - 0xab16 + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GUMUZ_SUBSET = SymbolRange.range('ꬠ', 'ꬦ'); // 0xab20 - 0xab26 + public static final SymbolRange MEETEI_MAYEK_EXTENSIONS_GUMUZ_SUBSET_1 = SymbolRange.range('ꬨ', 'ꬮ'); // 0xab28 - 0xab2e + public static final SymbolRange LATIN_EXTENDED_E_LETTERS_FOR_GERMAN_DIALECTOLOGY = SymbolRange.range('ꬰ', 'ꭚ'); // 0xab30 - 0xab5a + public static final SymbolRange LATIN_EXTENDED_E_MODIFIER_LETTERS_FOR_GERMAN_DIALECTOLOGY_SUBSET = SymbolRange.range('ꭜ', 'ꭟ'); // 0xab5c - 0xab5f + public static final SymbolRange LATIN_EXTENDED_E_MODIFIER_LETTERS_FOR_GERMAN_DIALECTOLOGY_TO_LETTERS_FOR_SCOTS_DIALECTOLOGY = SymbolRange.range('ꭜ', 'ꭩ'); // 0xab5c - 0xab69 + public static final SymbolRange LATIN_EXTENDED_E_HISTORIC_LETTERS_FOR_SAKHA_YAKUT_TO_LETTERS_FOR_SINOLOGICAL_TRANSCRIPTION = SymbolRange.range('ꭠ', 'ꭨ'); // 0xab60 - 0xab68 + public static final SymbolRange LATIN_EXTENDED_E_LETTERS_FOR_SCOTS_DIALECTOLOGY_SUBSET = SymbolRange.range('꭪', '꭫'); // 0xab6a - 0xab6b + public static final SymbolRange CHEROKEE_SUPPLEMENT_LOWERCASE_SYLLABLES = SymbolRange.range('ꭰ', 'ꮿ'); // 0xab70 - 0xabbf + public static final SymbolRange CHEROKEE_SUPPLEMENT_TO_MEETEI_MAYEK = SymbolRange.range('ꭰ', 'ꯢ'); // 0xab70 - 0xabe2 + public static final SymbolRange MEETEI_MAYEK_LETTERS_TO_FINAL_CONSONANTS = SymbolRange.range('ꯀ', 'ꯢ'); // 0xabc0 - 0xabe2 + public static final SymbolRange MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS = SymbolRange.range('ꯣ', 'ꯪ'); // 0xabe3 - 0xabea + public static final SymbolRange MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS_SUBSET = SymbolRange.range('ꯣ', 'ꯤ'); // 0xabe3 - 0xabe4 + public static final SymbolRange MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS_SUBSET_1 = SymbolRange.range('ꯦ', 'ꯧ'); // 0xabe6 - 0xabe7 + public static final SymbolRange MEETEI_MAYEK_DEPENDENT_VOWEL_SIGNS_SUBSET_2 = SymbolRange.range('ꯩ', 'ꯪ'); // 0xabe9 - 0xabea + public static final SymbolRange MEETEI_MAYEK_PUNCTUATION_SUBSET = SymbolRange.range('꯬', '꯭'); // 0xabec - 0xabed + public static final SymbolRange MEETEI_MAYEK_DIGITS_SUBSET = SymbolRange.range('꯰', '꯹'); // 0xabf0 - 0xabf9 + public static final SymbolRange MEETEI_MAYEK_HANGUL_SYLLABLES_SUBSET = SymbolRange.range('가', '힣'); // 0xac00 - 0xd7a3 + public static final SymbolRange MEETEI_MAYEK_HANGUL_SYLLABLES = SymbolRange.range('가', '힯'); // 0xac00 - 0xd7af + public static final SymbolRange HANGUL_JAMO_EXTENDED_B_OLD_MEDIAL_VOWELS_SUBSET = SymbolRange.range('ힰ', 'ퟆ'); // 0xd7b0 - 0xd7c6 + public static final SymbolRange HANGUL_JAMO_EXTENDED_B_OLD_FINAL_CONSONANTS_SUBSET = SymbolRange.range('ퟋ', 'ퟻ'); // 0xd7cb - 0xd7fb } diff --git a/src/main/java/com/github/curiousoddman/rgxgen/model/WhitespaceChar.java b/src/main/java/com/github/curiousoddman/rgxgen/model/WhitespaceChar.java index 2ea5f6d6..88bd3b36 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/model/WhitespaceChar.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/model/WhitespaceChar.java @@ -24,13 +24,13 @@ public enum WhitespaceChar { VERTICAL_TAB('\u000B'), FORM_FEED('\f'); - private final Character c; + private final char c; WhitespaceChar(char c) { this.c = c; } - public Character get() { + public char get() { return c; } } diff --git a/src/main/java/com/github/curiousoddman/rgxgen/nodes/SymbolSet.java b/src/main/java/com/github/curiousoddman/rgxgen/nodes/SymbolSet.java index e25d7d36..1bc79425 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/nodes/SymbolSet.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/nodes/SymbolSet.java @@ -23,13 +23,15 @@ import com.github.curiousoddman.rgxgen.model.SymbolRange; import com.github.curiousoddman.rgxgen.model.UnicodeCategory; import com.github.curiousoddman.rgxgen.util.Util; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import com.github.curiousoddman.rgxgen.visitors.NodeVisitor; import com.github.curiousoddman.rgxgen.visitors.helpers.SymbolSetIndexer; import java.util.ArrayList; import java.util.List; -import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.*; +import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.ASCII_SYMBOL_RANGE; +import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.UNICODE_SYMBOL_RANGE; import static java.util.Collections.emptyList; import static java.util.Collections.singletonList; @@ -41,10 +43,10 @@ public class SymbolSet extends Node { private final MatchType originalMatchType; private final RgxGenCharsDefinition positiveGenerationChars; private final RgxGenCharsDefinition negativeMatchExclusion; - private final boolean isAscii; - protected final SymbolRange universeCharacters; - private final List symbolRanges; - private final List symbols; + private final boolean isAscii; + protected final SymbolRange universeCharacters; + private final List symbolRanges; + private final CharList symbols; private SymbolSetIndexer symbolSetIndexer; private SymbolSetIndexer caseInsensitiveSymbolSetIndexer; @@ -53,44 +55,44 @@ public static SymbolSet ofDotPattern(RgxGenProperties properties) { if (charsDefinition != null) { boolean isAscii = charsDefinition.isAsciiOnly(); if (isAscii) { - return ofAscii(".", charsDefinition.getRangeList(), charsDefinition.getCharacters().toArray(ZERO_LENGTH_CHARACTER_ARRAY), MatchType.POSITIVE); + return ofAscii(".", charsDefinition.getRangeList(), charsDefinition.getCharacters(), MatchType.POSITIVE); } else { - return ofUnicode(".", charsDefinition.getRangeList(), charsDefinition.getCharacters().toArray(ZERO_LENGTH_CHARACTER_ARRAY), MatchType.POSITIVE); + return ofUnicode(".", charsDefinition.getRangeList(), charsDefinition.getCharacters(), MatchType.POSITIVE); } } else { - return ofAscii(".", singletonList(ASCII_SYMBOL_RANGE), ZERO_LENGTH_CHARACTER_ARRAY, MatchType.POSITIVE); + return ofAscii(".", singletonList(ASCII_SYMBOL_RANGE), CharList.empty(), MatchType.POSITIVE); } } - public static SymbolSet ofAsciiCharacters(String pattern, Character[] symbols, MatchType type) { - return new SymbolSet(pattern, emptyList(), symbols, type, ASCII_SYMBOL_RANGE); + public static SymbolSet ofAsciiCharacters(String pattern, char[] symbols, MatchType type) { + return new SymbolSet(pattern, emptyList(), CharList.charList(symbols), type, ASCII_SYMBOL_RANGE); } public static SymbolSet ofUnicodeCharacterClass(String pattern, UnicodeCategory unicodeCategory, MatchType type) { - return new SymbolSet(pattern, unicodeCategory.getSymbolRanges(), unicodeCategory.getSymbols(), type, UNICODE_SYMBOL_RANGE); + return new SymbolSet(pattern, unicodeCategory.getSymbolRanges(), CharList.charList(unicodeCategory.getSymbols()), type, UNICODE_SYMBOL_RANGE); } - public static SymbolSet ofUnicode(String pattern, List symbolRanges, Character[] characters, MatchType matchType) { - return new SymbolSet(pattern, symbolRanges, characters, matchType, UNICODE_SYMBOL_RANGE); + public static SymbolSet ofUnicode(String pattern, List symbolRanges, CharList symbols, MatchType matchType) { + return new SymbolSet(pattern, symbolRanges, symbols, matchType, UNICODE_SYMBOL_RANGE); } public static SymbolSet ofUnicode(String pattern, RgxGenCharsDefinition positiveMatchDefinitions, RgxGenCharsDefinition negativeMatchDefinitions, MatchType matchType) { return new SymbolSet(pattern, positiveMatchDefinitions, negativeMatchDefinitions, matchType, UNICODE_SYMBOL_RANGE); } - public static SymbolSet ofAscii(String pattern, List symbolRanges, Character[] symbols, MatchType type) { - return new SymbolSet(pattern, symbolRanges, symbols, type, ASCII_SYMBOL_RANGE); + public static SymbolSet ofAscii(String pattern, List symbolRanges, CharList charList, MatchType type) { + return new SymbolSet(pattern, symbolRanges, charList, type, ASCII_SYMBOL_RANGE); } public static SymbolSet ofAsciiRanges(String pattern, List symbolRanges, MatchType type) { - return new SymbolSet(pattern, symbolRanges, ZERO_LENGTH_CHARACTER_ARRAY, type, ASCII_SYMBOL_RANGE); + return new SymbolSet(pattern, symbolRanges, CharList.empty(), type, ASCII_SYMBOL_RANGE); } public static SymbolSet ofAscii(String pattern, RgxGenCharsDefinition positiveMatchDefinitions, RgxGenCharsDefinition negativeMatchDefinitions, MatchType matchType) { return new SymbolSet(pattern, positiveMatchDefinitions, negativeMatchDefinitions, matchType, ASCII_SYMBOL_RANGE); } - public SymbolSet(String pattern, List symbolRanges, Character[] symbols, MatchType type, SymbolRange universeCharacters) { + public SymbolSet(String pattern, List symbolRanges, CharList symbols, MatchType type, SymbolRange universeCharacters) { this(pattern, RgxGenCharsDefinition.of(symbolRanges, symbols), null, type, universeCharacters); } @@ -115,16 +117,16 @@ public SymbolSet(String pattern, if (type == MatchType.POSITIVE) { List compactedRanges = new ArrayList<>(positiveGenerationChars.getRangeList().size()); - List compactedCharacters = new ArrayList<>(positiveGenerationChars.getCharacters().size()); + CharList compactedCharacters = CharList.ofCapacity(positiveGenerationChars.getCharacters().size()); Util.compactOverlappingRangesAndSymbols(positiveGenerationChars.getRangeList(), positiveGenerationChars.getCharacters(), compactedRanges, compactedCharacters); symbolRanges = compactedRanges; symbols = compactedCharacters; } else { symbolRanges = new ArrayList<>(); - symbols = new ArrayList<>(); + symbols = CharList.empty(); RgxGenCharsDefinition defsToUse = negativeMatchExclusion == null ? positiveGenerationChars : negativeMatchExclusion; List compactedRanges = new ArrayList<>(defsToUse.getRangeList().size()); - List compactedCharacters = new ArrayList<>(defsToUse.getCharacters().size()); + CharList compactedCharacters = CharList.ofCapacity(defsToUse.getCharacters().size()); Util.compactOverlappingRangesAndSymbols(defsToUse.getRangeList(), defsToUse.getCharacters(), compactedRanges, compactedCharacters); Util.invertSymbolsAndRanges(compactedRanges, compactedCharacters, universeCharacters, symbolRanges, symbols); } @@ -133,9 +135,9 @@ public SymbolSet(String pattern, public SymbolSet getInvertedNode() { if (isAscii) { - return ofAscii("[^" + getPattern().substring(1), symbolRanges, symbols.toArray(ZERO_LENGTH_CHARACTER_ARRAY), MatchType.NEGATIVE); + return ofAscii("[^" + getPattern().substring(1), symbolRanges, symbols, MatchType.NEGATIVE); } else { - return ofUnicode("[^" + getPattern().substring(1), symbolRanges, symbols.toArray(ZERO_LENGTH_CHARACTER_ARRAY), MatchType.NEGATIVE); + return ofUnicode("[^" + getPattern().substring(1), symbolRanges, symbols, MatchType.NEGATIVE); } } @@ -153,9 +155,10 @@ public SymbolSetIndexer getSymbolSetIndexer() { public SymbolSetIndexer getCaseInsensitiveSymbolSetIndexer() { if (caseInsensitiveSymbolSetIndexer == null) { - List caseInsensitiveSymbols = new ArrayList<>(positiveGenerationChars.getCharacters()); - for (Character c : positiveGenerationChars.getCharacters()) { - addIfChangedCase(caseInsensitiveSymbols, c); + CharList caseInsensitiveSymbols = positiveGenerationChars.getCharacters().copy(); + CharList characters = positiveGenerationChars.getCharacters(); + for (int i = 0; i < characters.size(); i++) { + addIfChangedCase(caseInsensitiveSymbols, characters.get(i)); } for (SymbolRange originalSymbolRange : positiveGenerationChars.getRangeList()) { for (char c = (char) originalSymbolRange.getFrom(); c <= originalSymbolRange.getTo(); ++c) { @@ -163,13 +166,13 @@ public SymbolSetIndexer getCaseInsensitiveSymbolSetIndexer() { } } caseInsensitiveSymbolSetIndexer = new SymbolSetIndexer( - new SymbolSet(getPattern(), positiveGenerationChars.getRangeList(), caseInsensitiveSymbols.toArray(ZERO_LENGTH_CHARACTER_ARRAY), originalMatchType, universeCharacters) + new SymbolSet(getPattern(), positiveGenerationChars.getRangeList(), caseInsensitiveSymbols, originalMatchType, universeCharacters) ); } return caseInsensitiveSymbolSetIndexer; } - private static void addIfChangedCase(List caseInsensitiveSymbols, char c) { + private static void addIfChangedCase(CharList caseInsensitiveSymbols, char c) { if (Character.isUpperCase(c)) { caseInsensitiveSymbols.add(Character.toLowerCase(c)); } else if (Character.isLowerCase(c)) { @@ -185,7 +188,7 @@ public List getSymbolRanges() { return symbolRanges; } - public List getSymbols() { + public CharList getSymbols() { return symbols; } diff --git a/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/CharIterator.java b/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/CharIterator.java index 16a896e0..9ae7b52d 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/CharIterator.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/CharIterator.java @@ -18,7 +18,6 @@ import com.github.curiousoddman.rgxgen.util.Util; -import java.util.Iterator; import java.util.NoSuchElementException; import java.util.function.BiFunction; import java.util.function.Predicate; @@ -26,7 +25,7 @@ /** * Class incorporates functionality to iterate String char by char */ -public class CharIterator implements Iterator { +public class CharIterator { private final String aValue; @@ -39,7 +38,6 @@ public CharIterator(String value) { aCurrentIndex = 0; } - @Override public boolean hasNext() { return aCurrentIndex < aBoundIndex; } @@ -87,8 +85,7 @@ public char peek(int offset) { /** * Returns next character and advances the cursor */ - @Override - public Character next() { + public char next() { try { char c = aValue.charAt(aCurrentIndex); aCurrentIndex++; diff --git a/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/ConstantsProvider.java b/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/ConstantsProvider.java index 0f131c37..30f239e0 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/ConstantsProvider.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/ConstantsProvider.java @@ -33,7 +33,7 @@ public class ConstantsProvider { public static final SymbolRange SMALL_LATIN_LETTERS = SymbolRange.range('a', 'z'); public static final SymbolRange CAPITAL_LATIN_LETTERS = SymbolRange.range('A', 'Z'); public static final SymbolRange DIGITS = SymbolRange.range('0', '9'); - public static final Character[] ZERO_LENGTH_CHARACTER_ARRAY = new Character[0]; + public static final char[] ZERO_LENGTH_CHARACTER_ARRAY = new char[0]; public static final BigInteger BIG_INTEGER_TWO = BigInteger.valueOf(2); public static final int SPACE_ASCII_CODE = 32; // First printable character in ASCII table public static final int DEL_ASCII_CODE = 127; // Bound for printable characters in ASCII table @@ -45,16 +45,16 @@ public class ConstantsProvider { public static final SymbolRange ASCII_DIGITS = SymbolRange.range('0', '9'); - public static Character[] getAsciiWhitespaces() { - return new Character[]{'\t', '\n', '\u000B', '\f', '\r', ' '}; + public static char[] getAsciiWhitespaces() { + return new char[]{'\t', '\n', '\u000B', '\f', '\r', ' '}; } public static List getAsciiWordCharRanges() { return Collections.unmodifiableList(Arrays.asList(SMALL_LATIN_LETTERS, CAPITAL_LATIN_LETTERS, DIGITS)); } - public static Character[] makeAsciiCharacterArray() { - Character[] characters = new Character[DEL_ASCII_CODE - SPACE_ASCII_CODE]; + public static char[] makeAsciiCharacterArray() { + char[] characters = new char[DEL_ASCII_CODE - SPACE_ASCII_CODE]; for (int i = SPACE_ASCII_CODE; i < DEL_ASCII_CODE; ++i) { characters[i - SPACE_ASCII_CODE] = (char) i; } diff --git a/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/DefaultTreeBuilder.java b/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/DefaultTreeBuilder.java index bb0b11b3..4bf9d61b 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/DefaultTreeBuilder.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/parsing/dflt/DefaultTreeBuilder.java @@ -21,12 +21,12 @@ import com.github.curiousoddman.rgxgen.model.*; import com.github.curiousoddman.rgxgen.nodes.*; import com.github.curiousoddman.rgxgen.parsing.NodeTreeBuilder; -import com.github.curiousoddman.rgxgen.util.Util; +import com.github.curiousoddman.rgxgen.util.chars.CharList; +import com.github.curiousoddman.rgxgen.util.chars.CharListCollector; import java.util.*; import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.ASCII_DIGITS; -import static java.util.Collections.emptyList; /** * Default implementation of parser and NodeTreeBuilder. @@ -391,8 +391,9 @@ private void handleEscapedCharacter(StringBuilder sb, Collection nodes, bo case 'S': // Any non-white space sbToFinal(sb, nodes); List whitespaceChars = RgxGenOption.WHITESPACE_DEFINITION.getFromProperties(properties); + CharList whitespaceCharsList = whitespaceChars.stream().map(WhitespaceChar::get).collect(new CharListCollector()); createdNode = SymbolSet.ofAscii("\\" + c, - RgxGenCharsDefinition.of(whitespaceChars.stream().map(WhitespaceChar::get).toArray(Character[]::new)), + RgxGenCharsDefinition.of(whitespaceCharsList), RgxGenCharsDefinition.of(ConstantsProvider.getAsciiWhitespaces()), getMatchType(c, 's')); break; @@ -400,7 +401,7 @@ private void handleEscapedCharacter(StringBuilder sb, Collection nodes, bo case 'w': // Any word characters case 'W': // Any non-word characters sbToFinal(sb, nodes); - createdNode = SymbolSet.ofAscii("\\" + c, ConstantsProvider.getAsciiWordCharRanges(), new Character[]{'_'}, getMatchType(c, 'w')); + createdNode = SymbolSet.ofAscii("\\" + c, ConstantsProvider.getAsciiWordCharRanges(), CharList.charList('_'), getMatchType(c, 'w')); break; case 'p': // Character classes @@ -614,7 +615,7 @@ private Node handleSquareBrackets() { switch (c) { case ']': String pattern = aCharIterator.substringToCurrPos(openSquareBraceIndex); - SymbolSet finalSymbolSet = createSymbolSetFromSquareBrackets(pattern, matchType, characters, symbolRanges, symbolSets); + SymbolSet finalSymbolSet = createSymbolSetFromSquareBrackets(pattern, matchType, characters.toString(), symbolRanges, symbolSets); aNodesStartPos.put(finalSymbolSet, openSquareBraceIndex); return finalSymbolSet; @@ -664,9 +665,9 @@ private static MatchType determineSymbolSetMatchType(CharIterator charIterator) private Optional handleBackslashInsideSquareBrackets(StringBuilder characters) { // Skip backslash and add next symbol to characters - List nodes = new ArrayList<>(5); + List nodes = new ArrayList<>(); - StringBuilder sb = new StringBuilder(0); + StringBuilder sb = new StringBuilder(); handleEscapedCharacter(sb, nodes, false); characters.append(sb); @@ -694,10 +695,10 @@ private static void handleSymbolRange(StringBuilder characters, Collection externalRanges, Collection externalSets) { - RgxGenCharsDefinition positiveMatchDefinitions = RgxGenCharsDefinition.of(externalRanges, emptyList()); - if (sb.length() > 0) { - positiveMatchDefinitions.withCharacters(Util.stringToChars(sb)); + private static SymbolSet createSymbolSetFromSquareBrackets(String pattern, MatchType matchType, String sb, List externalRanges, Collection externalSets) { + RgxGenCharsDefinition positiveMatchDefinitions = RgxGenCharsDefinition.of(externalRanges); + if (!sb.isEmpty()) { + positiveMatchDefinitions.withCharacters(sb.toCharArray()); } boolean isAscii = true; diff --git a/src/main/java/com/github/curiousoddman/rgxgen/util/Util.java b/src/main/java/com/github/curiousoddman/rgxgen/util/Util.java index 2bae926f..0b90399f 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/util/Util.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/util/Util.java @@ -18,6 +18,7 @@ import com.github.curiousoddman.rgxgen.model.SymbolRange; import com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import java.math.BigInteger; import java.util.*; @@ -27,12 +28,6 @@ import static com.github.curiousoddman.rgxgen.model.SymbolRange.range; public final class Util { - public static Character[] stringToChars(CharSequence str) { - return str.chars() - .mapToObj(i -> (char) i) - .toArray(Character[]::new); - } - /** * Repeats text multiple times * @@ -57,7 +52,7 @@ public static String repeatChar(char c, int times) { * @param input input string to randomize * @return string with random characters changed case. */ - public static String randomlyChangeCase(Random rnd, CharSequence input) { + public static String randomlyChangeCase(Random rnd, String input) { StringBuilder sb = new StringBuilder(input); for (int i = 0; i < sb.length(); i++) { char currentChar = sb.charAt(i); @@ -80,7 +75,7 @@ public static String randomlyChangeCase(Random rnd, CharSequence input) { * @param value word to calculate variations * @return number of variations. */ - public static BigInteger countCaseInsensitiveVariations(CharSequence value) { + public static BigInteger countCaseInsensitiveVariations(String value) { int switchableCase = value.chars() .map(c -> Character.isUpperCase(c) || Character.isLowerCase(c) ? 1 : 0) .sum(); @@ -135,10 +130,10 @@ public static Set makeVariations(List originalTexts, char charac * @param invertedCharacters */ public static void invertSymbolsAndRanges(List symbolRanges, - List symbols, + CharList symbols, SymbolRange allCharactersRange, List invertedRanges, - List invertedCharacters) { + CharList invertedCharacters) { int firstCharInRange = allCharactersRange.getFrom(); int lastCharInRange = allCharactersRange.getTo(); @@ -151,7 +146,7 @@ public static void invertSymbolsAndRanges(List symbolRanges, if (start <= from) { if (start + 1 == from) { - invertedCharacters.add((char) start); + invertedCharacters.add(start); } else if (start != from) { invertedRanges.add(range(start, from - 1)); } @@ -165,11 +160,11 @@ public static void invertSymbolsAndRanges(List symbolRanges, if (start < lastCharInRange) { invertedRanges.add(range(start, lastCharInRange)); } else if (start == lastCharInRange) { - invertedCharacters.add((char) start); + invertedCharacters.add(start); } } - private static TreeSet getApplicableSortedUniqueRanges(List symbolRanges, List symbols, SymbolRange allowedRange) { + private static TreeSet getApplicableSortedUniqueRanges(List symbolRanges, CharList symbols, SymbolRange allowedRange) { int firstCharInRange = allowedRange.getFrom(); int lastCharInRange = allowedRange.getTo(); @@ -178,14 +173,15 @@ private static TreeSet getApplicableSortedUniqueRanges(List range.getTo() >= firstCharInRange && range.getFrom() <= lastCharInRange); Stream matchingCharactersAsRanges = symbols .stream() - .filter(c -> firstCharInRange <= c && c <= lastCharInRange).map(symbol -> range(symbol, symbol)); + .filter(c -> firstCharInRange <= c && c <= lastCharInRange) + .map(symbol -> range(symbol, symbol)); return Stream .concat(matchingRanges, matchingCharactersAsRanges) .collect(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SymbolRange::getFrom)))); } - public static void compactOverlappingRangesAndSymbols(List originalSymbolRanges, List originalSymbols, - List compactedRanges, List compactedSymbols) { + public static void compactOverlappingRangesAndSymbols(List originalSymbolRanges, CharList originalSymbols, + List compactedRanges, CharList compactedSymbols) { List sortedRanges = Stream .concat( originalSymbolRanges.stream(), diff --git a/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharArrayList.java b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharArrayList.java new file mode 100644 index 00000000..2d6e550c --- /dev/null +++ b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharArrayList.java @@ -0,0 +1,171 @@ +package com.github.curiousoddman.rgxgen.util.chars; + +/* ************************************************************************** + Copyright 2019 Vladislavs Varslavans + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +/* **************************************************************************/ + + +import java.util.Arrays; +import java.util.stream.Stream; + +/** + * implementation copied from java.util.ArrayList + */ +public class CharArrayList extends CharList { + private char[] elementData; + private int size; + + public CharArrayList(char[] arr) { + elementData = arr; + size = arr.length; + } + + public CharArrayList(int size) { + elementData = new char[size]; + this.size = 0; + } + + public CharArrayList(char[] arr, int size) { + elementData = arr; + this.size = size; + } + + @Override + public CharList copy() { + char[] arr = new char[size]; + System.arraycopy(elementData, 0, arr, 0, size); + return new CharArrayList(arr); + } + + @Override + public void add(int c) { + if (size == elementData.length) { + grow(); + } + elementData[size] = (char) c; + size += 1; + } + + @Override + public Stream stream() { + return new String(elementData, 0, size).chars().mapToObj(i -> (char) i); + } + + @Override + public void addAll(CharList charList) { + charList.appendTo(this); + } + + @Override + public void addAll(char[] srcArr) { + addAll(srcArr, srcArr.length); + } + + public void addAll(char[] srcArr, int srcLength) { + if (srcLength > elementData.length - size) { + grow(size + srcLength); + } + System.arraycopy(srcArr, 0, elementData, size, srcLength); + size += srcLength; + } + + @Override + public int size() { + return size; + } + + @Override + public char get(int index) { + return elementData[index]; + } + + @Override + public boolean isEmpty() { + return size == 0; + } + + @Override + public void sort() { + Arrays.sort(elementData, 0, size); + } + + @Override + public CharList except(CharPredicate predicate) { + char[] arr = new char[size]; + int filteredSize = 0; + for (char e : elementData) { + if (!predicate.test(e)) { + arr[filteredSize] = e; + filteredSize += 1; + } + } + return new CharArrayList(arr, filteredSize); + } + + @Override + public boolean contains(char ch) { + for (char e : elementData) { + if (e == ch) { + return true; + } + } + return false; + } + + @Override + public void appendTo(CharList targetList) { + targetList.addAll(elementData, size); + } + + private void grow() { + grow(size + 1); + } + + private void grow(int minCapacity) { + int oldCapacity = elementData.length; + int newCapacity = newLength(oldCapacity, minCapacity - oldCapacity, oldCapacity >> 1); + elementData = Arrays.copyOf(elementData, newCapacity); + } + + @Override + public String toString() { + if (elementData == null) { + return "null"; + } + int iMax = size - 1; + if (iMax == -1) { + return "[]"; + } + + StringBuilder b = new StringBuilder(); + b.append('['); + for (int i = 0; ; i++) { + b.append(elementData[i]); + if (i == iMax) { + return b.append(']').toString(); + } + b.append(", "); + } + } + + private static int newLength(int oldLength, int minGrowth, int prefGrowth) { + int prefLength = oldLength + Math.max(minGrowth, prefGrowth); // might overflow + if (prefLength <= Integer.MAX_VALUE - 8) { + return prefLength; + } else { + return oldLength + Math.min(minGrowth, prefLength); + } + } +} diff --git a/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharList.java b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharList.java new file mode 100644 index 00000000..bf02203c --- /dev/null +++ b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharList.java @@ -0,0 +1,134 @@ +package com.github.curiousoddman.rgxgen.util.chars; + +/* ************************************************************************** + Copyright 2019 Vladislavs Varslavans + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +/* **************************************************************************/ + + +import com.github.curiousoddman.rgxgen.model.SymbolRange; + +import java.util.List; +import java.util.stream.Stream; + +public abstract class CharList { + + public static CharList rangeClosed(int from, int to) { + char[] arr = new char[to - from + 1]; + for (int i = 0; i < arr.length; i++) { + arr[i] = (char) (from + i); + } + return new CharArrayList(arr); + } + + public static CharList charList(List symbolRanges, char... symbols) { + int size = symbols.length + symbolRanges.stream().mapToInt(SymbolRange::size).sum(); + char[] arr = new char[size]; + System.arraycopy(symbols, 0, arr, 0, symbols.length); + int index = symbols.length; + for (SymbolRange symbolRange : symbolRanges) { + for (int i = symbolRange.getFrom(); i <= symbolRange.getTo(); i++) { + arr[index] = (char) (i); + index += 1; + } + } + return new CharArrayList(arr); + } + + public static CharList charList(char... chars) { + return new CharArrayList(chars); + } + + public static CharList ofCapacity(int size) { + return new CharArrayList(size); + } + + public static CharList charList(String characterString) { + return new CharArrayList(characterString.toCharArray()); + } + + public static CharList emptyUnmodifiable() { + return new EmptyUnmodifiableCharList(); + } + + public static CharList empty() { + return new CharArrayList(10); + } + + public abstract CharList copy(); + + public abstract void add(int c); + + public abstract Stream stream(); + + public abstract void addAll(CharList originalSymbols); + + public abstract void addAll(char[] characters); + + public abstract void addAll(char[] srcArr, int srcLength); + + public abstract int size(); + + public abstract char get(int index); + + public abstract boolean isEmpty(); + + public abstract void sort(); + + public abstract CharList except(CharPredicate predicate); + + public abstract boolean contains(char i); + + /** + * Add elements of this list into the targetList + * + * @param targetList list that should be appended with elements of this list + */ + public abstract void appendTo(CharList targetList); + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof CharList)) { + return false; + } + + CharList that = (CharList) o; + + if (size() != that.size()) { + return false; + } + + for (int i = 0; i < size(); i++) { + if (get(i) != that.get(i)) { + return false; + } + } + + return true; + } + + @Override + public int hashCode() { + int result = 1; + for (int i = 0; i < size(); i++) { + result = 31 * result + get(i); + } + + result = 31 * result + size(); + return result; + } +} diff --git a/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharListCollector.java b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharListCollector.java new file mode 100644 index 00000000..54dc40e5 --- /dev/null +++ b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharListCollector.java @@ -0,0 +1,55 @@ +package com.github.curiousoddman.rgxgen.util.chars; + +/* ************************************************************************** + Copyright 2019 Vladislavs Varslavans + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +/* **************************************************************************/ + +import java.util.Collections; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.function.BinaryOperator; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collector; + +public class CharListCollector implements Collector { + @Override + public Supplier supplier() { + return CharList::empty; + } + + @Override + public BiConsumer accumulator() { + return CharList::add; + } + + @Override + public BinaryOperator combiner() { + return (l, r) -> { + l.addAll(r); + return l; + }; + } + + @Override + public Function finisher() { + return Function.identity(); + } + + @Override + public Set characteristics() { + return Collections.singleton(Characteristics.IDENTITY_FINISH); + } +} diff --git a/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharPredicate.java b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharPredicate.java new file mode 100644 index 00000000..39686184 --- /dev/null +++ b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/CharPredicate.java @@ -0,0 +1,22 @@ +package com.github.curiousoddman.rgxgen.util.chars; + +/* ************************************************************************** + Copyright 2019 Vladislavs Varslavans + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +/* **************************************************************************/ + +@FunctionalInterface +public interface CharPredicate { + boolean test(char c); +} diff --git a/src/main/java/com/github/curiousoddman/rgxgen/util/chars/EmptyUnmodifiableCharList.java b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/EmptyUnmodifiableCharList.java new file mode 100644 index 00000000..fb9f59a3 --- /dev/null +++ b/src/main/java/com/github/curiousoddman/rgxgen/util/chars/EmptyUnmodifiableCharList.java @@ -0,0 +1,95 @@ +package com.github.curiousoddman.rgxgen.util.chars; + +/* ************************************************************************** + Copyright 2019 Vladislavs Varslavans + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +/* **************************************************************************/ + +import java.util.Arrays; +import java.util.NoSuchElementException; +import java.util.stream.Stream; + +import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.ZERO_LENGTH_CHARACTER_ARRAY; + +public class EmptyUnmodifiableCharList extends CharList { + @Override + public CharList copy() { + return this; + } + + @Override + public void add(int c) { + throw new UnsupportedOperationException("Unmodifiable CharList!"); + } + + @Override + public Stream stream() { + return Stream.empty(); + } + + @Override + public void addAll(CharList originalSymbols) { + throw new UnsupportedOperationException("Unmodifiable CharList!"); + } + + @Override + public void addAll(char[] characters) { + throw new UnsupportedOperationException("Unmodifiable CharList!"); + } + + @Override + public void addAll(char[] srcArr, int srcLength) { + throw new UnsupportedOperationException("Unmodifiable CharList!"); + } + + @Override + public int size() { + return 0; + } + + @Override + public char get(int index) { + throw new NoSuchElementException("Empty unmodifiable CharList"); + } + + @Override + public boolean isEmpty() { + return true; + } + + @Override + public void sort() { + + } + + @Override + public CharList except(CharPredicate predicate) { + return this; + } + + @Override + public boolean contains(char i) { + return false; + } + + @Override + public void appendTo(CharList targetList) { + + } + + @Override + public String toString() { + return Arrays.toString(ZERO_LENGTH_CHARACTER_ARRAY); + } +} diff --git a/src/main/java/com/github/curiousoddman/rgxgen/visitors/helpers/SymbolSetIndexer.java b/src/main/java/com/github/curiousoddman/rgxgen/visitors/helpers/SymbolSetIndexer.java index 5d46cb0a..2339c14b 100644 --- a/src/main/java/com/github/curiousoddman/rgxgen/visitors/helpers/SymbolSetIndexer.java +++ b/src/main/java/com/github/curiousoddman/rgxgen/visitors/helpers/SymbolSetIndexer.java @@ -19,12 +19,13 @@ import com.github.curiousoddman.rgxgen.model.SymbolRange; import com.github.curiousoddman.rgxgen.nodes.SymbolSet; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import java.util.Arrays; import java.util.List; public class SymbolSetIndexer { - private final List symbols; + private final CharList symbols; private final List symbolRanges; private final int[] rangeOffsets; private final int size; @@ -59,8 +60,8 @@ public int size() { return size; } - public Character[] getAll() { - Character[] chars = new Character[size]; + public char[] getAll() { + char[] chars = new char[size]; for (int i = 0; i < size; i++) { chars[i] = get(i); } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/LimitedInfinitePatternsTests.java b/src/test/java/com/github/curiousoddman/rgxgen/LimitedInfinitePatternsTests.java index 704db29d..df7b0dbf 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/LimitedInfinitePatternsTests.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/LimitedInfinitePatternsTests.java @@ -9,13 +9,13 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; -import java.util.Arrays; import java.util.List; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; +import static com.github.curiousoddman.rgxgen.data.TestPattern.stream; import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.makeAsciiCharacterArray; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -48,10 +48,10 @@ public static Stream getTestData() { arguments( "a.*", // If use unlimited repetition that will cause an error when trying to save all data in memory, thus we limit repetition times new Sequence("a.*", new FinalSymbol("a"), new Repeat(".*", SymbolSet.ofDotPattern(null), 0, 2)), - Stream.concat(Stream.of(""), Stream.concat(Arrays.stream(makeAsciiCharacterArray()), - Arrays.stream(makeAsciiCharacterArray()) - .flatMap(symbol -> Arrays.stream(makeAsciiCharacterArray()) - .map(v -> String.valueOf(symbol) + v)))) + Stream.concat(Stream.of(""), Stream.concat(stream(makeAsciiCharacterArray()), + stream(makeAsciiCharacterArray()) + .flatMap(symbol -> stream(makeAsciiCharacterArray()) + .map(v -> String.valueOf(symbol) + v)))) .map(v -> "" + 'a' + v) .collect(Collectors.toList()) ) diff --git a/src/test/java/com/github/curiousoddman/rgxgen/data/TestPattern.java b/src/test/java/com/github/curiousoddman/rgxgen/data/TestPattern.java index 5161fd4c..1714016b 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/data/TestPattern.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/data/TestPattern.java @@ -6,6 +6,7 @@ import com.github.curiousoddman.rgxgen.model.UnicodeCategory; import com.github.curiousoddman.rgxgen.nodes.*; import com.github.curiousoddman.rgxgen.testutil.TestingUtilities; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import java.math.BigInteger; import java.util.Comparator; @@ -19,7 +20,6 @@ import static com.github.curiousoddman.rgxgen.model.UnicodeCategoryConstants.BASIC_LATIN_LOWERCASE_LATIN_ALPHABET; import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.*; import static java.util.Arrays.asList; -import static java.util.Arrays.stream; import static java.util.Collections.singletonList; @@ -59,12 +59,12 @@ public enum TestPattern implements DataInterface { //----------------------------------------------------------------------------------------------------------------------------------------- ANY_WORD_CHARACTER("\\w", // Any word character [a-zA-Z0-9_] SymbolSet.ofAscii("\\w", - asList(SMALL_LATIN_LETTERS, CAPITAL_LATIN_LETTERS, DIGITS), new Character[]{'_'}, MatchType.POSITIVE) + asList(SMALL_LATIN_LETTERS, CAPITAL_LATIN_LETTERS, DIGITS), CharList.charList('_'), MatchType.POSITIVE) ), //----------------------------------------------------------------------------------------------------------------------------------------- ANY_NON_WORD_CHARACTER("\\W", // Any non-word symbol [a-zA-Z0-9_] SymbolSet.ofAscii("\\W", - asList(SMALL_LATIN_LETTERS, CAPITAL_LATIN_LETTERS, DIGITS), new Character[]{'_'}, MatchType.NEGATIVE) + asList(SMALL_LATIN_LETTERS, CAPITAL_LATIN_LETTERS, DIGITS), CharList.charList('_'), MatchType.NEGATIVE) ), //----------------------------------------------------------------------------------------------------------------------------------------- HEX_SPACE("\\x20", // Space @@ -82,7 +82,7 @@ public enum TestPattern implements DataInterface { //----------------------------------------------------------------------------------------------------------------------------------------- A_OR_B("[ab]", SymbolSet.ofAsciiCharacters("[ab]", - new Character[]{ + new char[]{ 'a', 'b' }, MatchType.POSITIVE)) {{ setAllUniqueValues("a", "b"); @@ -90,7 +90,7 @@ public enum TestPattern implements DataInterface { //----------------------------------------------------------------------------------------------------------------------------------------- A_OR_B_THEN_C("[ab]c", new Sequence("[ab]c", - SymbolSet.ofAsciiCharacters("[ab]", new Character[]{ + SymbolSet.ofAsciiCharacters("[ab]", new char[]{ 'a', 'b' }, MatchType.POSITIVE), new FinalSymbol("c"))) {{ setAllUniqueValues("ac", "bc"); @@ -99,7 +99,7 @@ public enum TestPattern implements DataInterface { D_THEN_A_OR_B_THEN_C("d[ab]c", new Sequence("d[ab]c", new FinalSymbol("d"), - SymbolSet.ofAsciiCharacters("[ab]", new Character[]{ + SymbolSet.ofAsciiCharacters("[ab]", new char[]{ 'a', 'b' }, MatchType.POSITIVE), new FinalSymbol("c"))) {{ setAllUniqueValues("dac", "dbc"); @@ -180,7 +180,7 @@ public enum TestPattern implements DataInterface { ), //----------------------------------------------------------------------------------------------------------------------------------------- NOT_A("[^a]", - SymbolSet.ofAsciiCharacters("[^a]", new Character[]{'a'}, MatchType.NEGATIVE) + SymbolSet.ofAsciiCharacters("[^a]", new char[]{'a'}, MatchType.NEGATIVE) ), //----------------------------------------------------------------------------------------------------------------------------------------- NOT_LETTER_RANGE("[^a-dE-F]", @@ -315,7 +315,7 @@ public enum TestPattern implements DataInterface { //----------------------------------------------------------------------------------------------------------------------------------------- XML_NODE("<([abc])>d<\\/\\1>", new Sequence("<([abc])>d<\\/\\1>", new FinalSymbol("<"), - new Group("([abc])", 1, SymbolSet.ofAsciiCharacters("[abc]", new Character[]{ + new Group("([abc])", 1, SymbolSet.ofAsciiCharacters("[abc]", new char[]{ 'a', 'b', 'c' }, MatchType.POSITIVE)), new FinalSymbol(">d stream(char[] chars) { + return new String(chars).chars().mapToObj(i -> (char) i); + } } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/iterators/IteratorResettingTests.java b/src/test/java/com/github/curiousoddman/rgxgen/iterators/IteratorResettingTests.java index 188f3e6e..71e3c11d 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/iterators/IteratorResettingTests.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/iterators/IteratorResettingTests.java @@ -11,6 +11,7 @@ import java.util.stream.Stream; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.params.provider.Arguments.arguments; public class IteratorResettingTests { @@ -106,36 +107,36 @@ public String toString() { public static Stream data() { return Stream.of( - Arguments.of("Arr", new ArrayIterator(new Character[]{'a', 'b'}), 1, Arrays.asList("a", "a", "a", "a")), - Arguments.of("Arr", new ArrayIterator(new Character[]{'a', 'b'}), 3, Arrays.asList("a", "b", null)), - Arguments.of("Arr", new ArrayIterator(new Character[]{'a', 'b'}), 2, Arrays.asList("a", "b", "a", "b")), - - Arguments.of("Single", new SingleValueIterator(), 1, Arrays.asList("", "")), - Arguments.of("Single", new SingleValueIterator(), 2, Arrays.asList("", null)), - Arguments.of("Single", new SingleValueIterator("s"), 1, Arrays.asList("s", "s")), - Arguments.of("Single", new SingleValueIterator("s"), 2, Arrays.asList("s", null, "s")), - - Arguments.of("IncSingle", new IncrementalLengthIterator(TestIterator::new, 1, 2), 1, Arrays.asList("a", "a", "a")), - Arguments.of("IncSingle", new IncrementalLengthIterator(TestIterator::new, 1, 2), 2, Arrays.asList("a", "aa", "a")), - Arguments.of("IncSingle", new IncrementalLengthIterator(TestIterator::new, 1, 2), 3, Arrays.asList("a", "aa", null)), - - Arguments.of("IncBi", new IncrementalLengthIterator(TestBiIterator::new, 1, 2), 3, Arrays.asList("x", "y", "xx", "x")), - Arguments.of("IncBi", new IncrementalLengthIterator(TestBiIterator::new, 1, 2), 10, Arrays.asList("x", "y", "xx", "xy", "yx", "yy", null)), - - Arguments.of("Perm", new PermutationsIterator(Arrays.asList(TestIterator::new, () -> new TestIterator("b"))), 1, Arrays.asList("ab", "ab", "ab")), - Arguments.of("Perm", new PermutationsIterator(Arrays.asList(TestIterator::new, () -> new TestIterator("b"))), 2, Arrays.asList("ab", null, "ab")), - Arguments.of("Perm", new PermutationsIterator(Arrays.asList(TestBiIterator::new, TestBiIterator::new)), 5, Arrays.asList("xx", "xy", "yx", "yy", null, "xx")), - - Arguments.of("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 1, Arrays.asList("a", "a", "a")), - Arguments.of("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 2, Arrays.asList("a", "x", "a")), - Arguments.of("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 3, Arrays.asList("a", "x", "y")), - Arguments.of("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 4, Arrays.asList("a", "x", "y", null)), - Arguments.of("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 4, Arrays.asList("a", "x", "y", null, "a")), - - Arguments.of("Case Variations", new CaseVariationIterator("a"), 1, Arrays.asList("a", "a", "a", "a")), - Arguments.of("Case Variations", new CaseVariationIterator("a"), 2, Arrays.asList("a", "A", "a", "A")), - Arguments.of("Case Variations", new CaseVariationIterator("a"), 3, Arrays.asList("a", "A", null, "a")), - Arguments.of("Case Variations", new CaseVariationIterator("ab"), 3, Arrays.asList("ab", "Ab", "aB", "ab")) + arguments("Arr", new ArrayIterator(new char[]{'a', 'b'}), 1, Arrays.asList("a", "a", "a", "a")), + arguments("Arr", new ArrayIterator(new char[]{'a', 'b'}), 3, Arrays.asList("a", "b", null)), + arguments("Arr", new ArrayIterator(new char[]{'a', 'b'}), 2, Arrays.asList("a", "b", "a", "b")), + + arguments("Single", new SingleValueIterator(), 1, Arrays.asList("", "")), + arguments("Single", new SingleValueIterator(), 2, Arrays.asList("", null)), + arguments("Single", new SingleValueIterator("s"), 1, Arrays.asList("s", "s")), + arguments("Single", new SingleValueIterator("s"), 2, Arrays.asList("s", null, "s")), + + arguments("IncSingle", new IncrementalLengthIterator(TestIterator::new, 1, 2), 1, Arrays.asList("a", "a", "a")), + arguments("IncSingle", new IncrementalLengthIterator(TestIterator::new, 1, 2), 2, Arrays.asList("a", "aa", "a")), + arguments("IncSingle", new IncrementalLengthIterator(TestIterator::new, 1, 2), 3, Arrays.asList("a", "aa", null)), + + arguments("IncBi", new IncrementalLengthIterator(TestBiIterator::new, 1, 2), 3, Arrays.asList("x", "y", "xx", "x")), + arguments("IncBi", new IncrementalLengthIterator(TestBiIterator::new, 1, 2), 10, Arrays.asList("x", "y", "xx", "xy", "yx", "yy", null)), + + arguments("Perm", new PermutationsIterator(Arrays.asList(TestIterator::new, () -> new TestIterator("b"))), 1, Arrays.asList("ab", "ab", "ab")), + arguments("Perm", new PermutationsIterator(Arrays.asList(TestIterator::new, () -> new TestIterator("b"))), 2, Arrays.asList("ab", null, "ab")), + arguments("Perm", new PermutationsIterator(Arrays.asList(TestBiIterator::new, TestBiIterator::new)), 5, Arrays.asList("xx", "xy", "yx", "yy", null, "xx")), + + arguments("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 1, Arrays.asList("a", "a", "a")), + arguments("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 2, Arrays.asList("a", "x", "a")), + arguments("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 3, Arrays.asList("a", "x", "y")), + arguments("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 4, Arrays.asList("a", "x", "y", null)), + arguments("Choice", new ChoiceIterator(new StringIterator[]{new TestIterator(), new TestBiIterator()}), 4, Arrays.asList("a", "x", "y", null, "a")), + + arguments("Case Variations", new CaseVariationIterator("a"), 1, Arrays.asList("a", "a", "a", "a")), + arguments("Case Variations", new CaseVariationIterator("a"), 2, Arrays.asList("a", "A", "a", "A")), + arguments("Case Variations", new CaseVariationIterator("a"), 3, Arrays.asList("a", "A", null, "a")), + arguments("Case Variations", new CaseVariationIterator("ab"), 3, Arrays.asList("ab", "Ab", "aB", "ab")) ); } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/iterators/IteratorsLimitTests.java b/src/test/java/com/github/curiousoddman/rgxgen/iterators/IteratorsLimitTests.java index 55472708..3c591855 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/iterators/IteratorsLimitTests.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/iterators/IteratorsLimitTests.java @@ -16,7 +16,7 @@ public class IteratorsLimitTests { public static Stream data() { return Stream.of( - Arguments.of("ArrayIterator", new ArrayIterator(new Character[]{'a'})), + Arguments.of("ArrayIterator", new ArrayIterator(new char[]{'a'})), Arguments.of("CaseVariationIterator", new CaseVariationIterator("a")), Arguments.of("ChoiceIterator", new ChoiceIterator(new StringIterator[]{new SingleValueIterator("a"), new SingleValueIterator("a")})), Arguments.of("IncrementalLength", new IncrementalLengthIterator(() -> new SingleValueIterator("a"), 0, 1)), diff --git a/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/LineDescriptor.java b/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/LineDescriptor.java index fe560889..bf6ab70a 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/LineDescriptor.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/LineDescriptor.java @@ -2,6 +2,7 @@ import com.github.curiousoddman.rgxgen.model.SymbolRange; import com.github.curiousoddman.rgxgen.model.UnicodeCategory; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import java.util.List; import java.util.Map; @@ -15,9 +16,9 @@ public class LineDescriptor { public List keys; public String description; public List ranges; - public List characters; + public CharList characters; - public LineDescriptor(UnicodeCategory unicodeCategory, List keys, String description, List ranges, List characters) { + public LineDescriptor(UnicodeCategory unicodeCategory, List keys, String description, List ranges, CharList characters) { this.unicodeCategory = unicodeCategory; this.keys = keys; this.description = description; @@ -45,7 +46,7 @@ public String formatToText(Map constantNames) { return String.format(S_S_S_S_S, unicodeCategory.name(), keysText, descriptionText, rangesText, charactersText); } - private static String makeCharacters(List characters) { + private static String makeCharacters(CharList characters) { if (characters.isEmpty()) { return "null"; } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryDescriptor.java b/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryDescriptor.java index 5be82505..9522b6e3 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryDescriptor.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryDescriptor.java @@ -1,14 +1,15 @@ package com.github.curiousoddman.rgxgen.manual.generator.unicode; import com.github.curiousoddman.rgxgen.model.SymbolRange; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import java.util.List; public class UnicodeCategoryDescriptor { private final List ranges; - private final List characters; + private final CharList characters; - public UnicodeCategoryDescriptor(List ranges, List characters) { + public UnicodeCategoryDescriptor(List ranges, CharList characters) { this.ranges = ranges; this.characters = characters; } @@ -17,7 +18,7 @@ public List getRanges() { return ranges; } - public List getCharacters() { + public CharList getCharacters() { return characters; } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryExclusionOfNonPrintableCharacters.java b/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryExclusionOfNonPrintableCharacters.java index 483d4fb9..c3eb024a 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryExclusionOfNonPrintableCharacters.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryExclusionOfNonPrintableCharacters.java @@ -2,6 +2,7 @@ import com.github.curiousoddman.rgxgen.model.SymbolRange; import com.github.curiousoddman.rgxgen.model.UnicodeCategory; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -15,6 +16,7 @@ import java.util.Map; import java.util.stream.Stream; +import static com.github.curiousoddman.rgxgen.data.TestPattern.stream; import static java.util.stream.Collectors.*; @Disabled("Manual test") @@ -25,11 +27,12 @@ void tryWritingEachCharacterToFile() throws IOException { .values()) .flatMap(unicodeCategory -> { - Character[] symbols = unicodeCategory.getSymbols(); + char[] symbols = unicodeCategory.getSymbols(); return Stream.concat( - Arrays.stream(symbols).map(c -> new Pair(unicodeCategory, c)), + stream(symbols).map(c -> new Pair(unicodeCategory, c)), unicodeCategory.getSymbolRanges().stream() - .flatMap(SymbolRange::chars) + .map(SymbolRange::chars) + .flatMap(CharList::stream) .map(c -> new Pair(unicodeCategory, c))); } ) @@ -51,9 +54,9 @@ void tryWritingEachCharacterToFile() throws IOException { private static class Pair { private final UnicodeCategory category; - private final Character character; + private final char character; - Pair(UnicodeCategory category, Character character) { + Pair(UnicodeCategory category, char character) { this.category = category; this.character = character; } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryGeneration.java b/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryGeneration.java index f8ac3206..3fd018d2 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryGeneration.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/manual/generator/unicode/UnicodeCategoryGeneration.java @@ -19,6 +19,7 @@ import com.github.curiousoddman.rgxgen.model.SymbolRange; import com.github.curiousoddman.rgxgen.model.UnicodeCategory; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -44,10 +45,10 @@ public class UnicodeCategoryGeneration { @Test void splitUnicodeSymbolsPerCharacterClasses() throws IOException { Map categoryPerPattern = compiledAllPatterns(); - Map> matchedMap = findMatchingSymbolsPerPattern(categoryPerPattern); + Map matchedMap = findMatchingSymbolsPerPattern(categoryPerPattern); - for (List value : matchedMap.values()) { - value.sort(Comparator.naturalOrder()); + for (CharList value : matchedMap.values()) { + value.sort(); } Map descriptorMap = createDescriptorMap(matchedMap); @@ -64,8 +65,11 @@ void generateUnicodeCategoryDumps() throws IOException { List symbolFileLines = new ArrayList<>(); IntStream intStream = category.getSymbolRanges().stream().flatMapToInt(range -> IntStream.rangeClosed(range.getFrom(), range.getTo())); - IntStream intStream1 = Arrays.stream(category.getSymbols()).mapToInt(Character::charValue); - List sortedCharacters = IntStream.concat(intStream, intStream1) + IntStream.Builder streamBuilder = IntStream.builder(); + for (char symbol : category.getSymbols()) { + streamBuilder.add(symbol); + } + List sortedCharacters = IntStream.concat(intStream, streamBuilder.build()) .sorted() .boxed() .collect(Collectors.toList()); @@ -250,8 +254,8 @@ private static Map formatDescriptorsIntoJavaCod return textPerCategory; } - private static Map> findMatchingSymbolsPerPattern(Map categoryPerPattern) { - EnumMap> matchedMap = new EnumMap<>(UnicodeCategory.class); + private static Map findMatchingSymbolsPerPattern(Map categoryPerPattern) { + EnumMap matchedMap = new EnumMap<>(UnicodeCategory.class); Character[] characters = makeUnicodeCharacterArray(); for (Character character : characters) { String str = String.valueOf(character); @@ -259,7 +263,7 @@ private static Map> findMatchingSymbolsPerPatte Pattern value = entry.getValue(); UnicodeCategory category = entry.getKey(); if (value.matcher(str).matches()) { - matchedMap.computeIfAbsent(category, k -> new ArrayList<>()) + matchedMap.computeIfAbsent(category, k -> CharList.empty()) .add(character); } } @@ -284,8 +288,8 @@ private static Map compiledAllPatterns() { @Test void testCreateDescriptorMap() { - Map> matchedMap = new EnumMap<>(UnicodeCategory.class); - matchedMap.put(UnicodeCategory.ANY_LETTER, Arrays.asList('t', 'f', 'g', 'h', 'k')); + Map matchedMap = new EnumMap<>(UnicodeCategory.class); + matchedMap.put(UnicodeCategory.ANY_LETTER, CharList.charList('t', 'f', 'g', 'h', 'k')); Map descriptorMap = createDescriptorMap(matchedMap); for (Map.Entry entry : descriptorMap.entrySet()) { System.out.println("\t " + entry.getKey() + " \t " + entry.getValue()); @@ -294,24 +298,25 @@ void testCreateDescriptorMap() { @Test void testCreateDescriptorMap2() { - Map> matchedMap = new EnumMap<>(UnicodeCategory.class); - matchedMap.put(UnicodeCategory.ANY_LETTER, Arrays.asList('a', 'b', 'c', 'x', 'y', 'z')); + Map matchedMap = new EnumMap<>(UnicodeCategory.class); + matchedMap.put(UnicodeCategory.ANY_LETTER, CharList.charList('a', 'b', 'c', 'x', 'y', 'z')); Map descriptorMap = createDescriptorMap(matchedMap); for (Map.Entry entry : descriptorMap.entrySet()) { System.out.println("\t " + entry.getKey() + " \t " + entry.getValue()); } } - private static Map createDescriptorMap(Map> matchedMap) { + private static Map createDescriptorMap(Map matchedMap) { Map descriptorMap = new EnumMap<>(UnicodeCategory.class); - for (Map.Entry> entry : matchedMap.entrySet()) { + for (Map.Entry entry : matchedMap.entrySet()) { UnicodeCategoryDescriptor descriptor = descriptorMap - .computeIfAbsent(entry.getKey(), k -> new UnicodeCategoryDescriptor(new ArrayList<>(), new ArrayList<>())); + .computeIfAbsent(entry.getKey(), k -> new UnicodeCategoryDescriptor(new ArrayList<>(), CharList.empty())); Character lastCharacter = null; SymbolRange lastSymbolRange = null; - - for (Character next : entry.getValue()) { + CharList value = entry.getValue(); + for (int i = 0; i < value.size(); i++) { + char next = value.get(i); if (lastCharacter != null) { if (lastSymbolRange == null) { if (lastCharacter == next - 1) { diff --git a/src/test/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryGenerateTestBase.java b/src/test/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryGenerateTestBase.java index 38afdb1d..2b31d8cb 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryGenerateTestBase.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryGenerateTestBase.java @@ -1,6 +1,7 @@ package com.github.curiousoddman.rgxgen.model; import com.github.curiousoddman.rgxgen.model.data.CategoryTestData; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import org.junit.jupiter.api.*; import java.util.*; @@ -11,7 +12,6 @@ import static com.github.curiousoddman.rgxgen.model.UnicodeCategory.OTHER_LETTER; import static com.github.curiousoddman.rgxgen.model.UnicodeCategory.values; -import static java.util.Arrays.asList; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.fail; @@ -105,7 +105,7 @@ public static class CategoryFinder { public static void main(String[] args) { int minChar = 4341; int maxChar = 4341; - List characters = asList(OTHER_LETTER.getSymbols()); + CharList characters = CharList.charList(OTHER_LETTER.getSymbols()); for (int i = minChar; i <= maxChar; i++) { if (characters.contains((char) i)) { System.out.println(i + " found in individual characters"); diff --git a/src/test/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryTest.java b/src/test/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryTest.java index 7dac8fe4..3cbacf41 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryTest.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/model/UnicodeCategoryTest.java @@ -4,6 +4,7 @@ import com.github.curiousoddman.rgxgen.iterators.StringIterator; import com.github.curiousoddman.rgxgen.model.data.CategoryTestData; import com.github.curiousoddman.rgxgen.util.Util; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import org.junit.jupiter.api.Nested; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; @@ -13,7 +14,6 @@ import java.util.List; import java.util.Random; import java.util.regex.Pattern; -import java.util.stream.Collectors; import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.UNICODE_SYMBOL_RANGE; import static com.github.curiousoddman.rgxgen.testutil.TestingUtilities.newRandom; @@ -48,9 +48,10 @@ public class SymbolsInCategoryTest extends UnicodeCategoryGenerateTestBase { @ParameterizedTest(name = "{index}: {0}") @MethodSource("getCategoryTestData") void correctSymbolsInCategoryTest(CategoryTestData categoryTestData) { - List characters = categoryTestData.getCategoryCharacters().collect(Collectors.toList()); - List wrongCharacters = new ArrayList<>(); - for (Character character : characters) { + CharList characters = categoryTestData.getCategoryCharacters(); + CharList wrongCharacters = CharList.empty(); + for (int i = 0; i < characters.size(); i++) { + char character = characters.get(i); String pattern = "\\p" + categoryTestData.getKey(); registerTestedCategory(categoryTestData.getCategory()); if (!Pattern.compile(pattern).matcher("" + character).matches()) { @@ -65,12 +66,13 @@ void correctSymbolsInCategoryTest(CategoryTestData categoryTestData) { } } - private static void printWrongCharacters(CategoryTestData categoryTestData, List wrongCharacters) { + private static void printWrongCharacters(CategoryTestData categoryTestData, CharList wrongCharacters) { List compactedRanges = new ArrayList<>(); - List compactedCharacters = new ArrayList<>(); + CharList compactedCharacters = CharList.empty(); Util.compactOverlappingRangesAndSymbols(new ArrayList<>(), wrongCharacters, compactedRanges, compactedCharacters); StringBuilder sb = new StringBuilder(); - for (Character compactedCharacter : compactedCharacters) { + for (int i = 0; i < compactedCharacters.size(); i++) { + char compactedCharacter = compactedCharacters.get(i); sb.append('\'').append(compactedCharacter).append('\'').append(','); } if (sb.length() != 0) { @@ -92,15 +94,15 @@ public class SymbolsNotInCategoryTest extends UnicodeCategoryGenerateTestBase { @ParameterizedTest(name = "{index}: {0}") @MethodSource("getCategoryTestData") void correctSymbolsNotInCategoryTest(CategoryTestData categoryTestData) { - List characters = UNICODE_SYMBOL_RANGE + CharList characters = UNICODE_SYMBOL_RANGE .chars() - .filter(c -> !categoryTestData.getCategory().contains(c)) - .collect(Collectors.toList()); + .except(c -> categoryTestData.getCategory().contains(c)); - List wrongCharacters = new ArrayList<>(); + CharList wrongCharacters = CharList.empty(); registerTestedCategory(categoryTestData.getCategory()); - for (Character character : characters) { + for (int i = 0; i < characters.size(); i++) { + char character = characters.get(i); String pattern = "\\P" + categoryTestData.getKey(); registerTestedCategory(categoryTestData.getCategory()); if (!Pattern.compile(pattern).matcher("" + character).matches()) { diff --git a/src/test/java/com/github/curiousoddman/rgxgen/model/data/CategoryTestData.java b/src/test/java/com/github/curiousoddman/rgxgen/model/data/CategoryTestData.java index 4876d7fb..4a7e773d 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/model/data/CategoryTestData.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/model/data/CategoryTestData.java @@ -1,9 +1,8 @@ package com.github.curiousoddman.rgxgen.model.data; -import com.github.curiousoddman.rgxgen.model.SymbolRange; import com.github.curiousoddman.rgxgen.model.UnicodeCategory; +import com.github.curiousoddman.rgxgen.util.chars.CharList; -import java.util.Arrays; import java.util.List; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -59,10 +58,10 @@ public Pattern getNotInCategoryPattern() { return notInCategoryPattern; } - public Stream getCategoryCharacters() { - return Stream.concat( - Arrays.stream(category.getSymbols()), - category.getSymbolRanges().stream().flatMap(SymbolRange::chars) + public CharList getCategoryCharacters() { + return CharList.charList( + category.getSymbolRanges(), + category.getSymbols() ); } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/nodes/SymbolSetCaseInsensitiveTests.java b/src/test/java/com/github/curiousoddman/rgxgen/nodes/SymbolSetCaseInsensitiveTests.java index 3af1c162..6e660d71 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/nodes/SymbolSetCaseInsensitiveTests.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/nodes/SymbolSetCaseInsensitiveTests.java @@ -1,7 +1,6 @@ package com.github.curiousoddman.rgxgen.nodes; import com.github.curiousoddman.rgxgen.model.MatchType; -import com.github.curiousoddman.rgxgen.util.Util; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -13,11 +12,11 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; public class SymbolSetCaseInsensitiveTests { - public static Character[] excluding(String chars) { - Character[] allSymbols = makeAsciiCharacterArray(); - Character[] result = new Character[allSymbols.length - chars.length()]; + public static char[] excluding(String chars) { + char[] allSymbols = makeAsciiCharacterArray(); + char[] result = new char[allSymbols.length - chars.length()]; int target = 0; - for (Character sym : allSymbols) { + for (char sym : allSymbols) { if (chars.indexOf(sym) == -1) { result[target] = sym; ++target; @@ -40,18 +39,18 @@ public static Stream parameters() { @ParameterizedTest @MethodSource("parameters") public void positiveSetTest(String aOriginalString, String aExpectedCaseInsensitive) { - SymbolSet symbolSet = SymbolSet.ofAsciiCharacters(aOriginalString, Util.stringToChars(aOriginalString), MatchType.POSITIVE); - Character[] actual = symbolSet.getCaseInsensitiveSymbolSetIndexer().getAll(); - Character[] expected = Util.stringToChars(aExpectedCaseInsensitive); + SymbolSet symbolSet = SymbolSet.ofAsciiCharacters(aOriginalString, aOriginalString.toCharArray(), MatchType.POSITIVE); + char[] actual = symbolSet.getCaseInsensitiveSymbolSetIndexer().getAll(); + char[] expected = aExpectedCaseInsensitive.toCharArray(); assertArrayEquals(expected, actual, "\n" + Arrays.asList(expected) + "\nexpected vs got\n" + Arrays.asList(actual) + '\n'); } @ParameterizedTest @MethodSource("parameters") public void negativeSetTest(String aOriginalString, String aExpectedCaseInsensitive) { - SymbolSet symbolSet = SymbolSet.ofAsciiCharacters(aOriginalString, Util.stringToChars(aOriginalString), MatchType.NEGATIVE); - Character[] actual = symbolSet.getCaseInsensitiveSymbolSetIndexer().getAll(); - Character[] expected = excluding(aExpectedCaseInsensitive); + SymbolSet symbolSet = SymbolSet.ofAsciiCharacters(aOriginalString, aOriginalString.toCharArray(), MatchType.NEGATIVE); + char[] actual = symbolSet.getCaseInsensitiveSymbolSetIndexer().getAll(); + char[] expected = excluding(aExpectedCaseInsensitive); assertArrayEquals(expected, actual, "\n" + Arrays.asList(expected) + "\nexpected vs got\n" + Arrays.asList(actual) + '\n'); } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/parsing/dflt/SquareBracketsParsingTests.java b/src/test/java/com/github/curiousoddman/rgxgen/parsing/dflt/SquareBracketsParsingTests.java index f581d6bb..7d082567 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/parsing/dflt/SquareBracketsParsingTests.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/parsing/dflt/SquareBracketsParsingTests.java @@ -4,6 +4,7 @@ import com.github.curiousoddman.rgxgen.model.RgxGenCharsDefinition; import com.github.curiousoddman.rgxgen.nodes.Node; import com.github.curiousoddman.rgxgen.nodes.SymbolSet; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -19,19 +20,19 @@ public class SquareBracketsParsingTests { - private static SymbolSet mkSS(Character... chars) { + private static SymbolSet mkSS(char... chars) { return SymbolSet.ofAsciiCharacters(Arrays.toString(chars), chars, MatchType.POSITIVE); } - private static SymbolSet mkRange(Character start, Character end) { + private static SymbolSet mkRange(char start, char end) { return SymbolSet.ofAsciiRanges(start + ":" + end, Collections.singletonList(range(start, end)), MatchType.POSITIVE); } - private static SymbolSet mkRangeAndChars(Character start, Character end, Character... chars) { - return SymbolSet.ofAscii(start + ":" + end, Collections.singletonList(range(start, end)), chars, MatchType.POSITIVE); + private static SymbolSet mkRangeAndChars(char start, char end, char... chars) { + return SymbolSet.ofAscii(start + ":" + end, Collections.singletonList(range(start, end)), CharList.charList(chars), MatchType.POSITIVE); } - private static SymbolSet mkWhitespaceAnd(Character... chars) { + private static SymbolSet mkWhitespaceAnd(char... chars) { RgxGenCharsDefinition negativeMatchDefinitions = RgxGenCharsDefinition .of(chars) .withCharacters('\t', '\n', '\u000B', '\f', '\r', ' '); @@ -61,14 +62,14 @@ public static Stream data() { @ParameterizedTest @MethodSource("data") - public void parsingTest(String aPattern, Object aExpected) { + public void parsingTest(String pattern, Object expected) { try { - DefaultTreeBuilder builder = new DefaultTreeBuilder(aPattern, null); + DefaultTreeBuilder builder = new DefaultTreeBuilder(pattern, null); Node node = builder.get(); - assertEquals(aExpected.toString(), node.toString()); + assertEquals(expected.toString(), node.toString()); } catch (RgxGenParseException e) { - if (aExpected instanceof Throwable) { - assertEquals(e.getMessage(), ((Throwable) aExpected).getMessage(), e.getMessage()); + if (expected instanceof Throwable) { + assertEquals(e.getMessage(), ((Throwable) expected).getMessage(), e.getMessage()); } else { e.printStackTrace(); fail("Got exception when expected SymbolSet. " + e.getMessage()); diff --git a/src/test/java/com/github/curiousoddman/rgxgen/util/InvertRangesTests.java b/src/test/java/com/github/curiousoddman/rgxgen/util/InvertRangesTests.java index 3083f650..10fd96d9 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/util/InvertRangesTests.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/util/InvertRangesTests.java @@ -1,6 +1,7 @@ package com.github.curiousoddman.rgxgen.util; import com.github.curiousoddman.rgxgen.model.SymbolRange; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -52,13 +53,13 @@ public static Stream getInvertRangesAndCharactersTestData() { @MethodSource("getInvertRangesAndCharactersTestData") void invertRangesAndCharactersTest(Args args) { List ranges = args.getRanges(); - List characters = args.getCharacters(); + CharList characters = args.getCharacters(); SymbolRange allCharacters = args.getAllCharacters(); List expectedRanges = args.getExpectRanges(); - List expectedCharacters = args.getExpectCharacters(); + CharList expectedCharacters = args.getExpectCharacters(); List actualRanges = new ArrayList<>(); - List actualCharacters = new ArrayList<>(); + CharList actualCharacters = CharList.empty(); invertSymbolsAndRanges(ranges, characters, allCharacters, actualRanges, actualCharacters); assertEquals(expectedRanges, actualRanges); assertEquals(expectedCharacters, actualCharacters); @@ -71,16 +72,16 @@ private static Args args(String description) { public static class Args { String description; List ranges = new ArrayList<>(); - List characters = new ArrayList<>(); + CharList characters = CharList.empty(); SymbolRange allCharacters; List expectRanges = new ArrayList<>(); - List expectCharacters = new ArrayList<>(); + CharList expectCharacters = CharList.empty(); public List getRanges() { return ranges; } - public List getCharacters() { + public CharList getCharacters() { return characters; } @@ -92,7 +93,7 @@ public List getExpectRanges() { return expectRanges; } - public List getExpectCharacters() { + public CharList getExpectCharacters() { return expectCharacters; } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/util/RangesCompactionTests.java b/src/test/java/com/github/curiousoddman/rgxgen/util/RangesCompactionTests.java index 9d673f7f..11d0e742 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/util/RangesCompactionTests.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/util/RangesCompactionTests.java @@ -1,6 +1,7 @@ package com.github.curiousoddman.rgxgen.util; import com.github.curiousoddman.rgxgen.model.SymbolRange; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -21,40 +22,40 @@ public class RangesCompactionTests { public static Stream getCompactionTestData() { return Stream.of( - arguments("single range", ranges("a-z"), emptyList(), ranges("a-z"), emptyList()), + arguments("single range", ranges("a-z"), CharList.emptyUnmodifiable(), ranges("a-z"), CharList.emptyUnmodifiable()), arguments("single character", ranges(), chars("a"), emptyList(), chars("a")), // ranges tests - arguments("non overlapping unordered ranges", ranges("x-z", "a-c"), emptyList(), ranges("a-c", "x-z"), emptyList()), - arguments("start/end matching ranges", ranges("a-c", "c-e"), emptyList(), ranges("a-e"), emptyList()), - arguments("start on next after end ranges", ranges("a-c", "d-e"), emptyList(), ranges("a-e"), emptyList()), - arguments("partially overlapping ranges", ranges("a-c", "b-e"), emptyList(), ranges("a-e"), emptyList()), - arguments("matching ranges", ranges("a-c", "a-c"), emptyList(), ranges("a-c"), emptyList()), - arguments("one within another", ranges("a-e", "c-d"), emptyList(), ranges("a-e"), emptyList()), - arguments("one within another - matching boundary", ranges("a-e", "b-e"), emptyList(), ranges("a-e"), emptyList()), + arguments("non overlapping unordered ranges", ranges("x-z", "a-c"), CharList.emptyUnmodifiable(), ranges("a-c", "x-z"), CharList.emptyUnmodifiable()), + arguments("start/end matching ranges", ranges("a-c", "c-e"), CharList.emptyUnmodifiable(), ranges("a-e"), CharList.emptyUnmodifiable()), + arguments("start on next after end ranges", ranges("a-c", "d-e"), CharList.emptyUnmodifiable(), ranges("a-e"), CharList.emptyUnmodifiable()), + arguments("partially overlapping ranges", ranges("a-c", "b-e"), CharList.emptyUnmodifiable(), ranges("a-e"), CharList.emptyUnmodifiable()), + arguments("matching ranges", ranges("a-c", "a-c"), CharList.emptyUnmodifiable(), ranges("a-c"), CharList.emptyUnmodifiable()), + arguments("one within another", ranges("a-e", "c-d"), CharList.emptyUnmodifiable(), ranges("a-e"), CharList.emptyUnmodifiable()), + arguments("one within another - matching boundary", ranges("a-e", "b-e"), CharList.emptyUnmodifiable(), ranges("a-e"), CharList.emptyUnmodifiable()), // characters test arguments("independent characters", ranges(), chars("ac"), ranges(), chars("ac")), arguments("matching characters", ranges(), chars("aaaacaa"), ranges(), chars("ac")), - arguments("continuous characters", ranges(), chars("abc"), ranges("a-c"), emptyList()), + arguments("continuous characters", ranges(), chars("abc"), ranges("a-c"), CharList.emptyUnmodifiable()), // mixed tests - arguments("range that should consume character and another range", ranges("a-z", "c-d"), chars("fls"), ranges("a-z"), emptyList()), + arguments("range that should consume character and another range", ranges("a-z", "c-d"), chars("fls"), ranges("a-z"), CharList.emptyUnmodifiable()), arguments("range and independent character", ranges("a-c"), chars("x"), ranges("a-c"), chars("x")), - arguments("range that consumes character (within)", ranges("a-z"), chars("x"), ranges("a-z"), emptyList()), - arguments("range that consumes character (on start edge)", ranges("a-c"), chars("a"), ranges("a-c"), emptyList()), - arguments("range that consumes character (on end edge)", ranges("a-c"), chars("c"), ranges("a-c"), emptyList()), - arguments("character follows range", ranges("a-c"), chars("d"), ranges("a-d"), emptyList()), - arguments("range follows character", ranges("b-c"), chars("a"), ranges("a-c"), emptyList()), - arguments("several characters makes up a range that is then joined to another range", ranges("b-d"), chars("aefg"), ranges("a-g"), emptyList()), - arguments("a-cA-C + A,B,C", ranges("a-c", "A-C"), chars("ABCabc"), ranges("A-C", "a-c"), emptyList()) + arguments("range that consumes character (within)", ranges("a-z"), chars("x"), ranges("a-z"), CharList.emptyUnmodifiable()), + arguments("range that consumes character (on start edge)", ranges("a-c"), chars("a"), ranges("a-c"), CharList.emptyUnmodifiable()), + arguments("range that consumes character (on end edge)", ranges("a-c"), chars("c"), ranges("a-c"), CharList.emptyUnmodifiable()), + arguments("character follows range", ranges("a-c"), chars("d"), ranges("a-d"), CharList.emptyUnmodifiable()), + arguments("range follows character", ranges("b-c"), chars("a"), ranges("a-c"), CharList.emptyUnmodifiable()), + arguments("several characters makes up a range that is then joined to another range", ranges("b-d"), chars("aefg"), ranges("a-g"), CharList.emptyUnmodifiable()), + arguments("a-cA-C + A,B,C", ranges("a-c", "A-C"), chars("ABCabc"), ranges("A-C", "a-c"), CharList.emptyUnmodifiable()) ); } @ParameterizedTest @MethodSource("getCompactionTestData") void compactOverlappingRangesAndSymbolsTest(String name, - List originalSymbolRanges, List originalSymbols, - List expectedCompactedRanges, List expectedCompactedSymbols) { + List originalSymbolRanges, CharList originalSymbols, + List expectedCompactedRanges, CharList expectedCompactedSymbols) { List actualRanges = new ArrayList<>(); - List actualSymbols = new ArrayList<>(); + CharList actualSymbols = CharList.empty(); compactOverlappingRangesAndSymbols(originalSymbolRanges, originalSymbols, actualRanges, actualSymbols); assertEquals(expectedCompactedRanges, actualRanges); @@ -69,8 +70,7 @@ private static List ranges(String... texts) { .collect(Collectors.toList()); } - private static List chars(String text) { - return text.chars().boxed().map(i -> (char) i.intValue()).collect(Collectors.toList()); + private static CharList chars(String text) { + return CharList.charList(text); } - } diff --git a/src/test/java/com/github/curiousoddman/rgxgen/util/chars/CharArrayListTest.java b/src/test/java/com/github/curiousoddman/rgxgen/util/chars/CharArrayListTest.java new file mode 100644 index 00000000..28cc4c66 --- /dev/null +++ b/src/test/java/com/github/curiousoddman/rgxgen/util/chars/CharArrayListTest.java @@ -0,0 +1,166 @@ +package com.github.curiousoddman.rgxgen.util.chars; + +import com.github.curiousoddman.rgxgen.model.SymbolRange; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +import java.util.Arrays; +import java.util.Collections; +import java.util.stream.Stream; + +import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.makeAsciiCharacterArray; +import static java.util.Collections.emptyList; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.params.provider.Arguments.arguments; + +class CharArrayListTest { + @Nested + public class CreateFromSymgolRangesAndSymbols { + @Test + void createFromRangesTest() { + CharList charList = CharList.charList(Arrays.asList(SymbolRange.range('A', 'C'), SymbolRange.range('E', 'F'))); + assertEquals(5, charList.size()); + assertEquals('A', charList.get(0)); + assertEquals('B', charList.get(1)); + assertEquals('C', charList.get(2)); + assertEquals('E', charList.get(3)); + assertEquals('F', charList.get(4)); + } + + @Test + void createFromSymbolsTest() { + CharList charList = CharList.charList(emptyList(), 'A', 'B'); + assertEquals(2, charList.size()); + assertEquals('A', charList.get(0)); + assertEquals('B', charList.get(1)); + } + + @Test + void createFromRangesAndSymbolsTest() { + CharList charList = CharList.charList(Collections.singletonList(SymbolRange.range('A', 'C')), 'E', 'F'); + assertEquals(5, charList.size()); + assertEquals('E', charList.get(0)); + assertEquals('F', charList.get(1)); + assertEquals('A', charList.get(2)); + assertEquals('B', charList.get(3)); + assertEquals('C', charList.get(4)); + + } + } + + @Test + void createFromRangeTest() { + CharList charList = CharList.rangeClosed('A', 'C'); + assertEquals(3, charList.size()); + assertEquals('A', charList.get(0)); + assertEquals('B', charList.get(1)); + assertEquals('C', charList.get(2)); + } + + @Test + void copyIsDeepTest() { + CharList charList = CharList.rangeClosed('A', 'C'); + CharList copy = charList.copy(); + copy.add('X'); + + assertEquals(3, charList.size()); + assertEquals('A', charList.get(0)); + assertEquals('B', charList.get(1)); + assertEquals('C', charList.get(2)); + + assertEquals(4, copy.size()); + assertEquals('A', copy.get(0)); + assertEquals('B', copy.get(1)); + assertEquals('C', copy.get(2)); + assertEquals('X', copy.get(3)); + } + + @Test + void addTest() { + CharList charList = CharList.empty(); + char[] chars = makeAsciiCharacterArray(); + for (int i = 0; i < chars.length; i++) { + charList.add(chars[i]); + assertEquals(i + 1, charList.size()); + for (int j = 0; j < i; j++) { + assertEquals(chars[i], charList.get(i)); + } + } + } + + private static final char[] INPUT = {'A', 'B', 'C'}; + private static final char[] LARGE_INPUT = makeAsciiCharacterArray(); + + public static Stream addAllTestData() { + return Stream.of( + arguments("empty + arr", CharList.empty(), INPUT, INPUT.length, new char[]{'A', 'B', 'C'}), + arguments("empty + arr[1]", CharList.empty(), INPUT, 1, new char[]{'A'}), + arguments("non empty + arr", CharList.charList('X', 'Y', 'Z'), INPUT, 1, new char[]{'X', 'Y', 'Z', 'A'}), + arguments("non empty + arr[2]", CharList.charList('X', 'Y', 'Z'), INPUT, 2, new char[]{'X', 'Y', 'Z', 'A', 'B'}), + arguments("non empty + large", CharList.charList('X', 'Y', 'Z'), LARGE_INPUT, LARGE_INPUT.length, getLargeExpected()) + ); + } + + private static char[] getLargeExpected() { + char[] ascii = makeAsciiCharacterArray(); + char[] result = new char[ascii.length + 3]; + result[0] = 'X'; + result[1] = 'Y'; + result[2] = 'Z'; + System.arraycopy(ascii, 0, result, 3, ascii.length); + return result; + } + + @ParameterizedTest(name = "{index}: {0}") + @MethodSource("addAllTestData") + void addAllTest(String name, CharList init, char[] srcArr, int srcCount, char[] expected) { + init.addAll(srcArr, srcCount); + assertEquals(expected.length, init.size()); + for (int i = 0; i < expected.length; i++) { + assertEquals(expected[i], init.get(i)); + } + } + + @Test + void sortTest() { + CharList charList = CharList.charList('C', 'B', 'A'); + charList.sort(); + assertEquals(3, charList.size()); + assertEquals('A', charList.get(0)); + assertEquals('B', charList.get(1)); + assertEquals('C', charList.get(2)); + } + + @Test + void appendToTest() { + CharList src = CharList.charList('C', 'B', 'A'); + CharList dst = CharList.charList('X', 'Y', 'Z'); + + src.appendTo(dst); + + assertEquals('C', src.get(0)); + assertEquals('B', src.get(1)); + assertEquals('A', src.get(2)); + + assertEquals('X', dst.get(0)); + assertEquals('Y', dst.get(1)); + assertEquals('Z', dst.get(2)); + assertEquals('C', dst.get(3)); + assertEquals('B', dst.get(4)); + assertEquals('A', dst.get(5)); + } + + @Test + void exceptTest() { + CharList charList = CharList.rangeClosed('A', 'F'); + CharList except = charList.except(ch -> Arrays.asList('B', 'C', 'D').contains(ch)); + assertEquals(6, charList.size()); + assertEquals(3, except.size()); + assertEquals('A', except.get(0)); + assertEquals('E', except.get(1)); + assertEquals('F', except.get(2)); + } +} \ No newline at end of file diff --git a/src/test/java/com/github/curiousoddman/rgxgen/visitors/helpers/SymbolSetIndexerTest.java b/src/test/java/com/github/curiousoddman/rgxgen/visitors/helpers/SymbolSetIndexerTest.java index e9ac8d94..cfd97423 100644 --- a/src/test/java/com/github/curiousoddman/rgxgen/visitors/helpers/SymbolSetIndexerTest.java +++ b/src/test/java/com/github/curiousoddman/rgxgen/visitors/helpers/SymbolSetIndexerTest.java @@ -3,18 +3,19 @@ import com.github.curiousoddman.rgxgen.model.MatchType; import com.github.curiousoddman.rgxgen.model.SymbolRange; import com.github.curiousoddman.rgxgen.nodes.SymbolSet; +import com.github.curiousoddman.rgxgen.util.chars.CharList; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; import static com.github.curiousoddman.rgxgen.model.SymbolRange.range; -import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.*; +import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.DEL_ASCII_CODE; +import static com.github.curiousoddman.rgxgen.parsing.dflt.ConstantsProvider.SPACE_ASCII_CODE; import static java.util.Arrays.asList; import static java.util.Collections.emptyList; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -27,45 +28,45 @@ class SymbolSetIndexerTest { public static Stream getSymbolSets() { return Stream.of( - arguments("Single Range", symbolSet(range('a', 'd')), 4, asList('a', 'b', 'c', 'd')), - arguments("Several Ranges", symbolSet(range('a', 'd'), range('k', 'l'), range('x', 'z')), 9, asList('a', 'b', 'c', 'd', 'k', 'l', 'x', 'y', 'z')), - arguments("Several characters", symbolSet('a', 'd', 'k', 't', 'x', 'z'), 6, asList('a', 'd', 'k', 't', 'x', 'z')), - arguments("Characters and ranges", symbolSet(asList(range('a', 'd'), range('x', 'z')), '1', '2', '3', '4'), 11, asList('1', '2', '3', '4', 'a', 'b', 'c', 'd', 'x', 'y', 'z')), - arguments("Negative Ranges", negativeSymbolSet(asList(range(SPACE_ASCII_CODE, DEL_ASCII_CODE - 2), RANGE_OUTSIDE_OF_SYMBOLS)), 1, Collections.singletonList((char) (DEL_ASCII_CODE - 1))) + arguments("Single Range", symbolSet(range('a', 'd')), 4, CharList.charList('a', 'b', 'c', 'd')), + arguments("Several Ranges", symbolSet(range('a', 'd'), range('k', 'l'), range('x', 'z')), 9, CharList.charList('a', 'b', 'c', 'd', 'k', 'l', 'x', 'y', 'z')), + arguments("Several characters", symbolSet('a', 'd', 'k', 't', 'x', 'z'), 6, CharList.charList('a', 'd', 'k', 't', 'x', 'z')), + arguments("Characters and ranges", symbolSet(asList(range('a', 'd'), range('x', 'z')), '1', '2', '3', '4'), 11, CharList.charList('1', '2', '3', '4', 'a', 'b', 'c', 'd', 'x', 'y', 'z')), + arguments("Negative Ranges", negativeSymbolSet(asList(range(SPACE_ASCII_CODE, DEL_ASCII_CODE - 2), RANGE_OUTSIDE_OF_SYMBOLS)), 1, CharList.charList((char) (DEL_ASCII_CODE - 1))) ); } private static SymbolSet symbolSet(SymbolRange... symbolRanges) { - return SymbolSet.ofAscii("", asList(symbolRanges), ZERO_LENGTH_CHARACTER_ARRAY, MatchType.POSITIVE); + return SymbolSet.ofAscii("", asList(symbolRanges), CharList.empty(), MatchType.POSITIVE); } - private static SymbolSet symbolSet(Character... characters) { - return SymbolSet.ofAscii("", emptyList(), characters, MatchType.POSITIVE); + private static SymbolSet symbolSet(char... characters) { + return SymbolSet.ofAscii("", emptyList(), CharList.charList(characters), MatchType.POSITIVE); } - private static SymbolSet symbolSet(List ranges, Character... characters) { - return SymbolSet.ofAscii("", ranges, characters, MatchType.POSITIVE); + private static SymbolSet symbolSet(List ranges, char... characters) { + return SymbolSet.ofAscii("", ranges, CharList.charList(characters), MatchType.POSITIVE); } private static SymbolSet negativeSymbolSet(List ranges) { - return SymbolSet.ofAscii("", ranges, ZERO_LENGTH_CHARACTER_ARRAY, MatchType.NEGATIVE); + return SymbolSet.ofAscii("", ranges, CharList.empty(), MatchType.NEGATIVE); } @ParameterizedTest(name = "{index}: {0}") @MethodSource("getSymbolSets") - void sizeTest(String name, SymbolSet symbolSet, int expectedSize, List expectedCharacters) { + void sizeTest(String name, SymbolSet symbolSet, int expectedSize, CharList expectedCharacters) { assertEquals(expectedSize, symbolSet.getSymbolSetIndexer().size()); } @ParameterizedTest(name = "{index}: {0}") @MethodSource("getSymbolSets") - void getTest(String name, SymbolSet symbolSet, int expectedSize, List expectedCharacters) { + void getTest(String name, SymbolSet symbolSet, int expectedSize, CharList expectedCharacters) { SymbolSetIndexer symbolSetIndexer = symbolSet.getSymbolSetIndexer(); Boolean[] matched = new Boolean[symbolSetIndexer.size()]; char[] actualCharacters = new char[symbolSetIndexer.size()]; for (int i = 0; i < symbolSetIndexer.size(); i++) { actualCharacters[i] = symbolSetIndexer.get(i); - matched[i] = expectedCharacters.get(i).equals(actualCharacters[i]); + matched[i] = expectedCharacters.get(i) == actualCharacters[i]; } if (!Arrays.stream(matched).allMatch(x -> x)) {