Module:Unicode data/combining
Contains data used by Module:Unicode data to determine whether a character is combining or not. Can also be used to return the character's combining class. Generated from DerivedCombiningClass.txt using a script.
Affecting two characters
Note: combing class = 230 (some), 233, 234
require second dotted circle (suffix) for their effect: ◌͜◌ (see Module:Unicode data/combining § Notes, Module:Unicode data/combining § Notes, Module:Unicode data/combining § Notes).
In {{Diacritics in Unicode}}, some of those with class "230" are recoded into "239", to indicate double character effective (diacritic is placed between two ◌'s).
local data = {
singles = {
[0x000315] = 232,
[0x00031A] = 232,
[0x00031B] = 216,
[0x000345] = 240,
[0x000346] = 230,
[0x000357] = 230,
[0x000358] = 232,
[0x00035B] = 230,
[0x00035C] = 233,
[0x00035F] = 233,
[0x000362] = 233,
[0x000591] = 220,
[0x000596] = 220,
[0x00059A] = 222,
[0x00059B] = 220,
[0x0005AA] = 220,
[0x0005AD] = 222,
[0x0005AE] = 228,
[0x0005AF] = 230,
[0x0005B0] = 10,
[0x0005B1] = 11,
[0x0005B2] = 12,
[0x0005B3] = 13,
[0x0005B4] = 14,
[0x0005B5] = 15,
[0x0005B6] = 16,
[0x0005B7] = 17,
[0x0005B8] = 18,
[0x0005BB] = 20,
[0x0005BC] = 21,
[0x0005BD] = 22,
[0x0005BF] = 23,
[0x0005C1] = 24,
[0x0005C2] = 25,
[0x0005C4] = 230,
[0x0005C5] = 220,
[0x0005C7] = 18,
[0x000618] = 30,
[0x000619] = 31,
[0x00061A] = 32,
[0x00064B] = 27,
[0x00064C] = 28,
[0x00064D] = 29,
[0x00064E] = 30,
[0x00064F] = 31,
[0x000650] = 32,
[0x000651] = 33,
[0x000652] = 34,
[0x00065C] = 220,
[0x00065F] = 220,
[0x000670] = 35,
[0x0006E3] = 220,
[0x0006E4] = 230,
[0x0006EA] = 220,
[0x0006ED] = 220,
[0x000711] = 36,
[0x000730] = 230,
[0x000731] = 220,
[0x000734] = 220,
[0x00073A] = 230,
[0x00073D] = 230,
[0x00073E] = 220,
[0x000742] = 220,
[0x000743] = 230,
[0x000744] = 220,
[0x000745] = 230,
[0x000746] = 220,
[0x000747] = 230,
[0x000748] = 220,
[0x0007F2] = 220,
[0x0007F3] = 230,
[0x0007FD] = 220,
[0x000898] = 230,
[0x0008E3] = 220,
[0x0008E6] = 220,
[0x0008E9] = 220,
[0x0008F0] = 27,
[0x0008F1] = 28,
[0x0008F2] = 29,
[0x0008F6] = 220,
[0x00093C] = 7,
[0x00094D] = 9,
[0x000951] = 230,
[0x000952] = 220,
[0x0009BC] = 7,
[0x0009CD] = 9,
[0x0009FE] = 230,
[0x000A3C] = 7,
[0x000A4D] = 9,
[0x000ABC] = 7,
[0x000ACD] = 9,
[0x000B3C] = 7,
[0x000B4D] = 9,
[0x000BCD] = 9,
[0x000C3C] = 7,
[0x000C4D] = 9,
[0x000C55] = 84,
[0x000C56] = 91,
[0x000CBC] = 7,
[0x000CCD] = 9,
[0x000D4D] = 9,
[0x000DCA] = 9,
[0x000E3A] = 9,
[0x000EBA] = 9,
[0x000F35] = 220,
[0x000F37] = 220,
[0x000F39] = 216,
[0x000F71] = 129,
[0x000F72] = 130,
[0x000F74] = 132,
[0x000F80] = 130,
[0x000F84] = 9,
[0x000FC6] = 220,
[0x001037] = 7,
[0x00108D] = 220,
[0x001714] = 9,
[0x001715] = 9,
[0x001734] = 9,
[0x0017D2] = 9,
[0x0017DD] = 230,
[0x0018A9] = 228,
[0x001939] = 222,
[0x00193A] = 230,
[0x00193B] = 220,
[0x001A17] = 230,
[0x001A18] = 220,
[0x001A60] = 9,
[0x001A7F] = 220,
[0x001ABD] = 220,
[0x001ACA] = 220,
[0x001B34] = 7,
[0x001B44] = 9,
[0x001B6B] = 230,
[0x001B6C] = 220,
[0x001BAA] = 9,
[0x001BAB] = 9,
[0x001BE6] = 7,
[0x001C37] = 7,
[0x001CD4] = 1,
[0x001CE0] = 230,
[0x001CED] = 220,
[0x001CF4] = 230,
[0x001DC2] = 220,
[0x001DCA] = 220,
[0x001DCD] = 234,
[0x001DCE] = 214,
[0x001DCF] = 220,
[0x001DD0] = 202,
[0x001DF6] = 232,
[0x001DF9] = 220,
[0x001DFA] = 218,
[0x001DFB] = 230,
[0x001DFC] = 233,
[0x001DFD] = 220,
[0x001DFE] = 230,
[0x001DFF] = 220,
[0x0020E1] = 230,
[0x0020E7] = 230,
[0x0020E8] = 220,
[0x0020E9] = 230,
[0x0020F0] = 230,
[0x002D7F] = 9,
[0x00302A] = 218,
[0x00302B] = 228,
[0x00302C] = 232,
[0x00302D] = 222,
[0x00A66F] = 230,
[0x00A806] = 9,
[0x00A82C] = 9,
[0x00A8C4] = 9,
[0x00A953] = 9,
[0x00A9B3] = 7,
[0x00A9C0] = 9,
[0x00AAB0] = 230,
[0x00AAB4] = 220,
[0x00AAC1] = 230,
[0x00AAF6] = 9,
[0x00ABED] = 9,
[0x00FB1E] = 26,
[0x0101FD] = 220,
[0x0102E0] = 220,
[0x010A0D] = 220,
[0x010A0F] = 230,
[0x010A38] = 230,
[0x010A39] = 1,
[0x010A3A] = 220,
[0x010A3F] = 9,
[0x010AE5] = 230,
[0x010AE6] = 220,
[0x010F4B] = 220,
[0x010F4C] = 230,
[0x010F82] = 230,
[0x010F83] = 220,
[0x010F84] = 230,
[0x010F85] = 220,
[0x011046] = 9,
[0x011070] = 9,
[0x01107F] = 9,
[0x0110B9] = 9,
[0x0110BA] = 7,
[0x011173] = 7,
[0x0111C0] = 9,
[0x0111CA] = 7,
[0x011235] = 9,
[0x011236] = 7,
[0x0112E9] = 7,
[0x0112EA] = 9,
[0x01134D] = 9,
[0x011442] = 9,
[0x011446] = 7,
[0x01145E] = 230,
[0x0114C2] = 9,
[0x0114C3] = 7,
[0x0115BF] = 9,
[0x0115C0] = 7,
[0x01163F] = 9,
[0x0116B6] = 9,
[0x0116B7] = 7,
[0x01172B] = 9,
[0x011839] = 9,
[0x01183A] = 7,
[0x01193D] = 9,
[0x01193E] = 9,
[0x011943] = 7,
[0x0119E0] = 9,
[0x011A34] = 9,
[0x011A47] = 9,
[0x011A99] = 9,
[0x011C3F] = 9,
[0x011D42] = 7,
[0x011D97] = 9,
[0x01BC9E] = 1,
[0x01D16D] = 226,
[0x01E2AE] = 230,
[0x01E94A] = 7,
};
ranges = {
{ 0x000300, 0x000314, 230 },
{ 0x000316, 0x000319, 220 },
{ 0x00031C, 0x000320, 220 },
{ 0x000321, 0x000322, 202 },
{ 0x000323, 0x000326, 220 },
{ 0x000327, 0x000328, 202 },
{ 0x000329, 0x000333, 220 },
{ 0x000334, 0x000338, 1 },
{ 0x000339, 0x00033C, 220 },
{ 0x00033D, 0x000344, 230 },
{ 0x000347, 0x000349, 220 },
{ 0x00034A, 0x00034C, 230 },
{ 0x00034D, 0x00034E, 220 },
{ 0x000350, 0x000352, 230 },
{ 0x000353, 0x000356, 220 },
{ 0x000359, 0x00035A, 220 },
{ 0x00035D, 0x00035E, 234 },
{ 0x000360, 0x000361, 234 },
{ 0x000363, 0x00036F, 230 },
{ 0x000483, 0x000487, 230 },
{ 0x000592, 0x000595, 230 },
{ 0x000597, 0x000599, 230 },
{ 0x00059C, 0x0005A1, 230 },
{ 0x0005A2, 0x0005A7, 220 },
{ 0x0005A8, 0x0005A9, 230 },
{ 0x0005AB, 0x0005AC, 230 },
{ 0x0005B9, 0x0005BA, 19 },
{ 0x000610, 0x000617, 230 },
{ 0x000653, 0x000654, 230 },
{ 0x000655, 0x000656, 220 },
{ 0x000657, 0x00065B, 230 },
{ 0x00065D, 0x00065E, 230 },
{ 0x0006D6, 0x0006DC, 230 },
{ 0x0006DF, 0x0006E2, 230 },
{ 0x0006E7, 0x0006E8, 230 },
{ 0x0006EB, 0x0006EC, 230 },
{ 0x000732, 0x000733, 230 },
{ 0x000735, 0x000736, 230 },
{ 0x000737, 0x000739, 220 },
{ 0x00073B, 0x00073C, 220 },
{ 0x00073F, 0x000741, 230 },
{ 0x000749, 0x00074A, 230 },
{ 0x0007EB, 0x0007F1, 230 },
{ 0x000816, 0x000819, 230 },
{ 0x00081B, 0x000823, 230 },
{ 0x000825, 0x000827, 230 },
{ 0x000829, 0x00082D, 230 },
{ 0x000859, 0x00085B, 220 },
{ 0x000899, 0x00089B, 220 },
{ 0x00089C, 0x00089F, 230 },
{ 0x0008CA, 0x0008CE, 230 },
{ 0x0008CF, 0x0008D3, 220 },
{ 0x0008D4, 0x0008E1, 230 },
{ 0x0008E4, 0x0008E5, 230 },
{ 0x0008E7, 0x0008E8, 230 },
{ 0x0008EA, 0x0008EC, 230 },
{ 0x0008ED, 0x0008EF, 220 },
{ 0x0008F3, 0x0008F5, 230 },
{ 0x0008F7, 0x0008F8, 230 },
{ 0x0008F9, 0x0008FA, 220 },
{ 0x0008FB, 0x0008FF, 230 },
{ 0x000953, 0x000954, 230 },
{ 0x000D3B, 0x000D3C, 9 },
{ 0x000E38, 0x000E39, 103 },
{ 0x000E48, 0x000E4B, 107 },
{ 0x000EB8, 0x000EB9, 118 },
{ 0x000EC8, 0x000ECB, 122 },
{ 0x000F18, 0x000F19, 220 },
{ 0x000F7A, 0x000F7D, 130 },
{ 0x000F82, 0x000F83, 230 },
{ 0x000F86, 0x000F87, 230 },
{ 0x001039, 0x00103A, 9 },
{ 0x00135D, 0x00135F, 230 },
{ 0x001A75, 0x001A7C, 230 },
{ 0x001AB0, 0x001AB4, 230 },
{ 0x001AB5, 0x001ABA, 220 },
{ 0x001ABB, 0x001ABC, 230 },
{ 0x001ABF, 0x001AC0, 220 },
{ 0x001AC1, 0x001AC2, 230 },
{ 0x001AC3, 0x001AC4, 220 },
{ 0x001AC5, 0x001AC9, 230 },
{ 0x001ACB, 0x001ACE, 230 },
{ 0x001B6D, 0x001B73, 230 },
{ 0x001BF2, 0x001BF3, 9 },
{ 0x001CD0, 0x001CD2, 230 },
{ 0x001CD5, 0x001CD9, 220 },
{ 0x001CDA, 0x001CDB, 230 },
{ 0x001CDC, 0x001CDF, 220 },
{ 0x001CE2, 0x001CE8, 1 },
{ 0x001CF8, 0x001CF9, 230 },
{ 0x001DC0, 0x001DC1, 230 },
{ 0x001DC3, 0x001DC9, 230 },
{ 0x001DCB, 0x001DCC, 230 },
{ 0x001DD1, 0x001DF5, 230 },
{ 0x001DF7, 0x001DF8, 228 },
{ 0x0020D0, 0x0020D1, 230 },
{ 0x0020D2, 0x0020D3, 1 },
{ 0x0020D4, 0x0020D7, 230 },
{ 0x0020D8, 0x0020DA, 1 },
{ 0x0020DB, 0x0020DC, 230 },
{ 0x0020E5, 0x0020E6, 1 },
{ 0x0020EA, 0x0020EB, 1 },
{ 0x0020EC, 0x0020EF, 220 },
{ 0x002CEF, 0x002CF1, 230 },
{ 0x002DE0, 0x002DFF, 230 },
{ 0x00302E, 0x00302F, 224 },
{ 0x003099, 0x00309A, 8 },
{ 0x00A674, 0x00A67D, 230 },
{ 0x00A69E, 0x00A69F, 230 },
{ 0x00A6F0, 0x00A6F1, 230 },
{ 0x00A8E0, 0x00A8F1, 230 },
{ 0x00A92B, 0x00A92D, 220 },
{ 0x00AAB2, 0x00AAB3, 230 },
{ 0x00AAB7, 0x00AAB8, 230 },
{ 0x00AABE, 0x00AABF, 230 },
{ 0x00FE20, 0x00FE26, 230 },
{ 0x00FE27, 0x00FE2D, 220 },
{ 0x00FE2E, 0x00FE2F, 230 },
{ 0x010376, 0x01037A, 230 },
{ 0x010D24, 0x010D27, 230 },
{ 0x010EAB, 0x010EAC, 230 },
{ 0x010F46, 0x010F47, 220 },
{ 0x010F48, 0x010F4A, 230 },
{ 0x010F4D, 0x010F50, 220 },
{ 0x011100, 0x011102, 230 },
{ 0x011133, 0x011134, 9 },
{ 0x01133B, 0x01133C, 7 },
{ 0x011366, 0x01136C, 230 },
{ 0x011370, 0x011374, 230 },
{ 0x011D44, 0x011D45, 9 },
{ 0x016AF0, 0x016AF4, 1 },
{ 0x016B30, 0x016B36, 230 },
{ 0x016FF0, 0x016FF1, 6 },
{ 0x01D165, 0x01D166, 216 },
{ 0x01D167, 0x01D169, 1 },
{ 0x01D16E, 0x01D172, 216 },
{ 0x01D17B, 0x01D182, 220 },
{ 0x01D185, 0x01D189, 230 },
{ 0x01D18A, 0x01D18B, 220 },
{ 0x01D1AA, 0x01D1AD, 230 },
{ 0x01D242, 0x01D244, 230 },
{ 0x01E000, 0x01E006, 230 },
{ 0x01E008, 0x01E018, 230 },
{ 0x01E01B, 0x01E021, 230 },
{ 0x01E023, 0x01E024, 230 },
{ 0x01E026, 0x01E02A, 230 },
{ 0x01E130, 0x01E136, 230 },
{ 0x01E2EC, 0x01E2EF, 230 },
{ 0x01E8D0, 0x01E8D6, 220 },
{ 0x01E944, 0x01E949, 230 },
};
}
-- Needed for binary search.
data.ranges.length = #data.ranges
return data