diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-04-05 14:26:33 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-04-05 14:26:33 +0200 |
commit | 450fd004b8f8358dc46e1bcc1bceae821f7ae158 (patch) | |
tree | c3e59514c6f6a9d5d94419f025748ce7c51a9e29 /lib/unicode/prop/uprop_is_math.c | |
parent | 0abf844cd9c22623e22f462c91f380f16524c7e8 (diff) |
Add boolean properties to unicode/prop.h
Diffstat (limited to 'lib/unicode/prop/uprop_is_math.c')
-rw-r--r-- | lib/unicode/prop/uprop_is_math.c | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/lib/unicode/prop/uprop_is_math.c b/lib/unicode/prop/uprop_is_math.c new file mode 100644 index 0000000..d53d487 --- /dev/null +++ b/lib/unicode/prop/uprop_is_math.c @@ -0,0 +1,157 @@ +/* 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, 0x00, 0x08, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x0003D0), RUNE_C(0x0003D2)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D5)}, + {RUNE_C(0x0003F0), RUNE_C(0x0003F1)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F6)}, + {RUNE_C(0x000606), RUNE_C(0x000608)}, + {RUNE_C(0x002016), RUNE_C(0x002016)}, + {RUNE_C(0x002032), RUNE_C(0x002034)}, + {RUNE_C(0x002040), RUNE_C(0x002040)}, + {RUNE_C(0x002044), RUNE_C(0x002044)}, + {RUNE_C(0x002052), RUNE_C(0x002052)}, + {RUNE_C(0x002061), RUNE_C(0x002064)}, + {RUNE_C(0x00207A), RUNE_C(0x00207E)}, + {RUNE_C(0x00208A), RUNE_C(0x00208E)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC)}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1)}, + {RUNE_C(0x0020E5), RUNE_C(0x0020E6)}, + {RUNE_C(0x0020EB), RUNE_C(0x0020EF)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002128), RUNE_C(0x002129)}, + {RUNE_C(0x00212C), RUNE_C(0x00212D)}, + {RUNE_C(0x00212F), RUNE_C(0x002131)}, + {RUNE_C(0x002133), RUNE_C(0x002138)}, + {RUNE_C(0x00213C), RUNE_C(0x002149)}, + {RUNE_C(0x00214B), RUNE_C(0x00214B)}, + {RUNE_C(0x002190), RUNE_C(0x0021A7)}, + {RUNE_C(0x0021A9), RUNE_C(0x0021AE)}, + {RUNE_C(0x0021B0), RUNE_C(0x0021B1)}, + {RUNE_C(0x0021B6), RUNE_C(0x0021B7)}, + {RUNE_C(0x0021BC), RUNE_C(0x0021DB)}, + {RUNE_C(0x0021DD), RUNE_C(0x0021DD)}, + {RUNE_C(0x0021E4), RUNE_C(0x0021E5)}, + {RUNE_C(0x0021F4), RUNE_C(0x0022FF)}, + {RUNE_C(0x002308), RUNE_C(0x00230B)}, + {RUNE_C(0x002320), RUNE_C(0x002321)}, + {RUNE_C(0x00237C), RUNE_C(0x00237C)}, + {RUNE_C(0x00239B), RUNE_C(0x0023B5)}, + {RUNE_C(0x0023B7), RUNE_C(0x0023B7)}, + {RUNE_C(0x0023D0), RUNE_C(0x0023D0)}, + {RUNE_C(0x0023DC), RUNE_C(0x0023E2)}, + {RUNE_C(0x0025A0), RUNE_C(0x0025A1)}, + {RUNE_C(0x0025AE), RUNE_C(0x0025B7)}, + {RUNE_C(0x0025BC), RUNE_C(0x0025C1)}, + {RUNE_C(0x0025C6), RUNE_C(0x0025C7)}, + {RUNE_C(0x0025CA), RUNE_C(0x0025CB)}, + {RUNE_C(0x0025CF), RUNE_C(0x0025D3)}, + {RUNE_C(0x0025E2), RUNE_C(0x0025E2)}, + {RUNE_C(0x0025E4), RUNE_C(0x0025E4)}, + {RUNE_C(0x0025E7), RUNE_C(0x0025EC)}, + {RUNE_C(0x0025F8), RUNE_C(0x0025FF)}, + {RUNE_C(0x002605), RUNE_C(0x002606)}, + {RUNE_C(0x002640), RUNE_C(0x002640)}, + {RUNE_C(0x002642), RUNE_C(0x002642)}, + {RUNE_C(0x002660), RUNE_C(0x002663)}, + {RUNE_C(0x00266D), RUNE_C(0x00266F)}, + {RUNE_C(0x0027C0), RUNE_C(0x0027FF)}, + {RUNE_C(0x002900), RUNE_C(0x002AFF)}, + {RUNE_C(0x002B30), RUNE_C(0x002B44)}, + {RUNE_C(0x002B47), RUNE_C(0x002B4C)}, + {RUNE_C(0x00FB29), RUNE_C(0x00FB29)}, + {RUNE_C(0x00FE61), RUNE_C(0x00FE66)}, + {RUNE_C(0x00FE68), RUNE_C(0x00FE68)}, + {RUNE_C(0x00FF0B), RUNE_C(0x00FF0B)}, + {RUNE_C(0x00FF1C), RUNE_C(0x00FF1E)}, + {RUNE_C(0x00FF3C), RUNE_C(0x00FF3C)}, + {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)}, + {RUNE_C(0x00FF5C), RUNE_C(0x00FF5C)}, + {RUNE_C(0x00FF5E), RUNE_C(0x00FF5E)}, + {RUNE_C(0x00FFE2), RUNE_C(0x00FFE2)}, + {RUNE_C(0x00FFE9), RUNE_C(0x00FFEC)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01EEF0), RUNE_C(0x01EEF1)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_math(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} |