aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/prop/uprop_is_term.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/unicode/prop/uprop_is_term.c')
-rw-r--r--lib/unicode/prop/uprop_is_term.c131
1 files changed, 131 insertions, 0 deletions
diff --git a/lib/unicode/prop/uprop_is_term.c b/lib/unicode/prop/uprop_is_term.c
new file mode 100644
index 0000000..4789e1a
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_term.c
@@ -0,0 +1,131 @@
+/* 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, 0x50, 0x00, 0x8C,
+ 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(0x00037E), RUNE_C(0x00037E)},
+ {RUNE_C(0x000387), RUNE_C(0x000387)},
+ {RUNE_C(0x000589), RUNE_C(0x000589)},
+ {RUNE_C(0x0005C3), RUNE_C(0x0005C3)},
+ {RUNE_C(0x00060C), RUNE_C(0x00060C)},
+ {RUNE_C(0x00061B), RUNE_C(0x00061B)},
+ {RUNE_C(0x00061D), RUNE_C(0x00061F)},
+ {RUNE_C(0x0006D4), RUNE_C(0x0006D4)},
+ {RUNE_C(0x000700), RUNE_C(0x00070A)},
+ {RUNE_C(0x00070C), RUNE_C(0x00070C)},
+ {RUNE_C(0x0007F8), RUNE_C(0x0007F9)},
+ {RUNE_C(0x000830), RUNE_C(0x00083E)},
+ {RUNE_C(0x00085E), RUNE_C(0x00085E)},
+ {RUNE_C(0x000964), RUNE_C(0x000965)},
+ {RUNE_C(0x000E5A), RUNE_C(0x000E5B)},
+ {RUNE_C(0x000F08), RUNE_C(0x000F08)},
+ {RUNE_C(0x000F0D), RUNE_C(0x000F12)},
+ {RUNE_C(0x00104A), RUNE_C(0x00104B)},
+ {RUNE_C(0x001361), RUNE_C(0x001368)},
+ {RUNE_C(0x00166E), RUNE_C(0x00166E)},
+ {RUNE_C(0x0016EB), RUNE_C(0x0016ED)},
+ {RUNE_C(0x001735), RUNE_C(0x001736)},
+ {RUNE_C(0x0017D4), RUNE_C(0x0017D6)},
+ {RUNE_C(0x0017DA), RUNE_C(0x0017DA)},
+ {RUNE_C(0x001802), RUNE_C(0x001805)},
+ {RUNE_C(0x001808), RUNE_C(0x001809)},
+ {RUNE_C(0x001944), RUNE_C(0x001945)},
+ {RUNE_C(0x001AA8), RUNE_C(0x001AAB)},
+ {RUNE_C(0x001B5A), RUNE_C(0x001B5B)},
+ {RUNE_C(0x001B5D), RUNE_C(0x001B5F)},
+ {RUNE_C(0x001B7D), RUNE_C(0x001B7E)},
+ {RUNE_C(0x001C3B), RUNE_C(0x001C3F)},
+ {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(0x002E41), RUNE_C(0x002E41)},
+ {RUNE_C(0x002E4C), RUNE_C(0x002E4C)},
+ {RUNE_C(0x002E4E), RUNE_C(0x002E4F)},
+ {RUNE_C(0x002E53), RUNE_C(0x002E54)},
+ {RUNE_C(0x003001), RUNE_C(0x003002)},
+ {RUNE_C(0x00A4FE), RUNE_C(0x00A4FF)},
+ {RUNE_C(0x00A60D), RUNE_C(0x00A60F)},
+ {RUNE_C(0x00A6F3), RUNE_C(0x00A6F7)},
+ {RUNE_C(0x00A876), RUNE_C(0x00A877)},
+ {RUNE_C(0x00A8CE), RUNE_C(0x00A8CF)},
+ {RUNE_C(0x00A92F), RUNE_C(0x00A92F)},
+ {RUNE_C(0x00A9C7), RUNE_C(0x00A9C9)},
+ {RUNE_C(0x00AA5D), RUNE_C(0x00AA5F)},
+ {RUNE_C(0x00AADF), RUNE_C(0x00AADF)},
+ {RUNE_C(0x00AAF0), RUNE_C(0x00AAF1)},
+ {RUNE_C(0x00ABEB), RUNE_C(0x00ABEB)},
+ {RUNE_C(0x00FE50), RUNE_C(0x00FE52)},
+ {RUNE_C(0x00FE54), RUNE_C(0x00FE57)},
+ {RUNE_C(0x00FF01), RUNE_C(0x00FF01)},
+ {RUNE_C(0x00FF0C), RUNE_C(0x00FF0C)},
+ {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)},
+ {RUNE_C(0x00FF1A), RUNE_C(0x00FF1B)},
+ {RUNE_C(0x00FF1F), RUNE_C(0x00FF1F)},
+ {RUNE_C(0x00FF61), RUNE_C(0x00FF61)},
+ {RUNE_C(0x00FF64), RUNE_C(0x00FF64)},
+ {RUNE_C(0x01039F), RUNE_C(0x01039F)},
+ {RUNE_C(0x0103D0), RUNE_C(0x0103D0)},
+ {RUNE_C(0x010857), RUNE_C(0x010857)},
+ {RUNE_C(0x01091F), RUNE_C(0x01091F)},
+ {RUNE_C(0x010A56), RUNE_C(0x010A57)},
+ {RUNE_C(0x010AF0), RUNE_C(0x010AF5)},
+ {RUNE_C(0x010B3A), RUNE_C(0x010B3F)},
+ {RUNE_C(0x010B99), RUNE_C(0x010B9C)},
+ {RUNE_C(0x010F55), RUNE_C(0x010F59)},
+ {RUNE_C(0x010F86), RUNE_C(0x010F89)},
+ {RUNE_C(0x011047), RUNE_C(0x01104D)},
+ {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(0x01123C)},
+ {RUNE_C(0x0112A9), RUNE_C(0x0112A9)},
+ {RUNE_C(0x01144B), RUNE_C(0x01144D)},
+ {RUNE_C(0x01145A), RUNE_C(0x01145B)},
+ {RUNE_C(0x0115C2), RUNE_C(0x0115C5)},
+ {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(0x011AA1), RUNE_C(0x011AA2)},
+ {RUNE_C(0x011C41), RUNE_C(0x011C43)},
+ {RUNE_C(0x011C71), RUNE_C(0x011C71)},
+ {RUNE_C(0x011EF7), RUNE_C(0x011EF8)},
+ {RUNE_C(0x011F43), RUNE_C(0x011F44)},
+ {RUNE_C(0x012470), RUNE_C(0x012474)},
+ {RUNE_C(0x016A6E), RUNE_C(0x016A6F)},
+ {RUNE_C(0x016AF5), RUNE_C(0x016AF5)},
+ {RUNE_C(0x016B37), RUNE_C(0x016B39)},
+ {RUNE_C(0x016B44), RUNE_C(0x016B44)},
+ {RUNE_C(0x016E97), RUNE_C(0x016E98)},
+ {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)},
+ {RUNE_C(0x01DA87), RUNE_C(0x01DA8A)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_term(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}