1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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
|
/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
#include "_bsearch.h"
#include "bitset.h"
#include "rune.h"
#include "unicode/prop.h"
/* clang-format off */
static constexpr bitset(bs, LATIN1_MAX) = {
0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const struct {
rune lo, hi;
} lookup[] = {
{RUNE_C(0x000589), RUNE_C(0x000589)},
{RUNE_C(0x00061D), RUNE_C(0x00061F)},
{RUNE_C(0x0006D4), RUNE_C(0x0006D4)},
{RUNE_C(0x000700), RUNE_C(0x000702)},
{RUNE_C(0x0007F9), RUNE_C(0x0007F9)},
{RUNE_C(0x000837), RUNE_C(0x000837)},
{RUNE_C(0x000839), RUNE_C(0x000839)},
{RUNE_C(0x00083D), RUNE_C(0x00083E)},
{RUNE_C(0x000964), RUNE_C(0x000965)},
{RUNE_C(0x00104A), RUNE_C(0x00104B)},
{RUNE_C(0x001362), RUNE_C(0x001362)},
{RUNE_C(0x001367), RUNE_C(0x001368)},
{RUNE_C(0x00166E), RUNE_C(0x00166E)},
{RUNE_C(0x001735), RUNE_C(0x001736)},
{RUNE_C(0x0017D4), RUNE_C(0x0017D5)},
{RUNE_C(0x001803), RUNE_C(0x001803)},
{RUNE_C(0x001809), RUNE_C(0x001809)},
{RUNE_C(0x001944), RUNE_C(0x001945)},
{RUNE_C(0x001AA8), RUNE_C(0x001AAB)},
{RUNE_C(0x001B5A), RUNE_C(0x001B5B)},
{RUNE_C(0x001B5E), RUNE_C(0x001B5F)},
{RUNE_C(0x001B7D), RUNE_C(0x001B7E)},
{RUNE_C(0x001C3B), RUNE_C(0x001C3C)},
{RUNE_C(0x001C7E), RUNE_C(0x001C7F)},
{RUNE_C(0x00203C), RUNE_C(0x00203D)},
{RUNE_C(0x002047), RUNE_C(0x002049)},
{RUNE_C(0x002E2E), RUNE_C(0x002E2E)},
{RUNE_C(0x002E3C), RUNE_C(0x002E3C)},
{RUNE_C(0x002E53), RUNE_C(0x002E54)},
{RUNE_C(0x003002), RUNE_C(0x003002)},
{RUNE_C(0x00A4FF), RUNE_C(0x00A4FF)},
{RUNE_C(0x00A60E), RUNE_C(0x00A60F)},
{RUNE_C(0x00A6F3), RUNE_C(0x00A6F3)},
{RUNE_C(0x00A6F7), RUNE_C(0x00A6F7)},
{RUNE_C(0x00A876), RUNE_C(0x00A877)},
{RUNE_C(0x00A8CE), RUNE_C(0x00A8CF)},
{RUNE_C(0x00A92F), RUNE_C(0x00A92F)},
{RUNE_C(0x00A9C8), RUNE_C(0x00A9C9)},
{RUNE_C(0x00AA5D), RUNE_C(0x00AA5F)},
{RUNE_C(0x00AAF0), RUNE_C(0x00AAF1)},
{RUNE_C(0x00ABEB), RUNE_C(0x00ABEB)},
{RUNE_C(0x00FE52), RUNE_C(0x00FE52)},
{RUNE_C(0x00FE56), RUNE_C(0x00FE57)},
{RUNE_C(0x00FF01), RUNE_C(0x00FF01)},
{RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)},
{RUNE_C(0x00FF1F), RUNE_C(0x00FF1F)},
{RUNE_C(0x00FF61), RUNE_C(0x00FF61)},
{RUNE_C(0x010A56), RUNE_C(0x010A57)},
{RUNE_C(0x010F55), RUNE_C(0x010F59)},
{RUNE_C(0x010F86), RUNE_C(0x010F89)},
{RUNE_C(0x011047), RUNE_C(0x011048)},
{RUNE_C(0x0110BE), RUNE_C(0x0110C1)},
{RUNE_C(0x011141), RUNE_C(0x011143)},
{RUNE_C(0x0111C5), RUNE_C(0x0111C6)},
{RUNE_C(0x0111CD), RUNE_C(0x0111CD)},
{RUNE_C(0x0111DE), RUNE_C(0x0111DF)},
{RUNE_C(0x011238), RUNE_C(0x011239)},
{RUNE_C(0x01123B), RUNE_C(0x01123C)},
{RUNE_C(0x0112A9), RUNE_C(0x0112A9)},
{RUNE_C(0x01144B), RUNE_C(0x01144C)},
{RUNE_C(0x0115C2), RUNE_C(0x0115C3)},
{RUNE_C(0x0115C9), RUNE_C(0x0115D7)},
{RUNE_C(0x011641), RUNE_C(0x011642)},
{RUNE_C(0x01173C), RUNE_C(0x01173E)},
{RUNE_C(0x011944), RUNE_C(0x011944)},
{RUNE_C(0x011946), RUNE_C(0x011946)},
{RUNE_C(0x011A42), RUNE_C(0x011A43)},
{RUNE_C(0x011A9B), RUNE_C(0x011A9C)},
{RUNE_C(0x011C41), RUNE_C(0x011C42)},
{RUNE_C(0x011EF7), RUNE_C(0x011EF8)},
{RUNE_C(0x011F43), RUNE_C(0x011F44)},
{RUNE_C(0x016A6E), RUNE_C(0x016A6F)},
{RUNE_C(0x016AF5), RUNE_C(0x016AF5)},
{RUNE_C(0x016B37), RUNE_C(0x016B38)},
{RUNE_C(0x016B44), RUNE_C(0x016B44)},
{RUNE_C(0x016E98), RUNE_C(0x016E98)},
{RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)},
{RUNE_C(0x01DA88), RUNE_C(0x01DA88)},
};
_MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
bool
uprop_is_sterm(rune ch)
{
return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
}
|