REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
Loading...
Searching...
No Matches
unicode_script.hpp
Go to the documentation of this file.
1
12
#ifndef REAL_UNICODE_SCRIPT_HPP
13
#define REAL_UNICODE_SCRIPT_HPP
14
15
// Internal — do not include directly.
16
// Users: #include <real/real.hpp> (or the documented opt-ins <real/dfa.hpp>, <real/std/regex.hpp>).
17
18
#include "
real/version.hpp
"
19
20
#include <cstddef>
21
#include <cstdint>
22
#include <string_view>
23
24
namespace
real::detail
{
25
27
inline
constexpr
const
char
*
unicode_script_unidata_version
{
"16.0.0"
};
28
30
enum class
script
: std::uint8_t {
31
Unknown
,
32
Adlam
,
33
Ahom
,
34
Anatolian_Hieroglyphs
,
35
Arabic
,
36
Armenian
,
37
Avestan
,
38
Balinese
,
39
Bamum
,
40
Bassa_Vah
,
41
Batak
,
42
Bengali
,
43
Bhaiksuki
,
44
Bopomofo
,
45
Brahmi
,
46
Braille
,
47
Buginese
,
48
Buhid
,
49
Canadian_Aboriginal
,
50
Carian
,
51
Caucasian_Albanian
,
52
Chakma
,
53
Cham
,
54
Cherokee
,
55
Chorasmian
,
56
Common
,
57
Coptic
,
58
Cuneiform
,
59
Cypriot
,
60
Cypro_Minoan
,
61
Cyrillic
,
62
Deseret
,
63
Devanagari
,
64
Dives_Akuru
,
65
Dogra
,
66
Duployan
,
67
Egyptian_Hieroglyphs
,
68
Elbasan
,
69
Elymaic
,
70
Ethiopic
,
71
Garay
,
72
Georgian
,
73
Glagolitic
,
74
Gothic
,
75
Grantha
,
76
Greek
,
77
Gujarati
,
78
Gunjala_Gondi
,
79
Gurmukhi
,
80
Gurung_Khema
,
81
Han
,
82
Hangul
,
83
Hanifi_Rohingya
,
84
Hanunoo
,
85
Hatran
,
86
Hebrew
,
87
Hiragana
,
88
Imperial_Aramaic
,
89
Inherited
,
90
Inscriptional_Pahlavi
,
91
Inscriptional_Parthian
,
92
Javanese
,
93
Kaithi
,
94
Kannada
,
95
Katakana
,
96
Kawi
,
97
Kayah_Li
,
98
Kharoshthi
,
99
Khitan_Small_Script
,
100
Khmer
,
101
Khojki
,
102
Khudawadi
,
103
Kirat_Rai
,
104
Lao
,
105
Latin
,
106
Lepcha
,
107
Limbu
,
108
Linear_A
,
109
Linear_B
,
110
Lisu
,
111
Lycian
,
112
Lydian
,
113
Mahajani
,
114
Makasar
,
115
Malayalam
,
116
Mandaic
,
117
Manichaean
,
118
Marchen
,
119
Masaram_Gondi
,
120
Medefaidrin
,
121
Meetei_Mayek
,
122
Mende_Kikakui
,
123
Meroitic_Cursive
,
124
Meroitic_Hieroglyphs
,
125
Miao
,
126
Modi
,
127
Mongolian
,
128
Mro
,
129
Multani
,
130
Myanmar
,
131
Nabataean
,
132
Nag_Mundari
,
133
Nandinagari
,
134
New_Tai_Lue
,
135
Newa
,
136
Nko
,
137
Nushu
,
138
Nyiakeng_Puachue_Hmong
,
139
Ogham
,
140
Ol_Chiki
,
141
Ol_Onal
,
142
Old_Hungarian
,
143
Old_Italic
,
144
Old_North_Arabian
,
145
Old_Permic
,
146
Old_Persian
,
147
Old_Sogdian
,
148
Old_South_Arabian
,
149
Old_Turkic
,
150
Old_Uyghur
,
151
Oriya
,
152
Osage
,
153
Osmanya
,
154
Pahawh_Hmong
,
155
Palmyrene
,
156
Pau_Cin_Hau
,
157
Phags_Pa
,
158
Phoenician
,
159
Psalter_Pahlavi
,
160
Rejang
,
161
Runic
,
162
Samaritan
,
163
Saurashtra
,
164
Sharada
,
165
Shavian
,
166
Siddham
,
167
SignWriting
,
168
Sinhala
,
169
Sogdian
,
170
Sora_Sompeng
,
171
Soyombo
,
172
Sundanese
,
173
Sunuwar
,
174
Syloti_Nagri
,
175
Syriac
,
176
Tagalog
,
177
Tagbanwa
,
178
Tai_Le
,
179
Tai_Tham
,
180
Tai_Viet
,
181
Takri
,
182
Tamil
,
183
Tangsa
,
184
Tangut
,
185
Telugu
,
186
Thaana
,
187
Thai
,
188
Tibetan
,
189
Tifinagh
,
190
Tirhuta
,
191
Todhri
,
192
Toto
,
193
Tulu_Tigalari
,
194
Ugaritic
,
195
Vai
,
196
Vithkuqi
,
197
Wancho
,
198
Warang_Citi
,
199
Yezidi
,
200
Yi
,
201
Zanabazar_Square
,
202
count
203
};
204
206
struct
script_range
{
char32_t
lo
;
char32_t
hi
;
script
sc
; };
207
209
inline
constexpr
script_range
script_ranges
[] {
210
{0x0000, 0x0040,
script::Common
},
211
{0x0041, 0x005A,
script::Latin
},
212
{0x005B, 0x0060,
script::Common
},
213
{0x0061, 0x007A,
script::Latin
},
214
{0x007B, 0x00A9,
script::Common
},
215
{0x00AA, 0x00AA,
script::Latin
},
216
{0x00AB, 0x00B9,
script::Common
},
217
{0x00BA, 0x00BA,
script::Latin
},
218
{0x00BB, 0x00BF,
script::Common
},
219
{0x00C0, 0x00D6,
script::Latin
},
220
{0x00D7, 0x00D7,
script::Common
},
221
{0x00D8, 0x00F6,
script::Latin
},
222
{0x00F7, 0x00F7,
script::Common
},
223
{0x00F8, 0x02B8,
script::Latin
},
224
{0x02B9, 0x02DF,
script::Common
},
225
{0x02E0, 0x02E4,
script::Latin
},
226
{0x02E5, 0x02E9,
script::Common
},
227
{0x02EA, 0x02EB,
script::Bopomofo
},
228
{0x02EC, 0x02FF,
script::Common
},
229
{0x0300, 0x036F,
script::Inherited
},
230
{0x0370, 0x0373,
script::Greek
},
231
{0x0374, 0x0374,
script::Common
},
232
{0x0375, 0x0377,
script::Greek
},
233
{0x037A, 0x037D,
script::Greek
},
234
{0x037E, 0x037E,
script::Common
},
235
{0x037F, 0x037F,
script::Greek
},
236
{0x0384, 0x0384,
script::Greek
},
237
{0x0385, 0x0385,
script::Common
},
238
{0x0386, 0x0386,
script::Greek
},
239
{0x0387, 0x0387,
script::Common
},
240
{0x0388, 0x038A,
script::Greek
},
241
{0x038C, 0x038C,
script::Greek
},
242
{0x038E, 0x03A1,
script::Greek
},
243
{0x03A3, 0x03E1,
script::Greek
},
244
{0x03E2, 0x03EF,
script::Coptic
},
245
{0x03F0, 0x03FF,
script::Greek
},
246
{0x0400, 0x0484,
script::Cyrillic
},
247
{0x0485, 0x0486,
script::Inherited
},
248
{0x0487, 0x052F,
script::Cyrillic
},
249
{0x0531, 0x0556,
script::Armenian
},
250
{0x0559, 0x058A,
script::Armenian
},
251
{0x058D, 0x058F,
script::Armenian
},
252
{0x0591, 0x05C7,
script::Hebrew
},
253
{0x05D0, 0x05EA,
script::Hebrew
},
254
{0x05EF, 0x05F4,
script::Hebrew
},
255
{0x0600, 0x0604,
script::Arabic
},
256
{0x0605, 0x0605,
script::Common
},
257
{0x0606, 0x060B,
script::Arabic
},
258
{0x060C, 0x060C,
script::Common
},
259
{0x060D, 0x061A,
script::Arabic
},
260
{0x061B, 0x061B,
script::Common
},
261
{0x061C, 0x061E,
script::Arabic
},
262
{0x061F, 0x061F,
script::Common
},
263
{0x0620, 0x063F,
script::Arabic
},
264
{0x0640, 0x0640,
script::Common
},
265
{0x0641, 0x064A,
script::Arabic
},
266
{0x064B, 0x0655,
script::Inherited
},
267
{0x0656, 0x066F,
script::Arabic
},
268
{0x0670, 0x0670,
script::Inherited
},
269
{0x0671, 0x06DC,
script::Arabic
},
270
{0x06DD, 0x06DD,
script::Common
},
271
{0x06DE, 0x06FF,
script::Arabic
},
272
{0x0700, 0x070D,
script::Syriac
},
273
{0x070F, 0x074A,
script::Syriac
},
274
{0x074D, 0x074F,
script::Syriac
},
275
{0x0750, 0x077F,
script::Arabic
},
276
{0x0780, 0x07B1,
script::Thaana
},
277
{0x07C0, 0x07FA,
script::Nko
},
278
{0x07FD, 0x07FF,
script::Nko
},
279
{0x0800, 0x082D,
script::Samaritan
},
280
{0x0830, 0x083E,
script::Samaritan
},
281
{0x0840, 0x085B,
script::Mandaic
},
282
{0x085E, 0x085E,
script::Mandaic
},
283
{0x0860, 0x086A,
script::Syriac
},
284
{0x0870, 0x088E,
script::Arabic
},
285
{0x0890, 0x0891,
script::Arabic
},
286
{0x0897, 0x08E1,
script::Arabic
},
287
{0x08E2, 0x08E2,
script::Common
},
288
{0x08E3, 0x08FF,
script::Arabic
},
289
{0x0900, 0x0950,
script::Devanagari
},
290
{0x0951, 0x0954,
script::Inherited
},
291
{0x0955, 0x0963,
script::Devanagari
},
292
{0x0964, 0x0965,
script::Common
},
293
{0x0966, 0x097F,
script::Devanagari
},
294
{0x0980, 0x0983,
script::Bengali
},
295
{0x0985, 0x098C,
script::Bengali
},
296
{0x098F, 0x0990,
script::Bengali
},
297
{0x0993, 0x09A8,
script::Bengali
},
298
{0x09AA, 0x09B0,
script::Bengali
},
299
{0x09B2, 0x09B2,
script::Bengali
},
300
{0x09B6, 0x09B9,
script::Bengali
},
301
{0x09BC, 0x09C4,
script::Bengali
},
302
{0x09C7, 0x09C8,
script::Bengali
},
303
{0x09CB, 0x09CE,
script::Bengali
},
304
{0x09D7, 0x09D7,
script::Bengali
},
305
{0x09DC, 0x09DD,
script::Bengali
},
306
{0x09DF, 0x09E3,
script::Bengali
},
307
{0x09E6, 0x09FE,
script::Bengali
},
308
{0x0A01, 0x0A03,
script::Gurmukhi
},
309
{0x0A05, 0x0A0A,
script::Gurmukhi
},
310
{0x0A0F, 0x0A10,
script::Gurmukhi
},
311
{0x0A13, 0x0A28,
script::Gurmukhi
},
312
{0x0A2A, 0x0A30,
script::Gurmukhi
},
313
{0x0A32, 0x0A33,
script::Gurmukhi
},
314
{0x0A35, 0x0A36,
script::Gurmukhi
},
315
{0x0A38, 0x0A39,
script::Gurmukhi
},
316
{0x0A3C, 0x0A3C,
script::Gurmukhi
},
317
{0x0A3E, 0x0A42,
script::Gurmukhi
},
318
{0x0A47, 0x0A48,
script::Gurmukhi
},
319
{0x0A4B, 0x0A4D,
script::Gurmukhi
},
320
{0x0A51, 0x0A51,
script::Gurmukhi
},
321
{0x0A59, 0x0A5C,
script::Gurmukhi
},
322
{0x0A5E, 0x0A5E,
script::Gurmukhi
},
323
{0x0A66, 0x0A76,
script::Gurmukhi
},
324
{0x0A81, 0x0A83,
script::Gujarati
},
325
{0x0A85, 0x0A8D,
script::Gujarati
},
326
{0x0A8F, 0x0A91,
script::Gujarati
},
327
{0x0A93, 0x0AA8,
script::Gujarati
},
328
{0x0AAA, 0x0AB0,
script::Gujarati
},
329
{0x0AB2, 0x0AB3,
script::Gujarati
},
330
{0x0AB5, 0x0AB9,
script::Gujarati
},
331
{0x0ABC, 0x0AC5,
script::Gujarati
},
332
{0x0AC7, 0x0AC9,
script::Gujarati
},
333
{0x0ACB, 0x0ACD,
script::Gujarati
},
334
{0x0AD0, 0x0AD0,
script::Gujarati
},
335
{0x0AE0, 0x0AE3,
script::Gujarati
},
336
{0x0AE6, 0x0AF1,
script::Gujarati
},
337
{0x0AF9, 0x0AFF,
script::Gujarati
},
338
{0x0B01, 0x0B03,
script::Oriya
},
339
{0x0B05, 0x0B0C,
script::Oriya
},
340
{0x0B0F, 0x0B10,
script::Oriya
},
341
{0x0B13, 0x0B28,
script::Oriya
},
342
{0x0B2A, 0x0B30,
script::Oriya
},
343
{0x0B32, 0x0B33,
script::Oriya
},
344
{0x0B35, 0x0B39,
script::Oriya
},
345
{0x0B3C, 0x0B44,
script::Oriya
},
346
{0x0B47, 0x0B48,
script::Oriya
},
347
{0x0B4B, 0x0B4D,
script::Oriya
},
348
{0x0B55, 0x0B57,
script::Oriya
},
349
{0x0B5C, 0x0B5D,
script::Oriya
},
350
{0x0B5F, 0x0B63,
script::Oriya
},
351
{0x0B66, 0x0B77,
script::Oriya
},
352
{0x0B82, 0x0B83,
script::Tamil
},
353
{0x0B85, 0x0B8A,
script::Tamil
},
354
{0x0B8E, 0x0B90,
script::Tamil
},
355
{0x0B92, 0x0B95,
script::Tamil
},
356
{0x0B99, 0x0B9A,
script::Tamil
},
357
{0x0B9C, 0x0B9C,
script::Tamil
},
358
{0x0B9E, 0x0B9F,
script::Tamil
},
359
{0x0BA3, 0x0BA4,
script::Tamil
},
360
{0x0BA8, 0x0BAA,
script::Tamil
},
361
{0x0BAE, 0x0BB9,
script::Tamil
},
362
{0x0BBE, 0x0BC2,
script::Tamil
},
363
{0x0BC6, 0x0BC8,
script::Tamil
},
364
{0x0BCA, 0x0BCD,
script::Tamil
},
365
{0x0BD0, 0x0BD0,
script::Tamil
},
366
{0x0BD7, 0x0BD7,
script::Tamil
},
367
{0x0BE6, 0x0BFA,
script::Tamil
},
368
{0x0C00, 0x0C0C,
script::Telugu
},
369
{0x0C0E, 0x0C10,
script::Telugu
},
370
{0x0C12, 0x0C28,
script::Telugu
},
371
{0x0C2A, 0x0C39,
script::Telugu
},
372
{0x0C3C, 0x0C44,
script::Telugu
},
373
{0x0C46, 0x0C48,
script::Telugu
},
374
{0x0C4A, 0x0C4D,
script::Telugu
},
375
{0x0C55, 0x0C56,
script::Telugu
},
376
{0x0C58, 0x0C5A,
script::Telugu
},
377
{0x0C5D, 0x0C5D,
script::Telugu
},
378
{0x0C60, 0x0C63,
script::Telugu
},
379
{0x0C66, 0x0C6F,
script::Telugu
},
380
{0x0C77, 0x0C7F,
script::Telugu
},
381
{0x0C80, 0x0C8C,
script::Kannada
},
382
{0x0C8E, 0x0C90,
script::Kannada
},
383
{0x0C92, 0x0CA8,
script::Kannada
},
384
{0x0CAA, 0x0CB3,
script::Kannada
},
385
{0x0CB5, 0x0CB9,
script::Kannada
},
386
{0x0CBC, 0x0CC4,
script::Kannada
},
387
{0x0CC6, 0x0CC8,
script::Kannada
},
388
{0x0CCA, 0x0CCD,
script::Kannada
},
389
{0x0CD5, 0x0CD6,
script::Kannada
},
390
{0x0CDD, 0x0CDE,
script::Kannada
},
391
{0x0CE0, 0x0CE3,
script::Kannada
},
392
{0x0CE6, 0x0CEF,
script::Kannada
},
393
{0x0CF1, 0x0CF3,
script::Kannada
},
394
{0x0D00, 0x0D0C,
script::Malayalam
},
395
{0x0D0E, 0x0D10,
script::Malayalam
},
396
{0x0D12, 0x0D44,
script::Malayalam
},
397
{0x0D46, 0x0D48,
script::Malayalam
},
398
{0x0D4A, 0x0D4F,
script::Malayalam
},
399
{0x0D54, 0x0D63,
script::Malayalam
},
400
{0x0D66, 0x0D7F,
script::Malayalam
},
401
{0x0D81, 0x0D83,
script::Sinhala
},
402
{0x0D85, 0x0D96,
script::Sinhala
},
403
{0x0D9A, 0x0DB1,
script::Sinhala
},
404
{0x0DB3, 0x0DBB,
script::Sinhala
},
405
{0x0DBD, 0x0DBD,
script::Sinhala
},
406
{0x0DC0, 0x0DC6,
script::Sinhala
},
407
{0x0DCA, 0x0DCA,
script::Sinhala
},
408
{0x0DCF, 0x0DD4,
script::Sinhala
},
409
{0x0DD6, 0x0DD6,
script::Sinhala
},
410
{0x0DD8, 0x0DDF,
script::Sinhala
},
411
{0x0DE6, 0x0DEF,
script::Sinhala
},
412
{0x0DF2, 0x0DF4,
script::Sinhala
},
413
{0x0E01, 0x0E3A,
script::Thai
},
414
{0x0E3F, 0x0E3F,
script::Common
},
415
{0x0E40, 0x0E5B,
script::Thai
},
416
{0x0E81, 0x0E82,
script::Lao
},
417
{0x0E84, 0x0E84,
script::Lao
},
418
{0x0E86, 0x0E8A,
script::Lao
},
419
{0x0E8C, 0x0EA3,
script::Lao
},
420
{0x0EA5, 0x0EA5,
script::Lao
},
421
{0x0EA7, 0x0EBD,
script::Lao
},
422
{0x0EC0, 0x0EC4,
script::Lao
},
423
{0x0EC6, 0x0EC6,
script::Lao
},
424
{0x0EC8, 0x0ECE,
script::Lao
},
425
{0x0ED0, 0x0ED9,
script::Lao
},
426
{0x0EDC, 0x0EDF,
script::Lao
},
427
{0x0F00, 0x0F47,
script::Tibetan
},
428
{0x0F49, 0x0F6C,
script::Tibetan
},
429
{0x0F71, 0x0F97,
script::Tibetan
},
430
{0x0F99, 0x0FBC,
script::Tibetan
},
431
{0x0FBE, 0x0FCC,
script::Tibetan
},
432
{0x0FCE, 0x0FD4,
script::Tibetan
},
433
{0x0FD5, 0x0FD8,
script::Common
},
434
{0x0FD9, 0x0FDA,
script::Tibetan
},
435
{0x1000, 0x109F,
script::Myanmar
},
436
{0x10A0, 0x10C5,
script::Georgian
},
437
{0x10C7, 0x10C7,
script::Georgian
},
438
{0x10CD, 0x10CD,
script::Georgian
},
439
{0x10D0, 0x10FA,
script::Georgian
},
440
{0x10FB, 0x10FB,
script::Common
},
441
{0x10FC, 0x10FF,
script::Georgian
},
442
{0x1100, 0x11FF,
script::Hangul
},
443
{0x1200, 0x1248,
script::Ethiopic
},
444
{0x124A, 0x124D,
script::Ethiopic
},
445
{0x1250, 0x1256,
script::Ethiopic
},
446
{0x1258, 0x1258,
script::Ethiopic
},
447
{0x125A, 0x125D,
script::Ethiopic
},
448
{0x1260, 0x1288,
script::Ethiopic
},
449
{0x128A, 0x128D,
script::Ethiopic
},
450
{0x1290, 0x12B0,
script::Ethiopic
},
451
{0x12B2, 0x12B5,
script::Ethiopic
},
452
{0x12B8, 0x12BE,
script::Ethiopic
},
453
{0x12C0, 0x12C0,
script::Ethiopic
},
454
{0x12C2, 0x12C5,
script::Ethiopic
},
455
{0x12C8, 0x12D6,
script::Ethiopic
},
456
{0x12D8, 0x1310,
script::Ethiopic
},
457
{0x1312, 0x1315,
script::Ethiopic
},
458
{0x1318, 0x135A,
script::Ethiopic
},
459
{0x135D, 0x137C,
script::Ethiopic
},
460
{0x1380, 0x1399,
script::Ethiopic
},
461
{0x13A0, 0x13F5,
script::Cherokee
},
462
{0x13F8, 0x13FD,
script::Cherokee
},
463
{0x1400, 0x167F,
script::Canadian_Aboriginal
},
464
{0x1680, 0x169C,
script::Ogham
},
465
{0x16A0, 0x16EA,
script::Runic
},
466
{0x16EB, 0x16ED,
script::Common
},
467
{0x16EE, 0x16F8,
script::Runic
},
468
{0x1700, 0x1715,
script::Tagalog
},
469
{0x171F, 0x171F,
script::Tagalog
},
470
{0x1720, 0x1734,
script::Hanunoo
},
471
{0x1735, 0x1736,
script::Common
},
472
{0x1740, 0x1753,
script::Buhid
},
473
{0x1760, 0x176C,
script::Tagbanwa
},
474
{0x176E, 0x1770,
script::Tagbanwa
},
475
{0x1772, 0x1773,
script::Tagbanwa
},
476
{0x1780, 0x17DD,
script::Khmer
},
477
{0x17E0, 0x17E9,
script::Khmer
},
478
{0x17F0, 0x17F9,
script::Khmer
},
479
{0x1800, 0x1801,
script::Mongolian
},
480
{0x1802, 0x1803,
script::Common
},
481
{0x1804, 0x1804,
script::Mongolian
},
482
{0x1805, 0x1805,
script::Common
},
483
{0x1806, 0x1819,
script::Mongolian
},
484
{0x1820, 0x1878,
script::Mongolian
},
485
{0x1880, 0x18AA,
script::Mongolian
},
486
{0x18B0, 0x18F5,
script::Canadian_Aboriginal
},
487
{0x1900, 0x191E,
script::Limbu
},
488
{0x1920, 0x192B,
script::Limbu
},
489
{0x1930, 0x193B,
script::Limbu
},
490
{0x1940, 0x1940,
script::Limbu
},
491
{0x1944, 0x194F,
script::Limbu
},
492
{0x1950, 0x196D,
script::Tai_Le
},
493
{0x1970, 0x1974,
script::Tai_Le
},
494
{0x1980, 0x19AB,
script::New_Tai_Lue
},
495
{0x19B0, 0x19C9,
script::New_Tai_Lue
},
496
{0x19D0, 0x19DA,
script::New_Tai_Lue
},
497
{0x19DE, 0x19DF,
script::New_Tai_Lue
},
498
{0x19E0, 0x19FF,
script::Khmer
},
499
{0x1A00, 0x1A1B,
script::Buginese
},
500
{0x1A1E, 0x1A1F,
script::Buginese
},
501
{0x1A20, 0x1A5E,
script::Tai_Tham
},
502
{0x1A60, 0x1A7C,
script::Tai_Tham
},
503
{0x1A7F, 0x1A89,
script::Tai_Tham
},
504
{0x1A90, 0x1A99,
script::Tai_Tham
},
505
{0x1AA0, 0x1AAD,
script::Tai_Tham
},
506
{0x1AB0, 0x1ACE,
script::Inherited
},
507
{0x1B00, 0x1B4C,
script::Balinese
},
508
{0x1B4E, 0x1B7F,
script::Balinese
},
509
{0x1B80, 0x1BBF,
script::Sundanese
},
510
{0x1BC0, 0x1BF3,
script::Batak
},
511
{0x1BFC, 0x1BFF,
script::Batak
},
512
{0x1C00, 0x1C37,
script::Lepcha
},
513
{0x1C3B, 0x1C49,
script::Lepcha
},
514
{0x1C4D, 0x1C4F,
script::Lepcha
},
515
{0x1C50, 0x1C7F,
script::Ol_Chiki
},
516
{0x1C80, 0x1C8A,
script::Cyrillic
},
517
{0x1C90, 0x1CBA,
script::Georgian
},
518
{0x1CBD, 0x1CBF,
script::Georgian
},
519
{0x1CC0, 0x1CC7,
script::Sundanese
},
520
{0x1CD0, 0x1CD2,
script::Inherited
},
521
{0x1CD3, 0x1CD3,
script::Common
},
522
{0x1CD4, 0x1CE0,
script::Inherited
},
523
{0x1CE1, 0x1CE1,
script::Common
},
524
{0x1CE2, 0x1CE8,
script::Inherited
},
525
{0x1CE9, 0x1CEC,
script::Common
},
526
{0x1CED, 0x1CED,
script::Inherited
},
527
{0x1CEE, 0x1CF3,
script::Common
},
528
{0x1CF4, 0x1CF4,
script::Inherited
},
529
{0x1CF5, 0x1CF7,
script::Common
},
530
{0x1CF8, 0x1CF9,
script::Inherited
},
531
{0x1CFA, 0x1CFA,
script::Common
},
532
{0x1D00, 0x1D25,
script::Latin
},
533
{0x1D26, 0x1D2A,
script::Greek
},
534
{0x1D2B, 0x1D2B,
script::Cyrillic
},
535
{0x1D2C, 0x1D5C,
script::Latin
},
536
{0x1D5D, 0x1D61,
script::Greek
},
537
{0x1D62, 0x1D65,
script::Latin
},
538
{0x1D66, 0x1D6A,
script::Greek
},
539
{0x1D6B, 0x1D77,
script::Latin
},
540
{0x1D78, 0x1D78,
script::Cyrillic
},
541
{0x1D79, 0x1DBE,
script::Latin
},
542
{0x1DBF, 0x1DBF,
script::Greek
},
543
{0x1DC0, 0x1DFF,
script::Inherited
},
544
{0x1E00, 0x1EFF,
script::Latin
},
545
{0x1F00, 0x1F15,
script::Greek
},
546
{0x1F18, 0x1F1D,
script::Greek
},
547
{0x1F20, 0x1F45,
script::Greek
},
548
{0x1F48, 0x1F4D,
script::Greek
},
549
{0x1F50, 0x1F57,
script::Greek
},
550
{0x1F59, 0x1F59,
script::Greek
},
551
{0x1F5B, 0x1F5B,
script::Greek
},
552
{0x1F5D, 0x1F5D,
script::Greek
},
553
{0x1F5F, 0x1F7D,
script::Greek
},
554
{0x1F80, 0x1FB4,
script::Greek
},
555
{0x1FB6, 0x1FC4,
script::Greek
},
556
{0x1FC6, 0x1FD3,
script::Greek
},
557
{0x1FD6, 0x1FDB,
script::Greek
},
558
{0x1FDD, 0x1FEF,
script::Greek
},
559
{0x1FF2, 0x1FF4,
script::Greek
},
560
{0x1FF6, 0x1FFE,
script::Greek
},
561
{0x2000, 0x200B,
script::Common
},
562
{0x200C, 0x200D,
script::Inherited
},
563
{0x200E, 0x2064,
script::Common
},
564
{0x2066, 0x2070,
script::Common
},
565
{0x2071, 0x2071,
script::Latin
},
566
{0x2074, 0x207E,
script::Common
},
567
{0x207F, 0x207F,
script::Latin
},
568
{0x2080, 0x208E,
script::Common
},
569
{0x2090, 0x209C,
script::Latin
},
570
{0x20A0, 0x20C0,
script::Common
},
571
{0x20D0, 0x20F0,
script::Inherited
},
572
{0x2100, 0x2125,
script::Common
},
573
{0x2126, 0x2126,
script::Greek
},
574
{0x2127, 0x2129,
script::Common
},
575
{0x212A, 0x212B,
script::Latin
},
576
{0x212C, 0x2131,
script::Common
},
577
{0x2132, 0x2132,
script::Latin
},
578
{0x2133, 0x214D,
script::Common
},
579
{0x214E, 0x214E,
script::Latin
},
580
{0x214F, 0x215F,
script::Common
},
581
{0x2160, 0x2188,
script::Latin
},
582
{0x2189, 0x218B,
script::Common
},
583
{0x2190, 0x2429,
script::Common
},
584
{0x2440, 0x244A,
script::Common
},
585
{0x2460, 0x27FF,
script::Common
},
586
{0x2800, 0x28FF,
script::Braille
},
587
{0x2900, 0x2B73,
script::Common
},
588
{0x2B76, 0x2B95,
script::Common
},
589
{0x2B97, 0x2BFF,
script::Common
},
590
{0x2C00, 0x2C5F,
script::Glagolitic
},
591
{0x2C60, 0x2C7F,
script::Latin
},
592
{0x2C80, 0x2CF3,
script::Coptic
},
593
{0x2CF9, 0x2CFF,
script::Coptic
},
594
{0x2D00, 0x2D25,
script::Georgian
},
595
{0x2D27, 0x2D27,
script::Georgian
},
596
{0x2D2D, 0x2D2D,
script::Georgian
},
597
{0x2D30, 0x2D67,
script::Tifinagh
},
598
{0x2D6F, 0x2D70,
script::Tifinagh
},
599
{0x2D7F, 0x2D7F,
script::Tifinagh
},
600
{0x2D80, 0x2D96,
script::Ethiopic
},
601
{0x2DA0, 0x2DA6,
script::Ethiopic
},
602
{0x2DA8, 0x2DAE,
script::Ethiopic
},
603
{0x2DB0, 0x2DB6,
script::Ethiopic
},
604
{0x2DB8, 0x2DBE,
script::Ethiopic
},
605
{0x2DC0, 0x2DC6,
script::Ethiopic
},
606
{0x2DC8, 0x2DCE,
script::Ethiopic
},
607
{0x2DD0, 0x2DD6,
script::Ethiopic
},
608
{0x2DD8, 0x2DDE,
script::Ethiopic
},
609
{0x2DE0, 0x2DFF,
script::Cyrillic
},
610
{0x2E00, 0x2E5D,
script::Common
},
611
{0x2E80, 0x2E99,
script::Han
},
612
{0x2E9B, 0x2EF3,
script::Han
},
613
{0x2F00, 0x2FD5,
script::Han
},
614
{0x2FF0, 0x3004,
script::Common
},
615
{0x3005, 0x3005,
script::Han
},
616
{0x3006, 0x3006,
script::Common
},
617
{0x3007, 0x3007,
script::Han
},
618
{0x3008, 0x3020,
script::Common
},
619
{0x3021, 0x3029,
script::Han
},
620
{0x302A, 0x302D,
script::Inherited
},
621
{0x302E, 0x302F,
script::Hangul
},
622
{0x3030, 0x3037,
script::Common
},
623
{0x3038, 0x303B,
script::Han
},
624
{0x303C, 0x303F,
script::Common
},
625
{0x3041, 0x3096,
script::Hiragana
},
626
{0x3099, 0x309A,
script::Inherited
},
627
{0x309B, 0x309C,
script::Common
},
628
{0x309D, 0x309F,
script::Hiragana
},
629
{0x30A0, 0x30A0,
script::Common
},
630
{0x30A1, 0x30FA,
script::Katakana
},
631
{0x30FB, 0x30FC,
script::Common
},
632
{0x30FD, 0x30FF,
script::Katakana
},
633
{0x3105, 0x312F,
script::Bopomofo
},
634
{0x3131, 0x318E,
script::Hangul
},
635
{0x3190, 0x319F,
script::Common
},
636
{0x31A0, 0x31BF,
script::Bopomofo
},
637
{0x31C0, 0x31E5,
script::Common
},
638
{0x31EF, 0x31EF,
script::Common
},
639
{0x31F0, 0x31FF,
script::Katakana
},
640
{0x3200, 0x321E,
script::Hangul
},
641
{0x3220, 0x325F,
script::Common
},
642
{0x3260, 0x327E,
script::Hangul
},
643
{0x327F, 0x32CF,
script::Common
},
644
{0x32D0, 0x32FE,
script::Katakana
},
645
{0x32FF, 0x32FF,
script::Common
},
646
{0x3300, 0x3357,
script::Katakana
},
647
{0x3358, 0x33FF,
script::Common
},
648
{0x3400, 0x4DBF,
script::Han
},
649
{0x4DC0, 0x4DFF,
script::Common
},
650
{0x4E00, 0x9FFF,
script::Han
},
651
{0xA000, 0xA48C,
script::Yi
},
652
{0xA490, 0xA4C6,
script::Yi
},
653
{0xA4D0, 0xA4FF,
script::Lisu
},
654
{0xA500, 0xA62B,
script::Vai
},
655
{0xA640, 0xA69F,
script::Cyrillic
},
656
{0xA6A0, 0xA6F7,
script::Bamum
},
657
{0xA700, 0xA721,
script::Common
},
658
{0xA722, 0xA787,
script::Latin
},
659
{0xA788, 0xA78A,
script::Common
},
660
{0xA78B, 0xA7CD,
script::Latin
},
661
{0xA7D0, 0xA7D1,
script::Latin
},
662
{0xA7D3, 0xA7D3,
script::Latin
},
663
{0xA7D5, 0xA7DC,
script::Latin
},
664
{0xA7F2, 0xA7FF,
script::Latin
},
665
{0xA800, 0xA82C,
script::Syloti_Nagri
},
666
{0xA830, 0xA839,
script::Common
},
667
{0xA840, 0xA877,
script::Phags_Pa
},
668
{0xA880, 0xA8C5,
script::Saurashtra
},
669
{0xA8CE, 0xA8D9,
script::Saurashtra
},
670
{0xA8E0, 0xA8FF,
script::Devanagari
},
671
{0xA900, 0xA92D,
script::Kayah_Li
},
672
{0xA92E, 0xA92E,
script::Common
},
673
{0xA92F, 0xA92F,
script::Kayah_Li
},
674
{0xA930, 0xA953,
script::Rejang
},
675
{0xA95F, 0xA95F,
script::Rejang
},
676
{0xA960, 0xA97C,
script::Hangul
},
677
{0xA980, 0xA9CD,
script::Javanese
},
678
{0xA9CF, 0xA9CF,
script::Common
},
679
{0xA9D0, 0xA9D9,
script::Javanese
},
680
{0xA9DE, 0xA9DF,
script::Javanese
},
681
{0xA9E0, 0xA9FE,
script::Myanmar
},
682
{0xAA00, 0xAA36,
script::Cham
},
683
{0xAA40, 0xAA4D,
script::Cham
},
684
{0xAA50, 0xAA59,
script::Cham
},
685
{0xAA5C, 0xAA5F,
script::Cham
},
686
{0xAA60, 0xAA7F,
script::Myanmar
},
687
{0xAA80, 0xAAC2,
script::Tai_Viet
},
688
{0xAADB, 0xAADF,
script::Tai_Viet
},
689
{0xAAE0, 0xAAF6,
script::Meetei_Mayek
},
690
{0xAB01, 0xAB06,
script::Ethiopic
},
691
{0xAB09, 0xAB0E,
script::Ethiopic
},
692
{0xAB11, 0xAB16,
script::Ethiopic
},
693
{0xAB20, 0xAB26,
script::Ethiopic
},
694
{0xAB28, 0xAB2E,
script::Ethiopic
},
695
{0xAB30, 0xAB5A,
script::Latin
},
696
{0xAB5B, 0xAB5B,
script::Common
},
697
{0xAB5C, 0xAB64,
script::Latin
},
698
{0xAB65, 0xAB65,
script::Greek
},
699
{0xAB66, 0xAB69,
script::Latin
},
700
{0xAB6A, 0xAB6B,
script::Common
},
701
{0xAB70, 0xABBF,
script::Cherokee
},
702
{0xABC0, 0xABED,
script::Meetei_Mayek
},
703
{0xABF0, 0xABF9,
script::Meetei_Mayek
},
704
{0xAC00, 0xD7A3,
script::Hangul
},
705
{0xD7B0, 0xD7C6,
script::Hangul
},
706
{0xD7CB, 0xD7FB,
script::Hangul
},
707
{0xF900, 0xFA6D,
script::Han
},
708
{0xFA70, 0xFAD9,
script::Han
},
709
{0xFB00, 0xFB06,
script::Latin
},
710
{0xFB13, 0xFB17,
script::Armenian
},
711
{0xFB1D, 0xFB36,
script::Hebrew
},
712
{0xFB38, 0xFB3C,
script::Hebrew
},
713
{0xFB3E, 0xFB3E,
script::Hebrew
},
714
{0xFB40, 0xFB41,
script::Hebrew
},
715
{0xFB43, 0xFB44,
script::Hebrew
},
716
{0xFB46, 0xFB4F,
script::Hebrew
},
717
{0xFB50, 0xFBC2,
script::Arabic
},
718
{0xFBD3, 0xFD3D,
script::Arabic
},
719
{0xFD3E, 0xFD3F,
script::Common
},
720
{0xFD40, 0xFD8F,
script::Arabic
},
721
{0xFD92, 0xFDC7,
script::Arabic
},
722
{0xFDCF, 0xFDCF,
script::Arabic
},
723
{0xFDF0, 0xFDFF,
script::Arabic
},
724
{0xFE00, 0xFE0F,
script::Inherited
},
725
{0xFE10, 0xFE19,
script::Common
},
726
{0xFE20, 0xFE2D,
script::Inherited
},
727
{0xFE2E, 0xFE2F,
script::Cyrillic
},
728
{0xFE30, 0xFE52,
script::Common
},
729
{0xFE54, 0xFE66,
script::Common
},
730
{0xFE68, 0xFE6B,
script::Common
},
731
{0xFE70, 0xFE74,
script::Arabic
},
732
{0xFE76, 0xFEFC,
script::Arabic
},
733
{0xFEFF, 0xFEFF,
script::Common
},
734
{0xFF01, 0xFF20,
script::Common
},
735
{0xFF21, 0xFF3A,
script::Latin
},
736
{0xFF3B, 0xFF40,
script::Common
},
737
{0xFF41, 0xFF5A,
script::Latin
},
738
{0xFF5B, 0xFF65,
script::Common
},
739
{0xFF66, 0xFF6F,
script::Katakana
},
740
{0xFF70, 0xFF70,
script::Common
},
741
{0xFF71, 0xFF9D,
script::Katakana
},
742
{0xFF9E, 0xFF9F,
script::Common
},
743
{0xFFA0, 0xFFBE,
script::Hangul
},
744
{0xFFC2, 0xFFC7,
script::Hangul
},
745
{0xFFCA, 0xFFCF,
script::Hangul
},
746
{0xFFD2, 0xFFD7,
script::Hangul
},
747
{0xFFDA, 0xFFDC,
script::Hangul
},
748
{0xFFE0, 0xFFE6,
script::Common
},
749
{0xFFE8, 0xFFEE,
script::Common
},
750
{0xFFF9, 0xFFFD,
script::Common
},
751
{0x10000, 0x1000B,
script::Linear_B
},
752
{0x1000D, 0x10026,
script::Linear_B
},
753
{0x10028, 0x1003A,
script::Linear_B
},
754
{0x1003C, 0x1003D,
script::Linear_B
},
755
{0x1003F, 0x1004D,
script::Linear_B
},
756
{0x10050, 0x1005D,
script::Linear_B
},
757
{0x10080, 0x100FA,
script::Linear_B
},
758
{0x10100, 0x10102,
script::Common
},
759
{0x10107, 0x10133,
script::Common
},
760
{0x10137, 0x1013F,
script::Common
},
761
{0x10140, 0x1018E,
script::Greek
},
762
{0x10190, 0x1019C,
script::Common
},
763
{0x101A0, 0x101A0,
script::Greek
},
764
{0x101D0, 0x101FC,
script::Common
},
765
{0x101FD, 0x101FD,
script::Inherited
},
766
{0x10280, 0x1029C,
script::Lycian
},
767
{0x102A0, 0x102D0,
script::Carian
},
768
{0x102E0, 0x102E0,
script::Inherited
},
769
{0x102E1, 0x102FB,
script::Common
},
770
{0x10300, 0x10323,
script::Old_Italic
},
771
{0x1032D, 0x1032F,
script::Old_Italic
},
772
{0x10330, 0x1034A,
script::Gothic
},
773
{0x10350, 0x1037A,
script::Old_Permic
},
774
{0x10380, 0x1039D,
script::Ugaritic
},
775
{0x1039F, 0x1039F,
script::Ugaritic
},
776
{0x103A0, 0x103C3,
script::Old_Persian
},
777
{0x103C8, 0x103D5,
script::Old_Persian
},
778
{0x10400, 0x1044F,
script::Deseret
},
779
{0x10450, 0x1047F,
script::Shavian
},
780
{0x10480, 0x1049D,
script::Osmanya
},
781
{0x104A0, 0x104A9,
script::Osmanya
},
782
{0x104B0, 0x104D3,
script::Osage
},
783
{0x104D8, 0x104FB,
script::Osage
},
784
{0x10500, 0x10527,
script::Elbasan
},
785
{0x10530, 0x10563,
script::Caucasian_Albanian
},
786
{0x1056F, 0x1056F,
script::Caucasian_Albanian
},
787
{0x10570, 0x1057A,
script::Vithkuqi
},
788
{0x1057C, 0x1058A,
script::Vithkuqi
},
789
{0x1058C, 0x10592,
script::Vithkuqi
},
790
{0x10594, 0x10595,
script::Vithkuqi
},
791
{0x10597, 0x105A1,
script::Vithkuqi
},
792
{0x105A3, 0x105B1,
script::Vithkuqi
},
793
{0x105B3, 0x105B9,
script::Vithkuqi
},
794
{0x105BB, 0x105BC,
script::Vithkuqi
},
795
{0x105C0, 0x105F3,
script::Todhri
},
796
{0x10600, 0x10736,
script::Linear_A
},
797
{0x10740, 0x10755,
script::Linear_A
},
798
{0x10760, 0x10767,
script::Linear_A
},
799
{0x10780, 0x10785,
script::Latin
},
800
{0x10787, 0x107B0,
script::Latin
},
801
{0x107B2, 0x107BA,
script::Latin
},
802
{0x10800, 0x10805,
script::Cypriot
},
803
{0x10808, 0x10808,
script::Cypriot
},
804
{0x1080A, 0x10835,
script::Cypriot
},
805
{0x10837, 0x10838,
script::Cypriot
},
806
{0x1083C, 0x1083C,
script::Cypriot
},
807
{0x1083F, 0x1083F,
script::Cypriot
},
808
{0x10840, 0x10855,
script::Imperial_Aramaic
},
809
{0x10857, 0x1085F,
script::Imperial_Aramaic
},
810
{0x10860, 0x1087F,
script::Palmyrene
},
811
{0x10880, 0x1089E,
script::Nabataean
},
812
{0x108A7, 0x108AF,
script::Nabataean
},
813
{0x108E0, 0x108F2,
script::Hatran
},
814
{0x108F4, 0x108F5,
script::Hatran
},
815
{0x108FB, 0x108FF,
script::Hatran
},
816
{0x10900, 0x1091B,
script::Phoenician
},
817
{0x1091F, 0x1091F,
script::Phoenician
},
818
{0x10920, 0x10939,
script::Lydian
},
819
{0x1093F, 0x1093F,
script::Lydian
},
820
{0x10980, 0x1099F,
script::Meroitic_Hieroglyphs
},
821
{0x109A0, 0x109B7,
script::Meroitic_Cursive
},
822
{0x109BC, 0x109CF,
script::Meroitic_Cursive
},
823
{0x109D2, 0x109FF,
script::Meroitic_Cursive
},
824
{0x10A00, 0x10A03,
script::Kharoshthi
},
825
{0x10A05, 0x10A06,
script::Kharoshthi
},
826
{0x10A0C, 0x10A13,
script::Kharoshthi
},
827
{0x10A15, 0x10A17,
script::Kharoshthi
},
828
{0x10A19, 0x10A35,
script::Kharoshthi
},
829
{0x10A38, 0x10A3A,
script::Kharoshthi
},
830
{0x10A3F, 0x10A48,
script::Kharoshthi
},
831
{0x10A50, 0x10A58,
script::Kharoshthi
},
832
{0x10A60, 0x10A7F,
script::Old_South_Arabian
},
833
{0x10A80, 0x10A9F,
script::Old_North_Arabian
},
834
{0x10AC0, 0x10AE6,
script::Manichaean
},
835
{0x10AEB, 0x10AF6,
script::Manichaean
},
836
{0x10B00, 0x10B35,
script::Avestan
},
837
{0x10B39, 0x10B3F,
script::Avestan
},
838
{0x10B40, 0x10B55,
script::Inscriptional_Parthian
},
839
{0x10B58, 0x10B5F,
script::Inscriptional_Parthian
},
840
{0x10B60, 0x10B72,
script::Inscriptional_Pahlavi
},
841
{0x10B78, 0x10B7F,
script::Inscriptional_Pahlavi
},
842
{0x10B80, 0x10B91,
script::Psalter_Pahlavi
},
843
{0x10B99, 0x10B9C,
script::Psalter_Pahlavi
},
844
{0x10BA9, 0x10BAF,
script::Psalter_Pahlavi
},
845
{0x10C00, 0x10C48,
script::Old_Turkic
},
846
{0x10C80, 0x10CB2,
script::Old_Hungarian
},
847
{0x10CC0, 0x10CF2,
script::Old_Hungarian
},
848
{0x10CFA, 0x10CFF,
script::Old_Hungarian
},
849
{0x10D00, 0x10D27,
script::Hanifi_Rohingya
},
850
{0x10D30, 0x10D39,
script::Hanifi_Rohingya
},
851
{0x10D40, 0x10D65,
script::Garay
},
852
{0x10D69, 0x10D85,
script::Garay
},
853
{0x10D8E, 0x10D8F,
script::Garay
},
854
{0x10E60, 0x10E7E,
script::Arabic
},
855
{0x10E80, 0x10EA9,
script::Yezidi
},
856
{0x10EAB, 0x10EAD,
script::Yezidi
},
857
{0x10EB0, 0x10EB1,
script::Yezidi
},
858
{0x10EC2, 0x10EC4,
script::Arabic
},
859
{0x10EFC, 0x10EFF,
script::Arabic
},
860
{0x10F00, 0x10F27,
script::Old_Sogdian
},
861
{0x10F30, 0x10F59,
script::Sogdian
},
862
{0x10F70, 0x10F89,
script::Old_Uyghur
},
863
{0x10FB0, 0x10FCB,
script::Chorasmian
},
864
{0x10FE0, 0x10FF6,
script::Elymaic
},
865
{0x11000, 0x1104D,
script::Brahmi
},
866
{0x11052, 0x11075,
script::Brahmi
},
867
{0x1107F, 0x1107F,
script::Brahmi
},
868
{0x11080, 0x110C2,
script::Kaithi
},
869
{0x110CD, 0x110CD,
script::Kaithi
},
870
{0x110D0, 0x110E8,
script::Sora_Sompeng
},
871
{0x110F0, 0x110F9,
script::Sora_Sompeng
},
872
{0x11100, 0x11134,
script::Chakma
},
873
{0x11136, 0x11147,
script::Chakma
},
874
{0x11150, 0x11176,
script::Mahajani
},
875
{0x11180, 0x111DF,
script::Sharada
},
876
{0x111E1, 0x111F4,
script::Sinhala
},
877
{0x11200, 0x11211,
script::Khojki
},
878
{0x11213, 0x11241,
script::Khojki
},
879
{0x11280, 0x11286,
script::Multani
},
880
{0x11288, 0x11288,
script::Multani
},
881
{0x1128A, 0x1128D,
script::Multani
},
882
{0x1128F, 0x1129D,
script::Multani
},
883
{0x1129F, 0x112A9,
script::Multani
},
884
{0x112B0, 0x112EA,
script::Khudawadi
},
885
{0x112F0, 0x112F9,
script::Khudawadi
},
886
{0x11300, 0x11303,
script::Grantha
},
887
{0x11305, 0x1130C,
script::Grantha
},
888
{0x1130F, 0x11310,
script::Grantha
},
889
{0x11313, 0x11328,
script::Grantha
},
890
{0x1132A, 0x11330,
script::Grantha
},
891
{0x11332, 0x11333,
script::Grantha
},
892
{0x11335, 0x11339,
script::Grantha
},
893
{0x1133B, 0x1133B,
script::Inherited
},
894
{0x1133C, 0x11344,
script::Grantha
},
895
{0x11347, 0x11348,
script::Grantha
},
896
{0x1134B, 0x1134D,
script::Grantha
},
897
{0x11350, 0x11350,
script::Grantha
},
898
{0x11357, 0x11357,
script::Grantha
},
899
{0x1135D, 0x11363,
script::Grantha
},
900
{0x11366, 0x1136C,
script::Grantha
},
901
{0x11370, 0x11374,
script::Grantha
},
902
{0x11380, 0x11389,
script::Tulu_Tigalari
},
903
{0x1138B, 0x1138B,
script::Tulu_Tigalari
},
904
{0x1138E, 0x1138E,
script::Tulu_Tigalari
},
905
{0x11390, 0x113B5,
script::Tulu_Tigalari
},
906
{0x113B7, 0x113C0,
script::Tulu_Tigalari
},
907
{0x113C2, 0x113C2,
script::Tulu_Tigalari
},
908
{0x113C5, 0x113C5,
script::Tulu_Tigalari
},
909
{0x113C7, 0x113CA,
script::Tulu_Tigalari
},
910
{0x113CC, 0x113D5,
script::Tulu_Tigalari
},
911
{0x113D7, 0x113D8,
script::Tulu_Tigalari
},
912
{0x113E1, 0x113E2,
script::Tulu_Tigalari
},
913
{0x11400, 0x1145B,
script::Newa
},
914
{0x1145D, 0x11461,
script::Newa
},
915
{0x11480, 0x114C7,
script::Tirhuta
},
916
{0x114D0, 0x114D9,
script::Tirhuta
},
917
{0x11580, 0x115B5,
script::Siddham
},
918
{0x115B8, 0x115DD,
script::Siddham
},
919
{0x11600, 0x11644,
script::Modi
},
920
{0x11650, 0x11659,
script::Modi
},
921
{0x11660, 0x1166C,
script::Mongolian
},
922
{0x11680, 0x116B9,
script::Takri
},
923
{0x116C0, 0x116C9,
script::Takri
},
924
{0x116D0, 0x116E3,
script::Myanmar
},
925
{0x11700, 0x1171A,
script::Ahom
},
926
{0x1171D, 0x1172B,
script::Ahom
},
927
{0x11730, 0x11746,
script::Ahom
},
928
{0x11800, 0x1183B,
script::Dogra
},
929
{0x118A0, 0x118F2,
script::Warang_Citi
},
930
{0x118FF, 0x118FF,
script::Warang_Citi
},
931
{0x11900, 0x11906,
script::Dives_Akuru
},
932
{0x11909, 0x11909,
script::Dives_Akuru
},
933
{0x1190C, 0x11913,
script::Dives_Akuru
},
934
{0x11915, 0x11916,
script::Dives_Akuru
},
935
{0x11918, 0x11935,
script::Dives_Akuru
},
936
{0x11937, 0x11938,
script::Dives_Akuru
},
937
{0x1193B, 0x11946,
script::Dives_Akuru
},
938
{0x11950, 0x11959,
script::Dives_Akuru
},
939
{0x119A0, 0x119A7,
script::Nandinagari
},
940
{0x119AA, 0x119D7,
script::Nandinagari
},
941
{0x119DA, 0x119E4,
script::Nandinagari
},
942
{0x11A00, 0x11A47,
script::Zanabazar_Square
},
943
{0x11A50, 0x11AA2,
script::Soyombo
},
944
{0x11AB0, 0x11ABF,
script::Canadian_Aboriginal
},
945
{0x11AC0, 0x11AF8,
script::Pau_Cin_Hau
},
946
{0x11B00, 0x11B09,
script::Devanagari
},
947
{0x11BC0, 0x11BE1,
script::Sunuwar
},
948
{0x11BF0, 0x11BF9,
script::Sunuwar
},
949
{0x11C00, 0x11C08,
script::Bhaiksuki
},
950
{0x11C0A, 0x11C36,
script::Bhaiksuki
},
951
{0x11C38, 0x11C45,
script::Bhaiksuki
},
952
{0x11C50, 0x11C6C,
script::Bhaiksuki
},
953
{0x11C70, 0x11C8F,
script::Marchen
},
954
{0x11C92, 0x11CA7,
script::Marchen
},
955
{0x11CA9, 0x11CB6,
script::Marchen
},
956
{0x11D00, 0x11D06,
script::Masaram_Gondi
},
957
{0x11D08, 0x11D09,
script::Masaram_Gondi
},
958
{0x11D0B, 0x11D36,
script::Masaram_Gondi
},
959
{0x11D3A, 0x11D3A,
script::Masaram_Gondi
},
960
{0x11D3C, 0x11D3D,
script::Masaram_Gondi
},
961
{0x11D3F, 0x11D47,
script::Masaram_Gondi
},
962
{0x11D50, 0x11D59,
script::Masaram_Gondi
},
963
{0x11D60, 0x11D65,
script::Gunjala_Gondi
},
964
{0x11D67, 0x11D68,
script::Gunjala_Gondi
},
965
{0x11D6A, 0x11D8E,
script::Gunjala_Gondi
},
966
{0x11D90, 0x11D91,
script::Gunjala_Gondi
},
967
{0x11D93, 0x11D98,
script::Gunjala_Gondi
},
968
{0x11DA0, 0x11DA9,
script::Gunjala_Gondi
},
969
{0x11EE0, 0x11EF8,
script::Makasar
},
970
{0x11F00, 0x11F10,
script::Kawi
},
971
{0x11F12, 0x11F3A,
script::Kawi
},
972
{0x11F3E, 0x11F5A,
script::Kawi
},
973
{0x11FB0, 0x11FB0,
script::Lisu
},
974
{0x11FC0, 0x11FF1,
script::Tamil
},
975
{0x11FFF, 0x11FFF,
script::Tamil
},
976
{0x12000, 0x12399,
script::Cuneiform
},
977
{0x12400, 0x1246E,
script::Cuneiform
},
978
{0x12470, 0x12474,
script::Cuneiform
},
979
{0x12480, 0x12543,
script::Cuneiform
},
980
{0x12F90, 0x12FF2,
script::Cypro_Minoan
},
981
{0x13000, 0x13455,
script::Egyptian_Hieroglyphs
},
982
{0x13460, 0x143FA,
script::Egyptian_Hieroglyphs
},
983
{0x14400, 0x14646,
script::Anatolian_Hieroglyphs
},
984
{0x16100, 0x16139,
script::Gurung_Khema
},
985
{0x16800, 0x16A38,
script::Bamum
},
986
{0x16A40, 0x16A5E,
script::Mro
},
987
{0x16A60, 0x16A69,
script::Mro
},
988
{0x16A6E, 0x16A6F,
script::Mro
},
989
{0x16A70, 0x16ABE,
script::Tangsa
},
990
{0x16AC0, 0x16AC9,
script::Tangsa
},
991
{0x16AD0, 0x16AED,
script::Bassa_Vah
},
992
{0x16AF0, 0x16AF5,
script::Bassa_Vah
},
993
{0x16B00, 0x16B45,
script::Pahawh_Hmong
},
994
{0x16B50, 0x16B59,
script::Pahawh_Hmong
},
995
{0x16B5B, 0x16B61,
script::Pahawh_Hmong
},
996
{0x16B63, 0x16B77,
script::Pahawh_Hmong
},
997
{0x16B7D, 0x16B8F,
script::Pahawh_Hmong
},
998
{0x16D40, 0x16D79,
script::Kirat_Rai
},
999
{0x16E40, 0x16E9A,
script::Medefaidrin
},
1000
{0x16F00, 0x16F4A,
script::Miao
},
1001
{0x16F4F, 0x16F87,
script::Miao
},
1002
{0x16F8F, 0x16F9F,
script::Miao
},
1003
{0x16FE0, 0x16FE0,
script::Tangut
},
1004
{0x16FE1, 0x16FE1,
script::Nushu
},
1005
{0x16FE2, 0x16FE3,
script::Han
},
1006
{0x16FE4, 0x16FE4,
script::Khitan_Small_Script
},
1007
{0x16FF0, 0x16FF1,
script::Han
},
1008
{0x17000, 0x187F7,
script::Tangut
},
1009
{0x18800, 0x18AFF,
script::Tangut
},
1010
{0x18B00, 0x18CD5,
script::Khitan_Small_Script
},
1011
{0x18CFF, 0x18CFF,
script::Khitan_Small_Script
},
1012
{0x18D00, 0x18D08,
script::Tangut
},
1013
{0x1AFF0, 0x1AFF3,
script::Katakana
},
1014
{0x1AFF5, 0x1AFFB,
script::Katakana
},
1015
{0x1AFFD, 0x1AFFE,
script::Katakana
},
1016
{0x1B000, 0x1B000,
script::Katakana
},
1017
{0x1B001, 0x1B11F,
script::Hiragana
},
1018
{0x1B120, 0x1B122,
script::Katakana
},
1019
{0x1B132, 0x1B132,
script::Hiragana
},
1020
{0x1B150, 0x1B152,
script::Hiragana
},
1021
{0x1B155, 0x1B155,
script::Katakana
},
1022
{0x1B164, 0x1B167,
script::Katakana
},
1023
{0x1B170, 0x1B2FB,
script::Nushu
},
1024
{0x1BC00, 0x1BC6A,
script::Duployan
},
1025
{0x1BC70, 0x1BC7C,
script::Duployan
},
1026
{0x1BC80, 0x1BC88,
script::Duployan
},
1027
{0x1BC90, 0x1BC99,
script::Duployan
},
1028
{0x1BC9C, 0x1BC9F,
script::Duployan
},
1029
{0x1BCA0, 0x1BCA3,
script::Common
},
1030
{0x1CC00, 0x1CCF9,
script::Common
},
1031
{0x1CD00, 0x1CEB3,
script::Common
},
1032
{0x1CF00, 0x1CF2D,
script::Inherited
},
1033
{0x1CF30, 0x1CF46,
script::Inherited
},
1034
{0x1CF50, 0x1CFC3,
script::Common
},
1035
{0x1D000, 0x1D0F5,
script::Common
},
1036
{0x1D100, 0x1D126,
script::Common
},
1037
{0x1D129, 0x1D166,
script::Common
},
1038
{0x1D167, 0x1D169,
script::Inherited
},
1039
{0x1D16A, 0x1D17A,
script::Common
},
1040
{0x1D17B, 0x1D182,
script::Inherited
},
1041
{0x1D183, 0x1D184,
script::Common
},
1042
{0x1D185, 0x1D18B,
script::Inherited
},
1043
{0x1D18C, 0x1D1A9,
script::Common
},
1044
{0x1D1AA, 0x1D1AD,
script::Inherited
},
1045
{0x1D1AE, 0x1D1EA,
script::Common
},
1046
{0x1D200, 0x1D245,
script::Greek
},
1047
{0x1D2C0, 0x1D2D3,
script::Common
},
1048
{0x1D2E0, 0x1D2F3,
script::Common
},
1049
{0x1D300, 0x1D356,
script::Common
},
1050
{0x1D360, 0x1D378,
script::Common
},
1051
{0x1D400, 0x1D454,
script::Common
},
1052
{0x1D456, 0x1D49C,
script::Common
},
1053
{0x1D49E, 0x1D49F,
script::Common
},
1054
{0x1D4A2, 0x1D4A2,
script::Common
},
1055
{0x1D4A5, 0x1D4A6,
script::Common
},
1056
{0x1D4A9, 0x1D4AC,
script::Common
},
1057
{0x1D4AE, 0x1D4B9,
script::Common
},
1058
{0x1D4BB, 0x1D4BB,
script::Common
},
1059
{0x1D4BD, 0x1D4C3,
script::Common
},
1060
{0x1D4C5, 0x1D505,
script::Common
},
1061
{0x1D507, 0x1D50A,
script::Common
},
1062
{0x1D50D, 0x1D514,
script::Common
},
1063
{0x1D516, 0x1D51C,
script::Common
},
1064
{0x1D51E, 0x1D539,
script::Common
},
1065
{0x1D53B, 0x1D53E,
script::Common
},
1066
{0x1D540, 0x1D544,
script::Common
},
1067
{0x1D546, 0x1D546,
script::Common
},
1068
{0x1D54A, 0x1D550,
script::Common
},
1069
{0x1D552, 0x1D6A5,
script::Common
},
1070
{0x1D6A8, 0x1D7CB,
script::Common
},
1071
{0x1D7CE, 0x1D7FF,
script::Common
},
1072
{0x1D800, 0x1DA8B,
script::SignWriting
},
1073
{0x1DA9B, 0x1DA9F,
script::SignWriting
},
1074
{0x1DAA1, 0x1DAAF,
script::SignWriting
},
1075
{0x1DF00, 0x1DF1E,
script::Latin
},
1076
{0x1DF25, 0x1DF2A,
script::Latin
},
1077
{0x1E000, 0x1E006,
script::Glagolitic
},
1078
{0x1E008, 0x1E018,
script::Glagolitic
},
1079
{0x1E01B, 0x1E021,
script::Glagolitic
},
1080
{0x1E023, 0x1E024,
script::Glagolitic
},
1081
{0x1E026, 0x1E02A,
script::Glagolitic
},
1082
{0x1E030, 0x1E06D,
script::Cyrillic
},
1083
{0x1E08F, 0x1E08F,
script::Cyrillic
},
1084
{0x1E100, 0x1E12C,
script::Nyiakeng_Puachue_Hmong
},
1085
{0x1E130, 0x1E13D,
script::Nyiakeng_Puachue_Hmong
},
1086
{0x1E140, 0x1E149,
script::Nyiakeng_Puachue_Hmong
},
1087
{0x1E14E, 0x1E14F,
script::Nyiakeng_Puachue_Hmong
},
1088
{0x1E290, 0x1E2AE,
script::Toto
},
1089
{0x1E2C0, 0x1E2F9,
script::Wancho
},
1090
{0x1E2FF, 0x1E2FF,
script::Wancho
},
1091
{0x1E4D0, 0x1E4F9,
script::Nag_Mundari
},
1092
{0x1E5D0, 0x1E5FA,
script::Ol_Onal
},
1093
{0x1E5FF, 0x1E5FF,
script::Ol_Onal
},
1094
{0x1E7E0, 0x1E7E6,
script::Ethiopic
},
1095
{0x1E7E8, 0x1E7EB,
script::Ethiopic
},
1096
{0x1E7ED, 0x1E7EE,
script::Ethiopic
},
1097
{0x1E7F0, 0x1E7FE,
script::Ethiopic
},
1098
{0x1E800, 0x1E8C4,
script::Mende_Kikakui
},
1099
{0x1E8C7, 0x1E8D6,
script::Mende_Kikakui
},
1100
{0x1E900, 0x1E94B,
script::Adlam
},
1101
{0x1E950, 0x1E959,
script::Adlam
},
1102
{0x1E95E, 0x1E95F,
script::Adlam
},
1103
{0x1EC71, 0x1ECB4,
script::Common
},
1104
{0x1ED01, 0x1ED3D,
script::Common
},
1105
{0x1EE00, 0x1EE03,
script::Arabic
},
1106
{0x1EE05, 0x1EE1F,
script::Arabic
},
1107
{0x1EE21, 0x1EE22,
script::Arabic
},
1108
{0x1EE24, 0x1EE24,
script::Arabic
},
1109
{0x1EE27, 0x1EE27,
script::Arabic
},
1110
{0x1EE29, 0x1EE32,
script::Arabic
},
1111
{0x1EE34, 0x1EE37,
script::Arabic
},
1112
{0x1EE39, 0x1EE39,
script::Arabic
},
1113
{0x1EE3B, 0x1EE3B,
script::Arabic
},
1114
{0x1EE42, 0x1EE42,
script::Arabic
},
1115
{0x1EE47, 0x1EE47,
script::Arabic
},
1116
{0x1EE49, 0x1EE49,
script::Arabic
},
1117
{0x1EE4B, 0x1EE4B,
script::Arabic
},
1118
{0x1EE4D, 0x1EE4F,
script::Arabic
},
1119
{0x1EE51, 0x1EE52,
script::Arabic
},
1120
{0x1EE54, 0x1EE54,
script::Arabic
},
1121
{0x1EE57, 0x1EE57,
script::Arabic
},
1122
{0x1EE59, 0x1EE59,
script::Arabic
},
1123
{0x1EE5B, 0x1EE5B,
script::Arabic
},
1124
{0x1EE5D, 0x1EE5D,
script::Arabic
},
1125
{0x1EE5F, 0x1EE5F,
script::Arabic
},
1126
{0x1EE61, 0x1EE62,
script::Arabic
},
1127
{0x1EE64, 0x1EE64,
script::Arabic
},
1128
{0x1EE67, 0x1EE6A,
script::Arabic
},
1129
{0x1EE6C, 0x1EE72,
script::Arabic
},
1130
{0x1EE74, 0x1EE77,
script::Arabic
},
1131
{0x1EE79, 0x1EE7C,
script::Arabic
},
1132
{0x1EE7E, 0x1EE7E,
script::Arabic
},
1133
{0x1EE80, 0x1EE89,
script::Arabic
},
1134
{0x1EE8B, 0x1EE9B,
script::Arabic
},
1135
{0x1EEA1, 0x1EEA3,
script::Arabic
},
1136
{0x1EEA5, 0x1EEA9,
script::Arabic
},
1137
{0x1EEAB, 0x1EEBB,
script::Arabic
},
1138
{0x1EEF0, 0x1EEF1,
script::Arabic
},
1139
{0x1F000, 0x1F02B,
script::Common
},
1140
{0x1F030, 0x1F093,
script::Common
},
1141
{0x1F0A0, 0x1F0AE,
script::Common
},
1142
{0x1F0B1, 0x1F0BF,
script::Common
},
1143
{0x1F0C1, 0x1F0CF,
script::Common
},
1144
{0x1F0D1, 0x1F0F5,
script::Common
},
1145
{0x1F100, 0x1F1AD,
script::Common
},
1146
{0x1F1E6, 0x1F1FF,
script::Common
},
1147
{0x1F200, 0x1F200,
script::Hiragana
},
1148
{0x1F201, 0x1F202,
script::Common
},
1149
{0x1F210, 0x1F23B,
script::Common
},
1150
{0x1F240, 0x1F248,
script::Common
},
1151
{0x1F250, 0x1F251,
script::Common
},
1152
{0x1F260, 0x1F265,
script::Common
},
1153
{0x1F300, 0x1F6D7,
script::Common
},
1154
{0x1F6DC, 0x1F6EC,
script::Common
},
1155
{0x1F6F0, 0x1F6FC,
script::Common
},
1156
{0x1F700, 0x1F776,
script::Common
},
1157
{0x1F77B, 0x1F7D9,
script::Common
},
1158
{0x1F7E0, 0x1F7EB,
script::Common
},
1159
{0x1F7F0, 0x1F7F0,
script::Common
},
1160
{0x1F800, 0x1F80B,
script::Common
},
1161
{0x1F810, 0x1F847,
script::Common
},
1162
{0x1F850, 0x1F859,
script::Common
},
1163
{0x1F860, 0x1F887,
script::Common
},
1164
{0x1F890, 0x1F8AD,
script::Common
},
1165
{0x1F8B0, 0x1F8BB,
script::Common
},
1166
{0x1F8C0, 0x1F8C1,
script::Common
},
1167
{0x1F900, 0x1FA53,
script::Common
},
1168
{0x1FA60, 0x1FA6D,
script::Common
},
1169
{0x1FA70, 0x1FA7C,
script::Common
},
1170
{0x1FA80, 0x1FA89,
script::Common
},
1171
{0x1FA8F, 0x1FAC6,
script::Common
},
1172
{0x1FACE, 0x1FADC,
script::Common
},
1173
{0x1FADF, 0x1FAE9,
script::Common
},
1174
{0x1FAF0, 0x1FAF8,
script::Common
},
1175
{0x1FB00, 0x1FB92,
script::Common
},
1176
{0x1FB94, 0x1FBF9,
script::Common
},
1177
{0x20000, 0x2A6DF,
script::Han
},
1178
{0x2A700, 0x2B739,
script::Han
},
1179
{0x2B740, 0x2B81D,
script::Han
},
1180
{0x2B820, 0x2CEA1,
script::Han
},
1181
{0x2CEB0, 0x2EBE0,
script::Han
},
1182
{0x2EBF0, 0x2EE5D,
script::Han
},
1183
{0x2F800, 0x2FA1D,
script::Han
},
1184
{0x30000, 0x3134A,
script::Han
},
1185
{0x31350, 0x323AF,
script::Han
},
1186
{0xE0001, 0xE0001,
script::Common
},
1187
{0xE0020, 0xE007F,
script::Common
},
1188
{0xE0100, 0xE01EF,
script::Inherited
},
1189
};
1190
1192
constexpr
script
script_of
(
char32_t
cp)
1193
{
1194
std::size_t lo {0};
1195
std::size_t hi {
sizeof
(
script_ranges
) /
sizeof
(
script_ranges
[0])};
1196
while
(lo < hi) {
1197
const
std::size_t mid {lo + ((hi - lo) / 2)};
1198
if
(
script_ranges
[mid].hi < cp) {
1199
lo = mid + 1;
1200
}
1201
else
{
1202
hi = mid;
1203
}
1204
}
1205
const
std::size_t n {
sizeof
(
script_ranges
) /
sizeof
(
script_ranges
[0])};
1206
if
(lo < n && cp >=
script_ranges
[lo].lo && cp <=
script_ranges
[lo].hi) {
1207
return
script_ranges
[lo].
sc
;
1208
}
1209
return
script::Unknown
;
1210
}
1211
1213
constexpr
bool
is_script_cp
(
script
sc,
char32_t
cp) {
return
script_of
(cp) == sc; }
1214
1216
struct
script_alias_entry
{ std::string_view
name
;
script
sc
; };
1217
1219
inline
constexpr
script_alias_entry
script_aliases
[] {
1220
{
"adlam"
,
script::Adlam
},
1221
{
"ahom"
,
script::Ahom
},
1222
{
"anatolianhieroglyphs"
,
script::Anatolian_Hieroglyphs
},
1223
{
"arabic"
,
script::Arabic
},
1224
{
"armenian"
,
script::Armenian
},
1225
{
"avestan"
,
script::Avestan
},
1226
{
"balinese"
,
script::Balinese
},
1227
{
"bamum"
,
script::Bamum
},
1228
{
"bassavah"
,
script::Bassa_Vah
},
1229
{
"batak"
,
script::Batak
},
1230
{
"bengali"
,
script::Bengali
},
1231
{
"bhaiksuki"
,
script::Bhaiksuki
},
1232
{
"bopomofo"
,
script::Bopomofo
},
1233
{
"brahmi"
,
script::Brahmi
},
1234
{
"braille"
,
script::Braille
},
1235
{
"buginese"
,
script::Buginese
},
1236
{
"buhid"
,
script::Buhid
},
1237
{
"canadianaboriginal"
,
script::Canadian_Aboriginal
},
1238
{
"carian"
,
script::Carian
},
1239
{
"caucasianalbanian"
,
script::Caucasian_Albanian
},
1240
{
"chakma"
,
script::Chakma
},
1241
{
"cham"
,
script::Cham
},
1242
{
"cherokee"
,
script::Cherokee
},
1243
{
"chorasmian"
,
script::Chorasmian
},
1244
{
"common"
,
script::Common
},
1245
{
"coptic"
,
script::Coptic
},
1246
{
"cuneiform"
,
script::Cuneiform
},
1247
{
"cypriot"
,
script::Cypriot
},
1248
{
"cyprominoan"
,
script::Cypro_Minoan
},
1249
{
"cyrillic"
,
script::Cyrillic
},
1250
{
"deseret"
,
script::Deseret
},
1251
{
"devanagari"
,
script::Devanagari
},
1252
{
"divesakuru"
,
script::Dives_Akuru
},
1253
{
"dogra"
,
script::Dogra
},
1254
{
"duployan"
,
script::Duployan
},
1255
{
"egyptianhieroglyphs"
,
script::Egyptian_Hieroglyphs
},
1256
{
"elbasan"
,
script::Elbasan
},
1257
{
"elymaic"
,
script::Elymaic
},
1258
{
"ethiopic"
,
script::Ethiopic
},
1259
{
"garay"
,
script::Garay
},
1260
{
"georgian"
,
script::Georgian
},
1261
{
"glagolitic"
,
script::Glagolitic
},
1262
{
"gothic"
,
script::Gothic
},
1263
{
"grantha"
,
script::Grantha
},
1264
{
"greek"
,
script::Greek
},
1265
{
"gujarati"
,
script::Gujarati
},
1266
{
"gunjalagondi"
,
script::Gunjala_Gondi
},
1267
{
"gurmukhi"
,
script::Gurmukhi
},
1268
{
"gurungkhema"
,
script::Gurung_Khema
},
1269
{
"han"
,
script::Han
},
1270
{
"hangul"
,
script::Hangul
},
1271
{
"hanifirohingya"
,
script::Hanifi_Rohingya
},
1272
{
"hanunoo"
,
script::Hanunoo
},
1273
{
"hatran"
,
script::Hatran
},
1274
{
"hebrew"
,
script::Hebrew
},
1275
{
"hiragana"
,
script::Hiragana
},
1276
{
"imperialaramaic"
,
script::Imperial_Aramaic
},
1277
{
"inherited"
,
script::Inherited
},
1278
{
"inscriptionalpahlavi"
,
script::Inscriptional_Pahlavi
},
1279
{
"inscriptionalparthian"
,
script::Inscriptional_Parthian
},
1280
{
"javanese"
,
script::Javanese
},
1281
{
"kaithi"
,
script::Kaithi
},
1282
{
"kannada"
,
script::Kannada
},
1283
{
"katakana"
,
script::Katakana
},
1284
{
"kawi"
,
script::Kawi
},
1285
{
"kayahli"
,
script::Kayah_Li
},
1286
{
"kharoshthi"
,
script::Kharoshthi
},
1287
{
"khitansmallscript"
,
script::Khitan_Small_Script
},
1288
{
"khmer"
,
script::Khmer
},
1289
{
"khojki"
,
script::Khojki
},
1290
{
"khudawadi"
,
script::Khudawadi
},
1291
{
"kiratrai"
,
script::Kirat_Rai
},
1292
{
"lao"
,
script::Lao
},
1293
{
"latin"
,
script::Latin
},
1294
{
"lepcha"
,
script::Lepcha
},
1295
{
"limbu"
,
script::Limbu
},
1296
{
"lineara"
,
script::Linear_A
},
1297
{
"linearb"
,
script::Linear_B
},
1298
{
"lisu"
,
script::Lisu
},
1299
{
"lycian"
,
script::Lycian
},
1300
{
"lydian"
,
script::Lydian
},
1301
{
"mahajani"
,
script::Mahajani
},
1302
{
"makasar"
,
script::Makasar
},
1303
{
"malayalam"
,
script::Malayalam
},
1304
{
"mandaic"
,
script::Mandaic
},
1305
{
"manichaean"
,
script::Manichaean
},
1306
{
"marchen"
,
script::Marchen
},
1307
{
"masaramgondi"
,
script::Masaram_Gondi
},
1308
{
"medefaidrin"
,
script::Medefaidrin
},
1309
{
"meeteimayek"
,
script::Meetei_Mayek
},
1310
{
"mendekikakui"
,
script::Mende_Kikakui
},
1311
{
"meroiticcursive"
,
script::Meroitic_Cursive
},
1312
{
"meroitichieroglyphs"
,
script::Meroitic_Hieroglyphs
},
1313
{
"miao"
,
script::Miao
},
1314
{
"modi"
,
script::Modi
},
1315
{
"mongolian"
,
script::Mongolian
},
1316
{
"mro"
,
script::Mro
},
1317
{
"multani"
,
script::Multani
},
1318
{
"myanmar"
,
script::Myanmar
},
1319
{
"nabataean"
,
script::Nabataean
},
1320
{
"nagmundari"
,
script::Nag_Mundari
},
1321
{
"nandinagari"
,
script::Nandinagari
},
1322
{
"newtailue"
,
script::New_Tai_Lue
},
1323
{
"newa"
,
script::Newa
},
1324
{
"nko"
,
script::Nko
},
1325
{
"nushu"
,
script::Nushu
},
1326
{
"nyiakengpuachuehmong"
,
script::Nyiakeng_Puachue_Hmong
},
1327
{
"ogham"
,
script::Ogham
},
1328
{
"olchiki"
,
script::Ol_Chiki
},
1329
{
"olonal"
,
script::Ol_Onal
},
1330
{
"oldhungarian"
,
script::Old_Hungarian
},
1331
{
"olditalic"
,
script::Old_Italic
},
1332
{
"oldnortharabian"
,
script::Old_North_Arabian
},
1333
{
"oldpermic"
,
script::Old_Permic
},
1334
{
"oldpersian"
,
script::Old_Persian
},
1335
{
"oldsogdian"
,
script::Old_Sogdian
},
1336
{
"oldsoutharabian"
,
script::Old_South_Arabian
},
1337
{
"oldturkic"
,
script::Old_Turkic
},
1338
{
"olduyghur"
,
script::Old_Uyghur
},
1339
{
"oriya"
,
script::Oriya
},
1340
{
"osage"
,
script::Osage
},
1341
{
"osmanya"
,
script::Osmanya
},
1342
{
"pahawhhmong"
,
script::Pahawh_Hmong
},
1343
{
"palmyrene"
,
script::Palmyrene
},
1344
{
"paucinhau"
,
script::Pau_Cin_Hau
},
1345
{
"phagspa"
,
script::Phags_Pa
},
1346
{
"phoenician"
,
script::Phoenician
},
1347
{
"psalterpahlavi"
,
script::Psalter_Pahlavi
},
1348
{
"rejang"
,
script::Rejang
},
1349
{
"runic"
,
script::Runic
},
1350
{
"samaritan"
,
script::Samaritan
},
1351
{
"saurashtra"
,
script::Saurashtra
},
1352
{
"sharada"
,
script::Sharada
},
1353
{
"shavian"
,
script::Shavian
},
1354
{
"siddham"
,
script::Siddham
},
1355
{
"signwriting"
,
script::SignWriting
},
1356
{
"sinhala"
,
script::Sinhala
},
1357
{
"sogdian"
,
script::Sogdian
},
1358
{
"sorasompeng"
,
script::Sora_Sompeng
},
1359
{
"soyombo"
,
script::Soyombo
},
1360
{
"sundanese"
,
script::Sundanese
},
1361
{
"sunuwar"
,
script::Sunuwar
},
1362
{
"sylotinagri"
,
script::Syloti_Nagri
},
1363
{
"syriac"
,
script::Syriac
},
1364
{
"tagalog"
,
script::Tagalog
},
1365
{
"tagbanwa"
,
script::Tagbanwa
},
1366
{
"taile"
,
script::Tai_Le
},
1367
{
"taitham"
,
script::Tai_Tham
},
1368
{
"taiviet"
,
script::Tai_Viet
},
1369
{
"takri"
,
script::Takri
},
1370
{
"tamil"
,
script::Tamil
},
1371
{
"tangsa"
,
script::Tangsa
},
1372
{
"tangut"
,
script::Tangut
},
1373
{
"telugu"
,
script::Telugu
},
1374
{
"thaana"
,
script::Thaana
},
1375
{
"thai"
,
script::Thai
},
1376
{
"tibetan"
,
script::Tibetan
},
1377
{
"tifinagh"
,
script::Tifinagh
},
1378
{
"tirhuta"
,
script::Tirhuta
},
1379
{
"todhri"
,
script::Todhri
},
1380
{
"toto"
,
script::Toto
},
1381
{
"tulutigalari"
,
script::Tulu_Tigalari
},
1382
{
"ugaritic"
,
script::Ugaritic
},
1383
{
"vai"
,
script::Vai
},
1384
{
"vithkuqi"
,
script::Vithkuqi
},
1385
{
"wancho"
,
script::Wancho
},
1386
{
"warangciti"
,
script::Warang_Citi
},
1387
{
"yezidi"
,
script::Yezidi
},
1388
{
"yi"
,
script::Yi
},
1389
{
"zanabazarsquare"
,
script::Zanabazar_Square
},
1390
};
1391
1393
constexpr
script
resolve_script
(std::string_view loose)
1394
{
1395
for
(
const
script_alias_entry
& a :
script_aliases
) {
1396
if
(a.name == loose) {
1397
return
a.
sc
;
1398
}
1399
}
1400
return
script::count
;
1401
}
1402
1403
}
// namespace real::detail
1404
1405
#endif
// REAL_UNICODE_SCRIPT_HPP
real::detail
Definition
lazy_dfa.hpp:34
real::detail::unicode_script_unidata_version
constexpr const char * unicode_script_unidata_version
The Unicode data version these tables were generated from (16.0.0).
Definition
unicode_script.hpp:27
real::detail::script_aliases
constexpr script_alias_entry script_aliases[]
Script names, loose-keyed; for the \p{sc=...} parser.
Definition
unicode_script.hpp:1219
real::detail::gc_property::count
@ count
real::detail::resolve_script
constexpr script resolve_script(std::string_view loose)
Resolve a loose-normalized Script name to its value, or count if unknown.
Definition
unicode_script.hpp:1393
real::detail::is_script_cp
constexpr bool is_script_cp(script sc, char32_t cp)
Whether cp belongs to Script sc (== the UCD).
Definition
unicode_script.hpp:1213
real::detail::script
script
A Unicode Script value; Unknown (0) is every code point no script assigns.
Definition
unicode_script.hpp:30
real::detail::script::Cypriot
@ Cypriot
real::detail::script::Tai_Tham
@ Tai_Tham
real::detail::script::Linear_A
@ Linear_A
real::detail::script::Duployan
@ Duployan
real::detail::script::Mro
@ Mro
real::detail::script::Dogra
@ Dogra
real::detail::script::Greek
@ Greek
real::detail::script::Osmanya
@ Osmanya
real::detail::script::Takri
@ Takri
real::detail::script::Glagolitic
@ Glagolitic
real::detail::script::Gurmukhi
@ Gurmukhi
real::detail::script::Pau_Cin_Hau
@ Pau_Cin_Hau
real::detail::script::Telugu
@ Telugu
real::detail::script::Miao
@ Miao
real::detail::script::Dives_Akuru
@ Dives_Akuru
real::detail::script::Inscriptional_Parthian
@ Inscriptional_Parthian
real::detail::script::Ol_Chiki
@ Ol_Chiki
real::detail::script::Tulu_Tigalari
@ Tulu_Tigalari
real::detail::script::Lycian
@ Lycian
real::detail::script::Myanmar
@ Myanmar
real::detail::script::Old_Persian
@ Old_Persian
real::detail::script::Limbu
@ Limbu
real::detail::script::Arabic
@ Arabic
real::detail::script::Newa
@ Newa
real::detail::script::Coptic
@ Coptic
real::detail::script::Meroitic_Cursive
@ Meroitic_Cursive
real::detail::script::Mongolian
@ Mongolian
real::detail::script::Sinhala
@ Sinhala
real::detail::script::Yezidi
@ Yezidi
real::detail::script::Carian
@ Carian
real::detail::script::Tai_Le
@ Tai_Le
real::detail::script::Cham
@ Cham
real::detail::script::Vithkuqi
@ Vithkuqi
real::detail::script::Hatran
@ Hatran
real::detail::script::Elbasan
@ Elbasan
real::detail::script::Egyptian_Hieroglyphs
@ Egyptian_Hieroglyphs
real::detail::script::Cuneiform
@ Cuneiform
real::detail::script::Todhri
@ Todhri
real::detail::script::Nyiakeng_Puachue_Hmong
@ Nyiakeng_Puachue_Hmong
real::detail::script::Ahom
@ Ahom
real::detail::script::Cherokee
@ Cherokee
real::detail::script::Runic
@ Runic
real::detail::script::Old_South_Arabian
@ Old_South_Arabian
real::detail::script::Kawi
@ Kawi
real::detail::script::Sundanese
@ Sundanese
real::detail::script::Old_Sogdian
@ Old_Sogdian
real::detail::script::Devanagari
@ Devanagari
real::detail::script::Pahawh_Hmong
@ Pahawh_Hmong
real::detail::script::Thai
@ Thai
real::detail::script::Syloti_Nagri
@ Syloti_Nagri
real::detail::script::Avestan
@ Avestan
real::detail::script::Cypro_Minoan
@ Cypro_Minoan
real::detail::script::Braille
@ Braille
real::detail::script::Kirat_Rai
@ Kirat_Rai
real::detail::script::Cyrillic
@ Cyrillic
real::detail::script::Mandaic
@ Mandaic
real::detail::script::Imperial_Aramaic
@ Imperial_Aramaic
real::detail::script::Balinese
@ Balinese
real::detail::script::Palmyrene
@ Palmyrene
real::detail::script::Buhid
@ Buhid
real::detail::script::Gunjala_Gondi
@ Gunjala_Gondi
real::detail::script::Khudawadi
@ Khudawadi
real::detail::script::Shavian
@ Shavian
real::detail::script::Nabataean
@ Nabataean
real::detail::script::Ol_Onal
@ Ol_Onal
real::detail::script::Khojki
@ Khojki
real::detail::script::Makasar
@ Makasar
real::detail::script::Hangul
@ Hangul
real::detail::script::Inscriptional_Pahlavi
@ Inscriptional_Pahlavi
real::detail::script::Khitan_Small_Script
@ Khitan_Small_Script
real::detail::script::Kayah_Li
@ Kayah_Li
real::detail::script::Samaritan
@ Samaritan
real::detail::script::Phoenician
@ Phoenician
real::detail::script::Mahajani
@ Mahajani
real::detail::script::Meetei_Mayek
@ Meetei_Mayek
real::detail::script::Bamum
@ Bamum
real::detail::script::Kannada
@ Kannada
real::detail::script::Anatolian_Hieroglyphs
@ Anatolian_Hieroglyphs
real::detail::script::Tagbanwa
@ Tagbanwa
real::detail::script::Latin
@ Latin
real::detail::script::SignWriting
@ SignWriting
real::detail::script::Rejang
@ Rejang
real::detail::script::Sharada
@ Sharada
real::detail::script::Javanese
@ Javanese
real::detail::script::Warang_Citi
@ Warang_Citi
real::detail::script::Thaana
@ Thaana
real::detail::script::Chorasmian
@ Chorasmian
real::detail::script::Siddham
@ Siddham
real::detail::script::Unknown
@ Unknown
real::detail::script::Hiragana
@ Hiragana
real::detail::script::Hanunoo
@ Hanunoo
real::detail::script::Canadian_Aboriginal
@ Canadian_Aboriginal
real::detail::script::Grantha
@ Grantha
real::detail::script::Old_Uyghur
@ Old_Uyghur
real::detail::script::Sunuwar
@ Sunuwar
real::detail::script::Phags_Pa
@ Phags_Pa
real::detail::script::Tifinagh
@ Tifinagh
real::detail::script::Ogham
@ Ogham
real::detail::script::Ethiopic
@ Ethiopic
real::detail::script::Old_North_Arabian
@ Old_North_Arabian
real::detail::script::Bassa_Vah
@ Bassa_Vah
real::detail::script::Kaithi
@ Kaithi
real::detail::script::Toto
@ Toto
real::detail::script::Adlam
@ Adlam
real::detail::script::Old_Permic
@ Old_Permic
real::detail::script::Old_Italic
@ Old_Italic
real::detail::script::Khmer
@ Khmer
real::detail::script::Lisu
@ Lisu
real::detail::script::Bhaiksuki
@ Bhaiksuki
real::detail::script::Nag_Mundari
@ Nag_Mundari
real::detail::script::Tibetan
@ Tibetan
real::detail::script::Bengali
@ Bengali
real::detail::script::Hanifi_Rohingya
@ Hanifi_Rohingya
real::detail::script::New_Tai_Lue
@ New_Tai_Lue
real::detail::script::Zanabazar_Square
@ Zanabazar_Square
real::detail::script::Oriya
@ Oriya
real::detail::script::Georgian
@ Georgian
real::detail::script::Wancho
@ Wancho
real::detail::script::Masaram_Gondi
@ Masaram_Gondi
real::detail::script::Nushu
@ Nushu
real::detail::script::Nko
@ Nko
real::detail::script::Inherited
@ Inherited
real::detail::script::Lydian
@ Lydian
real::detail::script::Armenian
@ Armenian
real::detail::script::Syriac
@ Syriac
real::detail::script::Manichaean
@ Manichaean
real::detail::script::Garay
@ Garay
real::detail::script::Chakma
@ Chakma
real::detail::script::Multani
@ Multani
real::detail::script::Tangsa
@ Tangsa
real::detail::script::Medefaidrin
@ Medefaidrin
real::detail::script::Batak
@ Batak
real::detail::script::Deseret
@ Deseret
real::detail::script::Psalter_Pahlavi
@ Psalter_Pahlavi
real::detail::script::Hebrew
@ Hebrew
real::detail::script::Mende_Kikakui
@ Mende_Kikakui
real::detail::script::Osage
@ Osage
real::detail::script::Soyombo
@ Soyombo
real::detail::script::Ugaritic
@ Ugaritic
real::detail::script::Saurashtra
@ Saurashtra
real::detail::script::Meroitic_Hieroglyphs
@ Meroitic_Hieroglyphs
real::detail::script::Old_Hungarian
@ Old_Hungarian
real::detail::script::Tirhuta
@ Tirhuta
real::detail::script::Common
@ Common
real::detail::script::Gujarati
@ Gujarati
real::detail::script::Han
@ Han
real::detail::script::Sora_Sompeng
@ Sora_Sompeng
real::detail::script::Lao
@ Lao
real::detail::script::Vai
@ Vai
real::detail::script::Kharoshthi
@ Kharoshthi
real::detail::script::Caucasian_Albanian
@ Caucasian_Albanian
real::detail::script::Sogdian
@ Sogdian
real::detail::script::count
@ count
real::detail::script::Gurung_Khema
@ Gurung_Khema
real::detail::script::Lepcha
@ Lepcha
real::detail::script::Elymaic
@ Elymaic
real::detail::script::Buginese
@ Buginese
real::detail::script::Modi
@ Modi
real::detail::script::Tangut
@ Tangut
real::detail::script::Katakana
@ Katakana
real::detail::script::Bopomofo
@ Bopomofo
real::detail::script::Tamil
@ Tamil
real::detail::script::Linear_B
@ Linear_B
real::detail::script::Brahmi
@ Brahmi
real::detail::script::Yi
@ Yi
real::detail::script::Old_Turkic
@ Old_Turkic
real::detail::script::Malayalam
@ Malayalam
real::detail::script::Marchen
@ Marchen
real::detail::script::Tai_Viet
@ Tai_Viet
real::detail::script::Tagalog
@ Tagalog
real::detail::script::Nandinagari
@ Nandinagari
real::detail::script::Gothic
@ Gothic
real::detail::script_ranges
constexpr script_range script_ranges[]
Script partition — 979 ranges, sorted and disjoint.
Definition
unicode_script.hpp:209
real::detail::script_of
constexpr script script_of(char32_t cp)
The Script of cp (binary search; Unknown when no range covers it).
Definition
unicode_script.hpp:1192
real::detail::script_alias_entry
A loose-normalized (lowercase, no _/-/space) Script name and its value.
Definition
unicode_script.hpp:1216
real::detail::script_alias_entry::sc
script sc
Definition
unicode_script.hpp:1216
real::detail::script_alias_entry::name
std::string_view name
Definition
unicode_script.hpp:1216
real::detail::script_range
One code-point range and the Script it belongs to (the table partitions the code space).
Definition
unicode_script.hpp:206
real::detail::script_range::lo
char32_t lo
Definition
unicode_script.hpp:206
real::detail::script_range::hi
char32_t hi
Definition
unicode_script.hpp:206
real::detail::script_range::sc
script sc
Definition
unicode_script.hpp:206
version.hpp
REAL's version macros and the C++20 language-standard guard.
include
real
unicode
unicode_script.hpp
Generated by
1.9.8