source: icGREP/icgrep-devel/icgrep/UCD/CaseFolding_txt.h @ 4812

Last change on this file since 4812 was 4617, checked in by nmedfort, 4 years ago

Upload of an untested (inactive) UCD compiler.

File size: 7.9 KB
Line 
1#ifndef CASEFOLDING_TXT_H
2#define CASEFOLDING_TXT_H
3/*
4 *  Copyright (c) 2014 International Characters, Inc.
5 *  This software is licensed to the public under the Open Software License 3.0.
6 *  icgrep is a trademark of International Characters, Inc.
7 *
8 *  This file is generated by casefold.py - manual edits may be lost.
9 */
10
11#include <vector>
12#include <utility>
13#include "re/re_re.h"
14#include "re/re_cc.h"
15
16struct FoldEntry {
17    re::codepoint_t range_lo;
18    int fold_offset;
19    std::vector<re::interval_t> fold_pairs;
20};
21
22void caseInsensitiveInsertRange(re::CC * cc, const re::codepoint_t lo, const re::codepoint_t hi);
23
24inline void caseInsensitiveInsert(re::CC * cc, const re::codepoint_t cp) {
25    caseInsensitiveInsertRange(cc, cp, cp);
26}
27
28const int foldTableSize = 216;
29
30const FoldEntry foldTable[foldTableSize] = {
31  {0x0, 0, {}},
32  {0x41, 32, {{0x4b, 0x212a}, {0x53, 0x17f}}},
33  {0x5b, 0, {}},
34  {0x61, -32, {{0x6b, 0x212a}, {0x73, 0x17f}}},
35  {0x7b, 0, {{0xb5, 0x3bc}, {0xb5, 0x39c}}},
36  {0xc0, 32, {{0xc5, 0x212b}}},
37  {0xd7, 0, {}},
38  {0xd8, 32, {}},
39  {0xdf, 0, {{0xdf, 0x1e9e}}},
40  {0xe0, -32, {{0xe5, 0x212b}}},
41  {0xf7, 0, {}},
42  {0xf8, -32, {}},
43  {0xff, 0, {{0xff, 0x178}}},
44  {0x100, 1, {}},
45  {0x130, 0, {}},
46  {0x132, 1, {}},
47  {0x138, 0, {}},
48  {0x139, 1, {}},
49  {0x149, 0, {}},
50  {0x14a, 1, {}},
51  {0x178, 0, {{0x178, 0xff}}},
52  {0x179, 1, {}},
53  {0x17f, 0, {{0x17f, 0x73}, {0x17f, 0x53}, {0x180, 0x243}, {0x181, 0x253}}},
54  {0x182, 1, {}},
55  {0x186, 0, {{0x186, 0x254}}},
56  {0x187, 1, {}},
57  {0x189, 205, {}},
58  {0x18b, 1, {}},
59  {0x18d, 0, {{0x18e, 0x1dd}, {0x18f, 0x259}, {0x190, 0x25b}}},
60  {0x191, 1, {}},
61  {0x193, 0, {{0x193, 0x260}, {0x194, 0x263}, {0x195, 0x1f6}, {0x196, 0x269},
62    {0x197, 0x268}}},
63  {0x198, 1, {}},
64  {0x19a, 0, {{0x19a, 0x23d}, {0x19c, 0x26f}, {0x19d, 0x272}, {0x19e, 0x220},
65    {0x19f, 0x275}}},
66  {0x1a0, 1, {}},
67  {0x1a6, 0, {{0x1a6, 0x280}}},
68  {0x1a7, 1, {}},
69  {0x1a9, 0, {{0x1a9, 0x283}}},
70  {0x1ac, 1, {}},
71  {0x1ae, 0, {{0x1ae, 0x288}}},
72  {0x1af, 1, {}},
73  {0x1b1, 217, {}},
74  {0x1b3, 1, {}},
75  {0x1b7, 0, {{0x1b7, 0x292}}},
76  {0x1b8, 1, {}},
77  {0x1ba, 0, {}},
78  {0x1bc, 1, {}},
79  {0x1be, 0, {{0x1bf, 0x1f7}}},
80  {0x1c4, 1, {{0x1c4, 0x1c6}}},
81  {0x1c6, 0, {}},
82  {0x1c5, 1, {{0x1c6, 0x1c4}, {0x1c7, 0x1c9}}},
83  {0x1c9, 0, {}},
84  {0x1c8, 1, {{0x1c9, 0x1c7}, {0x1ca, 0x1cc}}},
85  {0x1cc, 0, {}},
86  {0x1cb, 1, {{0x1cc, 0x1ca}}},
87  {0x1dd, 0, {{0x1dd, 0x18e}}},
88  {0x1de, 1, {}},
89  {0x1f0, 0, {}},
90  {0x1f1, 1, {{0x1f1, 0x1f3}}},
91  {0x1f3, 0, {}},
92  {0x1f2, 1, {{0x1f3, 0x1f1}}},
93  {0x1f6, 0, {{0x1f6, 0x195}, {0x1f7, 0x1bf}}},
94  {0x1f8, 1, {}},
95  {0x220, 0, {{0x220, 0x19e}}},
96  {0x222, 1, {}},
97  {0x234, 0, {{0x23a, 0x2c65}}},
98  {0x23b, 1, {}},
99  {0x23d, 0, {{0x23d, 0x19a}, {0x23e, 0x2c66}}},
100  {0x23f, 10815, {}},
101  {0x241, 1, {}},
102  {0x243, 0, {{0x243, 0x180}, {0x244, 0x289}, {0x245, 0x28c}}},
103  {0x246, 1, {}},
104  {0x250, 0, {{0x250, 0x2c6f}, {0x251, 0x2c6d}, {0x252, 0x2c70}, {0x253, 0x181},
105    {0x254, 0x186}}},
106  {0x256, -205, {}},
107  {0x258, 0, {{0x259, 0x18f}, {0x25b, 0x190}, {0x25c, 0xa7ab}, {0x260, 0x193},
108    {0x261, 0xa7ac}, {0x263, 0x194}, {0x265, 0xa78d}, {0x266, 0xa7aa},
109    {0x268, 0x197}, {0x269, 0x196}, {0x26b, 0x2c62}, {0x26c, 0xa7ad},
110    {0x26f, 0x19c}, {0x271, 0x2c6e}, {0x272, 0x19d}, {0x275, 0x19f},
111    {0x27d, 0x2c64}, {0x280, 0x1a6}, {0x283, 0x1a9}, {0x287, 0xa7b1},
112    {0x288, 0x1ae}, {0x289, 0x244}}},
113  {0x28a, -217, {}},
114  {0x28c, 0, {{0x28c, 0x245}, {0x292, 0x1b7}, {0x29e, 0xa7b0}, {0x345, 0x3b9},
115    {0x345, 0x399}, {0x345, 0x1fbe}}},
116  {0x370, 1, {}},
117  {0x374, 0, {}},
118  {0x376, 1, {}},
119  {0x378, 0, {}},
120  {0x37b, 130, {}},
121  {0x37e, 0, {{0x37f, 0x3f3}, {0x386, 0x3ac}}},
122  {0x388, 37, {}},
123  {0x38b, 0, {{0x38c, 0x3cc}}},
124  {0x38e, 63, {}},
125  {0x390, 0, {}},
126  {0x391, 32, {{0x392, 0x3d0}, {0x395, 0x3f5}, {0x398, 0x3d1}, {0x398, 0x3f4},
127    {0x399, 0x345}, {0x399, 0x1fbe}, {0x39a, 0x3f0}, {0x39c, 0xb5},
128    {0x3a0, 0x3d6}, {0x3a1, 0x3f1}}},
129  {0x3a2, 0, {}},
130  {0x3a3, 32, {{0x3a3, 0x3c2}, {0x3a6, 0x3d5}, {0x3a9, 0x2126}}},
131  {0x3ac, 0, {{0x3ac, 0x386}}},
132  {0x3ad, -37, {}},
133  {0x3b0, 0, {}},
134  {0x3b1, -32, {{0x3b2, 0x3d0}, {0x3b5, 0x3f5}, {0x3b8, 0x3d1}, {0x3b8, 0x3f4},
135    {0x3b9, 0x345}, {0x3b9, 0x1fbe}, {0x3ba, 0x3f0}, {0x3bc, 0xb5},
136    {0x3c0, 0x3d6}, {0x3c1, 0x3f1}}},
137  {0x3c2, 1, {{0x3c2, 0x3a3}}},
138  {0x3c4, 0, {}},
139  {0x3c3, -32, {{0x3c6, 0x3d5}, {0x3c9, 0x2126}}},
140  {0x3cc, 0, {{0x3cc, 0x38c}}},
141  {0x3cd, -63, {}},
142  {0x3cf, 0, {{0x3cf, 0x3d7}, {0x3d0, 0x3b2}, {0x3d0, 0x392}, {0x3d1, 0x3b8},
143    {0x3d1, 0x398}, {0x3d1, 0x3f4}, {0x3d5, 0x3c6}, {0x3d5, 0x3a6},
144    {0x3d6, 0x3c0}, {0x3d6, 0x3a0}, {0x3d7, 0x3cf}}},
145  {0x3d8, 1, {}},
146  {0x3f0, 0, {{0x3f0, 0x3ba}, {0x3f0, 0x39a}, {0x3f1, 0x3c1}, {0x3f1, 0x3a1},
147    {0x3f2, 0x3f9}, {0x3f3, 0x37f}, {0x3f4, 0x3b8}, {0x3f4, 0x398},
148    {0x3f4, 0x3d1}, {0x3f5, 0x3b5}, {0x3f5, 0x395}}},
149  {0x3f7, 1, {}},
150  {0x3f9, 0, {{0x3f9, 0x3f2}}},
151  {0x3fa, 1, {}},
152  {0x3fc, 0, {}},
153  {0x3fd, -130, {}},
154  {0x400, 80, {}},
155  {0x410, 32, {}},
156  {0x450, -80, {}},
157  {0x460, 1, {}},
158  {0x482, 0, {}},
159  {0x48a, 1, {}},
160  {0x4c0, 0, {{0x4c0, 0x4cf}}},
161  {0x4c1, 1, {}},
162  {0x4cf, 0, {{0x4cf, 0x4c0}}},
163  {0x4d0, 1, {}},
164  {0x530, 0, {}},
165  {0x531, 48, {}},
166  {0x557, 0, {}},
167  {0x561, -48, {}},
168  {0x587, 0, {}},
169  {0x10a0, 7264, {}},
170  {0x10c6, 0, {{0x10c7, 0x2d27}, {0x10cd, 0x2d2d}, {0x1d79, 0xa77d}, {0x1d7d, 0x2c63}}},
171  {0x1e00, 1, {{0x1e60, 0x1e9b}, {0x1e61, 0x1e9b}}},
172  {0x1e96, 0, {{0x1e9b, 0x1e61}, {0x1e9b, 0x1e60}, {0x1e9e, 0xdf}}},
173  {0x1ea0, 1, {}},
174  {0x1f00, 8, {}},
175  {0x1f16, 0, {}},
176  {0x1f18, -8, {}},
177  {0x1f1e, 0, {}},
178  {0x1f20, 8, {}},
179  {0x1f46, 0, {}},
180  {0x1f48, -8, {}},
181  {0x1f4e, 0, {{0x1f51, 0x1f59}, {0x1f53, 0x1f5b}, {0x1f55, 0x1f5d}, {0x1f57, 0x1f5f},
182    {0x1f59, 0x1f51}, {0x1f5b, 0x1f53}, {0x1f5d, 0x1f55}, {0x1f5f, 0x1f57}}},
183  {0x1f60, 8, {}},
184  {0x1f70, 74, {}},
185  {0x1f72, 86, {}},
186  {0x1f76, 100, {}},
187  {0x1f78, 128, {}},
188  {0x1f7a, 112, {}},
189  {0x1f7c, 126, {}},
190  {0x1f7e, 0, {}},
191  {0x1f80, 8, {}},
192  {0x1fb2, 0, {{0x1fb3, 0x1fbc}}},
193  {0x1fb8, -8, {}},
194  {0x1fba, -74, {}},
195  {0x1fbc, 0, {{0x1fbc, 0x1fb3}, {0x1fbe, 0x3b9}, {0x1fbe, 0x345}, {0x1fbe, 0x399},
196    {0x1fc3, 0x1fcc}}},
197  {0x1fc8, -86, {}},
198  {0x1fcc, 0, {{0x1fcc, 0x1fc3}}},
199  {0x1fd0, 8, {}},
200  {0x1fd2, 0, {}},
201  {0x1fd8, -8, {}},
202  {0x1fda, -100, {}},
203  {0x1fdc, 0, {}},
204  {0x1fe0, 8, {}},
205  {0x1fe2, 0, {{0x1fe5, 0x1fec}}},
206  {0x1fe8, -8, {}},
207  {0x1fea, -112, {}},
208  {0x1fec, 0, {{0x1fec, 0x1fe5}, {0x1ff3, 0x1ffc}}},
209  {0x1ff8, -128, {}},
210  {0x1ffa, -126, {}},
211  {0x1ffc, 0, {{0x1ffc, 0x1ff3}, {0x2126, 0x3c9}, {0x2126, 0x3a9}, {0x212a, 0x6b},
212    {0x212a, 0x4b}, {0x212b, 0xe5}, {0x212b, 0xc5}, {0x2132, 0x214e},
213    {0x214e, 0x2132}}},
214  {0x2160, 16, {}},
215  {0x2180, 0, {}},
216  {0x2183, 1, {}},
217  {0x2185, 0, {}},
218  {0x24b6, 26, {}},
219  {0x24ea, 0, {}},
220  {0x2c00, 48, {}},
221  {0x2c2f, 0, {}},
222  {0x2c30, -48, {}},
223  {0x2c5f, 0, {}},
224  {0x2c60, 1, {}},
225  {0x2c62, 0, {{0x2c62, 0x26b}, {0x2c63, 0x1d7d}, {0x2c64, 0x27d}, {0x2c65, 0x23a},
226    {0x2c66, 0x23e}}},
227  {0x2c67, 1, {}},
228  {0x2c6d, 0, {{0x2c6d, 0x251}, {0x2c6e, 0x271}, {0x2c6f, 0x250}, {0x2c70, 0x252}}},
229  {0x2c72, 1, {}},
230  {0x2c74, 0, {}},
231  {0x2c75, 1, {}},
232  {0x2c77, 0, {}},
233  {0x2c7e, -10815, {}},
234  {0x2c80, 1, {}},
235  {0x2ce4, 0, {}},
236  {0x2ceb, 1, {}},
237  {0x2cef, 0, {}},
238  {0x2cf2, 1, {}},
239  {0x2cf4, 0, {}},
240  {0x2d00, -7264, {}},
241  {0x2d26, 0, {{0x2d27, 0x10c7}, {0x2d2d, 0x10cd}}},
242  {0xa640, 1, {}},
243  {0xa66e, 0, {}},
244  {0xa680, 1, {}},
245  {0xa69c, 0, {}},
246  {0xa722, 1, {}},
247  {0xa730, 0, {}},
248  {0xa732, 1, {}},
249  {0xa770, 0, {}},
250  {0xa779, 1, {}},
251  {0xa77d, 0, {{0xa77d, 0x1d79}}},
252  {0xa77e, 1, {}},
253  {0xa788, 0, {}},
254  {0xa78b, 1, {}},
255  {0xa78d, 0, {{0xa78d, 0x265}}},
256  {0xa790, 1, {}},
257  {0xa794, 0, {}},
258  {0xa796, 1, {}},
259  {0xa7aa, 0, {{0xa7aa, 0x266}, {0xa7ab, 0x25c}, {0xa7ac, 0x261}, {0xa7ad, 0x26c},
260    {0xa7b0, 0x29e}, {0xa7b1, 0x287}}},
261  {0xff21, 32, {}},
262  {0xff3b, 0, {}},
263  {0xff41, -32, {}},
264  {0xff5b, 0, {}},
265  {0x10400, 40, {}},
266  {0x10450, 0, {}},
267  {0x118a0, 32, {}},
268  {0x118e0, 0, {}},
269  {0x110000, 0, {}}};
270#endif
Note: See TracBrowser for help on using the repository browser.