source: icGREP/icgrep-devel/icgrep/UCD/SpecialCasing.h @ 6161

Last change on this file since 6161 was 6134, checked in by cameron, 11 months ago

GetStringValue? method for string properties

File size: 12.4 KB
Line 
1#ifndef SPECIALCASING_H
2#define SPECIALCASING_H
3/*
4 *  Copyright (c) 2017 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 UCD_properties.py - manual edits may be lost.
9 */
10
11#include "PropertyAliases.h"
12#include "PropertyObjects.h"
13#include "PropertyValueAliases.h"
14#include "UnicodeData.h"
15#include "unicode_set.h"
16
17namespace UCD {
18    namespace LC_ns {
19        /** Code Point Ranges for lc (possibly overriding values from SLC)
20        [00df, 00df], [0130, 0130], [0149, 0149], [01f0, 01f0],
21        [0390, 0390], [03b0, 03b0], [0587, 0587], [1e96, 1e9a],
22        [1f50, 1f50], [1f52, 1f52], [1f54, 1f54], [1f56, 1f56],
23        [1f80, 1faf], [1fb2, 1fb4], [1fb6, 1fb7], [1fbc, 1fbc],
24        [1fc2, 1fc4], [1fc6, 1fc7], [1fcc, 1fcc], [1fd2, 1fd3],
25        [1fd6, 1fd7], [1fe2, 1fe4], [1fe6, 1fe7], [1ff2, 1ff4],
26        [1ff6, 1ff7], [1ffc, 1ffc], [fb00, fb06], [fb13, fb17]**/
27
28       
29        namespace {
30        const static UnicodeSet::run_t __explicitly_defined_set_runs[] = {
31        {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 4},
32        {Mixed, 1}, {Empty, 12}, {Mixed, 2}, {Empty, 14}, {Mixed, 1},
33        {Empty, 199}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
34        {Full, 1}, {Mixed, 3}, {Empty, 1752}, {Mixed, 1}, {Empty, 32807}};
35        const static UnicodeSet::bitquad_t  __explicitly_defined_set_quads[] = {
36        0x80000000, 0x00010000, 0x00000200, 0x00010000, 0x00010000,
37        0x00010000, 0x00000080, 0x07c00000, 0x00550000, 0x10dcffff,
38        0x00cc10dc, 0x10dc00dc, 0x00f8007f};
39        }
40
41        const static UnicodeSet explicitly_defined_set{const_cast<UnicodeSet::run_t *>(__explicitly_defined_set_runs), 20, 0, const_cast<UnicodeSet::bitquad_t *>(__explicitly_defined_set_quads), 13, 0};
42
43
44
45        const static std::vector<unsigned> buffer_offsets = {
46        0, 3, 7, 10, 13, 16, 19, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62,
47        66, 70, 74, 78, 82, 86, 90, 94, 98, 102, 106, 110, 114, 118, 122,
48        126, 130, 134, 138, 142, 146, 150, 154, 158, 162, 166, 170, 174,
49        178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226,
50        230, 234, 238, 242, 246, 250, 254, 258, 262, 266, 270, 274, 278,
51        282, 286, 290, 294, 298, 302, 306, 310, 314, 318, 322, 326, 330,
52        334, 338, 342, 346, 350, 354, 358, 362, 366, 370, 374, 378, 382,
53        386, 390, 394, 398, 402, 406};
54        const static char string_buffer LLVM_ALIGNAS(32) [512] = u8R"__(ß
55i̇
56ʼn
57Ç°
58ΐ
59ΰ
60և
61ẖ
62ẗ
63ẘ
64ẙ
65ẚ
66ᜐ
67ᜒ
68᜔
69᜖
70ៀ
71េ
72ែ
73ៃ
74ោ
75ៅ
76ំ
77ះ
78ៀ
79េ
80ែ
81ៃ
82ោ
83ៅ
84ំ
85ះ
86័
87៑
88្
89៓
90។
91៕
92៖
93ៗ
94័
95៑
96្
97៓
98។
99៕
100៖
101ៗ
102០
103១
104២
105៣
106ៀ
107៥
108៊
109៧
110០
111១
112២
113៣
114ៀ
115៥
116៊
117៧
118៲
119៳
120៎
121៶
122៷
123៳
124ῂ
125ῃ
126ῄ
127ῆ
128ῇ
129ῃ
130ῒ
131ΐ
132ῖ
133ῗ
134á¿¢
135á¿£
136á¿€
137á¿Š
138ῧ
139ῲ
140ῳ
141á¿Ž
142ῶ
143á¿·
144ῳ
145ff
146fi
147fl
148ffi
149ffl
150ſt
151st
152ﬓ
153ﬔ
154ﬕ
155ﬖ
156ﬗ
157)__";
158
159        const static std::vector<codepoint_t> defined_cps{
160        0x00df, 0x0130, 0x0149, 0x01f0, 0x0390, 0x03b0, 0x0587, 0x1e96,
161        0x1e97, 0x1e98, 0x1e99, 0x1e9a, 0x1f50, 0x1f52, 0x1f54, 0x1f56,
162        0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
163        0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
164        0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
165        0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
166        0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
167        0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
168        0x1fb2, 0x1fb3, 0x1fb4, 0x1fb6, 0x1fb7, 0x1fbc, 0x1fc2, 0x1fc3,
169        0x1fc4, 0x1fc6, 0x1fc7, 0x1fcc, 0x1fd2, 0x1fd3, 0x1fd6, 0x1fd7,
170        0x1fe2, 0x1fe3, 0x1fe4, 0x1fe6, 0x1fe7, 0x1ff2, 0x1ff3, 0x1ff4,
171        0x1ff6, 0x1ff7, 0x1ffc, 0xfb00, 0xfb01, 0xfb02, 0xfb03, 0xfb04,
172        0xfb05, 0xfb06, 0xfb13, 0xfb14, 0xfb15, 0xfb16, 0xfb17};
173        static StringOverridePropertyObject property_object(lc, 
174                                                    SLC_ns::property_object, 
175                                                    std::move(explicitly_defined_set), 
176                                                    static_cast<const char *>(string_buffer), 
177                                                    std::move(buffer_offsets), 
178                                                    std::move(defined_cps));
179    }
180    namespace UC_ns {
181        /** Code Point Ranges for uc (possibly overriding values from SUC)
182        [00df, 00df], [0130, 0130], [0149, 0149], [01f0, 01f0],
183        [0390, 0390], [03b0, 03b0], [0587, 0587], [1e96, 1e9a],
184        [1f50, 1f50], [1f52, 1f52], [1f54, 1f54], [1f56, 1f56],
185        [1f80, 1faf], [1fb2, 1fb4], [1fb6, 1fb7], [1fbc, 1fbc],
186        [1fc2, 1fc4], [1fc6, 1fc7], [1fcc, 1fcc], [1fd2, 1fd3],
187        [1fd6, 1fd7], [1fe2, 1fe4], [1fe6, 1fe7], [1ff2, 1ff4],
188        [1ff6, 1ff7], [1ffc, 1ffc], [fb00, fb06], [fb13, fb17]**/
189
190       
191        namespace {
192        const static UnicodeSet::run_t __explicitly_defined_set_runs[] = {
193        {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 4},
194        {Mixed, 1}, {Empty, 12}, {Mixed, 2}, {Empty, 14}, {Mixed, 1},
195        {Empty, 199}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
196        {Full, 1}, {Mixed, 3}, {Empty, 1752}, {Mixed, 1}, {Empty, 32807}};
197        const static UnicodeSet::bitquad_t  __explicitly_defined_set_quads[] = {
198        0x80000000, 0x00010000, 0x00000200, 0x00010000, 0x00010000,
199        0x00010000, 0x00000080, 0x07c00000, 0x00550000, 0x10dcffff,
200        0x00cc10dc, 0x10dc00dc, 0x00f8007f};
201        }
202
203        const static UnicodeSet explicitly_defined_set{const_cast<UnicodeSet::run_t *>(__explicitly_defined_set_runs), 20, 0, const_cast<UnicodeSet::bitquad_t *>(__explicitly_defined_set_quads), 13, 0};
204
205
206
207        const static std::vector<unsigned> buffer_offsets = {
208        0, 3, 6, 10, 14, 21, 28, 33, 37, 41, 45, 49, 53, 58, 65, 72, 79, 85,
209        91, 97, 103, 109, 115, 121, 127, 133, 139, 145, 151, 157, 163, 169,
210        175, 181, 187, 193, 199, 205, 211, 217, 223, 229, 235, 241, 247,
211        253, 259, 265, 271, 277, 283, 289, 295, 301, 307, 313, 319, 325,
212        331, 337, 343, 349, 355, 361, 367, 373, 378, 383, 388, 395, 400,
213        406, 411, 416, 421, 428, 433, 440, 447, 452, 459, 466, 473, 478,
214        483, 490, 496, 501, 506, 511, 518, 523, 526, 529, 532, 536, 540,
215        543, 546, 551, 556, 561, 566, 571};
216        const static char string_buffer LLVM_ALIGNAS(32) [768] = u8R"__(SS
217Ä°
218ÊŒN
219J̌
220Ϊ́
221Ϋ́
222ԵՒ
223H̱
224T̈
225W̊
226Y̊
227AÊŸ
228Υ̓
229Υ̓̀
230Υ̓́
231Υ̓͂
232ገΙ
233ጉΙ
234ጊΙ
235ጋΙ
236ጌΙ
237ግΙ
238ጎΙ
239ጏΙ
240ገΙ
241ጉΙ
242ጊΙ
243ጋΙ
244ጌΙ
245ግΙ
246ጎΙ
247ጏΙ
248ጚΙ
249ጩΙ
250ጪΙ
251ጫΙ
252ጬΙ
253ጭΙ
254ጮΙ
255ጯΙ
256ጚΙ
257ጩΙ
258ጪΙ
259ጫΙ
260ጬΙ
261ጭΙ
262ጮΙ
263ጯΙ
264᜚Ι
265ᜩΙ
266ᜪΙ
267ᜫΙ
268ᜬΙ
269ᜭΙ
270ᜮΙ
271ᜯΙ
272᜚Ι
273ᜩΙ
274ᜪΙ
275ᜫΙ
276ᜬΙ
277ᜭΙ
278ᜮΙ
279ᜯΙ
280៺Ι
281ΑΙ
282ΆΙ
283Α͂
284Α͂Ι
285ΑΙ
286ῊΙ
287ΗΙ
288ΉΙ
289Η͂
290Η͂Ι
291ΗΙ
292Ϊ̀
293Ϊ́
294Ι͂
295Ϊ͂
296Ϋ̀
297Ϋ́
298Ρ̓
299Υ͂
300Ϋ͂
301ῺΙ
302ΩΙ
303ΏΙ
304Ω͂
305Ω͂Ι
306ΩΙ
307FF
308FI
309FL
310FFI
311FFL
312ST
313ST
314ՄՆ
315ՄԵ
316ՄԻ
317ՎՆ
318ՄԜ
319)__";
320
321        const static std::vector<codepoint_t> defined_cps{
322        0x00df, 0x0130, 0x0149, 0x01f0, 0x0390, 0x03b0, 0x0587, 0x1e96,
323        0x1e97, 0x1e98, 0x1e99, 0x1e9a, 0x1f50, 0x1f52, 0x1f54, 0x1f56,
324        0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
325        0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
326        0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
327        0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
328        0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
329        0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
330        0x1fb2, 0x1fb3, 0x1fb4, 0x1fb6, 0x1fb7, 0x1fbc, 0x1fc2, 0x1fc3,
331        0x1fc4, 0x1fc6, 0x1fc7, 0x1fcc, 0x1fd2, 0x1fd3, 0x1fd6, 0x1fd7,
332        0x1fe2, 0x1fe3, 0x1fe4, 0x1fe6, 0x1fe7, 0x1ff2, 0x1ff3, 0x1ff4,
333        0x1ff6, 0x1ff7, 0x1ffc, 0xfb00, 0xfb01, 0xfb02, 0xfb03, 0xfb04,
334        0xfb05, 0xfb06, 0xfb13, 0xfb14, 0xfb15, 0xfb16, 0xfb17};
335        static StringOverridePropertyObject property_object(uc, 
336                                                    SUC_ns::property_object, 
337                                                    std::move(explicitly_defined_set), 
338                                                    static_cast<const char *>(string_buffer), 
339                                                    std::move(buffer_offsets), 
340                                                    std::move(defined_cps));
341    }
342    namespace TC_ns {
343        /** Code Point Ranges for tc (possibly overriding values from STC)
344        [00df, 00df], [0130, 0130], [0149, 0149], [01f0, 01f0],
345        [0390, 0390], [03b0, 03b0], [0587, 0587], [1e96, 1e9a],
346        [1f50, 1f50], [1f52, 1f52], [1f54, 1f54], [1f56, 1f56],
347        [1f80, 1faf], [1fb2, 1fb4], [1fb6, 1fb7], [1fbc, 1fbc],
348        [1fc2, 1fc4], [1fc6, 1fc7], [1fcc, 1fcc], [1fd2, 1fd3],
349        [1fd6, 1fd7], [1fe2, 1fe4], [1fe6, 1fe7], [1ff2, 1ff4],
350        [1ff6, 1ff7], [1ffc, 1ffc], [fb00, fb06], [fb13, fb17]**/
351
352       
353        namespace {
354        const static UnicodeSet::run_t __explicitly_defined_set_runs[] = {
355        {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 4},
356        {Mixed, 1}, {Empty, 12}, {Mixed, 2}, {Empty, 14}, {Mixed, 1},
357        {Empty, 199}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
358        {Full, 1}, {Mixed, 3}, {Empty, 1752}, {Mixed, 1}, {Empty, 32807}};
359        const static UnicodeSet::bitquad_t  __explicitly_defined_set_quads[] = {
360        0x80000000, 0x00010000, 0x00000200, 0x00010000, 0x00010000,
361        0x00010000, 0x00000080, 0x07c00000, 0x00550000, 0x10dcffff,
362        0x00cc10dc, 0x10dc00dc, 0x00f8007f};
363        }
364
365        const static UnicodeSet explicitly_defined_set{const_cast<UnicodeSet::run_t *>(__explicitly_defined_set_runs), 20, 0, const_cast<UnicodeSet::bitquad_t *>(__explicitly_defined_set_quads), 13, 0};
366
367
368
369        const static std::vector<unsigned> buffer_offsets = {
370        0, 3, 6, 10, 14, 21, 28, 33, 37, 41, 45, 49, 53, 58, 65, 72, 79, 83,
371        87, 91, 95, 99, 103, 107, 111, 115, 119, 123, 127, 131, 135, 139,
372        143, 147, 151, 155, 159, 163, 167, 171, 175, 179, 183, 187, 191,
373        195, 199, 203, 207, 211, 215, 219, 223, 227, 231, 235, 239, 243,
374        247, 251, 255, 259, 263, 267, 271, 277, 281, 286, 291, 298, 302,
375        308, 312, 317, 322, 329, 333, 340, 347, 352, 359, 366, 373, 378,
376        383, 390, 396, 400, 405, 410, 417, 421, 424, 427, 430, 434, 438,
377        441, 444, 449, 454, 459, 464, 469};
378        const static char string_buffer LLVM_ALIGNAS(32) [512] = u8R"__(Ss
379Ä°
380ÊŒN
381J̌
382Ϊ́
383Ϋ́
384Եւ
385H̱
386T̈
387W̊
388Y̊
389AÊŸ
390Υ̓
391Υ̓̀
392Υ̓́
393Υ̓͂
394ៈ
395៉
396៊
397់
398៌
399៍
400៎
401៏
402ៈ
403៉
404៊
405់
406៌
407៍
408៎
409៏
410៘
411៙
412៚
413៛
414ៜ
415៝
416៞
417៟
418៘
419៙
420៚
421៛
422ៜ
423៝
424៞
425៟
426៚
427៩
428៪
429៫
430៬
431៭
432៮
433៯
434៚
435៩
436៪
437៫
438៬
439៭
440៮
441៯
442៺ͅ
443៌
444Άͅ
445Α͂
446ᾼ͂
447៌
448Ὴͅ
449ῌ
450Ήͅ
451Η͂
452ῌ͂
453ῌ
454Ϊ̀
455Ϊ́
456Ι͂
457Ϊ͂
458Ϋ̀
459Ϋ́
460Ρ̓
461Υ͂
462Ϋ͂
463Ὼͅ
464ῌ
465Ώͅ
466Ω͂
467ῼ͂
468ῌ
469Ff
470Fi
471Fl
472Ffi
473Ffl
474St
475St
476Մն
477Մե
478Մի
479Վն
480Մխ
481)__";
482
483        const static std::vector<codepoint_t> defined_cps{
484        0x00df, 0x0130, 0x0149, 0x01f0, 0x0390, 0x03b0, 0x0587, 0x1e96,
485        0x1e97, 0x1e98, 0x1e99, 0x1e9a, 0x1f50, 0x1f52, 0x1f54, 0x1f56,
486        0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
487        0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
488        0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
489        0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
490        0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
491        0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
492        0x1fb2, 0x1fb3, 0x1fb4, 0x1fb6, 0x1fb7, 0x1fbc, 0x1fc2, 0x1fc3,
493        0x1fc4, 0x1fc6, 0x1fc7, 0x1fcc, 0x1fd2, 0x1fd3, 0x1fd6, 0x1fd7,
494        0x1fe2, 0x1fe3, 0x1fe4, 0x1fe6, 0x1fe7, 0x1ff2, 0x1ff3, 0x1ff4,
495        0x1ff6, 0x1ff7, 0x1ffc, 0xfb00, 0xfb01, 0xfb02, 0xfb03, 0xfb04,
496        0xfb05, 0xfb06, 0xfb13, 0xfb14, 0xfb15, 0xfb16, 0xfb17};
497        static StringOverridePropertyObject property_object(tc, 
498                                                    STC_ns::property_object, 
499                                                    std::move(explicitly_defined_set), 
500                                                    static_cast<const char *>(string_buffer), 
501                                                    std::move(buffer_offsets), 
502                                                    std::move(defined_cps));
503    }
504}
505
506
507#endif
Note: See TracBrowser for help on using the repository browser.