source: icGREP/icgrep-devel/icgrep/UCD/BidiMirroring.h @ 5755

Last change on this file since 5755 was 5751, checked in by cameron, 20 months ago

LLVM_ALIGNAS placement, eliminate std::move of temp objects to allow copy elision

File size: 9.1 KB
Line 
1#ifndef BIDIMIRRORING_H
2#define BIDIMIRRORING_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 "unicode_set.h"
15
16namespace UCD {
17    namespace BMG_ns {
18        /** Code Point Ranges for bmg mapping to <none>
19        [0000, 0027], [002a, 003b], [003d, 003d], [003f, 005a],
20        [005c, 005c], [005e, 007a], [007c, 007c], [007e, 00aa],
21        [00ac, 00ba], [00bc, 0f39], [0f3e, 169a], [169d, 2038],
22        [203b, 2044], [2047, 207c], [207f, 208c], [208f, 2207],
23        [220e, 2214], [2216, 223b], [223e, 2242], [2244, 2251],
24        [2256, 2263], [226c, 226d], [228c, 228e], [2293, 2297],
25        [2299, 22a1], [22a4, 22a5], [22a7, 22a7], [22aa, 22aa],
26        [22ac, 22af], [22b8, 22c8], [22ce, 22cf], [22d2, 22d5],
27        [22ee, 22ef], [22f5, 22f5], [22f8, 22f9], [22ff, 2307],
28        [230c, 2328], [232b, 2767], [2776, 27c2], [27c7, 27c7],
29        [27ca, 27ca], [27cc, 27cc], [27ce, 27d4], [27d7, 27dc],
30        [27df, 27e1], [27f0, 2982], [2999, 29b7], [29b9, 29bf],
31        [29c2, 29c3], [29c6, 29ce], [29d3, 29d3], [29d6, 29d7],
32        [29dc, 29f4], [29f6, 29f7], [29fa, 29fb], [29fe, 2a2a],
33        [2a2f, 2a33], [2a36, 2a3b], [2a3e, 2a63], [2a66, 2a78],
34        [2a7b, 2a7c], [2a85, 2a8a], [2a8d, 2a90], [2a9d, 2aa0],
35        [2aa3, 2aa5], [2aae, 2aae], [2ab1, 2ab2], [2ab5, 2aba],
36        [2ac7, 2acc], [2ad7, 2add], [2adf, 2ae2], [2ae6, 2aeb],
37        [2aee, 2af6], [2afb, 2e01], [2e06, 2e08], [2e0b, 2e0b],
38        [2e0e, 2e1b], [2e1e, 2e1f], [2e2a, 3007], [3012, 3013],
39        [301c, fe58], [fe5f, fe63], [fe66, ff07], [ff0a, ff1b],
40        [ff1d, ff1d], [ff1f, ff3a], [ff3c, ff3c], [ff3e, ff5a],
41        [ff5c, ff5c], [ff5e, ff5e], [ff61, ff61], [ff64, 10ffff]**/
42       
43       
44        namespace {
45        const static UnicodeSet::run_t __null_codepoint_set_runs[] = {
46        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 115},
47        {Mixed, 1}, {Full, 58}, {Mixed, 1}, {Full, 76}, {Mixed, 4},
48        {Full, 11}, {Mixed, 10}, {Full, 33}, {Mixed, 1}, {Full, 2},
49        {Mixed, 2}, {Full, 12}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
50        {Full, 1}, {Mixed, 5}, {Full, 24}, {Mixed, 2}, {Full, 14},
51        {Mixed, 1}, {Full, 1649}, {Mixed, 2}, {Full, 4}, {Mixed, 4},
52        {Full, 32772}};
53        const static UnicodeSet::bitquad_t  __null_codepoint_set_quads[] = {
54        0xaffffcff, 0xd7ffffff, 0xd7ffffff, 0xf7fff7ff, 0xc3ffffff,
55        0xe7ffffff, 0xf9ffffff, 0xffffff9f, 0x9fffffff, 0xffff9fff,
56        0xffdfc0ff, 0xcfffffff, 0xffc3fff7, 0x0000300f, 0xfef87000,
57        0xff00f4b3, 0x003cc1ff, 0x8320c000, 0xfffff0ff, 0xfffff9ff,
58        0xffc000ff, 0x9f9fd487, 0xffff0003, 0xfe000007, 0xfeffffff,
59        0xf0c87fcc, 0xccdfffff, 0xcfcf87ff, 0x19ffffcf, 0xe001e7e0,
60        0x07e64039, 0xbf801f80, 0xf87fcfc7, 0xcfffc9c3, 0xfffffc00,
61        0xf00c00ff, 0x81ffffff, 0xffffffcf, 0xaffffcff, 0xd7ffffff,
62        0x57ffffff, 0xfffffff2};
63        }
64
65        const static UnicodeSet null_codepoint_set{const_cast<UnicodeSet::run_t *>(__null_codepoint_set_runs), 31, 0, const_cast<UnicodeSet::bitquad_t *>(__null_codepoint_set_quads), 42, 0};
66
67
68
69        /** Code Point Ranges for bmg mapping to <codepoint>
70        **/
71       
72       
73        namespace {
74        const static UnicodeSet::run_t __reflexive_set_runs[] = {
75        {Empty, 34816}};
76        const static UnicodeSet::bitquad_t * const __reflexive_set_quads = nullptr;
77        }
78
79        const static UnicodeSet reflexive_set{const_cast<UnicodeSet::run_t *>(__reflexive_set_runs), 1, 0, const_cast<UnicodeSet::bitquad_t *>(__reflexive_set_quads), 0, 0};
80
81
82
83        const unsigned buffer_length = 1438;
84        const static char string_buffer LLVM_ALIGNAS(32) [1536] = u8R"__()
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≜
145≌
146≿
147≟
148⊁
149⊀
150⊃
151⊂
152⊅
153⊄
154⊇
155⊆
156⊉
157⊈
158⊋
159⊊
160⊐
161⊏
162⊒
163⊑
164⊞
165⊣
166⊢
167⫞
168â«€
169â«£
170â«¥
171⊱
172⊰
173⊳
174⊲
175⊵
176⊮
177⊷
178⊶
179⋊
180⋉
181⋌
182⋋
183≃
184⋑
185⋐
186⋗
187⋖
188⋙
189⋘
190⋛
191⋚
192⋝
193⋜
194⋟
195⋞
196⋡
197⋠
198⋣
199⋢
200⋥
201â‹€
202⋧
203⋩
204⋩
205⋹
206⋫
207⋪
208⋭
209⋬
210⋱
211⋰
212⋺
213⋻
214⋌
215⋜
216â‹Ÿ
217⋲
218⋳
219⋮
220⋶
221⋷
222⌉
223⌈
224⌋
225⌊
226〉
227〈
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⧹
307⧞
308⧜
309⧌
310⚬
311âš«
312âš®
313âš­
314âšµ
315⚎
316⚜
317⚌
318â©¥
319â©€
320⩺
321⩹
322â©Ÿ
323⩜
324⪀
325â©¿
326⪂
327⪁
328⪄
329⪃
330⪌
331⪋
332⪒
333⪑
334⪔
335⪓
336⪖
337⪕
338⪘
339⪗
340⪚
341⪙
342⪜
343⪛
344⪢
345⪡
346⪧
347⪊
348⪩
349⪚
350⪫
351⪪
352⪭
353⪬
354⪰
355⪯
356⪎
357⪳
358⪌
359⪻
360⪟
361⪜
362⫀
363⪿
364⫂
365⫁
366⫄
367⫃
368⫆
369⫅
370⫎
371⫍
372⫐
373⫏
374⫒
375⫑
376⫔
377⫓
378⫖
379⫕
380⊩
381⊩
382⊹
383⊫
384â«­
385⫬
386â«ž
387â«·
388⫺
389⫹
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        const static std::vector<codepoint_t> defined_cps{
451        0x0028, 0x0029, 0x003c, 0x003e, 0x005b, 0x005d, 0x007b, 0x007d,
452        0x00ab, 0x00bb, 0x0f3a, 0x0f3b, 0x0f3c, 0x0f3d, 0x169b, 0x169c,
453        0x2039, 0x203a, 0x2045, 0x2046, 0x207d, 0x207e, 0x208d, 0x208e,
454        0x2208, 0x2209, 0x220a, 0x220b, 0x220c, 0x220d, 0x2215, 0x223c,
455        0x223d, 0x2243, 0x2252, 0x2253, 0x2254, 0x2255, 0x2264, 0x2265,
456        0x2266, 0x2267, 0x2268, 0x2269, 0x226a, 0x226b, 0x226e, 0x226f,
457        0x2270, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276, 0x2277,
458        0x2278, 0x2279, 0x227a, 0x227b, 0x227c, 0x227d, 0x227e, 0x227f,
459        0x2280, 0x2281, 0x2282, 0x2283, 0x2284, 0x2285, 0x2286, 0x2287,
460        0x2288, 0x2289, 0x228a, 0x228b, 0x228f, 0x2290, 0x2291, 0x2292,
461        0x2298, 0x22a2, 0x22a3, 0x22a6, 0x22a8, 0x22a9, 0x22ab, 0x22b0,
462        0x22b1, 0x22b2, 0x22b3, 0x22b4, 0x22b5, 0x22b6, 0x22b7, 0x22c9,
463        0x22ca, 0x22cb, 0x22cc, 0x22cd, 0x22d0, 0x22d1, 0x22d6, 0x22d7,
464        0x22d8, 0x22d9, 0x22da, 0x22db, 0x22dc, 0x22dd, 0x22de, 0x22df,
465        0x22e0, 0x22e1, 0x22e2, 0x22e3, 0x22e4, 0x22e5, 0x22e6, 0x22e7,
466        0x22e8, 0x22e9, 0x22ea, 0x22eb, 0x22ec, 0x22ed, 0x22f0, 0x22f1,
467        0x22f2, 0x22f3, 0x22f4, 0x22f6, 0x22f7, 0x22fa, 0x22fb, 0x22fc,
468        0x22fd, 0x22fe, 0x2308, 0x2309, 0x230a, 0x230b, 0x2329, 0x232a,
469        0x2768, 0x2769, 0x276a, 0x276b, 0x276c, 0x276d, 0x276e, 0x276f,
470        0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775, 0x27c3, 0x27c4,
471        0x27c5, 0x27c6, 0x27c8, 0x27c9, 0x27cb, 0x27cd, 0x27d5, 0x27d6,
472        0x27dd, 0x27de, 0x27e2, 0x27e3, 0x27e4, 0x27e5, 0x27e6, 0x27e7,
473        0x27e8, 0x27e9, 0x27ea, 0x27eb, 0x27ec, 0x27ed, 0x27ee, 0x27ef,
474        0x2983, 0x2984, 0x2985, 0x2986, 0x2987, 0x2988, 0x2989, 0x298a,
475        0x298b, 0x298c, 0x298d, 0x298e, 0x298f, 0x2990, 0x2991, 0x2992,
476        0x2993, 0x2994, 0x2995, 0x2996, 0x2997, 0x2998, 0x29b8, 0x29c0,
477        0x29c1, 0x29c4, 0x29c5, 0x29cf, 0x29d0, 0x29d1, 0x29d2, 0x29d4,
478        0x29d5, 0x29d8, 0x29d9, 0x29da, 0x29db, 0x29f5, 0x29f8, 0x29f9,
479        0x29fc, 0x29fd, 0x2a2b, 0x2a2c, 0x2a2d, 0x2a2e, 0x2a34, 0x2a35,
480        0x2a3c, 0x2a3d, 0x2a64, 0x2a65, 0x2a79, 0x2a7a, 0x2a7d, 0x2a7e,
481        0x2a7f, 0x2a80, 0x2a81, 0x2a82, 0x2a83, 0x2a84, 0x2a8b, 0x2a8c,
482        0x2a91, 0x2a92, 0x2a93, 0x2a94, 0x2a95, 0x2a96, 0x2a97, 0x2a98,
483        0x2a99, 0x2a9a, 0x2a9b, 0x2a9c, 0x2aa1, 0x2aa2, 0x2aa6, 0x2aa7,
484        0x2aa8, 0x2aa9, 0x2aaa, 0x2aab, 0x2aac, 0x2aad, 0x2aaf, 0x2ab0,
485        0x2ab3, 0x2ab4, 0x2abb, 0x2abc, 0x2abd, 0x2abe, 0x2abf, 0x2ac0,
486        0x2ac1, 0x2ac2, 0x2ac3, 0x2ac4, 0x2ac5, 0x2ac6, 0x2acd, 0x2ace,
487        0x2acf, 0x2ad0, 0x2ad1, 0x2ad2, 0x2ad3, 0x2ad4, 0x2ad5, 0x2ad6,
488        0x2ade, 0x2ae3, 0x2ae4, 0x2ae5, 0x2aec, 0x2aed, 0x2af7, 0x2af8,
489        0x2af9, 0x2afa, 0x2e02, 0x2e03, 0x2e04, 0x2e05, 0x2e09, 0x2e0a,
490        0x2e0c, 0x2e0d, 0x2e1c, 0x2e1d, 0x2e20, 0x2e21, 0x2e22, 0x2e23,
491        0x2e24, 0x2e25, 0x2e26, 0x2e27, 0x2e28, 0x2e29, 0x3008, 0x3009,
492        0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 0x3010, 0x3011,
493        0x3014, 0x3015, 0x3016, 0x3017, 0x3018, 0x3019, 0x301a, 0x301b,
494        0xfe59, 0xfe5a, 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0xfe64, 0xfe65,
495        0xff08, 0xff09, 0xff1c, 0xff1e, 0xff3b, 0xff3d, 0xff5b, 0xff5d,
496        0xff5f, 0xff60, 0xff62, 0xff63};
497        static StringPropertyObject property_object(bmg, 
498                                                    std::move(null_codepoint_set), 
499                                                    std::move(reflexive_set), 
500                                                    static_cast<const char *>(string_buffer), 
501                                                    buffer_length, 
502                                                    std::move(defined_cps));
503    }
504}
505
506#endif
Note: See TracBrowser for help on using the repository browser.