mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-06 06:38:20 +00:00
Simplify table writer
This commit is contained in:
@@ -65,61 +65,75 @@ Range :: struct {
|
||||
|
||||
@(rodata)
|
||||
ll_singles16 := [?]u16{
|
||||
0x00B5, 0x0101, 0x0103, 0x0105, 0x0107, 0x0109, 0x010B, 0x010D, 0x010F, 0x0111,
|
||||
0x0113, 0x0115, 0x0117, 0x0119, 0x011B, 0x011D, 0x011F, 0x0121, 0x0123, 0x0125,
|
||||
0x0127, 0x0129, 0x012B, 0x012D, 0x012F, 0x0131, 0x0133, 0x0135, 0x013A, 0x013C,
|
||||
0x013E, 0x0140, 0x0142, 0x0144, 0x0146, 0x014B, 0x014D, 0x014F, 0x0151, 0x0153,
|
||||
0x0155, 0x0157, 0x0159, 0x015B, 0x015D, 0x015F, 0x0161, 0x0163, 0x0165, 0x0167,
|
||||
0x0169, 0x016B, 0x016D, 0x016F, 0x0171, 0x0173, 0x0175, 0x0177, 0x017A, 0x017C,
|
||||
0x0183, 0x0185, 0x0188, 0x0192, 0x0195, 0x019E, 0x01A1, 0x01A3, 0x01A5, 0x01A8,
|
||||
0x01AD, 0x01B0, 0x01B4, 0x01B6, 0x01C6, 0x01C9, 0x01CC, 0x01CE, 0x01D0, 0x01D2,
|
||||
0x01D4, 0x01D6, 0x01D8, 0x01DA, 0x01DF, 0x01E1, 0x01E3, 0x01E5, 0x01E7, 0x01E9,
|
||||
0x01EB, 0x01ED, 0x01F3, 0x01F5, 0x01F9, 0x01FB, 0x01FD, 0x01FF, 0x0201, 0x0203,
|
||||
0x0205, 0x0207, 0x0209, 0x020B, 0x020D, 0x020F, 0x0211, 0x0213, 0x0215, 0x0217,
|
||||
0x0219, 0x021B, 0x021D, 0x021F, 0x0221, 0x0223, 0x0225, 0x0227, 0x0229, 0x022B,
|
||||
0x022D, 0x022F, 0x0231, 0x023C, 0x0242, 0x0247, 0x0249, 0x024B, 0x024D, 0x0371,
|
||||
0x0373, 0x0377, 0x0390, 0x03D9, 0x03DB, 0x03DD, 0x03DF, 0x03E1, 0x03E3, 0x03E5,
|
||||
0x03E7, 0x03E9, 0x03EB, 0x03ED, 0x03F5, 0x03F8, 0x0461, 0x0463, 0x0465, 0x0467,
|
||||
0x0469, 0x046B, 0x046D, 0x046F, 0x0471, 0x0473, 0x0475, 0x0477, 0x0479, 0x047B,
|
||||
0x047D, 0x047F, 0x0481, 0x048B, 0x048D, 0x048F, 0x0491, 0x0493, 0x0495, 0x0497,
|
||||
0x0499, 0x049B, 0x049D, 0x049F, 0x04A1, 0x04A3, 0x04A5, 0x04A7, 0x04A9, 0x04AB,
|
||||
0x04AD, 0x04AF, 0x04B1, 0x04B3, 0x04B5, 0x04B7, 0x04B9, 0x04BB, 0x04BD, 0x04BF,
|
||||
0x04C2, 0x04C4, 0x04C6, 0x04C8, 0x04CA, 0x04CC, 0x04D1, 0x04D3, 0x04D5, 0x04D7,
|
||||
0x04D9, 0x04DB, 0x04DD, 0x04DF, 0x04E1, 0x04E3, 0x04E5, 0x04E7, 0x04E9, 0x04EB,
|
||||
0x04ED, 0x04EF, 0x04F1, 0x04F3, 0x04F5, 0x04F7, 0x04F9, 0x04FB, 0x04FD, 0x04FF,
|
||||
0x0501, 0x0503, 0x0505, 0x0507, 0x0509, 0x050B, 0x050D, 0x050F, 0x0511, 0x0513,
|
||||
0x0515, 0x0517, 0x0519, 0x051B, 0x051D, 0x051F, 0x0521, 0x0523, 0x0525, 0x0527,
|
||||
0x0529, 0x052B, 0x052D, 0x052F, 0x1C8A, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09,
|
||||
0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D,
|
||||
0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31,
|
||||
0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45,
|
||||
0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59,
|
||||
0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D,
|
||||
0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81,
|
||||
0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F,
|
||||
0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3,
|
||||
0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7,
|
||||
0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB,
|
||||
0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF,
|
||||
0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x210A, 0x2113,
|
||||
0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71,
|
||||
0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93,
|
||||
0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7,
|
||||
0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB,
|
||||
0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF,
|
||||
0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC,
|
||||
0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B,
|
||||
0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F,
|
||||
0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685,
|
||||
0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699,
|
||||
0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737,
|
||||
0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B,
|
||||
0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F,
|
||||
0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C,
|
||||
0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799,
|
||||
0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5,
|
||||
0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7CD,
|
||||
0xA7CF, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7DB, 0xA7F6, 0xA7FA,
|
||||
0x00B5, 0x0101, 0x0103, 0x0105, 0x0107, 0x0109, 0x010B, 0x010D,
|
||||
0x010F, 0x0111, 0x0113, 0x0115, 0x0117, 0x0119, 0x011B, 0x011D,
|
||||
0x011F, 0x0121, 0x0123, 0x0125, 0x0127, 0x0129, 0x012B, 0x012D,
|
||||
0x012F, 0x0131, 0x0133, 0x0135, 0x013A, 0x013C, 0x013E, 0x0140,
|
||||
0x0142, 0x0144, 0x0146, 0x014B, 0x014D, 0x014F, 0x0151, 0x0153,
|
||||
0x0155, 0x0157, 0x0159, 0x015B, 0x015D, 0x015F, 0x0161, 0x0163,
|
||||
0x0165, 0x0167, 0x0169, 0x016B, 0x016D, 0x016F, 0x0171, 0x0173,
|
||||
0x0175, 0x0177, 0x017A, 0x017C, 0x0183, 0x0185, 0x0188, 0x0192,
|
||||
0x0195, 0x019E, 0x01A1, 0x01A3, 0x01A5, 0x01A8, 0x01AD, 0x01B0,
|
||||
0x01B4, 0x01B6, 0x01C6, 0x01C9, 0x01CC, 0x01CE, 0x01D0, 0x01D2,
|
||||
0x01D4, 0x01D6, 0x01D8, 0x01DA, 0x01DF, 0x01E1, 0x01E3, 0x01E5,
|
||||
0x01E7, 0x01E9, 0x01EB, 0x01ED, 0x01F3, 0x01F5, 0x01F9, 0x01FB,
|
||||
0x01FD, 0x01FF, 0x0201, 0x0203, 0x0205, 0x0207, 0x0209, 0x020B,
|
||||
0x020D, 0x020F, 0x0211, 0x0213, 0x0215, 0x0217, 0x0219, 0x021B,
|
||||
0x021D, 0x021F, 0x0221, 0x0223, 0x0225, 0x0227, 0x0229, 0x022B,
|
||||
0x022D, 0x022F, 0x0231, 0x023C, 0x0242, 0x0247, 0x0249, 0x024B,
|
||||
0x024D, 0x0371, 0x0373, 0x0377, 0x0390, 0x03D9, 0x03DB, 0x03DD,
|
||||
0x03DF, 0x03E1, 0x03E3, 0x03E5, 0x03E7, 0x03E9, 0x03EB, 0x03ED,
|
||||
0x03F5, 0x03F8, 0x0461, 0x0463, 0x0465, 0x0467, 0x0469, 0x046B,
|
||||
0x046D, 0x046F, 0x0471, 0x0473, 0x0475, 0x0477, 0x0479, 0x047B,
|
||||
0x047D, 0x047F, 0x0481, 0x048B, 0x048D, 0x048F, 0x0491, 0x0493,
|
||||
0x0495, 0x0497, 0x0499, 0x049B, 0x049D, 0x049F, 0x04A1, 0x04A3,
|
||||
0x04A5, 0x04A7, 0x04A9, 0x04AB, 0x04AD, 0x04AF, 0x04B1, 0x04B3,
|
||||
0x04B5, 0x04B7, 0x04B9, 0x04BB, 0x04BD, 0x04BF, 0x04C2, 0x04C4,
|
||||
0x04C6, 0x04C8, 0x04CA, 0x04CC, 0x04D1, 0x04D3, 0x04D5, 0x04D7,
|
||||
0x04D9, 0x04DB, 0x04DD, 0x04DF, 0x04E1, 0x04E3, 0x04E5, 0x04E7,
|
||||
0x04E9, 0x04EB, 0x04ED, 0x04EF, 0x04F1, 0x04F3, 0x04F5, 0x04F7,
|
||||
0x04F9, 0x04FB, 0x04FD, 0x04FF, 0x0501, 0x0503, 0x0505, 0x0507,
|
||||
0x0509, 0x050B, 0x050D, 0x050F, 0x0511, 0x0513, 0x0515, 0x0517,
|
||||
0x0519, 0x051B, 0x051D, 0x051F, 0x0521, 0x0523, 0x0525, 0x0527,
|
||||
0x0529, 0x052B, 0x052D, 0x052F, 0x1C8A, 0x1E01, 0x1E03, 0x1E05,
|
||||
0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15,
|
||||
0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25,
|
||||
0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35,
|
||||
0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45,
|
||||
0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55,
|
||||
0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65,
|
||||
0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75,
|
||||
0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85,
|
||||
0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F,
|
||||
0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF,
|
||||
0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF,
|
||||
0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF,
|
||||
0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF,
|
||||
0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF,
|
||||
0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE,
|
||||
0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61,
|
||||
0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87,
|
||||
0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97,
|
||||
0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7,
|
||||
0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7,
|
||||
0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7,
|
||||
0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7,
|
||||
0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3,
|
||||
0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B,
|
||||
0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B,
|
||||
0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B,
|
||||
0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D,
|
||||
0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723,
|
||||
0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737,
|
||||
0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747,
|
||||
0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757,
|
||||
0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767,
|
||||
0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781,
|
||||
0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799,
|
||||
0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9,
|
||||
0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1,
|
||||
0xA7C3, 0xA7C8, 0xA7CA, 0xA7CD, 0xA7CF, 0xA7D1, 0xA7D3, 0xA7D5,
|
||||
0xA7D7, 0xA7D9, 0xA7DB, 0xA7F6, 0xA7FA,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -257,10 +271,11 @@ ll_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
lm_singles16 := [?]u16{
|
||||
0x02EC, 0x02EE, 0x0374, 0x037A, 0x0559, 0x0640, 0x07FA, 0x081A, 0x0824, 0x0828,
|
||||
0x08C9, 0x0971, 0x0E46, 0x0EC6, 0x10FC, 0x17D7, 0x1843, 0x1AA7, 0x1D78, 0x2071,
|
||||
0x207F, 0x2D6F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA788,
|
||||
0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xAB69, 0xFF70,
|
||||
0x02EC, 0x02EE, 0x0374, 0x037A, 0x0559, 0x0640, 0x07FA, 0x081A,
|
||||
0x0824, 0x0828, 0x08C9, 0x0971, 0x0E46, 0x0EC6, 0x10FC, 0x17D7,
|
||||
0x1843, 0x1AA7, 0x1D78, 0x2071, 0x207F, 0x2D6F, 0x2E2F, 0x3005,
|
||||
0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA788, 0xA9CF, 0xA9E6,
|
||||
0xAA70, 0xAADD, 0xAB69, 0xFF70,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -320,12 +335,13 @@ lm_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
lo_singles16 := [?]u16{
|
||||
0x00AA, 0x00BA, 0x01BB, 0x06D5, 0x06FF, 0x0710, 0x07B1, 0x093D, 0x0950, 0x09B2,
|
||||
0x09BD, 0x09CE, 0x09FC, 0x0A5E, 0x0ABD, 0x0AD0, 0x0AF9, 0x0B3D, 0x0B71, 0x0B83,
|
||||
0x0B9C, 0x0BD0, 0x0C3D, 0x0C80, 0x0CBD, 0x0D3D, 0x0D4E, 0x0DBD, 0x0E84, 0x0EA5,
|
||||
0x0EBD, 0x0F00, 0x103F, 0x1061, 0x108E, 0x1258, 0x12C0, 0x17DC, 0x18AA, 0x1CFA,
|
||||
0x3006, 0x303C, 0x309F, 0x30FF, 0xA66E, 0xA78F, 0xA7F7, 0xA8FB, 0xAA7A, 0xAAB1,
|
||||
0xAAC0, 0xAAC2, 0xAAF2, 0xFB1D, 0xFB3E,
|
||||
0x00AA, 0x00BA, 0x01BB, 0x06D5, 0x06FF, 0x0710, 0x07B1, 0x093D,
|
||||
0x0950, 0x09B2, 0x09BD, 0x09CE, 0x09FC, 0x0A5E, 0x0ABD, 0x0AD0,
|
||||
0x0AF9, 0x0B3D, 0x0B71, 0x0B83, 0x0B9C, 0x0BD0, 0x0C3D, 0x0C80,
|
||||
0x0CBD, 0x0D3D, 0x0D4E, 0x0DBD, 0x0E84, 0x0EA5, 0x0EBD, 0x0F00,
|
||||
0x103F, 0x1061, 0x108E, 0x1258, 0x12C0, 0x17DC, 0x18AA, 0x1CFA,
|
||||
0x3006, 0x303C, 0x309F, 0x30FF, 0xA66E, 0xA78F, 0xA7F7, 0xA8FB,
|
||||
0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xAAF2, 0xFB1D, 0xFB3E,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -801,62 +817,75 @@ lt_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
lu_singles16 := [?]u16{
|
||||
0x0100, 0x0102, 0x0104, 0x0106, 0x0108, 0x010A, 0x010C, 0x010E, 0x0110, 0x0112,
|
||||
0x0114, 0x0116, 0x0118, 0x011A, 0x011C, 0x011E, 0x0120, 0x0122, 0x0124, 0x0126,
|
||||
0x0128, 0x012A, 0x012C, 0x012E, 0x0130, 0x0132, 0x0134, 0x0136, 0x0139, 0x013B,
|
||||
0x013D, 0x013F, 0x0141, 0x0143, 0x0145, 0x0147, 0x014A, 0x014C, 0x014E, 0x0150,
|
||||
0x0152, 0x0154, 0x0156, 0x0158, 0x015A, 0x015C, 0x015E, 0x0160, 0x0162, 0x0164,
|
||||
0x0166, 0x0168, 0x016A, 0x016C, 0x016E, 0x0170, 0x0172, 0x0174, 0x0176, 0x017B,
|
||||
0x017D, 0x0184, 0x01A2, 0x01A4, 0x01A9, 0x01AC, 0x01B5, 0x01BC, 0x01C4, 0x01C7,
|
||||
0x01CA, 0x01CD, 0x01CF, 0x01D1, 0x01D3, 0x01D5, 0x01D7, 0x01D9, 0x01DB, 0x01DE,
|
||||
0x01E0, 0x01E2, 0x01E4, 0x01E6, 0x01E8, 0x01EA, 0x01EC, 0x01EE, 0x01F1, 0x01F4,
|
||||
0x01FA, 0x01FC, 0x01FE, 0x0200, 0x0202, 0x0204, 0x0206, 0x0208, 0x020A, 0x020C,
|
||||
0x020E, 0x0210, 0x0212, 0x0214, 0x0216, 0x0218, 0x021A, 0x021C, 0x021E, 0x0220,
|
||||
0x0222, 0x0224, 0x0226, 0x0228, 0x022A, 0x022C, 0x022E, 0x0230, 0x0232, 0x0241,
|
||||
0x0248, 0x024A, 0x024C, 0x024E, 0x0370, 0x0372, 0x0376, 0x037F, 0x0386, 0x038C,
|
||||
0x03CF, 0x03D8, 0x03DA, 0x03DC, 0x03DE, 0x03E0, 0x03E2, 0x03E4, 0x03E6, 0x03E8,
|
||||
0x03EA, 0x03EC, 0x03EE, 0x03F4, 0x03F7, 0x0460, 0x0462, 0x0464, 0x0466, 0x0468,
|
||||
0x046A, 0x046C, 0x046E, 0x0470, 0x0472, 0x0474, 0x0476, 0x0478, 0x047A, 0x047C,
|
||||
0x047E, 0x0480, 0x048A, 0x048C, 0x048E, 0x0490, 0x0492, 0x0494, 0x0496, 0x0498,
|
||||
0x049A, 0x049C, 0x049E, 0x04A0, 0x04A2, 0x04A4, 0x04A6, 0x04A8, 0x04AA, 0x04AC,
|
||||
0x04AE, 0x04B0, 0x04B2, 0x04B4, 0x04B6, 0x04B8, 0x04BA, 0x04BC, 0x04BE, 0x04C3,
|
||||
0x04C5, 0x04C7, 0x04C9, 0x04CB, 0x04CD, 0x04D0, 0x04D2, 0x04D4, 0x04D6, 0x04D8,
|
||||
0x04DA, 0x04DC, 0x04DE, 0x04E0, 0x04E2, 0x04E4, 0x04E6, 0x04E8, 0x04EA, 0x04EC,
|
||||
0x04EE, 0x04F0, 0x04F2, 0x04F4, 0x04F6, 0x04F8, 0x04FA, 0x04FC, 0x04FE, 0x0500,
|
||||
0x0502, 0x0504, 0x0506, 0x0508, 0x050A, 0x050C, 0x050E, 0x0510, 0x0512, 0x0514,
|
||||
0x0516, 0x0518, 0x051A, 0x051C, 0x051E, 0x0520, 0x0522, 0x0524, 0x0526, 0x0528,
|
||||
0x052A, 0x052C, 0x052E, 0x10C7, 0x10CD, 0x1C89, 0x1E00, 0x1E02, 0x1E04, 0x1E06,
|
||||
0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A,
|
||||
0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E,
|
||||
0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42,
|
||||
0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56,
|
||||
0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A,
|
||||
0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E,
|
||||
0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92,
|
||||
0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE,
|
||||
0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2,
|
||||
0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6,
|
||||
0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA,
|
||||
0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE,
|
||||
0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128,
|
||||
0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84,
|
||||
0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98,
|
||||
0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC,
|
||||
0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0,
|
||||
0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4,
|
||||
0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2,
|
||||
0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652,
|
||||
0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666,
|
||||
0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C,
|
||||
0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726,
|
||||
0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C,
|
||||
0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750,
|
||||
0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764,
|
||||
0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784,
|
||||
0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E,
|
||||
0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE,
|
||||
0xA7C0, 0xA7C2, 0xA7C9, 0xA7CE, 0xA7D0, 0xA7D2, 0xA7D4, 0xA7D6, 0xA7D8, 0xA7DA,
|
||||
0xA7DC, 0xA7F5,
|
||||
0x0100, 0x0102, 0x0104, 0x0106, 0x0108, 0x010A, 0x010C, 0x010E,
|
||||
0x0110, 0x0112, 0x0114, 0x0116, 0x0118, 0x011A, 0x011C, 0x011E,
|
||||
0x0120, 0x0122, 0x0124, 0x0126, 0x0128, 0x012A, 0x012C, 0x012E,
|
||||
0x0130, 0x0132, 0x0134, 0x0136, 0x0139, 0x013B, 0x013D, 0x013F,
|
||||
0x0141, 0x0143, 0x0145, 0x0147, 0x014A, 0x014C, 0x014E, 0x0150,
|
||||
0x0152, 0x0154, 0x0156, 0x0158, 0x015A, 0x015C, 0x015E, 0x0160,
|
||||
0x0162, 0x0164, 0x0166, 0x0168, 0x016A, 0x016C, 0x016E, 0x0170,
|
||||
0x0172, 0x0174, 0x0176, 0x017B, 0x017D, 0x0184, 0x01A2, 0x01A4,
|
||||
0x01A9, 0x01AC, 0x01B5, 0x01BC, 0x01C4, 0x01C7, 0x01CA, 0x01CD,
|
||||
0x01CF, 0x01D1, 0x01D3, 0x01D5, 0x01D7, 0x01D9, 0x01DB, 0x01DE,
|
||||
0x01E0, 0x01E2, 0x01E4, 0x01E6, 0x01E8, 0x01EA, 0x01EC, 0x01EE,
|
||||
0x01F1, 0x01F4, 0x01FA, 0x01FC, 0x01FE, 0x0200, 0x0202, 0x0204,
|
||||
0x0206, 0x0208, 0x020A, 0x020C, 0x020E, 0x0210, 0x0212, 0x0214,
|
||||
0x0216, 0x0218, 0x021A, 0x021C, 0x021E, 0x0220, 0x0222, 0x0224,
|
||||
0x0226, 0x0228, 0x022A, 0x022C, 0x022E, 0x0230, 0x0232, 0x0241,
|
||||
0x0248, 0x024A, 0x024C, 0x024E, 0x0370, 0x0372, 0x0376, 0x037F,
|
||||
0x0386, 0x038C, 0x03CF, 0x03D8, 0x03DA, 0x03DC, 0x03DE, 0x03E0,
|
||||
0x03E2, 0x03E4, 0x03E6, 0x03E8, 0x03EA, 0x03EC, 0x03EE, 0x03F4,
|
||||
0x03F7, 0x0460, 0x0462, 0x0464, 0x0466, 0x0468, 0x046A, 0x046C,
|
||||
0x046E, 0x0470, 0x0472, 0x0474, 0x0476, 0x0478, 0x047A, 0x047C,
|
||||
0x047E, 0x0480, 0x048A, 0x048C, 0x048E, 0x0490, 0x0492, 0x0494,
|
||||
0x0496, 0x0498, 0x049A, 0x049C, 0x049E, 0x04A0, 0x04A2, 0x04A4,
|
||||
0x04A6, 0x04A8, 0x04AA, 0x04AC, 0x04AE, 0x04B0, 0x04B2, 0x04B4,
|
||||
0x04B6, 0x04B8, 0x04BA, 0x04BC, 0x04BE, 0x04C3, 0x04C5, 0x04C7,
|
||||
0x04C9, 0x04CB, 0x04CD, 0x04D0, 0x04D2, 0x04D4, 0x04D6, 0x04D8,
|
||||
0x04DA, 0x04DC, 0x04DE, 0x04E0, 0x04E2, 0x04E4, 0x04E6, 0x04E8,
|
||||
0x04EA, 0x04EC, 0x04EE, 0x04F0, 0x04F2, 0x04F4, 0x04F6, 0x04F8,
|
||||
0x04FA, 0x04FC, 0x04FE, 0x0500, 0x0502, 0x0504, 0x0506, 0x0508,
|
||||
0x050A, 0x050C, 0x050E, 0x0510, 0x0512, 0x0514, 0x0516, 0x0518,
|
||||
0x051A, 0x051C, 0x051E, 0x0520, 0x0522, 0x0524, 0x0526, 0x0528,
|
||||
0x052A, 0x052C, 0x052E, 0x10C7, 0x10CD, 0x1C89, 0x1E00, 0x1E02,
|
||||
0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12,
|
||||
0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22,
|
||||
0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32,
|
||||
0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42,
|
||||
0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52,
|
||||
0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62,
|
||||
0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72,
|
||||
0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82,
|
||||
0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92,
|
||||
0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA,
|
||||
0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA,
|
||||
0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA,
|
||||
0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA,
|
||||
0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA,
|
||||
0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA,
|
||||
0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107,
|
||||
0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67,
|
||||
0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88,
|
||||
0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98,
|
||||
0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8,
|
||||
0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8,
|
||||
0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8,
|
||||
0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8,
|
||||
0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2,
|
||||
0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E,
|
||||
0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E,
|
||||
0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680,
|
||||
0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690,
|
||||
0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726,
|
||||
0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738,
|
||||
0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748,
|
||||
0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758,
|
||||
0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768,
|
||||
0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784,
|
||||
0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A,
|
||||
0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6,
|
||||
0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7CE,
|
||||
0xA7D0, 0xA7D2, 0xA7D4, 0xA7D6, 0xA7D8, 0xA7DA, 0xA7DC, 0xA7F5,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -980,10 +1009,11 @@ lu_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
mc_singles16 := [?]u16{
|
||||
0x0903, 0x093B, 0x09D7, 0x0A03, 0x0A83, 0x0AC9, 0x0B3E, 0x0B40, 0x0B57, 0x0BD7,
|
||||
0x0CBE, 0x0CF3, 0x0D57, 0x0F7F, 0x1031, 0x1038, 0x108F, 0x1715, 0x1734, 0x17B6,
|
||||
0x1A55, 0x1A57, 0x1A61, 0x1B04, 0x1B35, 0x1B3B, 0x1B82, 0x1BA1, 0x1BAA, 0x1BE7,
|
||||
0x1BEE, 0x1CE1, 0x1CF7, 0xA827, 0xA983, 0xAA4D, 0xAA7B, 0xAA7D, 0xAAEB, 0xAAF5,
|
||||
0x0903, 0x093B, 0x09D7, 0x0A03, 0x0A83, 0x0AC9, 0x0B3E, 0x0B40,
|
||||
0x0B57, 0x0BD7, 0x0CBE, 0x0CF3, 0x0D57, 0x0F7F, 0x1031, 0x1038,
|
||||
0x108F, 0x1715, 0x1734, 0x17B6, 0x1A55, 0x1A57, 0x1A61, 0x1B04,
|
||||
0x1B35, 0x1B3B, 0x1B82, 0x1BA1, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CE1,
|
||||
0x1CF7, 0xA827, 0xA983, 0xAA4D, 0xAA7B, 0xAA7D, 0xAAEB, 0xAAF5,
|
||||
0xABEC,
|
||||
}
|
||||
|
||||
@@ -1145,14 +1175,16 @@ me_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
mn_singles16 := [?]u16{
|
||||
0x05BF, 0x05C7, 0x0670, 0x0711, 0x07FD, 0x093A, 0x093C, 0x094D, 0x0981, 0x09BC,
|
||||
0x09CD, 0x09FE, 0x0A3C, 0x0A51, 0x0A75, 0x0ABC, 0x0ACD, 0x0B01, 0x0B3C, 0x0B3F,
|
||||
0x0B4D, 0x0B82, 0x0BC0, 0x0BCD, 0x0C00, 0x0C04, 0x0C3C, 0x0C81, 0x0CBC, 0x0CBF,
|
||||
0x0CC6, 0x0D4D, 0x0D81, 0x0DCA, 0x0DD6, 0x0E31, 0x0EB1, 0x0F35, 0x0F37, 0x0F39,
|
||||
0x0FC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B,
|
||||
0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED,
|
||||
0x1CF4, 0x20E1, 0x2D7F, 0xA66F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3,
|
||||
0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED,
|
||||
0x05BF, 0x05C7, 0x0670, 0x0711, 0x07FD, 0x093A, 0x093C, 0x094D,
|
||||
0x0981, 0x09BC, 0x09CD, 0x09FE, 0x0A3C, 0x0A51, 0x0A75, 0x0ABC,
|
||||
0x0ACD, 0x0B01, 0x0B3C, 0x0B3F, 0x0B4D, 0x0B82, 0x0BC0, 0x0BCD,
|
||||
0x0C00, 0x0C04, 0x0C3C, 0x0C81, 0x0CBC, 0x0CBF, 0x0CC6, 0x0D4D,
|
||||
0x0D81, 0x0DCA, 0x0DD6, 0x0E31, 0x0EB1, 0x0F35, 0x0F37, 0x0F39,
|
||||
0x0FC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9,
|
||||
0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B34, 0x1B3C,
|
||||
0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x20E1, 0x2D7F, 0xA66F,
|
||||
0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43,
|
||||
0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED,
|
||||
0xFB1E,
|
||||
}
|
||||
|
||||
@@ -1642,8 +1674,8 @@ pc_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
pd_singles16 := [?]u16{
|
||||
0x002D, 0x058A, 0x05BE, 0x1400, 0x1806, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C,
|
||||
0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D,
|
||||
0x002D, 0x058A, 0x05BE, 0x1400, 0x1806, 0x2E17, 0x2E1A, 0x2E40,
|
||||
0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -1666,14 +1698,16 @@ pd_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
pe_singles16 := [?]u16{
|
||||
0x0029, 0x005D, 0x007D, 0x0F3B, 0x0F3D, 0x169C, 0x2046, 0x207E, 0x208E, 0x2309,
|
||||
0x230B, 0x232A, 0x2769, 0x276B, 0x276D, 0x276F, 0x2771, 0x2773, 0x2775, 0x27C6,
|
||||
0x27E7, 0x27E9, 0x27EB, 0x27ED, 0x27EF, 0x2984, 0x2986, 0x2988, 0x298A, 0x298C,
|
||||
0x298E, 0x2990, 0x2992, 0x2994, 0x2996, 0x2998, 0x29D9, 0x29DB, 0x29FD, 0x2E23,
|
||||
0x2E25, 0x2E27, 0x2E29, 0x2E56, 0x2E58, 0x2E5A, 0x2E5C, 0x3009, 0x300B, 0x300D,
|
||||
0x300F, 0x3011, 0x3015, 0x3017, 0x3019, 0x301B, 0xFD3E, 0xFE18, 0xFE36, 0xFE38,
|
||||
0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48, 0xFE5A, 0xFE5C, 0xFE5E,
|
||||
0xFF09, 0xFF3D, 0xFF5D, 0xFF60, 0xFF63,
|
||||
0x0029, 0x005D, 0x007D, 0x0F3B, 0x0F3D, 0x169C, 0x2046, 0x207E,
|
||||
0x208E, 0x2309, 0x230B, 0x232A, 0x2769, 0x276B, 0x276D, 0x276F,
|
||||
0x2771, 0x2773, 0x2775, 0x27C6, 0x27E7, 0x27E9, 0x27EB, 0x27ED,
|
||||
0x27EF, 0x2984, 0x2986, 0x2988, 0x298A, 0x298C, 0x298E, 0x2990,
|
||||
0x2992, 0x2994, 0x2996, 0x2998, 0x29D9, 0x29DB, 0x29FD, 0x2E23,
|
||||
0x2E25, 0x2E27, 0x2E29, 0x2E56, 0x2E58, 0x2E5A, 0x2E5C, 0x3009,
|
||||
0x300B, 0x300D, 0x300F, 0x3011, 0x3015, 0x3017, 0x3019, 0x301B,
|
||||
0xFD3E, 0xFE18, 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40,
|
||||
0xFE42, 0xFE44, 0xFE48, 0xFE5A, 0xFE5C, 0xFE5E, 0xFF09, 0xFF3D,
|
||||
0xFF5D, 0xFF60, 0xFF63,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -1688,7 +1722,8 @@ pe_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
pf_singles16 := [?]u16{
|
||||
0x00BB, 0x2019, 0x201D, 0x203A, 0x2E03, 0x2E05, 0x2E0A, 0x2E0D, 0x2E1D, 0x2E21,
|
||||
0x00BB, 0x2019, 0x201D, 0x203A, 0x2E03, 0x2E05, 0x2E0A, 0x2E0D,
|
||||
0x2E1D, 0x2E21,
|
||||
}
|
||||
|
||||
pf_ranges := Range{
|
||||
@@ -1697,7 +1732,8 @@ pf_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
pi_singles16 := [?]u16{
|
||||
0x00AB, 0x2018, 0x201F, 0x2039, 0x2E02, 0x2E04, 0x2E09, 0x2E0C, 0x2E1C, 0x2E20,
|
||||
0x00AB, 0x2018, 0x201F, 0x2039, 0x2E02, 0x2E04, 0x2E09, 0x2E0C,
|
||||
0x2E1C, 0x2E20,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -1712,10 +1748,11 @@ pi_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
po_singles16 := [?]u16{
|
||||
0x002A, 0x002C, 0x005C, 0x00A1, 0x00A7, 0x00BF, 0x037E, 0x0387, 0x0589, 0x05C0,
|
||||
0x05C3, 0x05C6, 0x061B, 0x06D4, 0x085E, 0x0970, 0x09FD, 0x0A76, 0x0AF0, 0x0C77,
|
||||
0x0C84, 0x0DF4, 0x0E4F, 0x0F14, 0x0F85, 0x10FB, 0x166E, 0x1CD3, 0x2053, 0x2D70,
|
||||
0x2E0B, 0x2E1B, 0x2E41, 0x303D, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB,
|
||||
0x002A, 0x002C, 0x005C, 0x00A1, 0x00A7, 0x00BF, 0x037E, 0x0387,
|
||||
0x0589, 0x05C0, 0x05C3, 0x05C6, 0x061B, 0x06D4, 0x085E, 0x0970,
|
||||
0x09FD, 0x0A76, 0x0AF0, 0x0C77, 0x0C84, 0x0DF4, 0x0E4F, 0x0F14,
|
||||
0x0F85, 0x10FB, 0x166E, 0x1CD3, 0x2053, 0x2D70, 0x2E0B, 0x2E1B,
|
||||
0x2E41, 0x303D, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB,
|
||||
0xFE19, 0xFE30, 0xFE68, 0xFF0A, 0xFF0C, 0xFF3C, 0xFF61,
|
||||
}
|
||||
|
||||
@@ -1867,14 +1904,16 @@ po_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
ps_singles16 := [?]u16{
|
||||
0x0028, 0x005B, 0x007B, 0x0F3A, 0x0F3C, 0x169B, 0x201A, 0x201E, 0x2045, 0x207D,
|
||||
0x208D, 0x2308, 0x230A, 0x2329, 0x2768, 0x276A, 0x276C, 0x276E, 0x2770, 0x2772,
|
||||
0x2774, 0x27C5, 0x27E6, 0x27E8, 0x27EA, 0x27EC, 0x27EE, 0x2983, 0x2985, 0x2987,
|
||||
0x2989, 0x298B, 0x298D, 0x298F, 0x2991, 0x2993, 0x2995, 0x2997, 0x29D8, 0x29DA,
|
||||
0x29FC, 0x2E22, 0x2E24, 0x2E26, 0x2E28, 0x2E42, 0x2E55, 0x2E57, 0x2E59, 0x2E5B,
|
||||
0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016, 0x3018, 0x301A, 0x301D,
|
||||
0xFD3F, 0xFE17, 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43,
|
||||
0xFE47, 0xFE59, 0xFE5B, 0xFE5D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F, 0xFF62,
|
||||
0x0028, 0x005B, 0x007B, 0x0F3A, 0x0F3C, 0x169B, 0x201A, 0x201E,
|
||||
0x2045, 0x207D, 0x208D, 0x2308, 0x230A, 0x2329, 0x2768, 0x276A,
|
||||
0x276C, 0x276E, 0x2770, 0x2772, 0x2774, 0x27C5, 0x27E6, 0x27E8,
|
||||
0x27EA, 0x27EC, 0x27EE, 0x2983, 0x2985, 0x2987, 0x2989, 0x298B,
|
||||
0x298D, 0x298F, 0x2991, 0x2993, 0x2995, 0x2997, 0x29D8, 0x29DA,
|
||||
0x29FC, 0x2E22, 0x2E24, 0x2E26, 0x2E28, 0x2E42, 0x2E55, 0x2E57,
|
||||
0x2E59, 0x2E5B, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014,
|
||||
0x3016, 0x3018, 0x301A, 0x301D, 0xFD3F, 0xFE17, 0xFE35, 0xFE37,
|
||||
0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47, 0xFE59,
|
||||
0xFE5B, 0xFE5D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F, 0xFF62,
|
||||
}
|
||||
|
||||
ps_ranges := Range{
|
||||
@@ -1883,8 +1922,8 @@ ps_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
sc_singles16 := [?]u16{
|
||||
0x0024, 0x058F, 0x060B, 0x09FB, 0x0AF1, 0x0BF9, 0x0E3F, 0x17DB, 0xA838, 0xFDFC,
|
||||
0xFE69, 0xFF04,
|
||||
0x0024, 0x058F, 0x060B, 0x09FB, 0x0AF1, 0x0BF9, 0x0E3F, 0x17DB,
|
||||
0xA838, 0xFDFC, 0xFE69, 0xFF04,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -1916,8 +1955,8 @@ sc_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
sk_singles16 := [?]u16{
|
||||
0x005E, 0x0060, 0x00A8, 0x00AF, 0x00B4, 0x00B8, 0x02ED, 0x0375, 0x0888, 0x1FBD,
|
||||
0xAB5B, 0xFF3E, 0xFF40, 0xFFE3,
|
||||
0x005E, 0x0060, 0x00A8, 0x00AF, 0x00B4, 0x00B8, 0x02ED, 0x0375,
|
||||
0x0888, 0x1FBD, 0xAB5B, 0xFF3E, 0xFF40, 0xFFE3,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -1953,9 +1992,10 @@ sk_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
sm_singles16 := [?]u16{
|
||||
0x002B, 0x007C, 0x007E, 0x00AC, 0x00B1, 0x00D7, 0x00F7, 0x03F6, 0x2044, 0x2052,
|
||||
0x2118, 0x214B, 0x21A0, 0x21A3, 0x21A6, 0x21AE, 0x21D2, 0x21D4, 0x237C, 0x25B7,
|
||||
0x25C1, 0x266F, 0xFB29, 0xFE62, 0xFF0B, 0xFF5C, 0xFF5E, 0xFFE2,
|
||||
0x002B, 0x007C, 0x007E, 0x00AC, 0x00B1, 0x00D7, 0x00F7, 0x03F6,
|
||||
0x2044, 0x2052, 0x2118, 0x214B, 0x21A0, 0x21A3, 0x21A6, 0x21AE,
|
||||
0x21D2, 0x21D4, 0x237C, 0x25B7, 0x25C1, 0x266F, 0xFB29, 0xFE62,
|
||||
0xFF0B, 0xFF5C, 0xFF5E, 0xFFE2,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -2009,10 +2049,11 @@ sm_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
so_singles16 := [?]u16{
|
||||
0x00A6, 0x00A9, 0x00AE, 0x00B0, 0x0482, 0x06DE, 0x06E9, 0x07F6, 0x09FA, 0x0B70,
|
||||
0x0BFA, 0x0C7F, 0x0D4F, 0x0D79, 0x0F13, 0x0F34, 0x0F36, 0x0F38, 0x166D, 0x1940,
|
||||
0x2114, 0x2125, 0x2127, 0x2129, 0x212E, 0x214A, 0x214F, 0x21D3, 0x3004, 0x3020,
|
||||
0x31EF, 0x3250, 0xA839, 0xFFE4, 0xFFE8,
|
||||
0x00A6, 0x00A9, 0x00AE, 0x00B0, 0x0482, 0x06DE, 0x06E9, 0x07F6,
|
||||
0x09FA, 0x0B70, 0x0BFA, 0x0C7F, 0x0D4F, 0x0D79, 0x0F13, 0x0F34,
|
||||
0x0F36, 0x0F38, 0x166D, 0x1940, 0x2114, 0x2125, 0x2127, 0x2129,
|
||||
0x212E, 0x214A, 0x214F, 0x21D3, 0x3004, 0x3020, 0x31EF, 0x3250,
|
||||
0xA839, 0xFFE4, 0xFFE8,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
@@ -2233,7 +2274,8 @@ extra_digits_ranges := Range{
|
||||
|
||||
@(rodata)
|
||||
other_lowercase_singles16 := [?]u16{
|
||||
0x00AA, 0x00BA, 0x0345, 0x037A, 0x10FC, 0x1D78, 0x2071, 0x207F, 0xA770, 0xAB69,
|
||||
0x00AA, 0x00BA, 0x0345, 0x037A, 0x10FC, 0x1D78, 0x2071, 0x207F,
|
||||
0xA770, 0xAB69,
|
||||
}
|
||||
|
||||
@(rodata)
|
||||
|
||||
@@ -3,129 +3,112 @@ package ucd
|
||||
import "core:fmt"
|
||||
import "core:os"
|
||||
import "core:strings"
|
||||
import "base:runtime"
|
||||
import "core:mem"
|
||||
import "core:io"
|
||||
import "core:log"
|
||||
|
||||
// Table 2-3. Types of Code Points
|
||||
// Table 4-4. General_Category Values page 229
|
||||
|
||||
// Reference https://www.unicode.org/reports/tr44/
|
||||
|
||||
|
||||
/*
|
||||
Formats a Dynamic_Range into a set of fixed length arrays and writes
|
||||
corresponding to a io.Writer. The value of the parameter `name`will be used as a
|
||||
prefix to the array names. If a dynamic array contained in the `range` is empty,
|
||||
no corresponding fixed length array will be written.
|
||||
Formats a `Dynamic_Range` into a set of fixed length arrays and writes them to an `io.Writer`.
|
||||
The value of the parameter `name` will be used as a prefix to the array names.
|
||||
|
||||
If a dynamic array contained in the `range` is empty, no corresponding fixed length array will be written.
|
||||
|
||||
Inputs:
|
||||
- writer: The io.Writer to be written to.
|
||||
- writer: The `io.Writer` to be written to.
|
||||
- name: Prefix to add to any array that is written to `writer`
|
||||
- range: The Dynamic_Range to format and write to writer.
|
||||
- range: `The Dynamic_Range` to format and write to writer.
|
||||
*/
|
||||
write_range_arrays :: proc(writer: io.Writer, name: string, range: Dynamic_Range) -> int {
|
||||
n_written : int
|
||||
write_range_arrays :: proc(writer: io.Writer, name: string, range: Dynamic_Range) {
|
||||
if len(range.single_16) > 0 {
|
||||
n_written += fmt.wprintln(writer, "@(rodata)")
|
||||
n_written += fmt.wprintf(writer, "%s_singles16 := [?]u16{{", name)
|
||||
line_length := 100
|
||||
for v in range.single_16 {
|
||||
str_buffer : [32]byte
|
||||
str := fmt.bprintf(str_buffer[:], " 0x%4X,",v)
|
||||
|
||||
if line_length + len(str) > 80 {
|
||||
n_written += fmt.wprintf(writer, "\n")
|
||||
line_length = fmt.wprintf(writer, "\t0x%4X,",v)
|
||||
n_written += line_length
|
||||
fmt.wprintln(writer, "@(rodata)")
|
||||
fmt.wprintf(writer, "%s_singles16 := [?]u16{{", name)
|
||||
for v, count in range.single_16 {
|
||||
if count % 8 == 0 {
|
||||
fmt.wprintf(writer, "\n\t0x%4X,", v)
|
||||
continue
|
||||
} else {
|
||||
temp, _ := io.write_string(writer, str)
|
||||
line_length += temp
|
||||
n_written += temp
|
||||
fmt.wprintf(writer, " 0x%4X,", v)
|
||||
}
|
||||
}
|
||||
n_written += fmt.wprintln(writer, "\n}\n")
|
||||
fmt.wprintln(writer, "\n}\n")
|
||||
}
|
||||
|
||||
if len(range.ranges_16) > 0 {
|
||||
n_written += fmt.wprintln(writer, "@(rodata)")
|
||||
n_written += fmt.wprintfln(writer, "%s_ranges16 := [?]u16{{", name)
|
||||
fmt.wprintln(writer, "@(rodata)")
|
||||
fmt.wprintfln(writer, "%s_ranges16 := [?]u16{{", name)
|
||||
for v in range.ranges_16 {
|
||||
n_written += fmt.wprintfln(writer, "\t0x%4X, 0x%4X,", v.first, v.last)
|
||||
fmt.wprintfln(writer, "\t0x%4X, 0x%4X,", v.first, v.last)
|
||||
}
|
||||
n_written += fmt.wprintln(writer, "}\n")
|
||||
fmt.wprintln(writer, "}\n")
|
||||
}
|
||||
|
||||
if len(range.single_32) > 0 {
|
||||
n_written += fmt.wprintln(writer, "@(rodata)")
|
||||
n_written += fmt.wprintf(writer, "%s_singles32 := [?]i32{{", name)
|
||||
line_length := 100
|
||||
for v in range.single_32 {
|
||||
str_buffer : [32]byte
|
||||
str := fmt.bprintf(str_buffer[:], " 0x%4X,",v)
|
||||
|
||||
if line_length + len(str) > 80 {
|
||||
n_written += fmt.wprint(writer, "\n")
|
||||
line_length = fmt.wprintf(writer, "\t0x%4X,",v)
|
||||
n_written += line_length
|
||||
fmt.wprintln(writer, "@(rodata)")
|
||||
fmt.wprintf(writer, "%s_singles32 := [?]i32{{", name)
|
||||
for v, count in range.single_32 {
|
||||
if count % 8 == 0 {
|
||||
fmt.wprintf(writer, "\n\t0x%4X,", v)
|
||||
continue
|
||||
} else {
|
||||
temp, _ := io.write_string(writer, str)
|
||||
line_length += temp
|
||||
n_written += temp
|
||||
fmt.wprintf(writer, " 0x%4X,", v)
|
||||
}
|
||||
}
|
||||
n_written += fmt.wprintln(writer, "\n}\n")
|
||||
fmt.wprintln(writer, "\n}\n")
|
||||
}
|
||||
|
||||
if len(range.ranges_32) > 0 {
|
||||
n_written += fmt.wprintln(writer, "@(rodata)")
|
||||
n_written += fmt.wprintfln(writer, "%s_ranges32 := [?]i32{{", name)
|
||||
fmt.wprintln(writer, "@(rodata)")
|
||||
fmt.wprintfln(writer, "%s_ranges32 := [?]i32{{", name)
|
||||
for v in range.ranges_32 {
|
||||
n_written += fmt.wprintfln(writer, "\t0x%4X, 0x%4X,", v.first, v.last)
|
||||
fmt.wprintfln(writer, "\t0x%4X, 0x%4X,", v.first, v.last)
|
||||
}
|
||||
n_written += fmt.wprintln(writer, "}\n")
|
||||
fmt.wprintln(writer, "}\n")
|
||||
}
|
||||
|
||||
return n_written
|
||||
return
|
||||
}
|
||||
|
||||
write_range :: proc(writer: io.Writer, name: union{string, General_Category}, range: Dynamic_Range) -> (n_written: int) {
|
||||
write_range :: proc(writer: io.Writer, name: union{string, General_Category}, range: Dynamic_Range) {
|
||||
buffer: [128]byte
|
||||
str: string
|
||||
|
||||
switch n in name{
|
||||
switch n in name {
|
||||
case string:
|
||||
assert(len(n) <= len(buffer))
|
||||
runtime.mem_copy(&buffer[0], raw_data(n), len(n))
|
||||
str = transmute(string) buffer[0:len(n)]
|
||||
copy(buffer[:], n)
|
||||
str = string(buffer[:len(n)])
|
||||
|
||||
case General_Category:
|
||||
str = fmt.bprintf(buffer[:], "%s", n)
|
||||
}
|
||||
|
||||
// lowercase table names
|
||||
for &b in buffer[0:len(str)] {
|
||||
if b >= 'A' && b <= 'Z' {
|
||||
b += ('a' - 'A')
|
||||
}
|
||||
}
|
||||
|
||||
n_written = write_range_arrays(writer, str, range)
|
||||
write_range_arrays(writer, str, range)
|
||||
|
||||
n_written += fmt.wprintfln(writer, "%s_ranges := Range{{", str)
|
||||
fmt.wprintfln(writer, "%s_ranges := Range{{", str)
|
||||
if len(range.single_16) > 0 {
|
||||
n_written += fmt.wprintfln(writer, "\tsingle_16 = %s_singles16[:],", str)
|
||||
fmt.wprintfln(writer, "\tsingle_16 = %s_singles16[:],", str)
|
||||
}
|
||||
if len(range.ranges_16) > 0 {
|
||||
n_written += fmt.wprintfln(writer, "\tranges_16 = %s_ranges16[:],", str)
|
||||
fmt.wprintfln(writer, "\tranges_16 = %s_ranges16[:],", str)
|
||||
}
|
||||
if len(range.single_32) > 0 {
|
||||
n_written += fmt.wprintfln(writer, "\tsingle_32 = %s_singles32[:],", str)
|
||||
fmt.wprintfln(writer, "\tsingle_32 = %s_singles32[:],", str)
|
||||
}
|
||||
if len(range.ranges_32) > 0 {
|
||||
n_written += fmt.wprintfln(writer, "\tranges_32 = %s_ranges32[:],", str)
|
||||
fmt.wprintfln(writer, "\tranges_32 = %s_ranges32[:],", str)
|
||||
}
|
||||
n_written += fmt.wprintln(writer, "}\n")
|
||||
fmt.wprintln(writer, "}\n")
|
||||
|
||||
return
|
||||
}
|
||||
@@ -283,13 +266,13 @@ main :: proc() {
|
||||
//.Zs, // Space_Separator, a space character (of various non-zero widths)
|
||||
}
|
||||
|
||||
write_loop : for gc, i in general_category_ranges {
|
||||
write_loop: for range, category in general_category_ranges {
|
||||
for excluded in to_exclude {
|
||||
if i == excluded {
|
||||
if category == excluded {
|
||||
continue write_loop
|
||||
}
|
||||
}
|
||||
write_range(writer, i, gc)
|
||||
write_range(writer, category, range)
|
||||
}
|
||||
|
||||
write_range(writer, "extra_digits", extra_digits)
|
||||
|
||||
@@ -33,18 +33,18 @@ load_unicode_data :: proc(filename: string, allocator := context.allocator) -> (
|
||||
|
||||
str := string(data)
|
||||
line_loop: for _line in strings.split_lines_iterator(&str) {
|
||||
// Ignore any comments
|
||||
line, _, _ := strings.partition(_line, "#")
|
||||
if len(line) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
// Skip empty lines
|
||||
if len(line) == 0 { continue }
|
||||
|
||||
is_range := false
|
||||
cp: rune
|
||||
name: string
|
||||
gc: General_Category
|
||||
|
||||
num_6 : string
|
||||
num_7 : string
|
||||
cp: rune
|
||||
name: string
|
||||
gc: General_Category
|
||||
num_6: string
|
||||
num_7: string
|
||||
nt := Numeric_Type.None
|
||||
|
||||
field_num := 0
|
||||
@@ -76,7 +76,7 @@ load_unicode_data :: proc(filename: string, allocator := context.allocator) -> (
|
||||
case 3: // Canonical_Combining_Class
|
||||
case 4: // Bidi Class
|
||||
case 5: // Decomposition_Type and Decomposition_Mapping
|
||||
// Numeric_Type and Numberic_Value
|
||||
// Numeric_Type and Numeric_Value
|
||||
case 6:
|
||||
num_6 = field
|
||||
|
||||
|
||||
Reference in New Issue
Block a user