diff options
author | Ryo Nihei <nihei.dev@gmail.com> | 2021-11-26 00:01:16 +0900 |
---|---|---|
committer | Ryo Nihei <nihei.dev@gmail.com> | 2021-11-26 00:01:16 +0900 |
commit | e9af22730e68908f46c9aee3b35e133d34191bef (patch) | |
tree | 7c8b2a738453ca7e26c1aebc4375800b8842d3aa /compiler/ucd_table.go | |
parent | Make character properties available in an inverse expression (Make [^\p{...}]... (diff) | |
download | tre-e9af22730e68908f46c9aee3b35e133d34191bef.tar.gz tre-e9af22730e68908f46c9aee3b35e133d34191bef.tar.xz |
Support Alphabetic property (Meet RL1.2 of UTS #18 partially)
Diffstat (limited to 'compiler/ucd_table.go')
-rw-r--r-- | compiler/ucd_table.go | 399 |
1 files changed, 399 insertions, 0 deletions
diff --git a/compiler/ucd_table.go b/compiler/ucd_table.go index 545a9c8..e72c6c5 100644 --- a/compiler/ucd_table.go +++ b/compiler/ucd_table.go @@ -26,6 +26,7 @@ var compositGeneralCategories = map[string][]string{ // https://www.unicode.org/Public/13.0.0/ucd/DerivedCoreProperties.txt var derivedCoreProperties = map[string][]string{ + "alpha": {`\p{Lowercase=yes}`, `\p{Uppercase=yes}`, `\p{Lt}`, `\p{Lm}`, `\p{Lo}`, `\p{Nl}`, `\p{Other_Alphabetic=yes}`}, "lower": {`\p{Ll}`, `\p{Other_Lowercase=yes}`}, "upper": {`\p{Lu}`, `\p{Other_Uppercase=yes}`}, } @@ -34,6 +35,10 @@ var derivedCoreProperties = map[string][]string{ var propertyNameAbbs = map[string]string{ "generalcategory": "gc", "gc": "gc", + "alphabetic": "alpha", + "alpha": "alpha", + "otheralphabetic": "oalpha", + "oalpha": "oalpha", "lowercase": "lower", "lower": "lower", "uppercase": "upper", @@ -4119,6 +4124,400 @@ var generalCategoryCodePoints = map[string][]*ucd.CodePointRange{ } // https://www.unicode.org/Public/13.0.0/ucd/PropList.txt +var otherAlphabeticCodePoints = []*ucd.CodePointRange{ + &ucd.CodePointRange{From: rune(837), To: rune(837)}, + &ucd.CodePointRange{From: rune(1456), To: rune(1469)}, + &ucd.CodePointRange{From: rune(1471), To: rune(1471)}, + &ucd.CodePointRange{From: rune(1473), To: rune(1474)}, + &ucd.CodePointRange{From: rune(1476), To: rune(1477)}, + &ucd.CodePointRange{From: rune(1479), To: rune(1479)}, + &ucd.CodePointRange{From: rune(1552), To: rune(1562)}, + &ucd.CodePointRange{From: rune(1611), To: rune(1623)}, + &ucd.CodePointRange{From: rune(1625), To: rune(1631)}, + &ucd.CodePointRange{From: rune(1648), To: rune(1648)}, + &ucd.CodePointRange{From: rune(1750), To: rune(1756)}, + &ucd.CodePointRange{From: rune(1761), To: rune(1764)}, + &ucd.CodePointRange{From: rune(1767), To: rune(1768)}, + &ucd.CodePointRange{From: rune(1773), To: rune(1773)}, + &ucd.CodePointRange{From: rune(1809), To: rune(1809)}, + &ucd.CodePointRange{From: rune(1840), To: rune(1855)}, + &ucd.CodePointRange{From: rune(1958), To: rune(1968)}, + &ucd.CodePointRange{From: rune(2070), To: rune(2071)}, + &ucd.CodePointRange{From: rune(2075), To: rune(2083)}, + &ucd.CodePointRange{From: rune(2085), To: rune(2087)}, + &ucd.CodePointRange{From: rune(2089), To: rune(2092)}, + &ucd.CodePointRange{From: rune(2260), To: rune(2271)}, + &ucd.CodePointRange{From: rune(2275), To: rune(2281)}, + &ucd.CodePointRange{From: rune(2288), To: rune(2306)}, + &ucd.CodePointRange{From: rune(2307), To: rune(2307)}, + &ucd.CodePointRange{From: rune(2362), To: rune(2362)}, + &ucd.CodePointRange{From: rune(2363), To: rune(2363)}, + &ucd.CodePointRange{From: rune(2366), To: rune(2368)}, + &ucd.CodePointRange{From: rune(2369), To: rune(2376)}, + &ucd.CodePointRange{From: rune(2377), To: rune(2380)}, + &ucd.CodePointRange{From: rune(2382), To: rune(2383)}, + &ucd.CodePointRange{From: rune(2389), To: rune(2391)}, + &ucd.CodePointRange{From: rune(2402), To: rune(2403)}, + &ucd.CodePointRange{From: rune(2433), To: rune(2433)}, + &ucd.CodePointRange{From: rune(2434), To: rune(2435)}, + &ucd.CodePointRange{From: rune(2494), To: rune(2496)}, + &ucd.CodePointRange{From: rune(2497), To: rune(2500)}, + &ucd.CodePointRange{From: rune(2503), To: rune(2504)}, + &ucd.CodePointRange{From: rune(2507), To: rune(2508)}, + &ucd.CodePointRange{From: rune(2519), To: rune(2519)}, + &ucd.CodePointRange{From: rune(2530), To: rune(2531)}, + &ucd.CodePointRange{From: rune(2561), To: rune(2562)}, + &ucd.CodePointRange{From: rune(2563), To: rune(2563)}, + &ucd.CodePointRange{From: rune(2622), To: rune(2624)}, + &ucd.CodePointRange{From: rune(2625), To: rune(2626)}, + &ucd.CodePointRange{From: rune(2631), To: rune(2632)}, + &ucd.CodePointRange{From: rune(2635), To: rune(2636)}, + &ucd.CodePointRange{From: rune(2641), To: rune(2641)}, + &ucd.CodePointRange{From: rune(2672), To: rune(2673)}, + &ucd.CodePointRange{From: rune(2677), To: rune(2677)}, + &ucd.CodePointRange{From: rune(2689), To: rune(2690)}, + &ucd.CodePointRange{From: rune(2691), To: rune(2691)}, + &ucd.CodePointRange{From: rune(2750), To: rune(2752)}, + &ucd.CodePointRange{From: rune(2753), To: rune(2757)}, + &ucd.CodePointRange{From: rune(2759), To: rune(2760)}, + &ucd.CodePointRange{From: rune(2761), To: rune(2761)}, + &ucd.CodePointRange{From: rune(2763), To: rune(2764)}, + &ucd.CodePointRange{From: rune(2786), To: rune(2787)}, + &ucd.CodePointRange{From: rune(2810), To: rune(2812)}, + &ucd.CodePointRange{From: rune(2817), To: rune(2817)}, + &ucd.CodePointRange{From: rune(2818), To: rune(2819)}, + &ucd.CodePointRange{From: rune(2878), To: rune(2878)}, + &ucd.CodePointRange{From: rune(2879), To: rune(2879)}, + &ucd.CodePointRange{From: rune(2880), To: rune(2880)}, + &ucd.CodePointRange{From: rune(2881), To: rune(2884)}, + &ucd.CodePointRange{From: rune(2887), To: rune(2888)}, + &ucd.CodePointRange{From: rune(2891), To: rune(2892)}, + &ucd.CodePointRange{From: rune(2902), To: rune(2902)}, + &ucd.CodePointRange{From: rune(2903), To: rune(2903)}, + &ucd.CodePointRange{From: rune(2914), To: rune(2915)}, + &ucd.CodePointRange{From: rune(2946), To: rune(2946)}, + &ucd.CodePointRange{From: rune(3006), To: rune(3007)}, + &ucd.CodePointRange{From: rune(3008), To: rune(3008)}, + &ucd.CodePointRange{From: rune(3009), To: rune(3010)}, + &ucd.CodePointRange{From: rune(3014), To: rune(3016)}, + &ucd.CodePointRange{From: rune(3018), To: rune(3020)}, + &ucd.CodePointRange{From: rune(3031), To: rune(3031)}, + &ucd.CodePointRange{From: rune(3072), To: rune(3072)}, + &ucd.CodePointRange{From: rune(3073), To: rune(3075)}, + &ucd.CodePointRange{From: rune(3134), To: rune(3136)}, + &ucd.CodePointRange{From: rune(3137), To: rune(3140)}, + &ucd.CodePointRange{From: rune(3142), To: rune(3144)}, + &ucd.CodePointRange{From: rune(3146), To: rune(3148)}, + &ucd.CodePointRange{From: rune(3157), To: rune(3158)}, + &ucd.CodePointRange{From: rune(3170), To: rune(3171)}, + &ucd.CodePointRange{From: rune(3201), To: rune(3201)}, + &ucd.CodePointRange{From: rune(3202), To: rune(3203)}, + &ucd.CodePointRange{From: rune(3262), To: rune(3262)}, + &ucd.CodePointRange{From: rune(3263), To: rune(3263)}, + &ucd.CodePointRange{From: rune(3264), To: rune(3268)}, + &ucd.CodePointRange{From: rune(3270), To: rune(3270)}, + &ucd.CodePointRange{From: rune(3271), To: rune(3272)}, + &ucd.CodePointRange{From: rune(3274), To: rune(3275)}, + &ucd.CodePointRange{From: rune(3276), To: rune(3276)}, + &ucd.CodePointRange{From: rune(3285), To: rune(3286)}, + &ucd.CodePointRange{From: rune(3298), To: rune(3299)}, + &ucd.CodePointRange{From: rune(3328), To: rune(3329)}, + &ucd.CodePointRange{From: rune(3330), To: rune(3331)}, + &ucd.CodePointRange{From: rune(3390), To: rune(3392)}, + &ucd.CodePointRange{From: rune(3393), To: rune(3396)}, + &ucd.CodePointRange{From: rune(3398), To: rune(3400)}, + &ucd.CodePointRange{From: rune(3402), To: rune(3404)}, + &ucd.CodePointRange{From: rune(3415), To: rune(3415)}, + &ucd.CodePointRange{From: rune(3426), To: rune(3427)}, + &ucd.CodePointRange{From: rune(3457), To: rune(3457)}, + &ucd.CodePointRange{From: rune(3458), To: rune(3459)}, + &ucd.CodePointRange{From: rune(3535), To: rune(3537)}, + &ucd.CodePointRange{From: rune(3538), To: rune(3540)}, + &ucd.CodePointRange{From: rune(3542), To: rune(3542)}, + &ucd.CodePointRange{From: rune(3544), To: rune(3551)}, + &ucd.CodePointRange{From: rune(3570), To: rune(3571)}, + &ucd.CodePointRange{From: rune(3633), To: rune(3633)}, + &ucd.CodePointRange{From: rune(3636), To: rune(3642)}, + &ucd.CodePointRange{From: rune(3661), To: rune(3661)}, + &ucd.CodePointRange{From: rune(3761), To: rune(3761)}, + &ucd.CodePointRange{From: rune(3764), To: rune(3769)}, + &ucd.CodePointRange{From: rune(3771), To: rune(3772)}, + &ucd.CodePointRange{From: rune(3789), To: rune(3789)}, + &ucd.CodePointRange{From: rune(3953), To: rune(3966)}, + &ucd.CodePointRange{From: rune(3967), To: rune(3967)}, + &ucd.CodePointRange{From: rune(3968), To: rune(3969)}, + &ucd.CodePointRange{From: rune(3981), To: rune(3991)}, + &ucd.CodePointRange{From: rune(3993), To: rune(4028)}, + &ucd.CodePointRange{From: rune(4139), To: rune(4140)}, + &ucd.CodePointRange{From: rune(4141), To: rune(4144)}, + &ucd.CodePointRange{From: rune(4145), To: rune(4145)}, + &ucd.CodePointRange{From: rune(4146), To: rune(4150)}, + &ucd.CodePointRange{From: rune(4152), To: rune(4152)}, + &ucd.CodePointRange{From: rune(4155), To: rune(4156)}, + &ucd.CodePointRange{From: rune(4157), To: rune(4158)}, + &ucd.CodePointRange{From: rune(4182), To: rune(4183)}, + &ucd.CodePointRange{From: rune(4184), To: rune(4185)}, + &ucd.CodePointRange{From: rune(4190), To: rune(4192)}, + &ucd.CodePointRange{From: rune(4194), To: rune(4196)}, + &ucd.CodePointRange{From: rune(4199), To: rune(4205)}, + &ucd.CodePointRange{From: rune(4209), To: rune(4212)}, + &ucd.CodePointRange{From: rune(4226), To: rune(4226)}, + &ucd.CodePointRange{From: rune(4227), To: rune(4228)}, + &ucd.CodePointRange{From: rune(4229), To: rune(4230)}, + &ucd.CodePointRange{From: rune(4231), To: rune(4236)}, + &ucd.CodePointRange{From: rune(4237), To: rune(4237)}, + &ucd.CodePointRange{From: rune(4239), To: rune(4239)}, + &ucd.CodePointRange{From: rune(4250), To: rune(4252)}, + &ucd.CodePointRange{From: rune(4253), To: rune(4253)}, + &ucd.CodePointRange{From: rune(5906), To: rune(5907)}, + &ucd.CodePointRange{From: rune(5938), To: rune(5939)}, + &ucd.CodePointRange{From: rune(5970), To: rune(5971)}, + &ucd.CodePointRange{From: rune(6002), To: rune(6003)}, + &ucd.CodePointRange{From: rune(6070), To: rune(6070)}, + &ucd.CodePointRange{From: rune(6071), To: rune(6077)}, + &ucd.CodePointRange{From: rune(6078), To: rune(6085)}, + &ucd.CodePointRange{From: rune(6086), To: rune(6086)}, + &ucd.CodePointRange{From: rune(6087), To: rune(6088)}, + &ucd.CodePointRange{From: rune(6277), To: rune(6278)}, + &ucd.CodePointRange{From: rune(6313), To: rune(6313)}, + &ucd.CodePointRange{From: rune(6432), To: rune(6434)}, + &ucd.CodePointRange{From: rune(6435), To: rune(6438)}, + &ucd.CodePointRange{From: rune(6439), To: rune(6440)}, + &ucd.CodePointRange{From: rune(6441), To: rune(6443)}, + &ucd.CodePointRange{From: rune(6448), To: rune(6449)}, + &ucd.CodePointRange{From: rune(6450), To: rune(6450)}, + &ucd.CodePointRange{From: rune(6451), To: rune(6456)}, + &ucd.CodePointRange{From: rune(6679), To: rune(6680)}, + &ucd.CodePointRange{From: rune(6681), To: rune(6682)}, + &ucd.CodePointRange{From: rune(6683), To: rune(6683)}, + &ucd.CodePointRange{From: rune(6741), To: rune(6741)}, + &ucd.CodePointRange{From: rune(6742), To: rune(6742)}, + &ucd.CodePointRange{From: rune(6743), To: rune(6743)}, + &ucd.CodePointRange{From: rune(6744), To: rune(6750)}, + &ucd.CodePointRange{From: rune(6753), To: rune(6753)}, + &ucd.CodePointRange{From: rune(6754), To: rune(6754)}, + &ucd.CodePointRange{From: rune(6755), To: rune(6756)}, + &ucd.CodePointRange{From: rune(6757), To: rune(6764)}, + &ucd.CodePointRange{From: rune(6765), To: rune(6770)}, + &ucd.CodePointRange{From: rune(6771), To: rune(6772)}, + &ucd.CodePointRange{From: rune(6847), To: rune(6848)}, + &ucd.CodePointRange{From: rune(6912), To: rune(6915)}, + &ucd.CodePointRange{From: rune(6916), To: rune(6916)}, + &ucd.CodePointRange{From: rune(6965), To: rune(6965)}, + &ucd.CodePointRange{From: rune(6966), To: rune(6970)}, + &ucd.CodePointRange{From: rune(6971), To: rune(6971)}, + &ucd.CodePointRange{From: rune(6972), To: rune(6972)}, + &ucd.CodePointRange{From: rune(6973), To: rune(6977)}, + &ucd.CodePointRange{From: rune(6978), To: rune(6978)}, + &ucd.CodePointRange{From: rune(6979), To: rune(6979)}, + &ucd.CodePointRange{From: rune(7040), To: rune(7041)}, + &ucd.CodePointRange{From: rune(7042), To: rune(7042)}, + &ucd.CodePointRange{From: rune(7073), To: rune(7073)}, + &ucd.CodePointRange{From: rune(7074), To: rune(7077)}, + &ucd.CodePointRange{From: rune(7078), To: rune(7079)}, + &ucd.CodePointRange{From: rune(7080), To: rune(7081)}, + &ucd.CodePointRange{From: rune(7084), To: rune(7085)}, + &ucd.CodePointRange{From: rune(7143), To: rune(7143)}, + &ucd.CodePointRange{From: rune(7144), To: rune(7145)}, + &ucd.CodePointRange{From: rune(7146), To: rune(7148)}, + &ucd.CodePointRange{From: rune(7149), To: rune(7149)}, + &ucd.CodePointRange{From: rune(7150), To: rune(7150)}, + &ucd.CodePointRange{From: rune(7151), To: rune(7153)}, + &ucd.CodePointRange{From: rune(7204), To: rune(7211)}, + &ucd.CodePointRange{From: rune(7212), To: rune(7219)}, + &ucd.CodePointRange{From: rune(7220), To: rune(7221)}, + &ucd.CodePointRange{From: rune(7222), To: rune(7222)}, + &ucd.CodePointRange{From: rune(7655), To: rune(7668)}, + &ucd.CodePointRange{From: rune(9398), To: rune(9449)}, + &ucd.CodePointRange{From: rune(11744), To: rune(11775)}, + &ucd.CodePointRange{From: rune(42612), To: rune(42619)}, + &ucd.CodePointRange{From: rune(42654), To: rune(42655)}, + &ucd.CodePointRange{From: rune(43010), To: rune(43010)}, + &ucd.CodePointRange{From: rune(43019), To: rune(43019)}, + &ucd.CodePointRange{From: rune(43043), To: rune(43044)}, + &ucd.CodePointRange{From: rune(43045), To: rune(43046)}, + &ucd.CodePointRange{From: rune(43047), To: rune(43047)}, + &ucd.CodePointRange{From: rune(43136), To: rune(43137)}, + &ucd.CodePointRange{From: rune(43188), To: rune(43203)}, + &ucd.CodePointRange{From: rune(43205), To: rune(43205)}, + &ucd.CodePointRange{From: rune(43263), To: rune(43263)}, + &ucd.CodePointRange{From: rune(43302), To: rune(43306)}, + &ucd.CodePointRange{From: rune(43335), To: rune(43345)}, + &ucd.CodePointRange{From: rune(43346), To: rune(43346)}, + &ucd.CodePointRange{From: rune(43392), To: rune(43394)}, + &ucd.CodePointRange{From: rune(43395), To: rune(43395)}, + &ucd.CodePointRange{From: rune(43444), To: rune(43445)}, + &ucd.CodePointRange{From: rune(43446), To: rune(43449)}, + &ucd.CodePointRange{From: rune(43450), To: rune(43451)}, + &ucd.CodePointRange{From: rune(43452), To: rune(43453)}, + &ucd.CodePointRange{From: rune(43454), To: rune(43455)}, + &ucd.CodePointRange{From: rune(43493), To: rune(43493)}, + &ucd.CodePointRange{From: rune(43561), To: rune(43566)}, + &ucd.CodePointRange{From: rune(43567), To: rune(43568)}, + &ucd.CodePointRange{From: rune(43569), To: rune(43570)}, + &ucd.CodePointRange{From: rune(43571), To: rune(43572)}, + &ucd.CodePointRange{From: rune(43573), To: rune(43574)}, + &ucd.CodePointRange{From: rune(43587), To: rune(43587)}, + &ucd.CodePointRange{From: rune(43596), To: rune(43596)}, + &ucd.CodePointRange{From: rune(43597), To: rune(43597)}, + &ucd.CodePointRange{From: rune(43643), To: rune(43643)}, + &ucd.CodePointRange{From: rune(43644), To: rune(43644)}, + &ucd.CodePointRange{From: rune(43645), To: rune(43645)}, + &ucd.CodePointRange{From: rune(43696), To: rune(43696)}, + &ucd.CodePointRange{From: rune(43698), To: rune(43700)}, + &ucd.CodePointRange{From: rune(43703), To: rune(43704)}, + &ucd.CodePointRange{From: rune(43710), To: rune(43710)}, + &ucd.CodePointRange{From: rune(43755), To: rune(43755)}, + &ucd.CodePointRange{From: rune(43756), To: rune(43757)}, + &ucd.CodePointRange{From: rune(43758), To: rune(43759)}, + &ucd.CodePointRange{From: rune(43765), To: rune(43765)}, + &ucd.CodePointRange{From: rune(44003), To: rune(44004)}, + &ucd.CodePointRange{From: rune(44005), To: rune(44005)}, + &ucd.CodePointRange{From: rune(44006), To: rune(44007)}, + &ucd.CodePointRange{From: rune(44008), To: rune(44008)}, + &ucd.CodePointRange{From: rune(44009), To: rune(44010)}, + &ucd.CodePointRange{From: rune(64286), To: rune(64286)}, + &ucd.CodePointRange{From: rune(66422), To: rune(66426)}, + &ucd.CodePointRange{From: rune(68097), To: rune(68099)}, + &ucd.CodePointRange{From: rune(68101), To: rune(68102)}, + &ucd.CodePointRange{From: rune(68108), To: rune(68111)}, + &ucd.CodePointRange{From: rune(68900), To: rune(68903)}, + &ucd.CodePointRange{From: rune(69291), To: rune(69292)}, + &ucd.CodePointRange{From: rune(69632), To: rune(69632)}, + &ucd.CodePointRange{From: rune(69633), To: rune(69633)}, + &ucd.CodePointRange{From: rune(69634), To: rune(69634)}, + &ucd.CodePointRange{From: rune(69688), To: rune(69701)}, + &ucd.CodePointRange{From: rune(69762), To: rune(69762)}, + &ucd.CodePointRange{From: rune(69808), To: rune(69810)}, + &ucd.CodePointRange{From: rune(69811), To: rune(69814)}, + &ucd.CodePointRange{From: rune(69815), To: rune(69816)}, + &ucd.CodePointRange{From: rune(69888), To: rune(69890)}, + &ucd.CodePointRange{From: rune(69927), To: rune(69931)}, + &ucd.CodePointRange{From: rune(69932), To: rune(69932)}, + &ucd.CodePointRange{From: rune(69933), To: rune(69938)}, + &ucd.CodePointRange{From: rune(69957), To: rune(69958)}, + &ucd.CodePointRange{From: rune(70016), To: rune(70017)}, + &ucd.CodePointRange{From: rune(70018), To: rune(70018)}, + &ucd.CodePointRange{From: rune(70067), To: rune(70069)}, + &ucd.CodePointRange{From: rune(70070), To: rune(70078)}, + &ucd.CodePointRange{From: rune(70079), To: rune(70079)}, + &ucd.CodePointRange{From: rune(70094), To: rune(70094)}, + &ucd.CodePointRange{From: rune(70095), To: rune(70095)}, + &ucd.CodePointRange{From: rune(70188), To: rune(70190)}, + &ucd.CodePointRange{From: rune(70191), To: rune(70193)}, + &ucd.CodePointRange{From: rune(70194), To: rune(70195)}, + &ucd.CodePointRange{From: rune(70196), To: rune(70196)}, + &ucd.CodePointRange{From: rune(70199), To: rune(70199)}, + &ucd.CodePointRange{From: rune(70206), To: rune(70206)}, + &ucd.CodePointRange{From: rune(70367), To: rune(70367)}, + &ucd.CodePointRange{From: rune(70368), To: rune(70370)}, + &ucd.CodePointRange{From: rune(70371), To: rune(70376)}, + &ucd.CodePointRange{From: rune(70400), To: rune(70401)}, + &ucd.CodePointRange{From: rune(70402), To: rune(70403)}, + &ucd.CodePointRange{From: rune(70462), To: rune(70463)}, + &ucd.CodePointRange{From: rune(70464), To: rune(70464)}, + &ucd.CodePointRange{From: rune(70465), To: rune(70468)}, + &ucd.CodePointRange{From: rune(70471), To: rune(70472)}, + &ucd.CodePointRange{From: rune(70475), To: rune(70476)}, + &ucd.CodePointRange{From: rune(70487), To: rune(70487)}, + &ucd.CodePointRange{From: rune(70498), To: rune(70499)}, + &ucd.CodePointRange{From: rune(70709), To: rune(70711)}, + &ucd.CodePointRange{From: rune(70712), To: rune(70719)}, + &ucd.CodePointRange{From: rune(70720), To: rune(70721)}, + &ucd.CodePointRange{From: rune(70723), To: rune(70724)}, + &ucd.CodePointRange{From: rune(70725), To: rune(70725)}, + &ucd.CodePointRange{From: rune(70832), To: rune(70834)}, + &ucd.CodePointRange{From: rune(70835), To: rune(70840)}, + &ucd.CodePointRange{From: rune(70841), To: rune(70841)}, + &ucd.CodePointRange{From: rune(70842), To: rune(70842)}, + &ucd.CodePointRange{From: rune(70843), To: rune(70846)}, + &ucd.CodePointRange{From: rune(70847), To: rune(70848)}, + &ucd.CodePointRange{From: rune(70849), To: rune(70849)}, + &ucd.CodePointRange{From: rune(71087), To: rune(71089)}, + &ucd.CodePointRange{From: rune(71090), To: rune(71093)}, + &ucd.CodePointRange{From: rune(71096), To: rune(71099)}, + &ucd.CodePointRange{From: rune(71100), To: rune(71101)}, + &ucd.CodePointRange{From: rune(71102), To: rune(71102)}, + &ucd.CodePointRange{From: rune(71132), To: rune(71133)}, + &ucd.CodePointRange{From: rune(71216), To: rune(71218)}, + &ucd.CodePointRange{From: rune(71219), To: rune(71226)}, + &ucd.CodePointRange{From: rune(71227), To: rune(71228)}, + &ucd.CodePointRange{From: rune(71229), To: rune(71229)}, + &ucd.CodePointRange{From: rune(71230), To: rune(71230)}, + &ucd.CodePointRange{From: rune(71232), To: rune(71232)}, + &ucd.CodePointRange{From: rune(71339), To: rune(71339)}, + &ucd.CodePointRange{From: rune(71340), To: rune(71340)}, + &ucd.CodePointRange{From: rune(71341), To: rune(71341)}, + &ucd.CodePointRange{From: rune(71342), To: rune(71343)}, + &ucd.CodePointRange{From: rune(71344), To: rune(71349)}, + &ucd.CodePointRange{From: rune(71453), To: rune(71455)}, + &ucd.CodePointRange{From: rune(71456), To: rune(71457)}, + &ucd.CodePointRange{From: rune(71458), To: rune(71461)}, + &ucd.CodePointRange{From: rune(71462), To: rune(71462)}, + &ucd.CodePointRange{From: rune(71463), To: rune(71466)}, + &ucd.CodePointRange{From: rune(71724), To: rune(71726)}, + &ucd.CodePointRange{From: rune(71727), To: rune(71735)}, + &ucd.CodePointRange{From: rune(71736), To: rune(71736)}, + &ucd.CodePointRange{From: rune(71984), To: rune(71989)}, + &ucd.CodePointRange{From: rune(71991), To: rune(71992)}, + &ucd.CodePointRange{From: rune(71995), To: rune(71996)}, + &ucd.CodePointRange{From: rune(72000), To: rune(72000)}, + &ucd.CodePointRange{From: rune(72002), To: rune(72002)}, + &ucd.CodePointRange{From: rune(72145), To: rune(72147)}, + &ucd.CodePointRange{From: rune(72148), To: rune(72151)}, + &ucd.CodePointRange{From: rune(72154), To: rune(72155)}, + &ucd.CodePointRange{From: rune(72156), To: rune(72159)}, + &ucd.CodePointRange{From: rune(72164), To: rune(72164)}, + &ucd.CodePointRange{From: rune(72193), To: rune(72202)}, + &ucd.CodePointRange{From: rune(72245), To: rune(72248)}, + &ucd.CodePointRange{From: rune(72249), To: rune(72249)}, + &ucd.CodePointRange{From: rune(72251), To: rune(72254)}, + &ucd.CodePointRange{From: rune(72273), To: rune(72278)}, + &ucd.CodePointRange{From: rune(72279), To: rune(72280)}, + &ucd.CodePointRange{From: rune(72281), To: rune(72283)}, + &ucd.CodePointRange{From: rune(72330), To: rune(72342)}, + &ucd.CodePointRange{From: rune(72343), To: rune(72343)}, + &ucd.CodePointRange{From: rune(72751), To: rune(72751)}, + &ucd.CodePointRange{From: rune(72752), To: rune(72758)}, + &ucd.CodePointRange{From: rune(72760), To: rune(72765)}, + &ucd.CodePointRange{From: rune(72766), To: rune(72766)}, + &ucd.CodePointRange{From: rune(72850), To: rune(72871)}, + &ucd.CodePointRange{From: rune(72873), To: rune(72873)}, + &ucd.CodePointRange{From: rune(72874), To: rune(72880)}, + &ucd.CodePointRange{From: rune(72881), To: rune(72881)}, + &ucd.CodePointRange{From: rune(72882), To: rune(72883)}, + &ucd.CodePointRange{From: rune(72884), To: rune(72884)}, + &ucd.CodePointRange{From: rune(72885), To: rune(72886)}, + &ucd.CodePointRange{From: rune(73009), To: rune(73014)}, + &ucd.CodePointRange{From: rune(73018), To: rune(73018)}, + &ucd.CodePointRange{From: rune(73020), To: rune(73021)}, + &ucd.CodePointRange{From: rune(73023), To: rune(73025)}, + &ucd.CodePointRange{From: rune(73027), To: rune(73027)}, + &ucd.CodePointRange{From: rune(73031), To: rune(73031)}, + &ucd.CodePointRange{From: rune(73098), To: rune(73102)}, + &ucd.CodePointRange{From: rune(73104), To: rune(73105)}, + &ucd.CodePointRange{From: rune(73107), To: rune(73108)}, + &ucd.CodePointRange{From: rune(73109), To: rune(73109)}, + &ucd.CodePointRange{From: rune(73110), To: rune(73110)}, + &ucd.CodePointRange{From: rune(73459), To: rune(73460)}, + &ucd.CodePointRange{From: rune(73461), To: rune(73462)}, + &ucd.CodePointRange{From: rune(94031), To: rune(94031)}, + &ucd.CodePointRange{From: rune(94033), To: rune(94087)}, + &ucd.CodePointRange{From: rune(94095), To: rune(94098)}, + &ucd.CodePointRange{From: rune(94192), To: rune(94193)}, + &ucd.CodePointRange{From: rune(113822), To: rune(113822)}, + &ucd.CodePointRange{From: rune(122880), To: rune(122886)}, + &ucd.CodePointRange{From: rune(122888), To: rune(122904)}, + &ucd.CodePointRange{From: rune(122907), To: rune(122913)}, + &ucd.CodePointRange{From: rune(122915), To: rune(122916)}, + &ucd.CodePointRange{From: rune(122918), To: rune(122922)}, + &ucd.CodePointRange{From: rune(125255), To: rune(125255)}, + &ucd.CodePointRange{From: rune(127280), To: rune(127305)}, + &ucd.CodePointRange{From: rune(127312), To: rune(127337)}, + &ucd.CodePointRange{From: rune(127344), To: rune(127369)}, +} + +// https://www.unicode.org/Public/13.0.0/ucd/PropList.txt var otherLowercaseCodePoints = []*ucd.CodePointRange{ &ucd.CodePointRange{From: rune(170), To: rune(170)}, &ucd.CodePointRange{From: rune(186), To: rune(186)}, |