aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/prop/uprop_get_bpt.c
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-04-09 20:37:09 +0200
committerThomas Voss <mail@thomasvoss.com> 2024-04-09 20:37:09 +0200
commita83a4de7820cf0a7c470c3a8acbfebf1a93b215f (patch)
treeda661591e39133eb546d9d483852193f5a0c8719 /lib/unicode/prop/uprop_get_bpt.c
parentc02c6641704245b35be78f45e2291a3cb93a6511 (diff)
Add uprop_get_bpb() and uprop_get_bpt()
Diffstat (limited to 'lib/unicode/prop/uprop_get_bpt.c')
-rw-r--r--lib/unicode/prop/uprop_get_bpt.c177
1 files changed, 177 insertions, 0 deletions
diff --git a/lib/unicode/prop/uprop_get_bpt.c b/lib/unicode/prop/uprop_get_bpt.c
new file mode 100644
index 0000000..7e8c11a
--- /dev/null
+++ b/lib/unicode/prop/uprop_get_bpt.c
@@ -0,0 +1,177 @@
+/* This file is autogenerated by gen/prop/bpt; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "macros.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+static constexpr enum uprop_bpt lookup_lat1[] = {
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_O, BPT_C, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_O, BPT_N, BPT_C, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_O, BPT_N, BPT_C, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+ BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N, BPT_N,
+};
+
+static const struct {
+ rune k;
+ enum uprop_bpt v;
+} lookup[] = {
+ {RUNE_C(0x000F3A), BPT_O},
+ {RUNE_C(0x000F3B), BPT_C},
+ {RUNE_C(0x000F3C), BPT_O},
+ {RUNE_C(0x000F3D), BPT_C},
+ {RUNE_C(0x00169B), BPT_O},
+ {RUNE_C(0x00169C), BPT_C},
+ {RUNE_C(0x002045), BPT_O},
+ {RUNE_C(0x002046), BPT_C},
+ {RUNE_C(0x00207D), BPT_O},
+ {RUNE_C(0x00207E), BPT_C},
+ {RUNE_C(0x00208D), BPT_O},
+ {RUNE_C(0x00208E), BPT_C},
+ {RUNE_C(0x002308), BPT_O},
+ {RUNE_C(0x002309), BPT_C},
+ {RUNE_C(0x00230A), BPT_O},
+ {RUNE_C(0x00230B), BPT_C},
+ {RUNE_C(0x002329), BPT_O},
+ {RUNE_C(0x00232A), BPT_C},
+ {RUNE_C(0x002768), BPT_O},
+ {RUNE_C(0x002769), BPT_C},
+ {RUNE_C(0x00276A), BPT_O},
+ {RUNE_C(0x00276B), BPT_C},
+ {RUNE_C(0x00276C), BPT_O},
+ {RUNE_C(0x00276D), BPT_C},
+ {RUNE_C(0x00276E), BPT_O},
+ {RUNE_C(0x00276F), BPT_C},
+ {RUNE_C(0x002770), BPT_O},
+ {RUNE_C(0x002771), BPT_C},
+ {RUNE_C(0x002772), BPT_O},
+ {RUNE_C(0x002773), BPT_C},
+ {RUNE_C(0x002774), BPT_O},
+ {RUNE_C(0x002775), BPT_C},
+ {RUNE_C(0x0027C5), BPT_O},
+ {RUNE_C(0x0027C6), BPT_C},
+ {RUNE_C(0x0027E6), BPT_O},
+ {RUNE_C(0x0027E7), BPT_C},
+ {RUNE_C(0x0027E8), BPT_O},
+ {RUNE_C(0x0027E9), BPT_C},
+ {RUNE_C(0x0027EA), BPT_O},
+ {RUNE_C(0x0027EB), BPT_C},
+ {RUNE_C(0x0027EC), BPT_O},
+ {RUNE_C(0x0027ED), BPT_C},
+ {RUNE_C(0x0027EE), BPT_O},
+ {RUNE_C(0x0027EF), BPT_C},
+ {RUNE_C(0x002983), BPT_O},
+ {RUNE_C(0x002984), BPT_C},
+ {RUNE_C(0x002985), BPT_O},
+ {RUNE_C(0x002986), BPT_C},
+ {RUNE_C(0x002987), BPT_O},
+ {RUNE_C(0x002988), BPT_C},
+ {RUNE_C(0x002989), BPT_O},
+ {RUNE_C(0x00298A), BPT_C},
+ {RUNE_C(0x00298B), BPT_O},
+ {RUNE_C(0x00298C), BPT_C},
+ {RUNE_C(0x00298D), BPT_O},
+ {RUNE_C(0x00298E), BPT_C},
+ {RUNE_C(0x00298F), BPT_O},
+ {RUNE_C(0x002990), BPT_C},
+ {RUNE_C(0x002991), BPT_O},
+ {RUNE_C(0x002992), BPT_C},
+ {RUNE_C(0x002993), BPT_O},
+ {RUNE_C(0x002994), BPT_C},
+ {RUNE_C(0x002995), BPT_O},
+ {RUNE_C(0x002996), BPT_C},
+ {RUNE_C(0x002997), BPT_O},
+ {RUNE_C(0x002998), BPT_C},
+ {RUNE_C(0x0029D8), BPT_O},
+ {RUNE_C(0x0029D9), BPT_C},
+ {RUNE_C(0x0029DA), BPT_O},
+ {RUNE_C(0x0029DB), BPT_C},
+ {RUNE_C(0x0029FC), BPT_O},
+ {RUNE_C(0x0029FD), BPT_C},
+ {RUNE_C(0x002E22), BPT_O},
+ {RUNE_C(0x002E23), BPT_C},
+ {RUNE_C(0x002E24), BPT_O},
+ {RUNE_C(0x002E25), BPT_C},
+ {RUNE_C(0x002E26), BPT_O},
+ {RUNE_C(0x002E27), BPT_C},
+ {RUNE_C(0x002E28), BPT_O},
+ {RUNE_C(0x002E29), BPT_C},
+ {RUNE_C(0x002E55), BPT_O},
+ {RUNE_C(0x002E56), BPT_C},
+ {RUNE_C(0x002E57), BPT_O},
+ {RUNE_C(0x002E58), BPT_C},
+ {RUNE_C(0x002E59), BPT_O},
+ {RUNE_C(0x002E5A), BPT_C},
+ {RUNE_C(0x002E5B), BPT_O},
+ {RUNE_C(0x002E5C), BPT_C},
+ {RUNE_C(0x003008), BPT_O},
+ {RUNE_C(0x003009), BPT_C},
+ {RUNE_C(0x00300A), BPT_O},
+ {RUNE_C(0x00300B), BPT_C},
+ {RUNE_C(0x00300C), BPT_O},
+ {RUNE_C(0x00300D), BPT_C},
+ {RUNE_C(0x00300E), BPT_O},
+ {RUNE_C(0x00300F), BPT_C},
+ {RUNE_C(0x003010), BPT_O},
+ {RUNE_C(0x003011), BPT_C},
+ {RUNE_C(0x003014), BPT_O},
+ {RUNE_C(0x003015), BPT_C},
+ {RUNE_C(0x003016), BPT_O},
+ {RUNE_C(0x003017), BPT_C},
+ {RUNE_C(0x003018), BPT_O},
+ {RUNE_C(0x003019), BPT_C},
+ {RUNE_C(0x00301A), BPT_O},
+ {RUNE_C(0x00301B), BPT_C},
+ {RUNE_C(0x00FE59), BPT_O},
+ {RUNE_C(0x00FE5A), BPT_C},
+ {RUNE_C(0x00FE5B), BPT_O},
+ {RUNE_C(0x00FE5C), BPT_C},
+ {RUNE_C(0x00FE5D), BPT_O},
+ {RUNE_C(0x00FE5E), BPT_C},
+ {RUNE_C(0x00FF08), BPT_O},
+ {RUNE_C(0x00FF09), BPT_C},
+ {RUNE_C(0x00FF3B), BPT_O},
+ {RUNE_C(0x00FF3D), BPT_C},
+ {RUNE_C(0x00FF5B), BPT_O},
+ {RUNE_C(0x00FF5D), BPT_C},
+ {RUNE_C(0x00FF5F), BPT_O},
+ {RUNE_C(0x00FF60), BPT_C},
+ {RUNE_C(0x00FF62), BPT_O},
+ {RUNE_C(0x00FF63), BPT_C},
+};
+
+__MLIB_DEFINE_BSEARCH_KV(enum uprop_bpt, lookup, BPT_N)
+
+enum uprop_bpt
+uprop_get_bpt(rune ch)
+{
+ return ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup_kv(ch);
+}