authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2022-12-22 10:44:52 -08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2022-12-22 10:44:52 -08:00
log5488263002197821ff13ed7216dcfe541b46e592
treec1947e8907cb9d98811f6a9de2499be27e44c1bf
parent9f2e3d7a39a45f002e9977089df9d8c48f6cbf3a

add EquivalentUnifiedIdeograph, closes #15


5 files changed, 399 insertions(+), 0 deletions(-)

generate.zig+1
......@@ -12,6 +12,7 @@ const files = [_]type{
1212 @import("./scripts/DerivedCoreProperties.zig"),
1313 @import("./scripts/EastAsianWidth.zig"),
1414 @import("./scripts/EmojiSources.zig"),
15 @import("./scripts/EquivalentUnifiedIdeograph.zig"),
1516};
1617
1718pub fn main() !void {
scripts/EquivalentUnifiedIdeograph.zig created+39
......@@ -0,0 +1,39 @@
1const std = @import("std");
2const common = @import("./_common.zig");
3
4pub usingnamespace common.Main(struct {
5 pub const source_file = "EquivalentUnifiedIdeograph";
6
7 pub const dest_file = "src/equivalent_unified_ideograph.zig";
8
9 pub const dest_header =
10 \\pub const data = [_][2]u21{
11 \\
12 ;
13
14 pub const dest_footer =
15 \\};
16 \\
17 ;
18
19 pub fn exec(alloc: std.mem.Allocator, line: []const u8, writer: anytype) !bool {
20 _ = alloc;
21 var it = std.mem.tokenize(u8, line, "; ");
22
23 const first = it.next().?;
24 const next = it.next().?;
25
26 if (std.mem.indexOf(u8, first, "..")) |index| {
27 const start = try std.fmt.parseInt(u21, first[0..index], 16);
28 const end = try std.fmt.parseInt(u21, first[index + 2 ..], 16);
29 var i = start;
30 while (i <= end) : (i += 1) {
31 try writer.print(" .{{ 0x{X}, 0x{s} }},\n", .{ i, next });
32 }
33 } else {
34 try writer.print(" .{{ 0x{s}, 0x{s} }},\n", .{ first, next });
35 }
36
37 return true;
38 }
39});
src/equivalent_unified_ideograph.zig created+357
......@@ -0,0 +1,357 @@
1// This file is part of the Unicode Character Database
2// For documentation, see http://www.unicode.org/reports/tr44/
3//
4// Based on the source file: https://unicode.org/Public/13.0.0/ucd/EquivalentUnifiedIdeograph.txt
5//
6// zig fmt: off
7
8pub const data = [_][2]u21{
9 .{ 0x2E81, 0x5382 },
10 .{ 0x2E82, 0x4E5B },
11 .{ 0x2E83, 0x4E5A },
12 .{ 0x2E84, 0x4E59 },
13 .{ 0x2E85, 0x4EBB },
14 .{ 0x2E86, 0x5182 },
15 .{ 0x2E87, 0x20628 },
16 .{ 0x2E88, 0x5200 },
17 .{ 0x2E89, 0x5202 },
18 .{ 0x2E8A, 0x535C },
19 .{ 0x2E8B, 0x353E },
20 .{ 0x2E8C, 0x5C0F },
21 .{ 0x2E8D, 0x5C0F },
22 .{ 0x2E8E, 0x5140 },
23 .{ 0x2E8F, 0x5C23 },
24 .{ 0x2E90, 0x5C22 },
25 .{ 0x2E91, 0x21BC2 },
26 .{ 0x2E92, 0x5DF3 },
27 .{ 0x2E93, 0x5E7A },
28 .{ 0x2E94, 0x5F51 },
29 .{ 0x2E95, 0x5F50 },
30 .{ 0x2E96, 0x5FC4 },
31 .{ 0x2E97, 0x5FC3 },
32 .{ 0x2E98, 0x624C },
33 .{ 0x2E99, 0x6535 },
34 .{ 0x2E9B, 0x65E1 },
35 .{ 0x2E9C, 0x65E5 },
36 .{ 0x2E9D, 0x6708 },
37 .{ 0x2E9E, 0x6B7A },
38 .{ 0x2E9F, 0x6BCD },
39 .{ 0x2EA0, 0x6C11 },
40 .{ 0x2EA1, 0x6C35 },
41 .{ 0x2EA2, 0x6C3A },
42 .{ 0x2EA3, 0x706C },
43 .{ 0x2EA4, 0x722B },
44 .{ 0x2EA5, 0x722B },
45 .{ 0x2EA6, 0x4E2C },
46 .{ 0x2EA7, 0x725B },
47 .{ 0x2EA8, 0x72AD },
48 .{ 0x2EA9, 0x738B },
49 .{ 0x2EAA, 0x24D14 },
50 .{ 0x2EAB, 0x76EE },
51 .{ 0x2EAC, 0x793A },
52 .{ 0x2EAD, 0x793B },
53 .{ 0x2EAE, 0x25AD7 },
54 .{ 0x2EAF, 0x7CF9 },
55 .{ 0x2EB0, 0x7E9F },
56 .{ 0x2EB1, 0x7F53 },
57 .{ 0x2EB2, 0x7F52 },
58 .{ 0x2EB3, 0x34C1 },
59 .{ 0x2EB4, 0x5197 },
60 .{ 0x2EB5, 0x2626B },
61 .{ 0x2EB6, 0x7F8A },
62 .{ 0x2EB7, 0x2634C },
63 .{ 0x2EB8, 0x2634B },
64 .{ 0x2EB9, 0x8002 },
65 .{ 0x2EBA, 0x8080 },
66 .{ 0x2EBB, 0x807F },
67 .{ 0x2EBC, 0x8089 },
68 .{ 0x2EBD, 0x26951 },
69 .{ 0x2EBE, 0x8279 },
70 .{ 0x2EBF, 0x8279 },
71 .{ 0x2EC0, 0x8279 },
72 .{ 0x2EC1, 0x864E },
73 .{ 0x2EC2, 0x8864 },
74 .{ 0x2EC3, 0x8980 },
75 .{ 0x2EC4, 0x897F },
76 .{ 0x2EC5, 0x89C1 },
77 .{ 0x2EC6, 0x89D2 },
78 .{ 0x2EC7, 0x278B2 },
79 .{ 0x2EC8, 0x8BA0 },
80 .{ 0x2EC9, 0x8D1D },
81 .{ 0x2ECA, 0x27FB7 },
82 .{ 0x2ECB, 0x8F66 },
83 .{ 0x2ECC, 0x8FB6 },
84 .{ 0x2ECD, 0x8FB6 },
85 .{ 0x2ECE, 0x8FB6 },
86 .{ 0x2ECF, 0x9091 },
87 .{ 0x2ED0, 0x9485 },
88 .{ 0x2ED1, 0x9577 },
89 .{ 0x2ED2, 0x9578 },
90 .{ 0x2ED3, 0x957F },
91 .{ 0x2ED4, 0x95E8 },
92 .{ 0x2ED5, 0x28E0F },
93 .{ 0x2ED6, 0x961D },
94 .{ 0x2ED7, 0x96E8 },
95 .{ 0x2ED8, 0x9752 },
96 .{ 0x2ED9, 0x97E6 },
97 .{ 0x2EDA, 0x9875 },
98 .{ 0x2EDB, 0x98CE },
99 .{ 0x2EDC, 0x98DE },
100 .{ 0x2EDD, 0x98DF },
101 .{ 0x2EDE, 0x2967F },
102 .{ 0x2EDF, 0x98E0 },
103 .{ 0x2EE0, 0x9963 },
104 .{ 0x2EE1, 0x29810 },
105 .{ 0x2EE2, 0x9A6C },
106 .{ 0x2EE3, 0x9AA8 },
107 .{ 0x2EE4, 0x9B3C },
108 .{ 0x2EE5, 0x9C7C },
109 .{ 0x2EE6, 0x9E1F },
110 .{ 0x2EE7, 0x5364 },
111 .{ 0x2EE8, 0x9EA6 },
112 .{ 0x2EE9, 0x9EC4 },
113 .{ 0x2EEA, 0x9EFE },
114 .{ 0x2EEB, 0x6589 },
115 .{ 0x2EEC, 0x9F50 },
116 .{ 0x2EED, 0x6B6F },
117 .{ 0x2EEE, 0x9F7F },
118 .{ 0x2EEF, 0x7ADC },
119 .{ 0x2EF0, 0x9F99 },
120 .{ 0x2EF1, 0x9F9C },
121 .{ 0x2EF2, 0x4E80 },
122 .{ 0x2EF3, 0x9F9F },
123 .{ 0x2F00, 0x4E00 },
124 .{ 0x2F01, 0x4E28 },
125 .{ 0x2F02, 0x4E36 },
126 .{ 0x2F03, 0x4E3F },
127 .{ 0x2F04, 0x4E59 },
128 .{ 0x2F05, 0x4E85 },
129 .{ 0x2F06, 0x4E8C },
130 .{ 0x2F07, 0x4EA0 },
131 .{ 0x2F08, 0x4EBA },
132 .{ 0x2F09, 0x513F },
133 .{ 0x2F0A, 0x5165 },
134 .{ 0x2F0B, 0x516B },
135 .{ 0x2F0C, 0x5182 },
136 .{ 0x2F0D, 0x5196 },
137 .{ 0x2F0E, 0x51AB },
138 .{ 0x2F0F, 0x51E0 },
139 .{ 0x2F10, 0x51F5 },
140 .{ 0x2F11, 0x5200 },
141 .{ 0x2F12, 0x529B },
142 .{ 0x2F13, 0x52F9 },
143 .{ 0x2F14, 0x5315 },
144 .{ 0x2F15, 0x531A },
145 .{ 0x2F16, 0x5338 },
146 .{ 0x2F17, 0x5341 },
147 .{ 0x2F18, 0x535C },
148 .{ 0x2F19, 0x5369 },
149 .{ 0x2F1A, 0x5382 },
150 .{ 0x2F1B, 0x53B6 },
151 .{ 0x2F1C, 0x53C8 },
152 .{ 0x2F1D, 0x53E3 },
153 .{ 0x2F1E, 0x56D7 },
154 .{ 0x2F1F, 0x571F },
155 .{ 0x2F20, 0x58EB },
156 .{ 0x2F21, 0x5902 },
157 .{ 0x2F22, 0x590A },
158 .{ 0x2F23, 0x5915 },
159 .{ 0x2F24, 0x5927 },
160 .{ 0x2F25, 0x5973 },
161 .{ 0x2F26, 0x5B50 },
162 .{ 0x2F27, 0x5B80 },
163 .{ 0x2F28, 0x5BF8 },
164 .{ 0x2F29, 0x5C0F },
165 .{ 0x2F2A, 0x5C22 },
166 .{ 0x2F2B, 0x5C38 },
167 .{ 0x2F2C, 0x5C6E },
168 .{ 0x2F2D, 0x5C71 },
169 .{ 0x2F2E, 0x5DDB },
170 .{ 0x2F2F, 0x5DE5 },
171 .{ 0x2F30, 0x5DF1 },
172 .{ 0x2F31, 0x5DFE },
173 .{ 0x2F32, 0x5E72 },
174 .{ 0x2F33, 0x5E7A },
175 .{ 0x2F34, 0x5E7F },
176 .{ 0x2F35, 0x5EF4 },
177 .{ 0x2F36, 0x5EFE },
178 .{ 0x2F37, 0x5F0B },
179 .{ 0x2F38, 0x5F13 },
180 .{ 0x2F39, 0x5F50 },
181 .{ 0x2F3A, 0x5F61 },
182 .{ 0x2F3B, 0x5F73 },
183 .{ 0x2F3C, 0x5FC3 },
184 .{ 0x2F3D, 0x6208 },
185 .{ 0x2F3E, 0x6236 },
186 .{ 0x2F3F, 0x624B },
187 .{ 0x2F40, 0x652F },
188 .{ 0x2F41, 0x6534 },
189 .{ 0x2F42, 0x6587 },
190 .{ 0x2F43, 0x6597 },
191 .{ 0x2F44, 0x65A4 },
192 .{ 0x2F45, 0x65B9 },
193 .{ 0x2F46, 0x65E0 },
194 .{ 0x2F47, 0x65E5 },
195 .{ 0x2F48, 0x66F0 },
196 .{ 0x2F49, 0x6708 },
197 .{ 0x2F4A, 0x6728 },
198 .{ 0x2F4B, 0x6B20 },
199 .{ 0x2F4C, 0x6B62 },
200 .{ 0x2F4D, 0x6B79 },
201 .{ 0x2F4E, 0x6BB3 },
202 .{ 0x2F4F, 0x6BCB },
203 .{ 0x2F50, 0x6BD4 },
204 .{ 0x2F51, 0x6BDB },
205 .{ 0x2F52, 0x6C0F },
206 .{ 0x2F53, 0x6C14 },
207 .{ 0x2F54, 0x6C34 },
208 .{ 0x2F55, 0x706B },
209 .{ 0x2F56, 0x722A },
210 .{ 0x2F57, 0x7236 },
211 .{ 0x2F58, 0x723B },
212 .{ 0x2F59, 0x723F },
213 .{ 0x2F5A, 0x7247 },
214 .{ 0x2F5B, 0x7259 },
215 .{ 0x2F5C, 0x725B },
216 .{ 0x2F5D, 0x72AC },
217 .{ 0x2F5E, 0x7384 },
218 .{ 0x2F5F, 0x7389 },
219 .{ 0x2F60, 0x74DC },
220 .{ 0x2F61, 0x74E6 },
221 .{ 0x2F62, 0x7518 },
222 .{ 0x2F63, 0x751F },
223 .{ 0x2F64, 0x7528 },
224 .{ 0x2F65, 0x7530 },
225 .{ 0x2F66, 0x758B },
226 .{ 0x2F67, 0x7592 },
227 .{ 0x2F68, 0x7676 },
228 .{ 0x2F69, 0x767D },
229 .{ 0x2F6A, 0x76AE },
230 .{ 0x2F6B, 0x76BF },
231 .{ 0x2F6C, 0x76EE },
232 .{ 0x2F6D, 0x77DB },
233 .{ 0x2F6E, 0x77E2 },
234 .{ 0x2F6F, 0x77F3 },
235 .{ 0x2F70, 0x793A },
236 .{ 0x2F71, 0x79B8 },
237 .{ 0x2F72, 0x79BE },
238 .{ 0x2F73, 0x7A74 },
239 .{ 0x2F74, 0x7ACB },
240 .{ 0x2F75, 0x7AF9 },
241 .{ 0x2F76, 0x7C73 },
242 .{ 0x2F77, 0x7CF8 },
243 .{ 0x2F78, 0x7F36 },
244 .{ 0x2F79, 0x7F51 },
245 .{ 0x2F7A, 0x7F8A },
246 .{ 0x2F7B, 0x7FBD },
247 .{ 0x2F7C, 0x8001 },
248 .{ 0x2F7D, 0x800C },
249 .{ 0x2F7E, 0x8012 },
250 .{ 0x2F7F, 0x8033 },
251 .{ 0x2F80, 0x807F },
252 .{ 0x2F81, 0x8089 },
253 .{ 0x2F82, 0x81E3 },
254 .{ 0x2F83, 0x81EA },
255 .{ 0x2F84, 0x81F3 },
256 .{ 0x2F85, 0x81FC },
257 .{ 0x2F86, 0x820C },
258 .{ 0x2F87, 0x821B },
259 .{ 0x2F88, 0x821F },
260 .{ 0x2F89, 0x826E },
261 .{ 0x2F8A, 0x8272 },
262 .{ 0x2F8B, 0x8278 },
263 .{ 0x2F8C, 0x864D },
264 .{ 0x2F8D, 0x866B },
265 .{ 0x2F8E, 0x8840 },
266 .{ 0x2F8F, 0x884C },
267 .{ 0x2F90, 0x8863 },
268 .{ 0x2F91, 0x897E },
269 .{ 0x2F92, 0x898B },
270 .{ 0x2F93, 0x89D2 },
271 .{ 0x2F94, 0x8A00 },
272 .{ 0x2F95, 0x8C37 },
273 .{ 0x2F96, 0x8C46 },
274 .{ 0x2F97, 0x8C55 },
275 .{ 0x2F98, 0x8C78 },
276 .{ 0x2F99, 0x8C9D },
277 .{ 0x2F9A, 0x8D64 },
278 .{ 0x2F9B, 0x8D70 },
279 .{ 0x2F9C, 0x8DB3 },
280 .{ 0x2F9D, 0x8EAB },
281 .{ 0x2F9E, 0x8ECA },
282 .{ 0x2F9F, 0x8F9B },
283 .{ 0x2FA0, 0x8FB0 },
284 .{ 0x2FA1, 0x8FB5 },
285 .{ 0x2FA2, 0x9091 },
286 .{ 0x2FA3, 0x9149 },
287 .{ 0x2FA4, 0x91C6 },
288 .{ 0x2FA5, 0x91CC },
289 .{ 0x2FA6, 0x91D1 },
290 .{ 0x2FA7, 0x9577 },
291 .{ 0x2FA8, 0x9580 },
292 .{ 0x2FA9, 0x961C },
293 .{ 0x2FAA, 0x96B6 },
294 .{ 0x2FAB, 0x96B9 },
295 .{ 0x2FAC, 0x96E8 },
296 .{ 0x2FAD, 0x9751 },
297 .{ 0x2FAE, 0x975E },
298 .{ 0x2FAF, 0x9762 },
299 .{ 0x2FB0, 0x9769 },
300 .{ 0x2FB1, 0x97CB },
301 .{ 0x2FB2, 0x97ED },
302 .{ 0x2FB3, 0x97F3 },
303 .{ 0x2FB4, 0x9801 },
304 .{ 0x2FB5, 0x98A8 },
305 .{ 0x2FB6, 0x98DB },
306 .{ 0x2FB7, 0x98DF },
307 .{ 0x2FB8, 0x9996 },
308 .{ 0x2FB9, 0x9999 },
309 .{ 0x2FBA, 0x99AC },
310 .{ 0x2FBB, 0x9AA8 },
311 .{ 0x2FBC, 0x9AD8 },
312 .{ 0x2FBD, 0x9ADF },
313 .{ 0x2FBE, 0x9B25 },
314 .{ 0x2FBF, 0x9B2F },
315 .{ 0x2FC0, 0x9B32 },
316 .{ 0x2FC1, 0x9B3C },
317 .{ 0x2FC2, 0x9B5A },
318 .{ 0x2FC3, 0x9CE5 },
319 .{ 0x2FC4, 0x9E75 },
320 .{ 0x2FC5, 0x9E7F },
321 .{ 0x2FC6, 0x9EA5 },
322 .{ 0x2FC7, 0x9EBB },
323 .{ 0x2FC8, 0x9EC3 },
324 .{ 0x2FC9, 0x9ECD },
325 .{ 0x2FCA, 0x9ED1 },
326 .{ 0x2FCB, 0x9EF9 },
327 .{ 0x2FCC, 0x9EFD },
328 .{ 0x2FCD, 0x9F0E },
329 .{ 0x2FCE, 0x9F13 },
330 .{ 0x2FCF, 0x9F20 },
331 .{ 0x2FD0, 0x9F3B },
332 .{ 0x2FD1, 0x9F4A },
333 .{ 0x2FD2, 0x9F52 },
334 .{ 0x2FD3, 0x9F8D },
335 .{ 0x2FD4, 0x9F9C },
336 .{ 0x2FD5, 0x9FA0 },
337 .{ 0x31C6, 0x200CC },
338 .{ 0x31CF, 0x4E40 },
339 .{ 0x31D0, 0x4E00 },
340 .{ 0x31D1, 0x4E28 },
341 .{ 0x31D2, 0x4E3F },
342 .{ 0x31D3, 0x4E3F },
343 .{ 0x31D4, 0x4E36 },
344 .{ 0x31D5, 0x200CD },
345 .{ 0x31D6, 0x4E5B },
346 .{ 0x31D7, 0x200CA },
347 .{ 0x31D8, 0x200CE },
348 .{ 0x31D9, 0x2010C },
349 .{ 0x31DA, 0x4E85 },
350 .{ 0x31DB, 0x21FE8 },
351 .{ 0x31DC, 0x200CB },
352 .{ 0x31DD, 0x4E40 },
353 .{ 0x31DE, 0x200D1 },
354 .{ 0x31DF, 0x4E5A },
355 .{ 0x31E0, 0x4E59 },
356 .{ 0x31E1, 0x2010E },
357};
src/lib.zig+1
......@@ -10,3 +10,4 @@ pub const derived_core_properties = @import("./derived_core_properties.zig");
1010
1111pub const east_asian_width = @import("./east_asian_width.zig");
1212pub const emoji_sources = @import("./emoji_sources.zig");
13pub const equivalent_unified_ideograph = @import("./equivalent_unified_ideograph.zig");
src/main.zig+1
......@@ -17,6 +17,7 @@ pub fn main() !void {
1717 ucd.derived_core_properties,
1818 ucd.east_asian_width,
1919 ucd.emoji_sources,
20 ucd.equivalent_unified_ideograph,
2021 };
2122
2223 inline for (data) |b| {