Module:Unicode data/combining

From OODA WIKI

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 § U+035C, § U+035D, § U+20DB).


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,
		[0x011F41] =   9,
		[0x011F42] =   9,
		[0x01BC9E] =   1,
		[0x01D16D] = 226,
		[0x01E08F] = 230,
		[0x01E2AE] = 230,
		[0x01E4EE] = 220,
		[0x01E4EF] = 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 },
		{ 0x010EFD, 0x010EFF, 220 },
		{ 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 },
		{ 0x01E4EC, 0x01E4ED, 232 },
		{ 0x01E8D0, 0x01E8D6, 220 },
		{ 0x01E944, 0x01E949, 230 },
	};
}

-- Needed for binary search.
data.ranges.length = #data.ranges

return data