aboutsummaryrefslogtreecommitdiff
path: root/compiler/ucd_table.go
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-11-26 00:01:16 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-11-26 00:01:16 +0900
commite9af22730e68908f46c9aee3b35e133d34191bef (patch)
tree7c8b2a738453ca7e26c1aebc4375800b8842d3aa /compiler/ucd_table.go
parentMake character properties available in an inverse expression (Make [^\p{...}]... (diff)
downloadtre-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.go399
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)},