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/17.0.0/ucd/SpecialCasing.txt
5//
6// zig fmt: off
7
8pub const SpecialCasing = struct {
9 code: u21,
10 lower: []const u21,
11 title: []const u21,
12 upper: []const u21,
13 condition: []const u8,
14};
15
16pub const data = [_]SpecialCasing{
17 .{ .code = 0x00DF, .lower = &.{ 0x00DF, }, .title = &.{ 0x0053, 0x0073, }, .upper = &.{ 0x0053, 0x0053, }, .condition = "" },
18 .{ .code = 0x0130, .lower = &.{ 0x0069, 0x0307, }, .title = &.{ 0x0130, }, .upper = &.{ 0x0130, }, .condition = "" },
19 .{ .code = 0xFB00, .lower = &.{ 0xFB00, }, .title = &.{ 0x0046, 0x0066, }, .upper = &.{ 0x0046, 0x0046, }, .condition = "" },
20 .{ .code = 0xFB01, .lower = &.{ 0xFB01, }, .title = &.{ 0x0046, 0x0069, }, .upper = &.{ 0x0046, 0x0049, }, .condition = "" },
21 .{ .code = 0xFB02, .lower = &.{ 0xFB02, }, .title = &.{ 0x0046, 0x006C, }, .upper = &.{ 0x0046, 0x004C, }, .condition = "" },
22 .{ .code = 0xFB03, .lower = &.{ 0xFB03, }, .title = &.{ 0x0046, 0x0066, 0x0069, }, .upper = &.{ 0x0046, 0x0046, 0x0049, }, .condition = "" },
23 .{ .code = 0xFB04, .lower = &.{ 0xFB04, }, .title = &.{ 0x0046, 0x0066, 0x006C, }, .upper = &.{ 0x0046, 0x0046, 0x004C, }, .condition = "" },
24 .{ .code = 0xFB05, .lower = &.{ 0xFB05, }, .title = &.{ 0x0053, 0x0074, }, .upper = &.{ 0x0053, 0x0054, }, .condition = "" },
25 .{ .code = 0xFB06, .lower = &.{ 0xFB06, }, .title = &.{ 0x0053, 0x0074, }, .upper = &.{ 0x0053, 0x0054, }, .condition = "" },
26 .{ .code = 0x0587, .lower = &.{ 0x0587, }, .title = &.{ 0x0535, 0x0582, }, .upper = &.{ 0x0535, 0x0552, }, .condition = "" },
27 .{ .code = 0xFB13, .lower = &.{ 0xFB13, }, .title = &.{ 0x0544, 0x0576, }, .upper = &.{ 0x0544, 0x0546, }, .condition = "" },
28 .{ .code = 0xFB14, .lower = &.{ 0xFB14, }, .title = &.{ 0x0544, 0x0565, }, .upper = &.{ 0x0544, 0x0535, }, .condition = "" },
29 .{ .code = 0xFB15, .lower = &.{ 0xFB15, }, .title = &.{ 0x0544, 0x056B, }, .upper = &.{ 0x0544, 0x053B, }, .condition = "" },
30 .{ .code = 0xFB16, .lower = &.{ 0xFB16, }, .title = &.{ 0x054E, 0x0576, }, .upper = &.{ 0x054E, 0x0546, }, .condition = "" },
31 .{ .code = 0xFB17, .lower = &.{ 0xFB17, }, .title = &.{ 0x0544, 0x056D, }, .upper = &.{ 0x0544, 0x053D, }, .condition = "" },
32 .{ .code = 0x0149, .lower = &.{ 0x0149, }, .title = &.{ 0x02BC, 0x004E, }, .upper = &.{ 0x02BC, 0x004E, }, .condition = "" },
33 .{ .code = 0x0390, .lower = &.{ 0x0390, }, .title = &.{ 0x0399, 0x0308, 0x0301, }, .upper = &.{ 0x0399, 0x0308, 0x0301, }, .condition = "" },
34 .{ .code = 0x03B0, .lower = &.{ 0x03B0, }, .title = &.{ 0x03A5, 0x0308, 0x0301, }, .upper = &.{ 0x03A5, 0x0308, 0x0301, }, .condition = "" },
35 .{ .code = 0x01F0, .lower = &.{ 0x01F0, }, .title = &.{ 0x004A, 0x030C, }, .upper = &.{ 0x004A, 0x030C, }, .condition = "" },
36 .{ .code = 0x1E96, .lower = &.{ 0x1E96, }, .title = &.{ 0x0048, 0x0331, }, .upper = &.{ 0x0048, 0x0331, }, .condition = "" },
37 .{ .code = 0x1E97, .lower = &.{ 0x1E97, }, .title = &.{ 0x0054, 0x0308, }, .upper = &.{ 0x0054, 0x0308, }, .condition = "" },
38 .{ .code = 0x1E98, .lower = &.{ 0x1E98, }, .title = &.{ 0x0057, 0x030A, }, .upper = &.{ 0x0057, 0x030A, }, .condition = "" },
39 .{ .code = 0x1E99, .lower = &.{ 0x1E99, }, .title = &.{ 0x0059, 0x030A, }, .upper = &.{ 0x0059, 0x030A, }, .condition = "" },
40 .{ .code = 0x1E9A, .lower = &.{ 0x1E9A, }, .title = &.{ 0x0041, 0x02BE, }, .upper = &.{ 0x0041, 0x02BE, }, .condition = "" },
41 .{ .code = 0x1F50, .lower = &.{ 0x1F50, }, .title = &.{ 0x03A5, 0x0313, }, .upper = &.{ 0x03A5, 0x0313, }, .condition = "" },
42 .{ .code = 0x1F52, .lower = &.{ 0x1F52, }, .title = &.{ 0x03A5, 0x0313, 0x0300, }, .upper = &.{ 0x03A5, 0x0313, 0x0300, }, .condition = "" },
43 .{ .code = 0x1F54, .lower = &.{ 0x1F54, }, .title = &.{ 0x03A5, 0x0313, 0x0301, }, .upper = &.{ 0x03A5, 0x0313, 0x0301, }, .condition = "" },
44 .{ .code = 0x1F56, .lower = &.{ 0x1F56, }, .title = &.{ 0x03A5, 0x0313, 0x0342, }, .upper = &.{ 0x03A5, 0x0313, 0x0342, }, .condition = "" },
45 .{ .code = 0x1FB6, .lower = &.{ 0x1FB6, }, .title = &.{ 0x0391, 0x0342, }, .upper = &.{ 0x0391, 0x0342, }, .condition = "" },
46 .{ .code = 0x1FC6, .lower = &.{ 0x1FC6, }, .title = &.{ 0x0397, 0x0342, }, .upper = &.{ 0x0397, 0x0342, }, .condition = "" },
47 .{ .code = 0x1FD2, .lower = &.{ 0x1FD2, }, .title = &.{ 0x0399, 0x0308, 0x0300, }, .upper = &.{ 0x0399, 0x0308, 0x0300, }, .condition = "" },
48 .{ .code = 0x1FD3, .lower = &.{ 0x1FD3, }, .title = &.{ 0x0399, 0x0308, 0x0301, }, .upper = &.{ 0x0399, 0x0308, 0x0301, }, .condition = "" },
49 .{ .code = 0x1FD6, .lower = &.{ 0x1FD6, }, .title = &.{ 0x0399, 0x0342, }, .upper = &.{ 0x0399, 0x0342, }, .condition = "" },
50 .{ .code = 0x1FD7, .lower = &.{ 0x1FD7, }, .title = &.{ 0x0399, 0x0308, 0x0342, }, .upper = &.{ 0x0399, 0x0308, 0x0342, }, .condition = "" },
51 .{ .code = 0x1FE2, .lower = &.{ 0x1FE2, }, .title = &.{ 0x03A5, 0x0308, 0x0300, }, .upper = &.{ 0x03A5, 0x0308, 0x0300, }, .condition = "" },
52 .{ .code = 0x1FE3, .lower = &.{ 0x1FE3, }, .title = &.{ 0x03A5, 0x0308, 0x0301, }, .upper = &.{ 0x03A5, 0x0308, 0x0301, }, .condition = "" },
53 .{ .code = 0x1FE4, .lower = &.{ 0x1FE4, }, .title = &.{ 0x03A1, 0x0313, }, .upper = &.{ 0x03A1, 0x0313, }, .condition = "" },
54 .{ .code = 0x1FE6, .lower = &.{ 0x1FE6, }, .title = &.{ 0x03A5, 0x0342, }, .upper = &.{ 0x03A5, 0x0342, }, .condition = "" },
55 .{ .code = 0x1FE7, .lower = &.{ 0x1FE7, }, .title = &.{ 0x03A5, 0x0308, 0x0342, }, .upper = &.{ 0x03A5, 0x0308, 0x0342, }, .condition = "" },
56 .{ .code = 0x1FF6, .lower = &.{ 0x1FF6, }, .title = &.{ 0x03A9, 0x0342, }, .upper = &.{ 0x03A9, 0x0342, }, .condition = "" },
57 .{ .code = 0x1F80, .lower = &.{ 0x1F80, }, .title = &.{ 0x1F88, }, .upper = &.{ 0x1F08, 0x0399, }, .condition = "" },
58 .{ .code = 0x1F81, .lower = &.{ 0x1F81, }, .title = &.{ 0x1F89, }, .upper = &.{ 0x1F09, 0x0399, }, .condition = "" },
59 .{ .code = 0x1F82, .lower = &.{ 0x1F82, }, .title = &.{ 0x1F8A, }, .upper = &.{ 0x1F0A, 0x0399, }, .condition = "" },
60 .{ .code = 0x1F83, .lower = &.{ 0x1F83, }, .title = &.{ 0x1F8B, }, .upper = &.{ 0x1F0B, 0x0399, }, .condition = "" },
61 .{ .code = 0x1F84, .lower = &.{ 0x1F84, }, .title = &.{ 0x1F8C, }, .upper = &.{ 0x1F0C, 0x0399, }, .condition = "" },
62 .{ .code = 0x1F85, .lower = &.{ 0x1F85, }, .title = &.{ 0x1F8D, }, .upper = &.{ 0x1F0D, 0x0399, }, .condition = "" },
63 .{ .code = 0x1F86, .lower = &.{ 0x1F86, }, .title = &.{ 0x1F8E, }, .upper = &.{ 0x1F0E, 0x0399, }, .condition = "" },
64 .{ .code = 0x1F87, .lower = &.{ 0x1F87, }, .title = &.{ 0x1F8F, }, .upper = &.{ 0x1F0F, 0x0399, }, .condition = "" },
65 .{ .code = 0x1F88, .lower = &.{ 0x1F80, }, .title = &.{ 0x1F88, }, .upper = &.{ 0x1F08, 0x0399, }, .condition = "" },
66 .{ .code = 0x1F89, .lower = &.{ 0x1F81, }, .title = &.{ 0x1F89, }, .upper = &.{ 0x1F09, 0x0399, }, .condition = "" },
67 .{ .code = 0x1F8A, .lower = &.{ 0x1F82, }, .title = &.{ 0x1F8A, }, .upper = &.{ 0x1F0A, 0x0399, }, .condition = "" },
68 .{ .code = 0x1F8B, .lower = &.{ 0x1F83, }, .title = &.{ 0x1F8B, }, .upper = &.{ 0x1F0B, 0x0399, }, .condition = "" },
69 .{ .code = 0x1F8C, .lower = &.{ 0x1F84, }, .title = &.{ 0x1F8C, }, .upper = &.{ 0x1F0C, 0x0399, }, .condition = "" },
70 .{ .code = 0x1F8D, .lower = &.{ 0x1F85, }, .title = &.{ 0x1F8D, }, .upper = &.{ 0x1F0D, 0x0399, }, .condition = "" },
71 .{ .code = 0x1F8E, .lower = &.{ 0x1F86, }, .title = &.{ 0x1F8E, }, .upper = &.{ 0x1F0E, 0x0399, }, .condition = "" },
72 .{ .code = 0x1F8F, .lower = &.{ 0x1F87, }, .title = &.{ 0x1F8F, }, .upper = &.{ 0x1F0F, 0x0399, }, .condition = "" },
73 .{ .code = 0x1F90, .lower = &.{ 0x1F90, }, .title = &.{ 0x1F98, }, .upper = &.{ 0x1F28, 0x0399, }, .condition = "" },
74 .{ .code = 0x1F91, .lower = &.{ 0x1F91, }, .title = &.{ 0x1F99, }, .upper = &.{ 0x1F29, 0x0399, }, .condition = "" },
75 .{ .code = 0x1F92, .lower = &.{ 0x1F92, }, .title = &.{ 0x1F9A, }, .upper = &.{ 0x1F2A, 0x0399, }, .condition = "" },
76 .{ .code = 0x1F93, .lower = &.{ 0x1F93, }, .title = &.{ 0x1F9B, }, .upper = &.{ 0x1F2B, 0x0399, }, .condition = "" },
77 .{ .code = 0x1F94, .lower = &.{ 0x1F94, }, .title = &.{ 0x1F9C, }, .upper = &.{ 0x1F2C, 0x0399, }, .condition = "" },
78 .{ .code = 0x1F95, .lower = &.{ 0x1F95, }, .title = &.{ 0x1F9D, }, .upper = &.{ 0x1F2D, 0x0399, }, .condition = "" },
79 .{ .code = 0x1F96, .lower = &.{ 0x1F96, }, .title = &.{ 0x1F9E, }, .upper = &.{ 0x1F2E, 0x0399, }, .condition = "" },
80 .{ .code = 0x1F97, .lower = &.{ 0x1F97, }, .title = &.{ 0x1F9F, }, .upper = &.{ 0x1F2F, 0x0399, }, .condition = "" },
81 .{ .code = 0x1F98, .lower = &.{ 0x1F90, }, .title = &.{ 0x1F98, }, .upper = &.{ 0x1F28, 0x0399, }, .condition = "" },
82 .{ .code = 0x1F99, .lower = &.{ 0x1F91, }, .title = &.{ 0x1F99, }, .upper = &.{ 0x1F29, 0x0399, }, .condition = "" },
83 .{ .code = 0x1F9A, .lower = &.{ 0x1F92, }, .title = &.{ 0x1F9A, }, .upper = &.{ 0x1F2A, 0x0399, }, .condition = "" },
84 .{ .code = 0x1F9B, .lower = &.{ 0x1F93, }, .title = &.{ 0x1F9B, }, .upper = &.{ 0x1F2B, 0x0399, }, .condition = "" },
85 .{ .code = 0x1F9C, .lower = &.{ 0x1F94, }, .title = &.{ 0x1F9C, }, .upper = &.{ 0x1F2C, 0x0399, }, .condition = "" },
86 .{ .code = 0x1F9D, .lower = &.{ 0x1F95, }, .title = &.{ 0x1F9D, }, .upper = &.{ 0x1F2D, 0x0399, }, .condition = "" },
87 .{ .code = 0x1F9E, .lower = &.{ 0x1F96, }, .title = &.{ 0x1F9E, }, .upper = &.{ 0x1F2E, 0x0399, }, .condition = "" },
88 .{ .code = 0x1F9F, .lower = &.{ 0x1F97, }, .title = &.{ 0x1F9F, }, .upper = &.{ 0x1F2F, 0x0399, }, .condition = "" },
89 .{ .code = 0x1FA0, .lower = &.{ 0x1FA0, }, .title = &.{ 0x1FA8, }, .upper = &.{ 0x1F68, 0x0399, }, .condition = "" },
90 .{ .code = 0x1FA1, .lower = &.{ 0x1FA1, }, .title = &.{ 0x1FA9, }, .upper = &.{ 0x1F69, 0x0399, }, .condition = "" },
91 .{ .code = 0x1FA2, .lower = &.{ 0x1FA2, }, .title = &.{ 0x1FAA, }, .upper = &.{ 0x1F6A, 0x0399, }, .condition = "" },
92 .{ .code = 0x1FA3, .lower = &.{ 0x1FA3, }, .title = &.{ 0x1FAB, }, .upper = &.{ 0x1F6B, 0x0399, }, .condition = "" },
93 .{ .code = 0x1FA4, .lower = &.{ 0x1FA4, }, .title = &.{ 0x1FAC, }, .upper = &.{ 0x1F6C, 0x0399, }, .condition = "" },
94 .{ .code = 0x1FA5, .lower = &.{ 0x1FA5, }, .title = &.{ 0x1FAD, }, .upper = &.{ 0x1F6D, 0x0399, }, .condition = "" },
95 .{ .code = 0x1FA6, .lower = &.{ 0x1FA6, }, .title = &.{ 0x1FAE, }, .upper = &.{ 0x1F6E, 0x0399, }, .condition = "" },
96 .{ .code = 0x1FA7, .lower = &.{ 0x1FA7, }, .title = &.{ 0x1FAF, }, .upper = &.{ 0x1F6F, 0x0399, }, .condition = "" },
97 .{ .code = 0x1FA8, .lower = &.{ 0x1FA0, }, .title = &.{ 0x1FA8, }, .upper = &.{ 0x1F68, 0x0399, }, .condition = "" },
98 .{ .code = 0x1FA9, .lower = &.{ 0x1FA1, }, .title = &.{ 0x1FA9, }, .upper = &.{ 0x1F69, 0x0399, }, .condition = "" },
99 .{ .code = 0x1FAA, .lower = &.{ 0x1FA2, }, .title = &.{ 0x1FAA, }, .upper = &.{ 0x1F6A, 0x0399, }, .condition = "" },
100 .{ .code = 0x1FAB, .lower = &.{ 0x1FA3, }, .title = &.{ 0x1FAB, }, .upper = &.{ 0x1F6B, 0x0399, }, .condition = "" },
101 .{ .code = 0x1FAC, .lower = &.{ 0x1FA4, }, .title = &.{ 0x1FAC, }, .upper = &.{ 0x1F6C, 0x0399, }, .condition = "" },
102 .{ .code = 0x1FAD, .lower = &.{ 0x1FA5, }, .title = &.{ 0x1FAD, }, .upper = &.{ 0x1F6D, 0x0399, }, .condition = "" },
103 .{ .code = 0x1FAE, .lower = &.{ 0x1FA6, }, .title = &.{ 0x1FAE, }, .upper = &.{ 0x1F6E, 0x0399, }, .condition = "" },
104 .{ .code = 0x1FAF, .lower = &.{ 0x1FA7, }, .title = &.{ 0x1FAF, }, .upper = &.{ 0x1F6F, 0x0399, }, .condition = "" },
105 .{ .code = 0x1FB3, .lower = &.{ 0x1FB3, }, .title = &.{ 0x1FBC, }, .upper = &.{ 0x0391, 0x0399, }, .condition = "" },
106 .{ .code = 0x1FBC, .lower = &.{ 0x1FB3, }, .title = &.{ 0x1FBC, }, .upper = &.{ 0x0391, 0x0399, }, .condition = "" },
107 .{ .code = 0x1FC3, .lower = &.{ 0x1FC3, }, .title = &.{ 0x1FCC, }, .upper = &.{ 0x0397, 0x0399, }, .condition = "" },
108 .{ .code = 0x1FCC, .lower = &.{ 0x1FC3, }, .title = &.{ 0x1FCC, }, .upper = &.{ 0x0397, 0x0399, }, .condition = "" },
109 .{ .code = 0x1FF3, .lower = &.{ 0x1FF3, }, .title = &.{ 0x1FFC, }, .upper = &.{ 0x03A9, 0x0399, }, .condition = "" },
110 .{ .code = 0x1FFC, .lower = &.{ 0x1FF3, }, .title = &.{ 0x1FFC, }, .upper = &.{ 0x03A9, 0x0399, }, .condition = "" },
111 .{ .code = 0x1FB2, .lower = &.{ 0x1FB2, }, .title = &.{ 0x1FBA, 0x0345, }, .upper = &.{ 0x1FBA, 0x0399, }, .condition = "" },
112 .{ .code = 0x1FB4, .lower = &.{ 0x1FB4, }, .title = &.{ 0x0386, 0x0345, }, .upper = &.{ 0x0386, 0x0399, }, .condition = "" },
113 .{ .code = 0x1FC2, .lower = &.{ 0x1FC2, }, .title = &.{ 0x1FCA, 0x0345, }, .upper = &.{ 0x1FCA, 0x0399, }, .condition = "" },
114 .{ .code = 0x1FC4, .lower = &.{ 0x1FC4, }, .title = &.{ 0x0389, 0x0345, }, .upper = &.{ 0x0389, 0x0399, }, .condition = "" },
115 .{ .code = 0x1FF2, .lower = &.{ 0x1FF2, }, .title = &.{ 0x1FFA, 0x0345, }, .upper = &.{ 0x1FFA, 0x0399, }, .condition = "" },
116 .{ .code = 0x1FF4, .lower = &.{ 0x1FF4, }, .title = &.{ 0x038F, 0x0345, }, .upper = &.{ 0x038F, 0x0399, }, .condition = "" },
117 .{ .code = 0x1FB7, .lower = &.{ 0x1FB7, }, .title = &.{ 0x0391, 0x0342, 0x0345, }, .upper = &.{ 0x0391, 0x0342, 0x0399, }, .condition = "" },
118 .{ .code = 0x1FC7, .lower = &.{ 0x1FC7, }, .title = &.{ 0x0397, 0x0342, 0x0345, }, .upper = &.{ 0x0397, 0x0342, 0x0399, }, .condition = "" },
119 .{ .code = 0x1FF7, .lower = &.{ 0x1FF7, }, .title = &.{ 0x03A9, 0x0342, 0x0345, }, .upper = &.{ 0x03A9, 0x0342, 0x0399, }, .condition = "" },
120 .{ .code = 0x03A3, .lower = &.{ 0x03C2, }, .title = &.{ 0x03A3, }, .upper = &.{ 0x03A3, }, .condition = "Final_Sigma" },
121 .{ .code = 0x0307, .lower = &.{ 0x0307, }, .title = &.{ }, .upper = &.{ }, .condition = "lt After_Soft_Dotted" },
122 .{ .code = 0x0049, .lower = &.{ 0x0069, 0x0307, }, .title = &.{ 0x0049, }, .upper = &.{ 0x0049, }, .condition = "lt More_Above" },
123 .{ .code = 0x004A, .lower = &.{ 0x006A, 0x0307, }, .title = &.{ 0x004A, }, .upper = &.{ 0x004A, }, .condition = "lt More_Above" },
124 .{ .code = 0x012E, .lower = &.{ 0x012F, 0x0307, }, .title = &.{ 0x012E, }, .upper = &.{ 0x012E, }, .condition = "lt More_Above" },
125 .{ .code = 0x00CC, .lower = &.{ 0x0069, 0x0307, 0x0300, }, .title = &.{ 0x00CC, }, .upper = &.{ 0x00CC, }, .condition = "lt" },
126 .{ .code = 0x00CD, .lower = &.{ 0x0069, 0x0307, 0x0301, }, .title = &.{ 0x00CD, }, .upper = &.{ 0x00CD, }, .condition = "lt" },
127 .{ .code = 0x0128, .lower = &.{ 0x0069, 0x0307, 0x0303, }, .title = &.{ 0x0128, }, .upper = &.{ 0x0128, }, .condition = "lt" },
128 .{ .code = 0x0130, .lower = &.{ 0x0069, }, .title = &.{ 0x0130, }, .upper = &.{ 0x0130, }, .condition = "tr" },
129 .{ .code = 0x0130, .lower = &.{ 0x0069, }, .title = &.{ 0x0130, }, .upper = &.{ 0x0130, }, .condition = "az" },
130 .{ .code = 0x0307, .lower = &.{ }, .title = &.{ 0x0307, }, .upper = &.{ 0x0307, }, .condition = "tr After_I" },
131 .{ .code = 0x0307, .lower = &.{ }, .title = &.{ 0x0307, }, .upper = &.{ 0x0307, }, .condition = "az After_I" },
132 .{ .code = 0x0049, .lower = &.{ 0x0131, }, .title = &.{ 0x0049, }, .upper = &.{ 0x0049, }, .condition = "tr Not_Before_Dot" },
133 .{ .code = 0x0049, .lower = &.{ 0x0131, }, .title = &.{ 0x0049, }, .upper = &.{ 0x0049, }, .condition = "az Not_Before_Dot" },
134 .{ .code = 0x0069, .lower = &.{ 0x0069, }, .title = &.{ 0x0130, }, .upper = &.{ 0x0130, }, .condition = "tr" },
135 .{ .code = 0x0069, .lower = &.{ 0x0069, }, .title = &.{ 0x0130, }, .upper = &.{ 0x0130, }, .condition = "az" },
136};