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

Last change on this file since 4316 was 4316, checked in by cameron, 5 years ago

Case insensitive matching - initial check in.

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