aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/prop/uprop_is_sterm.c
blob: 90966c4797eaeba57e6ec49613a402f21dbd3c35 (plain) (blame)
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);
}