core/unicode

unicode

Types

1

Range

Range :: struct { single_16: []u16, ranges_16: []u16, single_32: []i32, ranges_32: []i32, }Source

------ GENERATED ------ DO NOT EDIT ------ GENERATED ------ DO NOT EDIT ------ GENERATED ------ This file is generated from UnicodeData.txt and PropList.txt. These files

are part of the Unicode Database (UCD) and are covered by the license
	listed further down. They may be downloaded from the following locations;

	https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
	https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt
	https://www.unicode.org/license.txt

	------------------------------------------------------------------------------
	UNICODE LICENSE V3

	COPYRIGHT AND PERMISSION NOTICE

	Copyright © 1991-2026 Unicode, Inc.

	NOTICE TO USER: Carefully read the following legal agreement. BY
	DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
	SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
	TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
	DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.

	Permission is hereby granted, free of charge, to any person obtaining a
	copy of data files and any associated documentation (the "Data Files") or
	software and any associated documentation (the "Software") to deal in the
	Data Files or Software without restriction, including without limitation
	the rights to use, copy, modify, merge, publish, distribute, and/or sell
	copies of the Data Files or Software, and to permit persons to whom the
	Data Files or Software are furnished to do so, provided that either (a)
	this copyright and permission notice appear with all copies of the Data
	Files or Software, or (b) this copyright and permission notice appear in
	associated Documentation.

	THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
	KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
	MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
	THIRD PARTY RIGHTS.

	IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
	BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
	OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
	WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
	ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
	FILES OR SOFTWARE.

	Except as contained in this notice, the name of a copyright holder shall
	not be used in advertising or otherwise to promote the sale, use or other
	dealings in these Data Files or Software without prior written
	authorization of the copyright holder.

Constants

8

Variables

123

alpha_ranges

alpha_ranges :: [?]i32 = [?]i32{ 0x00d8, 0x00f6, 0x00f8, 0x01f5, 0x0250, 0x02a8, 0x038e, 0x03a1, 0x03a3, 0x03ce, 0x03d0, 0x03d6, 0x03e2, 0x03f3, 0x0490, 0x04c4, 0x0561, 0x0587, 0x05d0, 0x05ea, 0x05f0, 0x05f2, 0x0621, 0x063a, 0x0640, 0x064a, 0x0671, 0x06Source

alpha_singlets

alpha_singlets :: [?]i32 = [?]i32{ 0x00aa, 0x00b5, 0x00ba, 0x03da, 0x03dc, 0x03de, 0x03e0, 0x06d5, 0x09b2, 0x0a5e, 0x0a8d, 0x0ae0, 0x0b9c, 0x0cde, 0x0e4f, 0x0e84, 0x0e8a, 0x0e8d, 0x0ea5, 0x0ea7, 0x0eb0, 0x0ebd, 0x1fbe, 0x207f, 0x20a8, 0x2102, 0x2107, 0x21Source

grapheme_extend_ranges

grapheme_extend_ranges :: [?]i32 = [?]i32 { 0x0300, 0x036F, 0x0483, 0x0487, 0x0488, 0x0489, 0x0591, 0x05BD, 0x05BF, 0x05BF, 0x05C1, 0x05C2, 0x05C4, 0x05C5, 0x05C7, 0x05C7, 0x0610, 0x061A, 0x064B, 0x065F, 0x0670, 0x0670, 0x06D6, 0x06DC, 0x06DF, 0x06E4, 0x06E7, 0x06E8, 0x06EA, Source

hangul_syllable_lvt_ranges

hangul_syllable_lvt_ranges :: [?]i32 = [?]i32 { 0xAC01, 0xAC1B, 0xAC1D, 0xAC37, 0xAC39, 0xAC53, 0xAC55, 0xAC6F, 0xAC71, 0xAC8B, 0xAC8D, 0xACA7, 0xACA9, 0xACC3, 0xACC5, 0xACDF, 0xACE1, 0xACFB, 0xACFD, 0xAD17, 0xAD19, 0xAD33, 0xAD35, 0xAD4F, 0xAD51, 0xAD6B, 0xAD6D, 0xAD87, 0xAD89, Source

ll_ranges16

ll_ranges16 :: [?]u16 = [?]u16{ 0x0061, 0x007A, 0x00DF, 0x00F6, 0x00F8, 0x00FF, 0x0137, 0x0138, 0x0148, 0x0149, 0x017E, 0x0180, 0x018C, 0x018D, 0x0199, 0x019B, 0x01AA, 0x01AB, 0x01B9, 0x01BA, 0x01BD, 0x01BF, 0x01DC, 0x01DD, 0x01EF, 0x01F0, 0x0233, 0x0239, 0x023F, 0Source

ll_ranges32

ll_ranges32 :: [?]i32 = [?]i32{ 0x10428, 0x1044F, 0x104D8, 0x104FB, 0x10597, 0x105A1, 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, 0x10CC0, 0x10CF2, 0x10D70, 0x10D85, 0x118C0, 0x118DF, 0x16E60, 0x16E7F, 0x16EBB, 0x16ED3, 0x1D41A, 0x1D433, 0x1D44E, 0x1D454, Source

ll_singles16

ll_singles16 :: [?]u16 = [?]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, 0x01Source

lm_ranges16

lm_ranges16 :: [?]u16 = [?]u16{ 0x02B0, 0x02C1, 0x02C6, 0x02D1, 0x02E0, 0x02E4, 0x06E5, 0x06E6, 0x07F4, 0x07F5, 0x1C78, 0x1C7D, 0x1D2C, 0x1D6A, 0x1D9B, 0x1DBF, 0x2090, 0x209C, 0x2C7C, 0x2C7D, 0x3031, 0x3035, 0x309D, 0x309E, 0x30FC, 0x30FE, 0xA4F8, 0xA4FD, 0xA69C, 0Source

lm_ranges32

lm_ranges32 :: [?]i32 = [?]i32{ 0x10780, 0x10785, 0x10787, 0x107B0, 0x107B2, 0x107BA, 0x16B40, 0x16B43, 0x16D40, 0x16D42, 0x16D6B, 0x16D6C, 0x16F93, 0x16F9F, 0x16FE0, 0x16FE1, 0x16FF2, 0x16FF3, 0x1AFF0, 0x1AFF3, 0x1AFF5, 0x1AFFB, 0x1AFFD, 0x1AFFE, 0x1E030, 0x1E06D, Source

lm_singles16

lm_singles16 :: [?]u16 = [?]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, 0xA9Source

lo_ranges16

lo_ranges16 :: [?]u16 = [?]u16{ 0x01C0, 0x01C3, 0x0294, 0x0295, 0x05D0, 0x05EA, 0x05EF, 0x05F2, 0x0620, 0x063F, 0x0641, 0x064A, 0x066E, 0x066F, 0x0671, 0x06D3, 0x06EE, 0x06EF, 0x06FA, 0x06FC, 0x0712, 0x072F, 0x074D, 0x07A5, 0x07CA, 0x07EA, 0x0800, 0x0815, 0x0840, 0Source

lo_ranges32

lo_ranges32 :: [?]i32 = [?]i32{ 0x10000, 0x1000B, 0x1000D, 0x10026, 0x10028, 0x1003A, 0x1003C, 0x1003D, 0x1003F, 0x1004D, 0x10050, 0x1005D, 0x10080, 0x100FA, 0x10280, 0x1029C, 0x102A0, 0x102D0, 0x10300, 0x1031F, 0x1032D, 0x10340, 0x10342, 0x10349, 0x10350, 0x10375, Source

lo_singles16

lo_singles16 :: [?]u16 = [?]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, 0x0ESource

lo_singles32

lo_singles32 :: [?]i32 = [?]i32{ 0x10808, 0x1083C, 0x10A00, 0x10D4F, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x1138B, 0x1138E, 0x113B7, 0x113D1, 0x113D3, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0Source

lu_ranges16

lu_ranges16 :: [?]u16 = [?]u16{ 0x0041, 0x005A, 0x00C0, 0x00D6, 0x00D8, 0x00DE, 0x0178, 0x0179, 0x0181, 0x0182, 0x0186, 0x0187, 0x0189, 0x018B, 0x018E, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, 0x019C, 0x019D, 0x019F, 0x01A0, 0x01A6, 0x01A7, 0x01AE, 0x01AF, 0x01B1, 0Source

lu_ranges32

lu_ranges32 :: [?]i32 = [?]i32{ 0x10400, 0x10427, 0x104B0, 0x104D3, 0x10570, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, 0x10594, 0x10595, 0x10C80, 0x10CB2, 0x10D50, 0x10D65, 0x118A0, 0x118BF, 0x16E40, 0x16E5F, 0x16EA0, 0x16EB8, 0x1D400, 0x1D419, 0x1D434, 0x1D44D, Source

lu_singles16

lu_singles16 :: [?]u16 = [?]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, 0x01Source

mc_ranges16

mc_ranges16 :: [?]u16 = [?]u16{ 0x093E, 0x0940, 0x0949, 0x094C, 0x094E, 0x094F, 0x0982, 0x0983, 0x09BE, 0x09C0, 0x09C7, 0x09C8, 0x09CB, 0x09CC, 0x0A3E, 0x0A40, 0x0ABE, 0x0AC0, 0x0ACB, 0x0ACC, 0x0B02, 0x0B03, 0x0B47, 0x0B48, 0x0B4B, 0x0B4C, 0x0BBE, 0x0BBF, 0x0BC1, 0Source

mc_ranges32

mc_ranges32 :: [?]i32 = [?]i32{ 0x110B0, 0x110B2, 0x110B7, 0x110B8, 0x11145, 0x11146, 0x111B3, 0x111B5, 0x111BF, 0x111C0, 0x1122C, 0x1122E, 0x11232, 0x11233, 0x112E0, 0x112E2, 0x11302, 0x11303, 0x1133E, 0x1133F, 0x11341, 0x11344, 0x11347, 0x11348, 0x1134B, 0x1134D, Source

mc_singles16

mc_singles16 :: [?]u16 = [?]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, 0x1BSource

mc_singles32

mc_singles32 :: [?]i32 = [?]i32{ 0x11000, 0x11002, 0x11082, 0x1112C, 0x11182, 0x111CE, 0x11235, 0x11357, 0x113C2, 0x113C5, 0x113CF, 0x11445, 0x114B9, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x1171E, 0x11726, 0x11838, 0x1193D, 0x11940, 0x11942, 0x119E4, 0x11A39, 0x11A97, 0Source

mn_ranges16

mn_ranges16 :: [?]u16 = [?]u16{ 0x0300, 0x036F, 0x0483, 0x0487, 0x0591, 0x05BD, 0x05C1, 0x05C2, 0x05C4, 0x05C5, 0x0610, 0x061A, 0x064B, 0x065F, 0x06D6, 0x06DC, 0x06DF, 0x06E4, 0x06E7, 0x06E8, 0x06EA, 0x06ED, 0x0730, 0x074A, 0x07A6, 0x07B0, 0x07EB, 0x07F3, 0x0816, 0Source

mn_ranges32

mn_ranges32 :: [?]i32 = [?]i32{ 0x10376, 0x1037A, 0x10A01, 0x10A03, 0x10A05, 0x10A06, 0x10A0C, 0x10A0F, 0x10A38, 0x10A3A, 0x10AE5, 0x10AE6, 0x10D24, 0x10D27, 0x10D69, 0x10D6D, 0x10EAB, 0x10EAC, 0x10EFA, 0x10EFF, 0x10F46, 0x10F50, 0x10F82, 0x10F85, 0x11038, 0x11046, Source

mn_singles16

mn_singles16 :: [?]u16 = [?]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, 0x0CSource

mn_singles32

mn_singles32 :: [?]i32 = [?]i32{ 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x11241, 0x112DF, 0x11340, 0x113CE, 0x113D0, 0x113D2, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1171D, 0x1171F, 0x1193E, 0x11943, 0Source

nd_ranges16

nd_ranges16 :: [?]u16 = [?]u16{ 0x0030, 0x0039, 0x0660, 0x0669, 0x06F0, 0x06F9, 0x07C0, 0x07C9, 0x0966, 0x096F, 0x09E6, 0x09EF, 0x0A66, 0x0A6F, 0x0AE6, 0x0AEF, 0x0B66, 0x0B6F, 0x0BE6, 0x0BEF, 0x0C66, 0x0C6F, 0x0CE6, 0x0CEF, 0x0D66, 0x0D6F, 0x0DE6, 0x0DEF, 0x0E50, 0Source

nd_ranges32

nd_ranges32 :: [?]i32 = [?]i32{ 0x104A0, 0x104A9, 0x10D30, 0x10D39, 0x10D40, 0x10D49, 0x11066, 0x1106F, 0x110F0, 0x110F9, 0x11136, 0x1113F, 0x111D0, 0x111D9, 0x112F0, 0x112F9, 0x11450, 0x11459, 0x114D0, 0x114D9, 0x11650, 0x11659, 0x116C0, 0x116C9, 0x116D0, 0x116E3, Source

no_ranges16

no_ranges16 :: [?]u16 = [?]u16{ 0x00B2, 0x00B3, 0x00BC, 0x00BE, 0x09F4, 0x09F9, 0x0B72, 0x0B77, 0x0BF0, 0x0BF2, 0x0C78, 0x0C7E, 0x0D58, 0x0D5E, 0x0D70, 0x0D78, 0x0F2A, 0x0F33, 0x1369, 0x137C, 0x17F0, 0x17F9, 0x2074, 0x2079, 0x2080, 0x2089, 0x2150, 0x215F, 0x2460, 0Source

no_ranges32

no_ranges32 :: [?]i32 = [?]i32{ 0x10107, 0x10133, 0x10175, 0x10178, 0x1018A, 0x1018B, 0x102E1, 0x102FB, 0x10320, 0x10323, 0x10858, 0x1085F, 0x10879, 0x1087F, 0x108A7, 0x108AF, 0x108FB, 0x108FF, 0x10916, 0x1091B, 0x109BC, 0x109BD, 0x109C0, 0x109CF, 0x109D2, 0x109FF, Source

nonspacing_mark_ranges

nonspacing_mark_ranges :: [?]i32 = [?]i32 { 0x0300, 0x036F, 0x0483, 0x0487, 0x0591, 0x05BD, 0x05BF, 0x05BF, 0x05C1, 0x05C2, 0x05C4, 0x05C5, 0x05C7, 0x05C7, 0x0610, 0x061A, 0x064B, 0x065F, 0x0670, 0x0670, 0x06D6, 0x06DC, 0x06DF, 0x06E4, 0x06E7, 0x06E8, 0x06EA, 0x06ED, 0x0711, Source

normalized_east_asian_width_ranges

normalized_east_asian_width_ranges :: [?]i32 = [?]i32 { 0x0000, 0x10FF, 1, 0x1100, 0x115F, 2, 0x1160, 0x2319, 1, 0x231A, 0x231B, 2, 0x231C, 0x2328, 1, 0x2329, 0x232A, 2, 0x232B, 0x23E8, 1, 0x23E9, 0x23EC, 2, 0x23ED, 0x23EF, 1, 0x23F0, 0x23F0, 2, 0x23F1, 0x23F2, 1, 0x23F3, 0x23F3, 2, 0x23F4Source

Fullwidth (F) and Wide (W) are counted as 2. Everything else is 1.

Derived from: https://unicode.org/Public/15.1.0/ucd/EastAsianWidth.txt

pd_singles16

pd_singles16 :: [?]u16 = [?]u16{ 0x002D, 0x058A, 0x05BE, 0x1400, 0x1806, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, }Source

pe_singles16

pe_singles16 :: [?]u16 = [?]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, 0x29Source

po_ranges16

po_ranges16 :: [?]u16 = [?]u16{ 0x0021, 0x0023, 0x0025, 0x0027, 0x002E, 0x002F, 0x003A, 0x003B, 0x003F, 0x0040, 0x00B6, 0x00B7, 0x055A, 0x055F, 0x05F3, 0x05F4, 0x0609, 0x060A, 0x060C, 0x060D, 0x061D, 0x061F, 0x066A, 0x066D, 0x0700, 0x070D, 0x07F7, 0x07F9, 0x0830, 0Source

po_ranges32

po_ranges32 :: [?]i32 = [?]i32{ 0x10100, 0x10102, 0x10A50, 0x10A58, 0x10AF0, 0x10AF6, 0x10B39, 0x10B3F, 0x10B99, 0x10B9C, 0x10F55, 0x10F59, 0x10F86, 0x10F89, 0x11047, 0x1104D, 0x110BB, 0x110BC, 0x110BE, 0x110C1, 0x11140, 0x11143, 0x11174, 0x11175, 0x111C5, 0x111C8, Source

po_singles16

po_singles16 :: [?]u16 = [?]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, 0x2ESource

po_singles32

po_singles32 :: [?]i32 = [?]i32{ 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x10ED0, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11BE1, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F, 0x1E5FF, }Source

ps_singles16

ps_singles16 :: [?]u16 = [?]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, 0x29Source

sk_ranges16

sk_ranges16 :: [?]u16 = [?]u16{ 0x02C2, 0x02C5, 0x02D2, 0x02DF, 0x02E5, 0x02EB, 0x02EF, 0x02FF, 0x0384, 0x0385, 0x1FBF, 0x1FC1, 0x1FCD, 0x1FCF, 0x1FDD, 0x1FDF, 0x1FED, 0x1FEF, 0x1FFD, 0x1FFE, 0x309B, 0x309C, 0xA700, 0xA716, 0xA720, 0xA721, 0xA789, 0xA78A, 0xAB6A, 0Source

sm_ranges16

sm_ranges16 :: [?]u16 = [?]u16{ 0x003C, 0x003E, 0x0606, 0x0608, 0x207A, 0x207C, 0x208A, 0x208C, 0x2140, 0x2144, 0x2190, 0x2194, 0x219A, 0x219B, 0x21CE, 0x21CF, 0x21F4, 0x22FF, 0x2320, 0x2321, 0x239B, 0x23B3, 0x23DC, 0x23E1, 0x25F8, 0x25FF, 0x27C0, 0x27C4, 0x27C7, 0Source

sm_singles16

sm_singles16 :: [?]u16 = [?]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, }Source

so_ranges16

so_ranges16 :: [?]u16 = [?]u16{ 0x058D, 0x058E, 0x060E, 0x060F, 0x06FD, 0x06FE, 0x0BF3, 0x0BF8, 0x0F01, 0x0F03, 0x0F15, 0x0F17, 0x0F1A, 0x0F1F, 0x0FBE, 0x0FC5, 0x0FC7, 0x0FCC, 0x0FCE, 0x0FCF, 0x0FD5, 0x0FD8, 0x109E, 0x109F, 0x1390, 0x1399, 0x19DE, 0x19FF, 0x1B61, 0Source

so_ranges32

so_ranges32 :: [?]i32 = [?]i32{ 0x10137, 0x1013F, 0x10179, 0x10189, 0x1018C, 0x1018E, 0x10190, 0x1019C, 0x101D0, 0x101FC, 0x10877, 0x10878, 0x10ED1, 0x10ED8, 0x11FD5, 0x11FDC, 0x11FE1, 0x11FF1, 0x16B3C, 0x16B3F, 0x1CC00, 0x1CCEF, 0x1CCFA, 0x1CCFC, 0x1CD00, 0x1CEB3, Source

so_singles16

so_singles16 :: [?]u16 = [?]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, 0x31Source

space_ranges

space_ranges :: [?]i32 = [?]i32{ 0x0009, 0x000d, // tab and newline 0x0020, 0x0020, // space 0x0085, 0x0085, // next line 0x00a0, 0x00a0, 0x1680, 0x1680, // Ogham space mark 0x2000, 0x200b, // en dash .. zero-width space 0x200e, 0x200f, // LTR mark .. RTL mark (patteSource

spacing_mark_ranges

spacing_mark_ranges :: [?]i32 = [?]i32 { 0x0903, 0x0903, 0x093B, 0x093B, 0x093E, 0x0940, 0x0949, 0x094C, 0x094E, 0x094F, 0x0982, 0x0983, 0x09BE, 0x09C0, 0x09C7, 0x09C8, 0x09CB, 0x09CC, 0x09D7, 0x09D7, 0x0A03, 0x0A03, 0x0A3E, 0x0A40, 0x0A83, 0x0A83, 0x0ABE, 0x0AC0, 0x0AC9, Source

The tables below are accurate as of Unicode 15.1.0.

to_lower_ranges

to_lower_ranges :: [?]i32 = [?]i32{ 0x0041, 0x005a, 532, // A-Z a-z 0x00c0, 0x00d6, 532, // - - 0x00d8, 0x00de, 532, // - - 0x0189, 0x018a, 705, // - - 0x018e, 0x018f, 702, // - - 0x01b1, 0x01b2, 717, // - - 0x0388, 0x038a, 537, // - - 0x038e, 0x038f, 563, // - - 0x0Source

to_lower_singlets

to_lower_singlets :: [?]i32 = [?]i32{ 0x0100, 501, 0x0102, 501, 0x0104, 501, 0x0106, 501, 0x0108, 501, 0x010a, 501, 0x010c, 501, 0x010e, 501, 0x0110, 501, 0x0112, 501, 0x0114, 501, 0x0116, 501, 0x0118, 501, 0x011a, 501, 0x011c, 501, 0x011e, 501, 0x0120, 501, 0x0122, 5Source

to_upper_ranges

to_upper_ranges :: [?]i32 = [?]i32{ 0x0061, 0x007a, 468, // a-z A-Z 0x00e0, 0x00f6, 468, 0x00f8, 0x00fe, 468, 0x0256, 0x0257, 295, 0x0258, 0x0259, 298, 0x028a, 0x028b, 283, 0x03ad, 0x03af, 463, 0x03b1, 0x03c1, 468, 0x03c3, 0x03cb, 468, 0x03cd, 0x03ce, 437, 0x0430Source

to_upper_singlets

to_upper_singlets :: [?]i32 = [?]i32{ 0x00df, 8115, 0x00ff, 621, 0x0101, 499, 0x0103, 499, 0x0105, 499, 0x0107, 499, 0x0109, 499, 0x010b, 499, 0x010d, 499, 0x010f, 499, 0x0111, 499, 0x0113, 499, 0x0115, 499, 0x0117, 499, 0x0119, 499, 0x011b, 499, 0x011d, 499, 0x011f, Source

unicode_spaces

unicode_spaces :: [?]i32 = [?]i32{ 0x0009, // tab 0x000a, // LF 0x000d, // CR 0x0020, // space 0x0085, // next line 0x00a0, // unknown 0x1680, // Ogham space mark 0x2000, // en dash .. zero-width space 0x200e, 0x200f, // LTR mark .. RTL mark (pattern whitespace) 0x2028, 0xSource

Procedures

43

is_decimal

is_decimal :: proc(r: rune) -> (bool)Source

Returns true if the rune r is in the General Category Nd

  • r: The run to check if it is in the general category Nd.

is_digit

is_digit :: proc(r: rune) -> (bool)Source

This function determincs if a rune is a digit. To be a digit the charage either has a Numeric_Type of Digit or Decimal.

  • r: The rune to check if it is a digit.

is_gcb_extend_class

is_gcb_extend_class :: proc(r: rune) -> (bool)Source

For grapheme text segmentation, from Unicode TR 29 Rev 43:

Grapheme_Extend = Yes, or
Emoji_Modifier = Yes

This includes:
General_Category = Nonspacing_Mark
General_Category = Enclosing_Mark
U+200C ZERO WIDTH NON-JOINER

plus a few General_Category = Spacing_Mark needed for canonical equivalence.

is_gcb_prepend_class

is_gcb_prepend_class :: proc(r: rune) -> (bool)Source

For grapheme text segmentation, from Unicode TR 29 Rev 43:

Indic_Syllabic_Category = Consonant_Preceding_Repha, or
Indic_Syllabic_Category = Consonant_Prefixed, or
Prepended_Concatenation_Mark = Yes

is_letter

is_letter :: proc(r: rune) -> (bool)Source

Return true if the rune r is a letter. Being a letter means that the rune has the Unicode general category property of L. In practice, the character will have a general category property of Ll, Lm, Lo, Lt, or Lu.

  • r: The rune which will be check for having the property of being a letter.

is_number

is_number :: proc(r: rune) -> (bool)Source

Checks to see if the rune r is a number. This means the rune is a member of the general category Nd, Nl, or No.

simple_fold

simple_fold :: proc(r: rune) -> (rune)Source

simple_fold iterates over the Unicode code points equivalent under the Unicode defined simple case folding. simple_fold returns the smallest rune > r if one exists, or the smallest rune >= 0. If no valid Unicode code point exists, r is returned.

Example:

simple_fold('A')      == 'a'
simple_fold('a')      == 'A'
simple_fold('Z')      == 'z'
simple_fold('z')      == 'Z'
simple_fold('7')      == '7'
simple_fold('k')      == '\u212a' (Kelvin symbol, )
simple_fold('\u212a') == 'k'
simple_fold(-3)       == -3

Reference search

Find anything

Documentation preferences

Settings

System theme variants

Used only while Theme is set to System.