diff options
59 files changed, 12176 insertions, 169 deletions
diff --git a/vendor/librune/gen/gbrk b/vendor/librune/gen/gbrk index 72ee2f7..1146327 100755 --- a/vendor/librune/gen/gbrk +++ b/vendor/librune/gen/gbrk @@ -26,8 +26,6 @@ wait cat <<C /* This file is autogenerated by gen/gbrk; DO NOT EDIT. */ -/* TODO: Change tables to constexpr from const when Clangd gets better */ - #ifndef RUNE_INTERNAL_GBRK_LOOKUP_H #define RUNE_INTERNAL_GBRK_LOOKUP_H diff --git a/vendor/librune/gen/rtype b/vendor/librune/gen/rtype-cat index 21916d3..e35fb77 100755 --- a/vendor/librune/gen/rtype +++ b/vendor/librune/gen/rtype-cat @@ -12,26 +12,24 @@ cache() set -e cd "${0%/*}/.." -exec >include/internal/rtype_lookup.h +exec >include/internal/rtype/cat.h readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt' cache "$URL" cat <<C -/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */ +/* This file is autogenerated by gen/rtype-cat; DO NOT EDIT. */ -/* TODO: Change tables to constexpr from const when Clangd gets better */ - -#ifndef RUNE_INTERNAL_RTYPE_LOOKUP_H -#define RUNE_INTERNAL_RTYPE_LOOKUP_H +#ifndef RUNE_INTERNAL_RTYPE_CAT_H +#define RUNE_INTERNAL_RTYPE_CAT_H /* IWYU pragma: private */ /* clang-format off */ -#include "types.h" -#include "../rtype.h" +#include "../types.h" +#include "../../rtype.h" -static const unicat rtype_lat1_tbl[] = { +static const enum unicat rtype_cat_lat1_tbl[] = { C gawk ' @@ -64,7 +62,7 @@ cat <<C static const struct { rune lo, hi; - unicat cat; + enum unicat val; } rtype_cat_tbl[] = { C @@ -88,7 +86,7 @@ BEGIN { } END { - for (i = 0; i <= 0x10FFFF; i++) { + for (i = 0x100; i <= 0x10FFFF; i++) { if (!props[i]) continue lo = i @@ -102,5 +100,5 @@ END { cat <<C }; -#endif /* !RUNE_INTERNAL_RTYPE_LOOKUP_H */ +#endif /* !RUNE_INTERNAL_RTYPE_CAT_H */ C diff --git a/vendor/librune/gen/rtype-prop b/vendor/librune/gen/rtype-prop new file mode 100755 index 0000000..4c62884 --- /dev/null +++ b/vendor/librune/gen/rtype-prop @@ -0,0 +1,116 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +cd "${0%/*}/.." + +readonly URL1='https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt' +readonly URL2='https://www.unicode.org/Public/UCD/latest/ucd/DerivedCoreProperties.txt' + +cache "$URL1" & +cache "$URL2" & +wait + +props1=' +ASCII_Hex_Digit +Bidi_Control +Dash +Deprecated +Diacritic +Extender +Hex_Digit +ID_Compat_Math_Continue +ID_Compat_Math_Start +Ideographic +IDS_Binary_Operator +IDS_Trinary_Operator +IDS_Unary_Operator +Join_Control +Logical_Order_Exception +Noncharacter_Code_Point +Pattern_Syntax +Pattern_White_Space +Prepended_Concatenation_Mark +Quotation_Mark +Radical +Regional_Indicator +Sentence_Terminal +Soft_Dotted +Terminal_Punctuation +Unified_Ideograph +Variation_Selector +White_Space +' + +props2=' +Alphabetic +Cased +Case_Ignorable +Changes_When_Casefolded +Changes_When_Casemapped +Changes_When_Lowercased +Changes_When_Titlecased +Changes_When_Uppercased +Default_Ignorable_Code_Point +Grapheme_Base +Grapheme_Extend +ID_Continue +ID_Start +Indic_Conjunct_Break +Lowercase +Math +Uppercase +XID_Continue +XID_Start +' +# InCB + +{ + for prop in $props1 + do + lprop=$(echo $prop | tr A-Z a-z) + + printf 'rune_has_prop_%s…' $lprop >&2 + + gawk -M -v prop=$prop -f gen/rtype-prop.awk \ + /tmp/librune/rtype/PropList.txt \ + >lib/rtype/rune_has_prop_$lprop.c + + echo "[[unsequenced]] bool rune_has_prop_$lprop(rune);" + echo ' DONE' >&2 + done + + for prop in $props2 + do + lprop=$(echo $prop | tr A-Z a-z) + + printf 'rune_has_prop_%s…' $lprop >&2 + + gawk -M -v prop=$prop -f gen/rtype-prop.awk \ + /tmp/librune/rtype/DerivedCoreProperties.txt \ + >lib/rtype/rune_has_prop_$lprop.c + + echo "[[unsequenced]] bool rune_has_prop_$lprop(rune);" + echo ' DONE' >&2 + done +} | gawk ' + /PROP PREDICATES END/ { no = 0 } + FILENAME != "-" && !no { print } + FILENAME == "-" { funcs[++i] = $0 } + + /PROP PREDICATES START/ { + no = 1 + asort(funcs) + for (i = 1; i <= length(funcs); i++) + print funcs[i] + } +' - include/rtype.h \ +| sponge include/rtype.h diff --git a/vendor/librune/gen/rtype-prop.awk b/vendor/librune/gen/rtype-prop.awk new file mode 100644 index 0000000..59b4a99 --- /dev/null +++ b/vendor/librune/gen/rtype-prop.awk @@ -0,0 +1,61 @@ +BEGIN { + FS = "( *#.*| +; +)" + + print "/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */" + print "" + print "#include \"rtype.h\"" + print "" + print "#include \"internal/common.h\"" + print "" +} + +$2 == prop || (prop == "Indic_Conjunct_Break" && $2 ~ /InCB;/) { + n = split($1, a, /\.\./) + lo = strtonum("0x" a[1]) + hi = strtonum("0x" a[n]) + + for (i = lo; i <= hi; i++) + xs[i] = 1 +} + +END { + for (i = 0; i <= 0xFF; i++) { + if (xs[i]) + mask = or(mask, lshift(1, i)) + } + print "#if BIT_LOOKUP" + printf "static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x%Xuwb;\n", \ + mask + print "#endif" + print "" + print "static const struct {" + print "\trune lo, hi;" + print "} lookup_tbl[] = {" + + for (i = 0; i <= 0x10FFFF; i++) { + if (!xs[i]) + continue + lo = i + while (xs[i + 1]) + i++ + printf "\t{0x%06X, 0x%06X},\n", lo, i + } + + print "};" + print "" + print "#define TYPE bool" + print "#define TABLE lookup_tbl" + print "#define DEFAULT false" + print "#define HAS_VALUE 0" + print "#include \"internal/rtype/lookup-func.h\"" + print "" + print "bool" + printf "rune_has_prop_%s(rune ch)\n", tolower(prop) + print "{" + print "\treturn" + print "#if BIT_LOOKUP" + print "\t\tch <= LATIN1_MAX ? (mask & ch) :" + print "#endif" + print "\t\tlookup(ch);" + print "}" +} diff --git a/vendor/librune/include/internal/common.h b/vendor/librune/include/internal/common.h index ace9e63..a05f33c 100644 --- a/vendor/librune/include/internal/common.h +++ b/vendor/librune/include/internal/common.h @@ -3,6 +3,8 @@ /* IWYU pragma: private */ +#include <limits.h> + #define lengthof(a) (sizeof(a) / sizeof(*(a))) #define U1(x) (((x)&0x80) == 0x00) @@ -20,4 +22,8 @@ #define LATIN1_MAX 0xFF +#if BITINT_MAXWIDTH >= LATIN1_MAX + 1 +# define BIT_LOOKUP 1 +#endif + #endif /* !RUNE_INTERNAL_COMMON_H */ diff --git a/vendor/librune/include/internal/rtype_lookup.h b/vendor/librune/include/internal/rtype/cat.h index b4b41fd..d84082a 100644 --- a/vendor/librune/include/internal/rtype_lookup.h +++ b/vendor/librune/include/internal/rtype/cat.h @@ -1,17 +1,15 @@ -/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */ +/* This file is autogenerated by gen/rtype-cat; DO NOT EDIT. */ -/* TODO: Change tables to constexpr from const when Clangd gets better */ - -#ifndef RUNE_INTERNAL_RTYPE_LOOKUP_H -#define RUNE_INTERNAL_RTYPE_LOOKUP_H +#ifndef RUNE_INTERNAL_RTYPE_CAT_H +#define RUNE_INTERNAL_RTYPE_CAT_H /* IWYU pragma: private */ /* clang-format off */ -#include "types.h" -#include "../rtype.h" +#include "../types.h" +#include "../../rtype.h" -static const unicat rtype_lat1_tbl[] = { +static const enum unicat rtype_cat_lat1_tbl[] = { UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, @@ -48,68 +46,8 @@ static const unicat rtype_lat1_tbl[] = { static const struct { rune lo, hi; - unicat cat; + enum unicat val; } rtype_cat_tbl[] = { - {0x000000, 0x00001F, UC_CC}, - {0x000020, 0x000020, UC_ZS}, - {0x000021, 0x000023, UC_PO}, - {0x000024, 0x000024, UC_SC}, - {0x000025, 0x000027, UC_PO}, - {0x000028, 0x000028, UC_PS}, - {0x000029, 0x000029, UC_PE}, - {0x00002A, 0x00002A, UC_PO}, - {0x00002B, 0x00002B, UC_SM}, - {0x00002C, 0x00002C, UC_PO}, - {0x00002D, 0x00002D, UC_PD}, - {0x00002E, 0x00002F, UC_PO}, - {0x000030, 0x000039, UC_ND}, - {0x00003A, 0x00003B, UC_PO}, - {0x00003C, 0x00003E, UC_SM}, - {0x00003F, 0x000040, UC_PO}, - {0x000041, 0x00005A, UC_LU}, - {0x00005B, 0x00005B, UC_PS}, - {0x00005C, 0x00005C, UC_PO}, - {0x00005D, 0x00005D, UC_PE}, - {0x00005E, 0x00005E, UC_SK}, - {0x00005F, 0x00005F, UC_PC}, - {0x000060, 0x000060, UC_SK}, - {0x000061, 0x00007A, UC_LL}, - {0x00007B, 0x00007B, UC_PS}, - {0x00007C, 0x00007C, UC_SM}, - {0x00007D, 0x00007D, UC_PE}, - {0x00007E, 0x00007E, UC_SM}, - {0x00007F, 0x00009F, UC_CC}, - {0x0000A0, 0x0000A0, UC_ZS}, - {0x0000A1, 0x0000A1, UC_PO}, - {0x0000A2, 0x0000A5, UC_SC}, - {0x0000A6, 0x0000A6, UC_SO}, - {0x0000A7, 0x0000A7, UC_PO}, - {0x0000A8, 0x0000A8, UC_SK}, - {0x0000A9, 0x0000A9, UC_SO}, - {0x0000AA, 0x0000AA, UC_LO}, - {0x0000AB, 0x0000AB, UC_PI}, - {0x0000AC, 0x0000AC, UC_SM}, - {0x0000AD, 0x0000AD, UC_CF}, - {0x0000AE, 0x0000AE, UC_SO}, - {0x0000AF, 0x0000AF, UC_SK}, - {0x0000B0, 0x0000B0, UC_SO}, - {0x0000B1, 0x0000B1, UC_SM}, - {0x0000B2, 0x0000B3, UC_NO}, - {0x0000B4, 0x0000B4, UC_SK}, - {0x0000B5, 0x0000B5, UC_LL}, - {0x0000B6, 0x0000B7, UC_PO}, - {0x0000B8, 0x0000B8, UC_SK}, - {0x0000B9, 0x0000B9, UC_NO}, - {0x0000BA, 0x0000BA, UC_LO}, - {0x0000BB, 0x0000BB, UC_PF}, - {0x0000BC, 0x0000BE, UC_NO}, - {0x0000BF, 0x0000BF, UC_PO}, - {0x0000C0, 0x0000D6, UC_LU}, - {0x0000D7, 0x0000D7, UC_SM}, - {0x0000D8, 0x0000DE, UC_LU}, - {0x0000DF, 0x0000F6, UC_LL}, - {0x0000F7, 0x0000F7, UC_SM}, - {0x0000F8, 0x0000FF, UC_LL}, {0x000100, 0x000100, UC_LU}, {0x000101, 0x000101, UC_LL}, {0x000102, 0x000102, UC_LU}, @@ -3354,4 +3292,4 @@ static const struct { {0x100000, 0x10FFFD, UC_CO}, }; -#endif /* !RUNE_INTERNAL_RTYPE_LOOKUP_H */ +#endif /* !RUNE_INTERNAL_RTYPE_CAT_H */ diff --git a/vendor/librune/include/internal/rtype/lookup-func.h b/vendor/librune/include/internal/rtype/lookup-func.h new file mode 100644 index 0000000..91bda8b --- /dev/null +++ b/vendor/librune/include/internal/rtype/lookup-func.h @@ -0,0 +1,47 @@ +#include <stddef.h> + +#include "internal/common.h" + +#ifndef TYPE +# error "TYPE if not defined" +#endif +#ifndef DEFAULT +# error "DEFAULT is not defined" +#endif +#ifndef TABLE +# error "TABLE is not defined" +#endif +#ifndef HAS_VALUE +# error "HAS_VALUE is not defined" +#endif + +[[gnu::always_inline]] static TYPE +lookup(rune ch) +{ + ptrdiff_t lo, hi; + +#ifdef LATIN1_TABLE + if (ch <= LATIN1_MAX) + return LATIN1_TABLE[ch]; +#endif + + lo = 0; + hi = lengthof(TABLE) - 1; + + while (lo <= hi) { + ptrdiff_t i = (lo + hi) / 2; + + if (ch < TABLE[i].lo) + hi = i - 1; + else if (ch > TABLE[i].hi) + lo = i + 1; + else +#if HAS_VALUE + return TABLE[i].val; +#else + return true; +#endif + } + + return DEFAULT; +} diff --git a/vendor/librune/include/rtype.h b/vendor/librune/include/rtype.h index 6c3e8e3..72f054c 100644 --- a/vendor/librune/include/rtype.h +++ b/vendor/librune/include/rtype.h @@ -5,50 +5,52 @@ #include "internal/types.h" -typedef enum [[clang::flag_enum]] : uint_fast32_t { - UC_CN = 0, /* Not Assigned */ - UC_CC = 1 << 0, /* Control */ - UC_CF = 1 << 1, /* Format */ - UC_CO = 1 << 2, /* Private Use */ - UC_CS = 1 << 3, /* Surrogate */ - UC_LL = 1 << 4, /* Lowercase Letter */ - UC_LM = 1 << 5, /* Modifier Letter */ - UC_LO = 1 << 6, /* Other Letter */ - UC_LT = 1 << 7, /* Titlecase Letter */ - UC_LU = 1 << 8, /* Uppercase Letter */ - UC_MC = 1 << 9, /* Spacing Mark */ - UC_ME = 1 << 10, /* Enclosing Mark */ - UC_MN = 1 << 11, /* Nonspacing Mark */ - UC_ND = 1 << 12, /* Decimal Number */ - UC_NL = 1 << 13, /* Letter Number */ - UC_NO = 1 << 14, /* Other Number */ - UC_PC = 1 << 15, /* Connector Punctuation */ - UC_PD = 1 << 16, /* Dash Punctuation */ - UC_PE = 1 << 17, /* Close Punctuation */ - UC_PF = 1 << 18, /* Final Punctuation */ - UC_PI = 1 << 19, /* Initial Punctuation */ - UC_PO = 1 << 20, /* Other Punctuation */ - UC_PS = 1 << 21, /* Open Punctuation */ - UC_SC = 1 << 22, /* Currency Symbol */ - UC_SK = 1 << 23, /* Modifier Symbol */ - UC_SM = 1 << 24, /* Math Symbol */ - UC_SO = 1 << 25, /* Other Symbol */ - UC_ZL = 1 << 26, /* Line Separator */ - UC_ZP = 1 << 27, /* Paragraph Separator */ - UC_ZS = 1 << 28, /* Space Separator */ +/* clang-format off */ +enum [[clang::flag_enum]] unicat : uint_fast32_t { + UC_CN = 0, /* Not Assigned */ + UC_CC = UINT32_C(1) << 0, /* Control */ + UC_CF = UINT32_C(1) << 1, /* Format */ + UC_CO = UINT32_C(1) << 2, /* Private Use */ + UC_CS = UINT32_C(1) << 3, /* Surrogate */ + UC_LL = UINT32_C(1) << 4, /* Lowercase Letter */ + UC_LM = UINT32_C(1) << 5, /* Modifier Letter */ + UC_LO = UINT32_C(1) << 6, /* Other Letter */ + UC_LT = UINT32_C(1) << 7, /* Titlecase Letter */ + UC_LU = UINT32_C(1) << 8, /* Uppercase Letter */ + UC_MC = UINT32_C(1) << 9, /* Spacing Mark */ + UC_ME = UINT32_C(1) << 10, /* Enclosing Mark */ + UC_MN = UINT32_C(1) << 11, /* Nonspacing Mark */ + UC_ND = UINT32_C(1) << 12, /* Decimal Number */ + UC_NL = UINT32_C(1) << 13, /* Letter Number */ + UC_NO = UINT32_C(1) << 14, /* Other Number */ + UC_PC = UINT32_C(1) << 15, /* Connector Punctuation */ + UC_PD = UINT32_C(1) << 16, /* Dash Punctuation */ + UC_PE = UINT32_C(1) << 17, /* Close Punctuation */ + UC_PF = UINT32_C(1) << 18, /* Final Punctuation */ + UC_PI = UINT32_C(1) << 19, /* Initial Punctuation */ + UC_PO = UINT32_C(1) << 20, /* Other Punctuation */ + UC_PS = UINT32_C(1) << 21, /* Open Punctuation */ + UC_SC = UINT32_C(1) << 22, /* Currency Symbol */ + UC_SK = UINT32_C(1) << 23, /* Modifier Symbol */ + UC_SM = UINT32_C(1) << 24, /* Math Symbol */ + UC_SO = UINT32_C(1) << 25, /* Other Symbol */ + UC_ZL = UINT32_C(1) << 26, /* Line Separator */ + UC_ZP = UINT32_C(1) << 27, /* Paragraph Separator */ + UC_ZS = UINT32_C(1) << 28, /* Space Separator */ - UC_C = UC_CC | UC_CF | UC_CN | UC_CO | UC_CS, /* Other */ - UC_L = UC_LL | UC_LM | UC_LO | UC_LT | UC_LU, /* Letter */ - UC_M = UC_MC | UC_ME | UC_MN, /* Mark */ - UC_N = UC_ND | UC_NL | UC_NO, /* Number */ - UC_S = UC_SC | UC_SK | UC_SM | UC_SO, /* Symbol */ - UC_Z = UC_ZL | UC_ZP | UC_ZS, /* Separator */ - UC_P = UC_PC | UC_PD | UC_PE | UC_PF | UC_PI /* Punctuation */ - | UC_PO | UC_PS, -} unicat; - -[[unsequenced]] bool runeis(rune, unicat); + UC_C = UC_CC | UC_CF | UC_CN | UC_CO | UC_CS, /* Other */ + UC_L = UC_LL | UC_LM | UC_LO | UC_LT | UC_LU, /* Letter */ + UC_LC = UC_LU | UC_LL | UC_LT, /* Cased Letter */ + UC_M = UC_MC | UC_ME | UC_MN, /* Mark */ + UC_N = UC_ND | UC_NL | UC_NO, /* Number */ + UC_P = UC_PC | UC_PD | UC_PE | UC_PF | UC_PI /* Punctuation */ + | UC_PO | UC_PS, + UC_S = UC_SC | UC_SK | UC_SM | UC_SO, /* Symbol */ + UC_Z = UC_ZL | UC_ZP | UC_ZS, /* Separator */ +}; +/* clang-format on */ +[[unsequenced]] bool runeis(rune, enum unicat); [[unsequenced]] bool riscntrl(rune); [[unsequenced]] bool risdigit(rune); [[unsequenced]] bool risgraph(rune); @@ -61,4 +63,54 @@ typedef enum [[clang::flag_enum]] : uint_fast32_t { [[unsequenced]] bool ristitle(rune); [[unsequenced]] bool risupper(rune); -#endif /* !RUNE_RTYPE_H */ +/* PROP PREDICATES START */ +[[unsequenced]] bool rune_has_prop_alphabetic(rune); +[[unsequenced]] bool rune_has_prop_ascii_hex_digit(rune); +[[unsequenced]] bool rune_has_prop_bidi_control(rune); +[[unsequenced]] bool rune_has_prop_case_ignorable(rune); +[[unsequenced]] bool rune_has_prop_cased(rune); +[[unsequenced]] bool rune_has_prop_changes_when_casefolded(rune); +[[unsequenced]] bool rune_has_prop_changes_when_casemapped(rune); +[[unsequenced]] bool rune_has_prop_changes_when_lowercased(rune); +[[unsequenced]] bool rune_has_prop_changes_when_titlecased(rune); +[[unsequenced]] bool rune_has_prop_changes_when_uppercased(rune); +[[unsequenced]] bool rune_has_prop_dash(rune); +[[unsequenced]] bool rune_has_prop_default_ignorable_code_point(rune); +[[unsequenced]] bool rune_has_prop_deprecated(rune); +[[unsequenced]] bool rune_has_prop_diacritic(rune); +[[unsequenced]] bool rune_has_prop_extender(rune); +[[unsequenced]] bool rune_has_prop_grapheme_base(rune); +[[unsequenced]] bool rune_has_prop_grapheme_extend(rune); +[[unsequenced]] bool rune_has_prop_hex_digit(rune); +[[unsequenced]] bool rune_has_prop_id_compat_math_continue(rune); +[[unsequenced]] bool rune_has_prop_id_compat_math_start(rune); +[[unsequenced]] bool rune_has_prop_id_continue(rune); +[[unsequenced]] bool rune_has_prop_id_start(rune); +[[unsequenced]] bool rune_has_prop_ideographic(rune); +[[unsequenced]] bool rune_has_prop_ids_binary_operator(rune); +[[unsequenced]] bool rune_has_prop_ids_trinary_operator(rune); +[[unsequenced]] bool rune_has_prop_ids_unary_operator(rune); +[[unsequenced]] bool rune_has_prop_indic_conjunct_break(rune); +[[unsequenced]] bool rune_has_prop_join_control(rune); +[[unsequenced]] bool rune_has_prop_logical_order_exception(rune); +[[unsequenced]] bool rune_has_prop_lowercase(rune); +[[unsequenced]] bool rune_has_prop_math(rune); +[[unsequenced]] bool rune_has_prop_noncharacter_code_point(rune); +[[unsequenced]] bool rune_has_prop_pattern_syntax(rune); +[[unsequenced]] bool rune_has_prop_pattern_white_space(rune); +[[unsequenced]] bool rune_has_prop_prepended_concatenation_mark(rune); +[[unsequenced]] bool rune_has_prop_quotation_mark(rune); +[[unsequenced]] bool rune_has_prop_radical(rune); +[[unsequenced]] bool rune_has_prop_regional_indicator(rune); +[[unsequenced]] bool rune_has_prop_sentence_terminal(rune); +[[unsequenced]] bool rune_has_prop_soft_dotted(rune); +[[unsequenced]] bool rune_has_prop_terminal_punctuation(rune); +[[unsequenced]] bool rune_has_prop_unified_ideograph(rune); +[[unsequenced]] bool rune_has_prop_uppercase(rune); +[[unsequenced]] bool rune_has_prop_variation_selector(rune); +[[unsequenced]] bool rune_has_prop_white_space(rune); +[[unsequenced]] bool rune_has_prop_xid_continue(rune); +[[unsequenced]] bool rune_has_prop_xid_start(rune); +/* PROP PREDICATES END */ + +#endif diff --git a/vendor/librune/lib/rtype/risspace.c b/vendor/librune/lib/rtype/risspace.c index 992c13b..7cc5689 100644 --- a/vendor/librune/lib/rtype/risspace.c +++ b/vendor/librune/lib/rtype/risspace.c @@ -2,8 +2,7 @@ #include "internal/common.h" -/* TODO: Make constexpr */ -static const bool latin1_space_tbl[LATIN1_MAX + 1] = { +static constexpr bool latin1_space_tbl[LATIN1_MAX + 1] = { ['\t'] = true, ['\n'] = true, ['\v'] = true, ['\f'] = true, ['\r'] = true, [' '] = true, [0x85] = true, [0xA0] = true, }; diff --git a/vendor/librune/lib/rtype/rune_has_prop_alphabetic.c b/vendor/librune/lib/rtype/rune_has_prop_alphabetic.c new file mode 100644 index 0000000..4469505 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_alphabetic.c @@ -0,0 +1,763 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000041, 0x00005A}, + {0x000061, 0x00007A}, + {0x0000AA, 0x0000AA}, + {0x0000B5, 0x0000B5}, + {0x0000BA, 0x0000BA}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000F6}, + {0x0000F8, 0x0002C1}, + {0x0002C6, 0x0002D1}, + {0x0002E0, 0x0002E4}, + {0x0002EC, 0x0002EC}, + {0x0002EE, 0x0002EE}, + {0x000345, 0x000345}, + {0x000370, 0x000374}, + {0x000376, 0x000377}, + {0x00037A, 0x00037D}, + {0x00037F, 0x00037F}, + {0x000386, 0x000386}, + {0x000388, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x0003A1}, + {0x0003A3, 0x0003F5}, + {0x0003F7, 0x000481}, + {0x00048A, 0x00052F}, + {0x000531, 0x000556}, + {0x000559, 0x000559}, + {0x000560, 0x000588}, + {0x0005B0, 0x0005BD}, + {0x0005BF, 0x0005BF}, + {0x0005C1, 0x0005C2}, + {0x0005C4, 0x0005C5}, + {0x0005C7, 0x0005C7}, + {0x0005D0, 0x0005EA}, + {0x0005EF, 0x0005F2}, + {0x000610, 0x00061A}, + {0x000620, 0x000657}, + {0x000659, 0x00065F}, + {0x00066E, 0x0006D3}, + {0x0006D5, 0x0006DC}, + {0x0006E1, 0x0006E8}, + {0x0006ED, 0x0006EF}, + {0x0006FA, 0x0006FC}, + {0x0006FF, 0x0006FF}, + {0x000710, 0x00073F}, + {0x00074D, 0x0007B1}, + {0x0007CA, 0x0007EA}, + {0x0007F4, 0x0007F5}, + {0x0007FA, 0x0007FA}, + {0x000800, 0x000817}, + {0x00081A, 0x00082C}, + {0x000840, 0x000858}, + {0x000860, 0x00086A}, + {0x000870, 0x000887}, + {0x000889, 0x00088E}, + {0x0008A0, 0x0008C9}, + {0x0008D4, 0x0008DF}, + {0x0008E3, 0x0008E9}, + {0x0008F0, 0x00093B}, + {0x00093D, 0x00094C}, + {0x00094E, 0x000950}, + {0x000955, 0x000963}, + {0x000971, 0x000983}, + {0x000985, 0x00098C}, + {0x00098F, 0x000990}, + {0x000993, 0x0009A8}, + {0x0009AA, 0x0009B0}, + {0x0009B2, 0x0009B2}, + {0x0009B6, 0x0009B9}, + {0x0009BD, 0x0009C4}, + {0x0009C7, 0x0009C8}, + {0x0009CB, 0x0009CC}, + {0x0009CE, 0x0009CE}, + {0x0009D7, 0x0009D7}, + {0x0009DC, 0x0009DD}, + {0x0009DF, 0x0009E3}, + {0x0009F0, 0x0009F1}, + {0x0009FC, 0x0009FC}, + {0x000A01, 0x000A03}, + {0x000A05, 0x000A0A}, + {0x000A0F, 0x000A10}, + {0x000A13, 0x000A28}, + {0x000A2A, 0x000A30}, + {0x000A32, 0x000A33}, + {0x000A35, 0x000A36}, + {0x000A38, 0x000A39}, + {0x000A3E, 0x000A42}, + {0x000A47, 0x000A48}, + {0x000A4B, 0x000A4C}, + {0x000A51, 0x000A51}, + {0x000A59, 0x000A5C}, + {0x000A5E, 0x000A5E}, + {0x000A70, 0x000A75}, + {0x000A81, 0x000A83}, + {0x000A85, 0x000A8D}, + {0x000A8F, 0x000A91}, + {0x000A93, 0x000AA8}, + {0x000AAA, 0x000AB0}, + {0x000AB2, 0x000AB3}, + {0x000AB5, 0x000AB9}, + {0x000ABD, 0x000AC5}, + {0x000AC7, 0x000AC9}, + {0x000ACB, 0x000ACC}, + {0x000AD0, 0x000AD0}, + {0x000AE0, 0x000AE3}, + {0x000AF9, 0x000AFC}, + {0x000B01, 0x000B03}, + {0x000B05, 0x000B0C}, + {0x000B0F, 0x000B10}, + {0x000B13, 0x000B28}, + {0x000B2A, 0x000B30}, + {0x000B32, 0x000B33}, + {0x000B35, 0x000B39}, + {0x000B3D, 0x000B44}, + {0x000B47, 0x000B48}, + {0x000B4B, 0x000B4C}, + {0x000B56, 0x000B57}, + {0x000B5C, 0x000B5D}, + {0x000B5F, 0x000B63}, + {0x000B71, 0x000B71}, + {0x000B82, 0x000B83}, + {0x000B85, 0x000B8A}, + {0x000B8E, 0x000B90}, + {0x000B92, 0x000B95}, + {0x000B99, 0x000B9A}, + {0x000B9C, 0x000B9C}, + {0x000B9E, 0x000B9F}, + {0x000BA3, 0x000BA4}, + {0x000BA8, 0x000BAA}, + {0x000BAE, 0x000BB9}, + {0x000BBE, 0x000BC2}, + {0x000BC6, 0x000BC8}, + {0x000BCA, 0x000BCC}, + {0x000BD0, 0x000BD0}, + {0x000BD7, 0x000BD7}, + {0x000C00, 0x000C0C}, + {0x000C0E, 0x000C10}, + {0x000C12, 0x000C28}, + {0x000C2A, 0x000C39}, + {0x000C3D, 0x000C44}, + {0x000C46, 0x000C48}, + {0x000C4A, 0x000C4C}, + {0x000C55, 0x000C56}, + {0x000C58, 0x000C5A}, + {0x000C5D, 0x000C5D}, + {0x000C60, 0x000C63}, + {0x000C80, 0x000C83}, + {0x000C85, 0x000C8C}, + {0x000C8E, 0x000C90}, + {0x000C92, 0x000CA8}, + {0x000CAA, 0x000CB3}, + {0x000CB5, 0x000CB9}, + {0x000CBD, 0x000CC4}, + {0x000CC6, 0x000CC8}, + {0x000CCA, 0x000CCC}, + {0x000CD5, 0x000CD6}, + {0x000CDD, 0x000CDE}, + {0x000CE0, 0x000CE3}, + {0x000CF1, 0x000CF3}, + {0x000D00, 0x000D0C}, + {0x000D0E, 0x000D10}, + {0x000D12, 0x000D3A}, + {0x000D3D, 0x000D44}, + {0x000D46, 0x000D48}, + {0x000D4A, 0x000D4C}, + {0x000D4E, 0x000D4E}, + {0x000D54, 0x000D57}, + {0x000D5F, 0x000D63}, + {0x000D7A, 0x000D7F}, + {0x000D81, 0x000D83}, + {0x000D85, 0x000D96}, + {0x000D9A, 0x000DB1}, + {0x000DB3, 0x000DBB}, + {0x000DBD, 0x000DBD}, + {0x000DC0, 0x000DC6}, + {0x000DCF, 0x000DD4}, + {0x000DD6, 0x000DD6}, + {0x000DD8, 0x000DDF}, + {0x000DF2, 0x000DF3}, + {0x000E01, 0x000E3A}, + {0x000E40, 0x000E46}, + {0x000E4D, 0x000E4D}, + {0x000E81, 0x000E82}, + {0x000E84, 0x000E84}, + {0x000E86, 0x000E8A}, + {0x000E8C, 0x000EA3}, + {0x000EA5, 0x000EA5}, + {0x000EA7, 0x000EB9}, + {0x000EBB, 0x000EBD}, + {0x000EC0, 0x000EC4}, + {0x000EC6, 0x000EC6}, + {0x000ECD, 0x000ECD}, + {0x000EDC, 0x000EDF}, + {0x000F00, 0x000F00}, + {0x000F40, 0x000F47}, + {0x000F49, 0x000F6C}, + {0x000F71, 0x000F83}, + {0x000F88, 0x000F97}, + {0x000F99, 0x000FBC}, + {0x001000, 0x001036}, + {0x001038, 0x001038}, + {0x00103B, 0x00103F}, + {0x001050, 0x00108F}, + {0x00109A, 0x00109D}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0010D0, 0x0010FA}, + {0x0010FC, 0x001248}, + {0x00124A, 0x00124D}, + {0x001250, 0x001256}, + {0x001258, 0x001258}, + {0x00125A, 0x00125D}, + {0x001260, 0x001288}, + {0x00128A, 0x00128D}, + {0x001290, 0x0012B0}, + {0x0012B2, 0x0012B5}, + {0x0012B8, 0x0012BE}, + {0x0012C0, 0x0012C0}, + {0x0012C2, 0x0012C5}, + {0x0012C8, 0x0012D6}, + {0x0012D8, 0x001310}, + {0x001312, 0x001315}, + {0x001318, 0x00135A}, + {0x001380, 0x00138F}, + {0x0013A0, 0x0013F5}, + {0x0013F8, 0x0013FD}, + {0x001401, 0x00166C}, + {0x00166F, 0x00167F}, + {0x001681, 0x00169A}, + {0x0016A0, 0x0016EA}, + {0x0016EE, 0x0016F8}, + {0x001700, 0x001713}, + {0x00171F, 0x001733}, + {0x001740, 0x001753}, + {0x001760, 0x00176C}, + {0x00176E, 0x001770}, + {0x001772, 0x001773}, + {0x001780, 0x0017B3}, + {0x0017B6, 0x0017C8}, + {0x0017D7, 0x0017D7}, + {0x0017DC, 0x0017DC}, + {0x001820, 0x001878}, + {0x001880, 0x0018AA}, + {0x0018B0, 0x0018F5}, + {0x001900, 0x00191E}, + {0x001920, 0x00192B}, + {0x001930, 0x001938}, + {0x001950, 0x00196D}, + {0x001970, 0x001974}, + {0x001980, 0x0019AB}, + {0x0019B0, 0x0019C9}, + {0x001A00, 0x001A1B}, + {0x001A20, 0x001A5E}, + {0x001A61, 0x001A74}, + {0x001AA7, 0x001AA7}, + {0x001ABF, 0x001AC0}, + {0x001ACC, 0x001ACE}, + {0x001B00, 0x001B33}, + {0x001B35, 0x001B43}, + {0x001B45, 0x001B4C}, + {0x001B80, 0x001BA9}, + {0x001BAC, 0x001BAF}, + {0x001BBA, 0x001BE5}, + {0x001BE7, 0x001BF1}, + {0x001C00, 0x001C36}, + {0x001C4D, 0x001C4F}, + {0x001C5A, 0x001C7D}, + {0x001C80, 0x001C88}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001CE9, 0x001CEC}, + {0x001CEE, 0x001CF3}, + {0x001CF5, 0x001CF6}, + {0x001CFA, 0x001CFA}, + {0x001D00, 0x001DBF}, + {0x001DE7, 0x001DF4}, + {0x001E00, 0x001F15}, + {0x001F18, 0x001F1D}, + {0x001F20, 0x001F45}, + {0x001F48, 0x001F4D}, + {0x001F50, 0x001F57}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F7D}, + {0x001F80, 0x001FB4}, + {0x001FB6, 0x001FBC}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FCC}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FDB}, + {0x001FE0, 0x001FEC}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FFC}, + {0x002071, 0x002071}, + {0x00207F, 0x00207F}, + {0x002090, 0x00209C}, + {0x002102, 0x002102}, + {0x002107, 0x002107}, + {0x00210A, 0x002113}, + {0x002115, 0x002115}, + {0x002119, 0x00211D}, + {0x002124, 0x002124}, + {0x002126, 0x002126}, + {0x002128, 0x002128}, + {0x00212A, 0x00212D}, + {0x00212F, 0x002139}, + {0x00213C, 0x00213F}, + {0x002145, 0x002149}, + {0x00214E, 0x00214E}, + {0x002160, 0x002188}, + {0x0024B6, 0x0024E9}, + {0x002C00, 0x002CE4}, + {0x002CEB, 0x002CEE}, + {0x002CF2, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x002D30, 0x002D67}, + {0x002D6F, 0x002D6F}, + {0x002D80, 0x002D96}, + {0x002DA0, 0x002DA6}, + {0x002DA8, 0x002DAE}, + {0x002DB0, 0x002DB6}, + {0x002DB8, 0x002DBE}, + {0x002DC0, 0x002DC6}, + {0x002DC8, 0x002DCE}, + {0x002DD0, 0x002DD6}, + {0x002DD8, 0x002DDE}, + {0x002DE0, 0x002DFF}, + {0x002E2F, 0x002E2F}, + {0x003005, 0x003007}, + {0x003021, 0x003029}, + {0x003031, 0x003035}, + {0x003038, 0x00303C}, + {0x003041, 0x003096}, + {0x00309D, 0x00309F}, + {0x0030A1, 0x0030FA}, + {0x0030FC, 0x0030FF}, + {0x003105, 0x00312F}, + {0x003131, 0x00318E}, + {0x0031A0, 0x0031BF}, + {0x0031F0, 0x0031FF}, + {0x003400, 0x004DBF}, + {0x004E00, 0x00A48C}, + {0x00A4D0, 0x00A4FD}, + {0x00A500, 0x00A60C}, + {0x00A610, 0x00A61F}, + {0x00A62A, 0x00A62B}, + {0x00A640, 0x00A66E}, + {0x00A674, 0x00A67B}, + {0x00A67F, 0x00A6EF}, + {0x00A717, 0x00A71F}, + {0x00A722, 0x00A788}, + {0x00A78B, 0x00A7CA}, + {0x00A7D0, 0x00A7D1}, + {0x00A7D3, 0x00A7D3}, + {0x00A7D5, 0x00A7D9}, + {0x00A7F2, 0x00A805}, + {0x00A807, 0x00A827}, + {0x00A840, 0x00A873}, + {0x00A880, 0x00A8C3}, + {0x00A8C5, 0x00A8C5}, + {0x00A8F2, 0x00A8F7}, + {0x00A8FB, 0x00A8FB}, + {0x00A8FD, 0x00A8FF}, + {0x00A90A, 0x00A92A}, + {0x00A930, 0x00A952}, + {0x00A960, 0x00A97C}, + {0x00A980, 0x00A9B2}, + {0x00A9B4, 0x00A9BF}, + {0x00A9CF, 0x00A9CF}, + {0x00A9E0, 0x00A9EF}, + {0x00A9FA, 0x00A9FE}, + {0x00AA00, 0x00AA36}, + {0x00AA40, 0x00AA4D}, + {0x00AA60, 0x00AA76}, + {0x00AA7A, 0x00AABE}, + {0x00AAC0, 0x00AAC0}, + {0x00AAC2, 0x00AAC2}, + {0x00AADB, 0x00AADD}, + {0x00AAE0, 0x00AAEF}, + {0x00AAF2, 0x00AAF5}, + {0x00AB01, 0x00AB06}, + {0x00AB09, 0x00AB0E}, + {0x00AB11, 0x00AB16}, + {0x00AB20, 0x00AB26}, + {0x00AB28, 0x00AB2E}, + {0x00AB30, 0x00AB5A}, + {0x00AB5C, 0x00AB69}, + {0x00AB70, 0x00ABEA}, + {0x00AC00, 0x00D7A3}, + {0x00D7B0, 0x00D7C6}, + {0x00D7CB, 0x00D7FB}, + {0x00F900, 0x00FA6D}, + {0x00FA70, 0x00FAD9}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FB1D, 0x00FB28}, + {0x00FB2A, 0x00FB36}, + {0x00FB38, 0x00FB3C}, + {0x00FB3E, 0x00FB3E}, + {0x00FB40, 0x00FB41}, + {0x00FB43, 0x00FB44}, + {0x00FB46, 0x00FBB1}, + {0x00FBD3, 0x00FD3D}, + {0x00FD50, 0x00FD8F}, + {0x00FD92, 0x00FDC7}, + {0x00FDF0, 0x00FDFB}, + {0x00FE70, 0x00FE74}, + {0x00FE76, 0x00FEFC}, + {0x00FF21, 0x00FF3A}, + {0x00FF41, 0x00FF5A}, + {0x00FF66, 0x00FFBE}, + {0x00FFC2, 0x00FFC7}, + {0x00FFCA, 0x00FFCF}, + {0x00FFD2, 0x00FFD7}, + {0x00FFDA, 0x00FFDC}, + {0x010000, 0x01000B}, + {0x01000D, 0x010026}, + {0x010028, 0x01003A}, + {0x01003C, 0x01003D}, + {0x01003F, 0x01004D}, + {0x010050, 0x01005D}, + {0x010080, 0x0100FA}, + {0x010140, 0x010174}, + {0x010280, 0x01029C}, + {0x0102A0, 0x0102D0}, + {0x010300, 0x01031F}, + {0x01032D, 0x01034A}, + {0x010350, 0x01037A}, + {0x010380, 0x01039D}, + {0x0103A0, 0x0103C3}, + {0x0103C8, 0x0103CF}, + {0x0103D1, 0x0103D5}, + {0x010400, 0x01049D}, + {0x0104B0, 0x0104D3}, + {0x0104D8, 0x0104FB}, + {0x010500, 0x010527}, + {0x010530, 0x010563}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010600, 0x010736}, + {0x010740, 0x010755}, + {0x010760, 0x010767}, + {0x010780, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010800, 0x010805}, + {0x010808, 0x010808}, + {0x01080A, 0x010835}, + {0x010837, 0x010838}, + {0x01083C, 0x01083C}, + {0x01083F, 0x010855}, + {0x010860, 0x010876}, + {0x010880, 0x01089E}, + {0x0108E0, 0x0108F2}, + {0x0108F4, 0x0108F5}, + {0x010900, 0x010915}, + {0x010920, 0x010939}, + {0x010980, 0x0109B7}, + {0x0109BE, 0x0109BF}, + {0x010A00, 0x010A03}, + {0x010A05, 0x010A06}, + {0x010A0C, 0x010A13}, + {0x010A15, 0x010A17}, + {0x010A19, 0x010A35}, + {0x010A60, 0x010A7C}, + {0x010A80, 0x010A9C}, + {0x010AC0, 0x010AC7}, + {0x010AC9, 0x010AE4}, + {0x010B00, 0x010B35}, + {0x010B40, 0x010B55}, + {0x010B60, 0x010B72}, + {0x010B80, 0x010B91}, + {0x010C00, 0x010C48}, + {0x010C80, 0x010CB2}, + {0x010CC0, 0x010CF2}, + {0x010D00, 0x010D27}, + {0x010E80, 0x010EA9}, + {0x010EAB, 0x010EAC}, + {0x010EB0, 0x010EB1}, + {0x010F00, 0x010F1C}, + {0x010F27, 0x010F27}, + {0x010F30, 0x010F45}, + {0x010F70, 0x010F81}, + {0x010FB0, 0x010FC4}, + {0x010FE0, 0x010FF6}, + {0x011000, 0x011045}, + {0x011071, 0x011075}, + {0x011080, 0x0110B8}, + {0x0110C2, 0x0110C2}, + {0x0110D0, 0x0110E8}, + {0x011100, 0x011132}, + {0x011144, 0x011147}, + {0x011150, 0x011172}, + {0x011176, 0x011176}, + {0x011180, 0x0111BF}, + {0x0111C1, 0x0111C4}, + {0x0111CE, 0x0111CF}, + {0x0111DA, 0x0111DA}, + {0x0111DC, 0x0111DC}, + {0x011200, 0x011211}, + {0x011213, 0x011234}, + {0x011237, 0x011237}, + {0x01123E, 0x011241}, + {0x011280, 0x011286}, + {0x011288, 0x011288}, + {0x01128A, 0x01128D}, + {0x01128F, 0x01129D}, + {0x01129F, 0x0112A8}, + {0x0112B0, 0x0112E8}, + {0x011300, 0x011303}, + {0x011305, 0x01130C}, + {0x01130F, 0x011310}, + {0x011313, 0x011328}, + {0x01132A, 0x011330}, + {0x011332, 0x011333}, + {0x011335, 0x011339}, + {0x01133D, 0x011344}, + {0x011347, 0x011348}, + {0x01134B, 0x01134C}, + {0x011350, 0x011350}, + {0x011357, 0x011357}, + {0x01135D, 0x011363}, + {0x011400, 0x011441}, + {0x011443, 0x011445}, + {0x011447, 0x01144A}, + {0x01145F, 0x011461}, + {0x011480, 0x0114C1}, + {0x0114C4, 0x0114C5}, + {0x0114C7, 0x0114C7}, + {0x011580, 0x0115B5}, + {0x0115B8, 0x0115BE}, + {0x0115D8, 0x0115DD}, + {0x011600, 0x01163E}, + {0x011640, 0x011640}, + {0x011644, 0x011644}, + {0x011680, 0x0116B5}, + {0x0116B8, 0x0116B8}, + {0x011700, 0x01171A}, + {0x01171D, 0x01172A}, + {0x011740, 0x011746}, + {0x011800, 0x011838}, + {0x0118A0, 0x0118DF}, + {0x0118FF, 0x011906}, + {0x011909, 0x011909}, + {0x01190C, 0x011913}, + {0x011915, 0x011916}, + {0x011918, 0x011935}, + {0x011937, 0x011938}, + {0x01193B, 0x01193C}, + {0x01193F, 0x011942}, + {0x0119A0, 0x0119A7}, + {0x0119AA, 0x0119D7}, + {0x0119DA, 0x0119DF}, + {0x0119E1, 0x0119E1}, + {0x0119E3, 0x0119E4}, + {0x011A00, 0x011A32}, + {0x011A35, 0x011A3E}, + {0x011A50, 0x011A97}, + {0x011A9D, 0x011A9D}, + {0x011AB0, 0x011AF8}, + {0x011C00, 0x011C08}, + {0x011C0A, 0x011C36}, + {0x011C38, 0x011C3E}, + {0x011C40, 0x011C40}, + {0x011C72, 0x011C8F}, + {0x011C92, 0x011CA7}, + {0x011CA9, 0x011CB6}, + {0x011D00, 0x011D06}, + {0x011D08, 0x011D09}, + {0x011D0B, 0x011D36}, + {0x011D3A, 0x011D3A}, + {0x011D3C, 0x011D3D}, + {0x011D3F, 0x011D41}, + {0x011D43, 0x011D43}, + {0x011D46, 0x011D47}, + {0x011D60, 0x011D65}, + {0x011D67, 0x011D68}, + {0x011D6A, 0x011D8E}, + {0x011D90, 0x011D91}, + {0x011D93, 0x011D96}, + {0x011D98, 0x011D98}, + {0x011EE0, 0x011EF6}, + {0x011F00, 0x011F10}, + {0x011F12, 0x011F3A}, + {0x011F3E, 0x011F40}, + {0x011FB0, 0x011FB0}, + {0x012000, 0x012399}, + {0x012400, 0x01246E}, + {0x012480, 0x012543}, + {0x012F90, 0x012FF0}, + {0x013000, 0x01342F}, + {0x013441, 0x013446}, + {0x014400, 0x014646}, + {0x016800, 0x016A38}, + {0x016A40, 0x016A5E}, + {0x016A70, 0x016ABE}, + {0x016AD0, 0x016AED}, + {0x016B00, 0x016B2F}, + {0x016B40, 0x016B43}, + {0x016B63, 0x016B77}, + {0x016B7D, 0x016B8F}, + {0x016E40, 0x016E7F}, + {0x016F00, 0x016F4A}, + {0x016F4F, 0x016F87}, + {0x016F8F, 0x016F9F}, + {0x016FE0, 0x016FE1}, + {0x016FE3, 0x016FE3}, + {0x016FF0, 0x016FF1}, + {0x017000, 0x0187F7}, + {0x018800, 0x018CD5}, + {0x018D00, 0x018D08}, + {0x01AFF0, 0x01AFF3}, + {0x01AFF5, 0x01AFFB}, + {0x01AFFD, 0x01AFFE}, + {0x01B000, 0x01B122}, + {0x01B132, 0x01B132}, + {0x01B150, 0x01B152}, + {0x01B155, 0x01B155}, + {0x01B164, 0x01B167}, + {0x01B170, 0x01B2FB}, + {0x01BC00, 0x01BC6A}, + {0x01BC70, 0x01BC7C}, + {0x01BC80, 0x01BC88}, + {0x01BC90, 0x01BC99}, + {0x01BC9E, 0x01BC9E}, + {0x01D400, 0x01D454}, + {0x01D456, 0x01D49C}, + {0x01D49E, 0x01D49F}, + {0x01D4A2, 0x01D4A2}, + {0x01D4A5, 0x01D4A6}, + {0x01D4A9, 0x01D4AC}, + {0x01D4AE, 0x01D4B9}, + {0x01D4BB, 0x01D4BB}, + {0x01D4BD, 0x01D4C3}, + {0x01D4C5, 0x01D505}, + {0x01D507, 0x01D50A}, + {0x01D50D, 0x01D514}, + {0x01D516, 0x01D51C}, + {0x01D51E, 0x01D539}, + {0x01D53B, 0x01D53E}, + {0x01D540, 0x01D544}, + {0x01D546, 0x01D546}, + {0x01D54A, 0x01D550}, + {0x01D552, 0x01D6A5}, + {0x01D6A8, 0x01D6C0}, + {0x01D6C2, 0x01D6DA}, + {0x01D6DC, 0x01D6FA}, + {0x01D6FC, 0x01D714}, + {0x01D716, 0x01D734}, + {0x01D736, 0x01D74E}, + {0x01D750, 0x01D76E}, + {0x01D770, 0x01D788}, + {0x01D78A, 0x01D7A8}, + {0x01D7AA, 0x01D7C2}, + {0x01D7C4, 0x01D7CB}, + {0x01DF00, 0x01DF1E}, + {0x01DF25, 0x01DF2A}, + {0x01E000, 0x01E006}, + {0x01E008, 0x01E018}, + {0x01E01B, 0x01E021}, + {0x01E023, 0x01E024}, + {0x01E026, 0x01E02A}, + {0x01E030, 0x01E06D}, + {0x01E08F, 0x01E08F}, + {0x01E100, 0x01E12C}, + {0x01E137, 0x01E13D}, + {0x01E14E, 0x01E14E}, + {0x01E290, 0x01E2AD}, + {0x01E2C0, 0x01E2EB}, + {0x01E4D0, 0x01E4EB}, + {0x01E7E0, 0x01E7E6}, + {0x01E7E8, 0x01E7EB}, + {0x01E7ED, 0x01E7EE}, + {0x01E7F0, 0x01E7FE}, + {0x01E800, 0x01E8C4}, + {0x01E900, 0x01E943}, + {0x01E947, 0x01E947}, + {0x01E94B, 0x01E94B}, + {0x01EE00, 0x01EE03}, + {0x01EE05, 0x01EE1F}, + {0x01EE21, 0x01EE22}, + {0x01EE24, 0x01EE24}, + {0x01EE27, 0x01EE27}, + {0x01EE29, 0x01EE32}, + {0x01EE34, 0x01EE37}, + {0x01EE39, 0x01EE39}, + {0x01EE3B, 0x01EE3B}, + {0x01EE42, 0x01EE42}, + {0x01EE47, 0x01EE47}, + {0x01EE49, 0x01EE49}, + {0x01EE4B, 0x01EE4B}, + {0x01EE4D, 0x01EE4F}, + {0x01EE51, 0x01EE52}, + {0x01EE54, 0x01EE54}, + {0x01EE57, 0x01EE57}, + {0x01EE59, 0x01EE59}, + {0x01EE5B, 0x01EE5B}, + {0x01EE5D, 0x01EE5D}, + {0x01EE5F, 0x01EE5F}, + {0x01EE61, 0x01EE62}, + {0x01EE64, 0x01EE64}, + {0x01EE67, 0x01EE6A}, + {0x01EE6C, 0x01EE72}, + {0x01EE74, 0x01EE77}, + {0x01EE79, 0x01EE7C}, + {0x01EE7E, 0x01EE7E}, + {0x01EE80, 0x01EE89}, + {0x01EE8B, 0x01EE9B}, + {0x01EEA1, 0x01EEA3}, + {0x01EEA5, 0x01EEA9}, + {0x01EEAB, 0x01EEBB}, + {0x01F130, 0x01F149}, + {0x01F150, 0x01F169}, + {0x01F170, 0x01F189}, + {0x020000, 0x02A6DF}, + {0x02A700, 0x02B739}, + {0x02B740, 0x02B81D}, + {0x02B820, 0x02CEA1}, + {0x02CEB0, 0x02EBE0}, + {0x02EBF0, 0x02EE5D}, + {0x02F800, 0x02FA1D}, + {0x030000, 0x03134A}, + {0x031350, 0x0323AF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_alphabetic(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_ascii_hex_digit.c b/vendor/librune/lib/rtype/rune_has_prop_ascii_hex_digit.c new file mode 100644 index 0000000..a94f13f --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_ascii_hex_digit.c @@ -0,0 +1,33 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x7E0000007E03FF000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000030, 0x000039}, + {0x000041, 0x000046}, + {0x000061, 0x000066}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_ascii_hex_digit(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_bidi_control.c b/vendor/librune/lib/rtype/rune_has_prop_bidi_control.c new file mode 100644 index 0000000..1f83e24 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_bidi_control.c @@ -0,0 +1,34 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x00061C, 0x00061C}, + {0x00200E, 0x00200F}, + {0x00202A, 0x00202E}, + {0x002066, 0x002069}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_bidi_control(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_case_ignorable.c b/vendor/librune/lib/rtype/rune_has_prop_case_ignorable.c new file mode 100644 index 0000000..9950380 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_case_ignorable.c @@ -0,0 +1,467 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x190A1000000000000000001400000000400408000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000027, 0x000027}, + {0x00002E, 0x00002E}, + {0x00003A, 0x00003A}, + {0x00005E, 0x00005E}, + {0x000060, 0x000060}, + {0x0000A8, 0x0000A8}, + {0x0000AD, 0x0000AD}, + {0x0000AF, 0x0000AF}, + {0x0000B4, 0x0000B4}, + {0x0000B7, 0x0000B8}, + {0x0002B0, 0x00036F}, + {0x000374, 0x000375}, + {0x00037A, 0x00037A}, + {0x000384, 0x000385}, + {0x000387, 0x000387}, + {0x000483, 0x000489}, + {0x000559, 0x000559}, + {0x00055F, 0x00055F}, + {0x000591, 0x0005BD}, + {0x0005BF, 0x0005BF}, + {0x0005C1, 0x0005C2}, + {0x0005C4, 0x0005C5}, + {0x0005C7, 0x0005C7}, + {0x0005F4, 0x0005F4}, + {0x000600, 0x000605}, + {0x000610, 0x00061A}, + {0x00061C, 0x00061C}, + {0x000640, 0x000640}, + {0x00064B, 0x00065F}, + {0x000670, 0x000670}, + {0x0006D6, 0x0006DD}, + {0x0006DF, 0x0006E8}, + {0x0006EA, 0x0006ED}, + {0x00070F, 0x00070F}, + {0x000711, 0x000711}, + {0x000730, 0x00074A}, + {0x0007A6, 0x0007B0}, + {0x0007EB, 0x0007F5}, + {0x0007FA, 0x0007FA}, + {0x0007FD, 0x0007FD}, + {0x000816, 0x00082D}, + {0x000859, 0x00085B}, + {0x000888, 0x000888}, + {0x000890, 0x000891}, + {0x000898, 0x00089F}, + {0x0008C9, 0x000902}, + {0x00093A, 0x00093A}, + {0x00093C, 0x00093C}, + {0x000941, 0x000948}, + {0x00094D, 0x00094D}, + {0x000951, 0x000957}, + {0x000962, 0x000963}, + {0x000971, 0x000971}, + {0x000981, 0x000981}, + {0x0009BC, 0x0009BC}, + {0x0009C1, 0x0009C4}, + {0x0009CD, 0x0009CD}, + {0x0009E2, 0x0009E3}, + {0x0009FE, 0x0009FE}, + {0x000A01, 0x000A02}, + {0x000A3C, 0x000A3C}, + {0x000A41, 0x000A42}, + {0x000A47, 0x000A48}, + {0x000A4B, 0x000A4D}, + {0x000A51, 0x000A51}, + {0x000A70, 0x000A71}, + {0x000A75, 0x000A75}, + {0x000A81, 0x000A82}, + {0x000ABC, 0x000ABC}, + {0x000AC1, 0x000AC5}, + {0x000AC7, 0x000AC8}, + {0x000ACD, 0x000ACD}, + {0x000AE2, 0x000AE3}, + {0x000AFA, 0x000AFF}, + {0x000B01, 0x000B01}, + {0x000B3C, 0x000B3C}, + {0x000B3F, 0x000B3F}, + {0x000B41, 0x000B44}, + {0x000B4D, 0x000B4D}, + {0x000B55, 0x000B56}, + {0x000B62, 0x000B63}, + {0x000B82, 0x000B82}, + {0x000BC0, 0x000BC0}, + {0x000BCD, 0x000BCD}, + {0x000C00, 0x000C00}, + {0x000C04, 0x000C04}, + {0x000C3C, 0x000C3C}, + {0x000C3E, 0x000C40}, + {0x000C46, 0x000C48}, + {0x000C4A, 0x000C4D}, + {0x000C55, 0x000C56}, + {0x000C62, 0x000C63}, + {0x000C81, 0x000C81}, + {0x000CBC, 0x000CBC}, + {0x000CBF, 0x000CBF}, + {0x000CC6, 0x000CC6}, + {0x000CCC, 0x000CCD}, + {0x000CE2, 0x000CE3}, + {0x000D00, 0x000D01}, + {0x000D3B, 0x000D3C}, + {0x000D41, 0x000D44}, + {0x000D4D, 0x000D4D}, + {0x000D62, 0x000D63}, + {0x000D81, 0x000D81}, + {0x000DCA, 0x000DCA}, + {0x000DD2, 0x000DD4}, + {0x000DD6, 0x000DD6}, + {0x000E31, 0x000E31}, + {0x000E34, 0x000E3A}, + {0x000E46, 0x000E4E}, + {0x000EB1, 0x000EB1}, + {0x000EB4, 0x000EBC}, + {0x000EC6, 0x000EC6}, + {0x000EC8, 0x000ECE}, + {0x000F18, 0x000F19}, + {0x000F35, 0x000F35}, + {0x000F37, 0x000F37}, + {0x000F39, 0x000F39}, + {0x000F71, 0x000F7E}, + {0x000F80, 0x000F84}, + {0x000F86, 0x000F87}, + {0x000F8D, 0x000F97}, + {0x000F99, 0x000FBC}, + {0x000FC6, 0x000FC6}, + {0x00102D, 0x001030}, + {0x001032, 0x001037}, + {0x001039, 0x00103A}, + {0x00103D, 0x00103E}, + {0x001058, 0x001059}, + {0x00105E, 0x001060}, + {0x001071, 0x001074}, + {0x001082, 0x001082}, + {0x001085, 0x001086}, + {0x00108D, 0x00108D}, + {0x00109D, 0x00109D}, + {0x0010FC, 0x0010FC}, + {0x00135D, 0x00135F}, + {0x001712, 0x001714}, + {0x001732, 0x001733}, + {0x001752, 0x001753}, + {0x001772, 0x001773}, + {0x0017B4, 0x0017B5}, + {0x0017B7, 0x0017BD}, + {0x0017C6, 0x0017C6}, + {0x0017C9, 0x0017D3}, + {0x0017D7, 0x0017D7}, + {0x0017DD, 0x0017DD}, + {0x00180B, 0x00180F}, + {0x001843, 0x001843}, + {0x001885, 0x001886}, + {0x0018A9, 0x0018A9}, + {0x001920, 0x001922}, + {0x001927, 0x001928}, + {0x001932, 0x001932}, + {0x001939, 0x00193B}, + {0x001A17, 0x001A18}, + {0x001A1B, 0x001A1B}, + {0x001A56, 0x001A56}, + {0x001A58, 0x001A5E}, + {0x001A60, 0x001A60}, + {0x001A62, 0x001A62}, + {0x001A65, 0x001A6C}, + {0x001A73, 0x001A7C}, + {0x001A7F, 0x001A7F}, + {0x001AA7, 0x001AA7}, + {0x001AB0, 0x001ACE}, + {0x001B00, 0x001B03}, + {0x001B34, 0x001B34}, + {0x001B36, 0x001B3A}, + {0x001B3C, 0x001B3C}, + {0x001B42, 0x001B42}, + {0x001B6B, 0x001B73}, + {0x001B80, 0x001B81}, + {0x001BA2, 0x001BA5}, + {0x001BA8, 0x001BA9}, + {0x001BAB, 0x001BAD}, + {0x001BE6, 0x001BE6}, + {0x001BE8, 0x001BE9}, + {0x001BED, 0x001BED}, + {0x001BEF, 0x001BF1}, + {0x001C2C, 0x001C33}, + {0x001C36, 0x001C37}, + {0x001C78, 0x001C7D}, + {0x001CD0, 0x001CD2}, + {0x001CD4, 0x001CE0}, + {0x001CE2, 0x001CE8}, + {0x001CED, 0x001CED}, + {0x001CF4, 0x001CF4}, + {0x001CF8, 0x001CF9}, + {0x001D2C, 0x001D6A}, + {0x001D78, 0x001D78}, + {0x001D9B, 0x001DFF}, + {0x001FBD, 0x001FBD}, + {0x001FBF, 0x001FC1}, + {0x001FCD, 0x001FCF}, + {0x001FDD, 0x001FDF}, + {0x001FED, 0x001FEF}, + {0x001FFD, 0x001FFE}, + {0x00200B, 0x00200F}, + {0x002018, 0x002019}, + {0x002024, 0x002024}, + {0x002027, 0x002027}, + {0x00202A, 0x00202E}, + {0x002060, 0x002064}, + {0x002066, 0x00206F}, + {0x002071, 0x002071}, + {0x00207F, 0x00207F}, + {0x002090, 0x00209C}, + {0x0020D0, 0x0020F0}, + {0x002C7C, 0x002C7D}, + {0x002CEF, 0x002CF1}, + {0x002D6F, 0x002D6F}, + {0x002D7F, 0x002D7F}, + {0x002DE0, 0x002DFF}, + {0x002E2F, 0x002E2F}, + {0x003005, 0x003005}, + {0x00302A, 0x00302D}, + {0x003031, 0x003035}, + {0x00303B, 0x00303B}, + {0x003099, 0x00309E}, + {0x0030FC, 0x0030FE}, + {0x00A015, 0x00A015}, + {0x00A4F8, 0x00A4FD}, + {0x00A60C, 0x00A60C}, + {0x00A66F, 0x00A672}, + {0x00A674, 0x00A67D}, + {0x00A67F, 0x00A67F}, + {0x00A69C, 0x00A69F}, + {0x00A6F0, 0x00A6F1}, + {0x00A700, 0x00A721}, + {0x00A770, 0x00A770}, + {0x00A788, 0x00A78A}, + {0x00A7F2, 0x00A7F4}, + {0x00A7F8, 0x00A7F9}, + {0x00A802, 0x00A802}, + {0x00A806, 0x00A806}, + {0x00A80B, 0x00A80B}, + {0x00A825, 0x00A826}, + {0x00A82C, 0x00A82C}, + {0x00A8C4, 0x00A8C5}, + {0x00A8E0, 0x00A8F1}, + {0x00A8FF, 0x00A8FF}, + {0x00A926, 0x00A92D}, + {0x00A947, 0x00A951}, + {0x00A980, 0x00A982}, + {0x00A9B3, 0x00A9B3}, + {0x00A9B6, 0x00A9B9}, + {0x00A9BC, 0x00A9BD}, + {0x00A9CF, 0x00A9CF}, + {0x00A9E5, 0x00A9E6}, + {0x00AA29, 0x00AA2E}, + {0x00AA31, 0x00AA32}, + {0x00AA35, 0x00AA36}, + {0x00AA43, 0x00AA43}, + {0x00AA4C, 0x00AA4C}, + {0x00AA70, 0x00AA70}, + {0x00AA7C, 0x00AA7C}, + {0x00AAB0, 0x00AAB0}, + {0x00AAB2, 0x00AAB4}, + {0x00AAB7, 0x00AAB8}, + {0x00AABE, 0x00AABF}, + {0x00AAC1, 0x00AAC1}, + {0x00AADD, 0x00AADD}, + {0x00AAEC, 0x00AAED}, + {0x00AAF3, 0x00AAF4}, + {0x00AAF6, 0x00AAF6}, + {0x00AB5B, 0x00AB5F}, + {0x00AB69, 0x00AB6B}, + {0x00ABE5, 0x00ABE5}, + {0x00ABE8, 0x00ABE8}, + {0x00ABED, 0x00ABED}, + {0x00FB1E, 0x00FB1E}, + {0x00FBB2, 0x00FBC2}, + {0x00FE00, 0x00FE0F}, + {0x00FE13, 0x00FE13}, + {0x00FE20, 0x00FE2F}, + {0x00FE52, 0x00FE52}, + {0x00FE55, 0x00FE55}, + {0x00FEFF, 0x00FEFF}, + {0x00FF07, 0x00FF07}, + {0x00FF0E, 0x00FF0E}, + {0x00FF1A, 0x00FF1A}, + {0x00FF3E, 0x00FF3E}, + {0x00FF40, 0x00FF40}, + {0x00FF70, 0x00FF70}, + {0x00FF9E, 0x00FF9F}, + {0x00FFE3, 0x00FFE3}, + {0x00FFF9, 0x00FFFB}, + {0x0101FD, 0x0101FD}, + {0x0102E0, 0x0102E0}, + {0x010376, 0x01037A}, + {0x010780, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010A01, 0x010A03}, + {0x010A05, 0x010A06}, + {0x010A0C, 0x010A0F}, + {0x010A38, 0x010A3A}, + {0x010A3F, 0x010A3F}, + {0x010AE5, 0x010AE6}, + {0x010D24, 0x010D27}, + {0x010EAB, 0x010EAC}, + {0x010EFD, 0x010EFF}, + {0x010F46, 0x010F50}, + {0x010F82, 0x010F85}, + {0x011001, 0x011001}, + {0x011038, 0x011046}, + {0x011070, 0x011070}, + {0x011073, 0x011074}, + {0x01107F, 0x011081}, + {0x0110B3, 0x0110B6}, + {0x0110B9, 0x0110BA}, + {0x0110BD, 0x0110BD}, + {0x0110C2, 0x0110C2}, + {0x0110CD, 0x0110CD}, + {0x011100, 0x011102}, + {0x011127, 0x01112B}, + {0x01112D, 0x011134}, + {0x011173, 0x011173}, + {0x011180, 0x011181}, + {0x0111B6, 0x0111BE}, + {0x0111C9, 0x0111CC}, + {0x0111CF, 0x0111CF}, + {0x01122F, 0x011231}, + {0x011234, 0x011234}, + {0x011236, 0x011237}, + {0x01123E, 0x01123E}, + {0x011241, 0x011241}, + {0x0112DF, 0x0112DF}, + {0x0112E3, 0x0112EA}, + {0x011300, 0x011301}, + {0x01133B, 0x01133C}, + {0x011340, 0x011340}, + {0x011366, 0x01136C}, + {0x011370, 0x011374}, + {0x011438, 0x01143F}, + {0x011442, 0x011444}, + {0x011446, 0x011446}, + {0x01145E, 0x01145E}, + {0x0114B3, 0x0114B8}, + {0x0114BA, 0x0114BA}, + {0x0114BF, 0x0114C0}, + {0x0114C2, 0x0114C3}, + {0x0115B2, 0x0115B5}, + {0x0115BC, 0x0115BD}, + {0x0115BF, 0x0115C0}, + {0x0115DC, 0x0115DD}, + {0x011633, 0x01163A}, + {0x01163D, 0x01163D}, + {0x01163F, 0x011640}, + {0x0116AB, 0x0116AB}, + {0x0116AD, 0x0116AD}, + {0x0116B0, 0x0116B5}, + {0x0116B7, 0x0116B7}, + {0x01171D, 0x01171F}, + {0x011722, 0x011725}, + {0x011727, 0x01172B}, + {0x01182F, 0x011837}, + {0x011839, 0x01183A}, + {0x01193B, 0x01193C}, + {0x01193E, 0x01193E}, + {0x011943, 0x011943}, + {0x0119D4, 0x0119D7}, + {0x0119DA, 0x0119DB}, + {0x0119E0, 0x0119E0}, + {0x011A01, 0x011A0A}, + {0x011A33, 0x011A38}, + {0x011A3B, 0x011A3E}, + {0x011A47, 0x011A47}, + {0x011A51, 0x011A56}, + {0x011A59, 0x011A5B}, + {0x011A8A, 0x011A96}, + {0x011A98, 0x011A99}, + {0x011C30, 0x011C36}, + {0x011C38, 0x011C3D}, + {0x011C3F, 0x011C3F}, + {0x011C92, 0x011CA7}, + {0x011CAA, 0x011CB0}, + {0x011CB2, 0x011CB3}, + {0x011CB5, 0x011CB6}, + {0x011D31, 0x011D36}, + {0x011D3A, 0x011D3A}, + {0x011D3C, 0x011D3D}, + {0x011D3F, 0x011D45}, + {0x011D47, 0x011D47}, + {0x011D90, 0x011D91}, + {0x011D95, 0x011D95}, + {0x011D97, 0x011D97}, + {0x011EF3, 0x011EF4}, + {0x011F00, 0x011F01}, + {0x011F36, 0x011F3A}, + {0x011F40, 0x011F40}, + {0x011F42, 0x011F42}, + {0x013430, 0x013440}, + {0x013447, 0x013455}, + {0x016AF0, 0x016AF4}, + {0x016B30, 0x016B36}, + {0x016B40, 0x016B43}, + {0x016F4F, 0x016F4F}, + {0x016F8F, 0x016F9F}, + {0x016FE0, 0x016FE1}, + {0x016FE3, 0x016FE4}, + {0x01AFF0, 0x01AFF3}, + {0x01AFF5, 0x01AFFB}, + {0x01AFFD, 0x01AFFE}, + {0x01BC9D, 0x01BC9E}, + {0x01BCA0, 0x01BCA3}, + {0x01CF00, 0x01CF2D}, + {0x01CF30, 0x01CF46}, + {0x01D167, 0x01D169}, + {0x01D173, 0x01D182}, + {0x01D185, 0x01D18B}, + {0x01D1AA, 0x01D1AD}, + {0x01D242, 0x01D244}, + {0x01DA00, 0x01DA36}, + {0x01DA3B, 0x01DA6C}, + {0x01DA75, 0x01DA75}, + {0x01DA84, 0x01DA84}, + {0x01DA9B, 0x01DA9F}, + {0x01DAA1, 0x01DAAF}, + {0x01E000, 0x01E006}, + {0x01E008, 0x01E018}, + {0x01E01B, 0x01E021}, + {0x01E023, 0x01E024}, + {0x01E026, 0x01E02A}, + {0x01E030, 0x01E06D}, + {0x01E08F, 0x01E08F}, + {0x01E130, 0x01E13D}, + {0x01E2AE, 0x01E2AE}, + {0x01E2EC, 0x01E2EF}, + {0x01E4EB, 0x01E4EF}, + {0x01E8D0, 0x01E8D6}, + {0x01E944, 0x01E94B}, + {0x01F3FB, 0x01F3FF}, + {0x0E0001, 0x0E0001}, + {0x0E0020, 0x0E007F}, + {0x0E0100, 0x0E01EF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_case_ignorable(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_cased.c b/vendor/librune/lib/rtype/rune_has_prop_cased.c new file mode 100644 index 0000000..3d1fb30 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_cased.c @@ -0,0 +1,187 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000041, 0x00005A}, + {0x000061, 0x00007A}, + {0x0000AA, 0x0000AA}, + {0x0000B5, 0x0000B5}, + {0x0000BA, 0x0000BA}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000F6}, + {0x0000F8, 0x0001BA}, + {0x0001BC, 0x0001BF}, + {0x0001C4, 0x000293}, + {0x000295, 0x0002B8}, + {0x0002C0, 0x0002C1}, + {0x0002E0, 0x0002E4}, + {0x000345, 0x000345}, + {0x000370, 0x000373}, + {0x000376, 0x000377}, + {0x00037A, 0x00037D}, + {0x00037F, 0x00037F}, + {0x000386, 0x000386}, + {0x000388, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x0003A1}, + {0x0003A3, 0x0003F5}, + {0x0003F7, 0x000481}, + {0x00048A, 0x00052F}, + {0x000531, 0x000556}, + {0x000560, 0x000588}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0010D0, 0x0010FA}, + {0x0010FC, 0x0010FF}, + {0x0013A0, 0x0013F5}, + {0x0013F8, 0x0013FD}, + {0x001C80, 0x001C88}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001D00, 0x001DBF}, + {0x001E00, 0x001F15}, + {0x001F18, 0x001F1D}, + {0x001F20, 0x001F45}, + {0x001F48, 0x001F4D}, + {0x001F50, 0x001F57}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F7D}, + {0x001F80, 0x001FB4}, + {0x001FB6, 0x001FBC}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FCC}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FDB}, + {0x001FE0, 0x001FEC}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FFC}, + {0x002071, 0x002071}, + {0x00207F, 0x00207F}, + {0x002090, 0x00209C}, + {0x002102, 0x002102}, + {0x002107, 0x002107}, + {0x00210A, 0x002113}, + {0x002115, 0x002115}, + {0x002119, 0x00211D}, + {0x002124, 0x002124}, + {0x002126, 0x002126}, + {0x002128, 0x002128}, + {0x00212A, 0x00212D}, + {0x00212F, 0x002134}, + {0x002139, 0x002139}, + {0x00213C, 0x00213F}, + {0x002145, 0x002149}, + {0x00214E, 0x00214E}, + {0x002160, 0x00217F}, + {0x002183, 0x002184}, + {0x0024B6, 0x0024E9}, + {0x002C00, 0x002CE4}, + {0x002CEB, 0x002CEE}, + {0x002CF2, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x00A640, 0x00A66D}, + {0x00A680, 0x00A69D}, + {0x00A722, 0x00A787}, + {0x00A78B, 0x00A78E}, + {0x00A790, 0x00A7CA}, + {0x00A7D0, 0x00A7D1}, + {0x00A7D3, 0x00A7D3}, + {0x00A7D5, 0x00A7D9}, + {0x00A7F2, 0x00A7F6}, + {0x00A7F8, 0x00A7FA}, + {0x00AB30, 0x00AB5A}, + {0x00AB5C, 0x00AB69}, + {0x00AB70, 0x00ABBF}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FF21, 0x00FF3A}, + {0x00FF41, 0x00FF5A}, + {0x010400, 0x01044F}, + {0x0104B0, 0x0104D3}, + {0x0104D8, 0x0104FB}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010780, 0x010780}, + {0x010783, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010C80, 0x010CB2}, + {0x010CC0, 0x010CF2}, + {0x0118A0, 0x0118DF}, + {0x016E40, 0x016E7F}, + {0x01D400, 0x01D454}, + {0x01D456, 0x01D49C}, + {0x01D49E, 0x01D49F}, + {0x01D4A2, 0x01D4A2}, + {0x01D4A5, 0x01D4A6}, + {0x01D4A9, 0x01D4AC}, + {0x01D4AE, 0x01D4B9}, + {0x01D4BB, 0x01D4BB}, + {0x01D4BD, 0x01D4C3}, + {0x01D4C5, 0x01D505}, + {0x01D507, 0x01D50A}, + {0x01D50D, 0x01D514}, + {0x01D516, 0x01D51C}, + {0x01D51E, 0x01D539}, + {0x01D53B, 0x01D53E}, + {0x01D540, 0x01D544}, + {0x01D546, 0x01D546}, + {0x01D54A, 0x01D550}, + {0x01D552, 0x01D6A5}, + {0x01D6A8, 0x01D6C0}, + {0x01D6C2, 0x01D6DA}, + {0x01D6DC, 0x01D6FA}, + {0x01D6FC, 0x01D714}, + {0x01D716, 0x01D734}, + {0x01D736, 0x01D74E}, + {0x01D750, 0x01D76E}, + {0x01D770, 0x01D788}, + {0x01D78A, 0x01D7A8}, + {0x01D7AA, 0x01D7C2}, + {0x01D7C4, 0x01D7CB}, + {0x01DF00, 0x01DF09}, + {0x01DF0B, 0x01DF1E}, + {0x01DF25, 0x01DF2A}, + {0x01E030, 0x01E06D}, + {0x01E900, 0x01E943}, + {0x01F130, 0x01F149}, + {0x01F150, 0x01F169}, + {0x01F170, 0x01F189}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_cased(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_casefolded.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_casefolded.c new file mode 100644 index 0000000..52c30a4 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_casefolded.c @@ -0,0 +1,652 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFF00200000000000000000000007FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000041, 0x00005A}, + {0x0000B5, 0x0000B5}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000DF}, + {0x000100, 0x000100}, + {0x000102, 0x000102}, + {0x000104, 0x000104}, + {0x000106, 0x000106}, + {0x000108, 0x000108}, + {0x00010A, 0x00010A}, + {0x00010C, 0x00010C}, + {0x00010E, 0x00010E}, + {0x000110, 0x000110}, + {0x000112, 0x000112}, + {0x000114, 0x000114}, + {0x000116, 0x000116}, + {0x000118, 0x000118}, + {0x00011A, 0x00011A}, + {0x00011C, 0x00011C}, + {0x00011E, 0x00011E}, + {0x000120, 0x000120}, + {0x000122, 0x000122}, + {0x000124, 0x000124}, + {0x000126, 0x000126}, + {0x000128, 0x000128}, + {0x00012A, 0x00012A}, + {0x00012C, 0x00012C}, + {0x00012E, 0x00012E}, + {0x000130, 0x000130}, + {0x000132, 0x000132}, + {0x000134, 0x000134}, + {0x000136, 0x000136}, + {0x000139, 0x000139}, + {0x00013B, 0x00013B}, + {0x00013D, 0x00013D}, + {0x00013F, 0x00013F}, + {0x000141, 0x000141}, + {0x000143, 0x000143}, + {0x000145, 0x000145}, + {0x000147, 0x000147}, + {0x000149, 0x00014A}, + {0x00014C, 0x00014C}, + {0x00014E, 0x00014E}, + {0x000150, 0x000150}, + {0x000152, 0x000152}, + {0x000154, 0x000154}, + {0x000156, 0x000156}, + {0x000158, 0x000158}, + {0x00015A, 0x00015A}, + {0x00015C, 0x00015C}, + {0x00015E, 0x00015E}, + {0x000160, 0x000160}, + {0x000162, 0x000162}, + {0x000164, 0x000164}, + {0x000166, 0x000166}, + {0x000168, 0x000168}, + {0x00016A, 0x00016A}, + {0x00016C, 0x00016C}, + {0x00016E, 0x00016E}, + {0x000170, 0x000170}, + {0x000172, 0x000172}, + {0x000174, 0x000174}, + {0x000176, 0x000176}, + {0x000178, 0x000179}, + {0x00017B, 0x00017B}, + {0x00017D, 0x00017D}, + {0x00017F, 0x00017F}, + {0x000181, 0x000182}, + {0x000184, 0x000184}, + {0x000186, 0x000187}, + {0x000189, 0x00018B}, + {0x00018E, 0x000191}, + {0x000193, 0x000194}, + {0x000196, 0x000198}, + {0x00019C, 0x00019D}, + {0x00019F, 0x0001A0}, + {0x0001A2, 0x0001A2}, + {0x0001A4, 0x0001A4}, + {0x0001A6, 0x0001A7}, + {0x0001A9, 0x0001A9}, + {0x0001AC, 0x0001AC}, + {0x0001AE, 0x0001AF}, + {0x0001B1, 0x0001B3}, + {0x0001B5, 0x0001B5}, + {0x0001B7, 0x0001B8}, + {0x0001BC, 0x0001BC}, + {0x0001C4, 0x0001C5}, + {0x0001C7, 0x0001C8}, + {0x0001CA, 0x0001CB}, + {0x0001CD, 0x0001CD}, + {0x0001CF, 0x0001CF}, + {0x0001D1, 0x0001D1}, + {0x0001D3, 0x0001D3}, + {0x0001D5, 0x0001D5}, + {0x0001D7, 0x0001D7}, + {0x0001D9, 0x0001D9}, + {0x0001DB, 0x0001DB}, + {0x0001DE, 0x0001DE}, + {0x0001E0, 0x0001E0}, + {0x0001E2, 0x0001E2}, + {0x0001E4, 0x0001E4}, + {0x0001E6, 0x0001E6}, + {0x0001E8, 0x0001E8}, + {0x0001EA, 0x0001EA}, + {0x0001EC, 0x0001EC}, + {0x0001EE, 0x0001EE}, + {0x0001F1, 0x0001F2}, + {0x0001F4, 0x0001F4}, + {0x0001F6, 0x0001F8}, + {0x0001FA, 0x0001FA}, + {0x0001FC, 0x0001FC}, + {0x0001FE, 0x0001FE}, + {0x000200, 0x000200}, + {0x000202, 0x000202}, + {0x000204, 0x000204}, + {0x000206, 0x000206}, + {0x000208, 0x000208}, + {0x00020A, 0x00020A}, + {0x00020C, 0x00020C}, + {0x00020E, 0x00020E}, + {0x000210, 0x000210}, + {0x000212, 0x000212}, + {0x000214, 0x000214}, + {0x000216, 0x000216}, + {0x000218, 0x000218}, + {0x00021A, 0x00021A}, + {0x00021C, 0x00021C}, + {0x00021E, 0x00021E}, + {0x000220, 0x000220}, + {0x000222, 0x000222}, + {0x000224, 0x000224}, + {0x000226, 0x000226}, + {0x000228, 0x000228}, + {0x00022A, 0x00022A}, + {0x00022C, 0x00022C}, + {0x00022E, 0x00022E}, + {0x000230, 0x000230}, + {0x000232, 0x000232}, + {0x00023A, 0x00023B}, + {0x00023D, 0x00023E}, + {0x000241, 0x000241}, + {0x000243, 0x000246}, + {0x000248, 0x000248}, + {0x00024A, 0x00024A}, + {0x00024C, 0x00024C}, + {0x00024E, 0x00024E}, + {0x000345, 0x000345}, + {0x000370, 0x000370}, + {0x000372, 0x000372}, + {0x000376, 0x000376}, + {0x00037F, 0x00037F}, + {0x000386, 0x000386}, + {0x000388, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x00038F}, + {0x000391, 0x0003A1}, + {0x0003A3, 0x0003AB}, + {0x0003C2, 0x0003C2}, + {0x0003CF, 0x0003D1}, + {0x0003D5, 0x0003D6}, + {0x0003D8, 0x0003D8}, + {0x0003DA, 0x0003DA}, + {0x0003DC, 0x0003DC}, + {0x0003DE, 0x0003DE}, + {0x0003E0, 0x0003E0}, + {0x0003E2, 0x0003E2}, + {0x0003E4, 0x0003E4}, + {0x0003E6, 0x0003E6}, + {0x0003E8, 0x0003E8}, + {0x0003EA, 0x0003EA}, + {0x0003EC, 0x0003EC}, + {0x0003EE, 0x0003EE}, + {0x0003F0, 0x0003F1}, + {0x0003F4, 0x0003F5}, + {0x0003F7, 0x0003F7}, + {0x0003F9, 0x0003FA}, + {0x0003FD, 0x00042F}, + {0x000460, 0x000460}, + {0x000462, 0x000462}, + {0x000464, 0x000464}, + {0x000466, 0x000466}, + {0x000468, 0x000468}, + {0x00046A, 0x00046A}, + {0x00046C, 0x00046C}, + {0x00046E, 0x00046E}, + {0x000470, 0x000470}, + {0x000472, 0x000472}, + {0x000474, 0x000474}, + {0x000476, 0x000476}, + {0x000478, 0x000478}, + {0x00047A, 0x00047A}, + {0x00047C, 0x00047C}, + {0x00047E, 0x00047E}, + {0x000480, 0x000480}, + {0x00048A, 0x00048A}, + {0x00048C, 0x00048C}, + {0x00048E, 0x00048E}, + {0x000490, 0x000490}, + {0x000492, 0x000492}, + {0x000494, 0x000494}, + {0x000496, 0x000496}, + {0x000498, 0x000498}, + {0x00049A, 0x00049A}, + {0x00049C, 0x00049C}, + {0x00049E, 0x00049E}, + {0x0004A0, 0x0004A0}, + {0x0004A2, 0x0004A2}, + {0x0004A4, 0x0004A4}, + {0x0004A6, 0x0004A6}, + {0x0004A8, 0x0004A8}, + {0x0004AA, 0x0004AA}, + {0x0004AC, 0x0004AC}, + {0x0004AE, 0x0004AE}, + {0x0004B0, 0x0004B0}, + {0x0004B2, 0x0004B2}, + {0x0004B4, 0x0004B4}, + {0x0004B6, 0x0004B6}, + {0x0004B8, 0x0004B8}, + {0x0004BA, 0x0004BA}, + {0x0004BC, 0x0004BC}, + {0x0004BE, 0x0004BE}, + {0x0004C0, 0x0004C1}, + {0x0004C3, 0x0004C3}, + {0x0004C5, 0x0004C5}, + {0x0004C7, 0x0004C7}, + {0x0004C9, 0x0004C9}, + {0x0004CB, 0x0004CB}, + {0x0004CD, 0x0004CD}, + {0x0004D0, 0x0004D0}, + {0x0004D2, 0x0004D2}, + {0x0004D4, 0x0004D4}, + {0x0004D6, 0x0004D6}, + {0x0004D8, 0x0004D8}, + {0x0004DA, 0x0004DA}, + {0x0004DC, 0x0004DC}, + {0x0004DE, 0x0004DE}, + {0x0004E0, 0x0004E0}, + {0x0004E2, 0x0004E2}, + {0x0004E4, 0x0004E4}, + {0x0004E6, 0x0004E6}, + {0x0004E8, 0x0004E8}, + {0x0004EA, 0x0004EA}, + {0x0004EC, 0x0004EC}, + {0x0004EE, 0x0004EE}, + {0x0004F0, 0x0004F0}, + {0x0004F2, 0x0004F2}, + {0x0004F4, 0x0004F4}, + {0x0004F6, 0x0004F6}, + {0x0004F8, 0x0004F8}, + {0x0004FA, 0x0004FA}, + {0x0004FC, 0x0004FC}, + {0x0004FE, 0x0004FE}, + {0x000500, 0x000500}, + {0x000502, 0x000502}, + {0x000504, 0x000504}, + {0x000506, 0x000506}, + {0x000508, 0x000508}, + {0x00050A, 0x00050A}, + {0x00050C, 0x00050C}, + {0x00050E, 0x00050E}, + {0x000510, 0x000510}, + {0x000512, 0x000512}, + {0x000514, 0x000514}, + {0x000516, 0x000516}, + {0x000518, 0x000518}, + {0x00051A, 0x00051A}, + {0x00051C, 0x00051C}, + {0x00051E, 0x00051E}, + {0x000520, 0x000520}, + {0x000522, 0x000522}, + {0x000524, 0x000524}, + {0x000526, 0x000526}, + {0x000528, 0x000528}, + {0x00052A, 0x00052A}, + {0x00052C, 0x00052C}, + {0x00052E, 0x00052E}, + {0x000531, 0x000556}, + {0x000587, 0x000587}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0013F8, 0x0013FD}, + {0x001C80, 0x001C88}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001E00, 0x001E00}, + {0x001E02, 0x001E02}, + {0x001E04, 0x001E04}, + {0x001E06, 0x001E06}, + {0x001E08, 0x001E08}, + {0x001E0A, 0x001E0A}, + {0x001E0C, 0x001E0C}, + {0x001E0E, 0x001E0E}, + {0x001E10, 0x001E10}, + {0x001E12, 0x001E12}, + {0x001E14, 0x001E14}, + {0x001E16, 0x001E16}, + {0x001E18, 0x001E18}, + {0x001E1A, 0x001E1A}, + {0x001E1C, 0x001E1C}, + {0x001E1E, 0x001E1E}, + {0x001E20, 0x001E20}, + {0x001E22, 0x001E22}, + {0x001E24, 0x001E24}, + {0x001E26, 0x001E26}, + {0x001E28, 0x001E28}, + {0x001E2A, 0x001E2A}, + {0x001E2C, 0x001E2C}, + {0x001E2E, 0x001E2E}, + {0x001E30, 0x001E30}, + {0x001E32, 0x001E32}, + {0x001E34, 0x001E34}, + {0x001E36, 0x001E36}, + {0x001E38, 0x001E38}, + {0x001E3A, 0x001E3A}, + {0x001E3C, 0x001E3C}, + {0x001E3E, 0x001E3E}, + {0x001E40, 0x001E40}, + {0x001E42, 0x001E42}, + {0x001E44, 0x001E44}, + {0x001E46, 0x001E46}, + {0x001E48, 0x001E48}, + {0x001E4A, 0x001E4A}, + {0x001E4C, 0x001E4C}, + {0x001E4E, 0x001E4E}, + {0x001E50, 0x001E50}, + {0x001E52, 0x001E52}, + {0x001E54, 0x001E54}, + {0x001E56, 0x001E56}, + {0x001E58, 0x001E58}, + {0x001E5A, 0x001E5A}, + {0x001E5C, 0x001E5C}, + {0x001E5E, 0x001E5E}, + {0x001E60, 0x001E60}, + {0x001E62, 0x001E62}, + {0x001E64, 0x001E64}, + {0x001E66, 0x001E66}, + {0x001E68, 0x001E68}, + {0x001E6A, 0x001E6A}, + {0x001E6C, 0x001E6C}, + {0x001E6E, 0x001E6E}, + {0x001E70, 0x001E70}, + {0x001E72, 0x001E72}, + {0x001E74, 0x001E74}, + {0x001E76, 0x001E76}, + {0x001E78, 0x001E78}, + {0x001E7A, 0x001E7A}, + {0x001E7C, 0x001E7C}, + {0x001E7E, 0x001E7E}, + {0x001E80, 0x001E80}, + {0x001E82, 0x001E82}, + {0x001E84, 0x001E84}, + {0x001E86, 0x001E86}, + {0x001E88, 0x001E88}, + {0x001E8A, 0x001E8A}, + {0x001E8C, 0x001E8C}, + {0x001E8E, 0x001E8E}, + {0x001E90, 0x001E90}, + {0x001E92, 0x001E92}, + {0x001E94, 0x001E94}, + {0x001E9A, 0x001E9B}, + {0x001E9E, 0x001E9E}, + {0x001EA0, 0x001EA0}, + {0x001EA2, 0x001EA2}, + {0x001EA4, 0x001EA4}, + {0x001EA6, 0x001EA6}, + {0x001EA8, 0x001EA8}, + {0x001EAA, 0x001EAA}, + {0x001EAC, 0x001EAC}, + {0x001EAE, 0x001EAE}, + {0x001EB0, 0x001EB0}, + {0x001EB2, 0x001EB2}, + {0x001EB4, 0x001EB4}, + {0x001EB6, 0x001EB6}, + {0x001EB8, 0x001EB8}, + {0x001EBA, 0x001EBA}, + {0x001EBC, 0x001EBC}, + {0x001EBE, 0x001EBE}, + {0x001EC0, 0x001EC0}, + {0x001EC2, 0x001EC2}, + {0x001EC4, 0x001EC4}, + {0x001EC6, 0x001EC6}, + {0x001EC8, 0x001EC8}, + {0x001ECA, 0x001ECA}, + {0x001ECC, 0x001ECC}, + {0x001ECE, 0x001ECE}, + {0x001ED0, 0x001ED0}, + {0x001ED2, 0x001ED2}, + {0x001ED4, 0x001ED4}, + {0x001ED6, 0x001ED6}, + {0x001ED8, 0x001ED8}, + {0x001EDA, 0x001EDA}, + {0x001EDC, 0x001EDC}, + {0x001EDE, 0x001EDE}, + {0x001EE0, 0x001EE0}, + {0x001EE2, 0x001EE2}, + {0x001EE4, 0x001EE4}, + {0x001EE6, 0x001EE6}, + {0x001EE8, 0x001EE8}, + {0x001EEA, 0x001EEA}, + {0x001EEC, 0x001EEC}, + {0x001EEE, 0x001EEE}, + {0x001EF0, 0x001EF0}, + {0x001EF2, 0x001EF2}, + {0x001EF4, 0x001EF4}, + {0x001EF6, 0x001EF6}, + {0x001EF8, 0x001EF8}, + {0x001EFA, 0x001EFA}, + {0x001EFC, 0x001EFC}, + {0x001EFE, 0x001EFE}, + {0x001F08, 0x001F0F}, + {0x001F18, 0x001F1D}, + {0x001F28, 0x001F2F}, + {0x001F38, 0x001F3F}, + {0x001F48, 0x001F4D}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F5F}, + {0x001F68, 0x001F6F}, + {0x001F80, 0x001FAF}, + {0x001FB2, 0x001FB4}, + {0x001FB7, 0x001FBC}, + {0x001FC2, 0x001FC4}, + {0x001FC7, 0x001FCC}, + {0x001FD8, 0x001FDB}, + {0x001FE8, 0x001FEC}, + {0x001FF2, 0x001FF4}, + {0x001FF7, 0x001FFC}, + {0x002126, 0x002126}, + {0x00212A, 0x00212B}, + {0x002132, 0x002132}, + {0x002160, 0x00216F}, + {0x002183, 0x002183}, + {0x0024B6, 0x0024CF}, + {0x002C00, 0x002C2F}, + {0x002C60, 0x002C60}, + {0x002C62, 0x002C64}, + {0x002C67, 0x002C67}, + {0x002C69, 0x002C69}, + {0x002C6B, 0x002C6B}, + {0x002C6D, 0x002C70}, + {0x002C72, 0x002C72}, + {0x002C75, 0x002C75}, + {0x002C7E, 0x002C80}, + {0x002C82, 0x002C82}, + {0x002C84, 0x002C84}, + {0x002C86, 0x002C86}, + {0x002C88, 0x002C88}, + {0x002C8A, 0x002C8A}, + {0x002C8C, 0x002C8C}, + {0x002C8E, 0x002C8E}, + {0x002C90, 0x002C90}, + {0x002C92, 0x002C92}, + {0x002C94, 0x002C94}, + {0x002C96, 0x002C96}, + {0x002C98, 0x002C98}, + {0x002C9A, 0x002C9A}, + {0x002C9C, 0x002C9C}, + {0x002C9E, 0x002C9E}, + {0x002CA0, 0x002CA0}, + {0x002CA2, 0x002CA2}, + {0x002CA4, 0x002CA4}, + {0x002CA6, 0x002CA6}, + {0x002CA8, 0x002CA8}, + {0x002CAA, 0x002CAA}, + {0x002CAC, 0x002CAC}, + {0x002CAE, 0x002CAE}, + {0x002CB0, 0x002CB0}, + {0x002CB2, 0x002CB2}, + {0x002CB4, 0x002CB4}, + {0x002CB6, 0x002CB6}, + {0x002CB8, 0x002CB8}, + {0x002CBA, 0x002CBA}, + {0x002CBC, 0x002CBC}, + {0x002CBE, 0x002CBE}, + {0x002CC0, 0x002CC0}, + {0x002CC2, 0x002CC2}, + {0x002CC4, 0x002CC4}, + {0x002CC6, 0x002CC6}, + {0x002CC8, 0x002CC8}, + {0x002CCA, 0x002CCA}, + {0x002CCC, 0x002CCC}, + {0x002CCE, 0x002CCE}, + {0x002CD0, 0x002CD0}, + {0x002CD2, 0x002CD2}, + {0x002CD4, 0x002CD4}, + {0x002CD6, 0x002CD6}, + {0x002CD8, 0x002CD8}, + {0x002CDA, 0x002CDA}, + {0x002CDC, 0x002CDC}, + {0x002CDE, 0x002CDE}, + {0x002CE0, 0x002CE0}, + {0x002CE2, 0x002CE2}, + {0x002CEB, 0x002CEB}, + {0x002CED, 0x002CED}, + {0x002CF2, 0x002CF2}, + {0x00A640, 0x00A640}, + {0x00A642, 0x00A642}, + {0x00A644, 0x00A644}, + {0x00A646, 0x00A646}, + {0x00A648, 0x00A648}, + {0x00A64A, 0x00A64A}, + {0x00A64C, 0x00A64C}, + {0x00A64E, 0x00A64E}, + {0x00A650, 0x00A650}, + {0x00A652, 0x00A652}, + {0x00A654, 0x00A654}, + {0x00A656, 0x00A656}, + {0x00A658, 0x00A658}, + {0x00A65A, 0x00A65A}, + {0x00A65C, 0x00A65C}, + {0x00A65E, 0x00A65E}, + {0x00A660, 0x00A660}, + {0x00A662, 0x00A662}, + {0x00A664, 0x00A664}, + {0x00A666, 0x00A666}, + {0x00A668, 0x00A668}, + {0x00A66A, 0x00A66A}, + {0x00A66C, 0x00A66C}, + {0x00A680, 0x00A680}, + {0x00A682, 0x00A682}, + {0x00A684, 0x00A684}, + {0x00A686, 0x00A686}, + {0x00A688, 0x00A688}, + {0x00A68A, 0x00A68A}, + {0x00A68C, 0x00A68C}, + {0x00A68E, 0x00A68E}, + {0x00A690, 0x00A690}, + {0x00A692, 0x00A692}, + {0x00A694, 0x00A694}, + {0x00A696, 0x00A696}, + {0x00A698, 0x00A698}, + {0x00A69A, 0x00A69A}, + {0x00A722, 0x00A722}, + {0x00A724, 0x00A724}, + {0x00A726, 0x00A726}, + {0x00A728, 0x00A728}, + {0x00A72A, 0x00A72A}, + {0x00A72C, 0x00A72C}, + {0x00A72E, 0x00A72E}, + {0x00A732, 0x00A732}, + {0x00A734, 0x00A734}, + {0x00A736, 0x00A736}, + {0x00A738, 0x00A738}, + {0x00A73A, 0x00A73A}, + {0x00A73C, 0x00A73C}, + {0x00A73E, 0x00A73E}, + {0x00A740, 0x00A740}, + {0x00A742, 0x00A742}, + {0x00A744, 0x00A744}, + {0x00A746, 0x00A746}, + {0x00A748, 0x00A748}, + {0x00A74A, 0x00A74A}, + {0x00A74C, 0x00A74C}, + {0x00A74E, 0x00A74E}, + {0x00A750, 0x00A750}, + {0x00A752, 0x00A752}, + {0x00A754, 0x00A754}, + {0x00A756, 0x00A756}, + {0x00A758, 0x00A758}, + {0x00A75A, 0x00A75A}, + {0x00A75C, 0x00A75C}, + {0x00A75E, 0x00A75E}, + {0x00A760, 0x00A760}, + {0x00A762, 0x00A762}, + {0x00A764, 0x00A764}, + {0x00A766, 0x00A766}, + {0x00A768, 0x00A768}, + {0x00A76A, 0x00A76A}, + {0x00A76C, 0x00A76C}, + {0x00A76E, 0x00A76E}, + {0x00A779, 0x00A779}, + {0x00A77B, 0x00A77B}, + {0x00A77D, 0x00A77E}, + {0x00A780, 0x00A780}, + {0x00A782, 0x00A782}, + {0x00A784, 0x00A784}, + {0x00A786, 0x00A786}, + {0x00A78B, 0x00A78B}, + {0x00A78D, 0x00A78D}, + {0x00A790, 0x00A790}, + {0x00A792, 0x00A792}, + {0x00A796, 0x00A796}, + {0x00A798, 0x00A798}, + {0x00A79A, 0x00A79A}, + {0x00A79C, 0x00A79C}, + {0x00A79E, 0x00A79E}, + {0x00A7A0, 0x00A7A0}, + {0x00A7A2, 0x00A7A2}, + {0x00A7A4, 0x00A7A4}, + {0x00A7A6, 0x00A7A6}, + {0x00A7A8, 0x00A7A8}, + {0x00A7AA, 0x00A7AE}, + {0x00A7B0, 0x00A7B4}, + {0x00A7B6, 0x00A7B6}, + {0x00A7B8, 0x00A7B8}, + {0x00A7BA, 0x00A7BA}, + {0x00A7BC, 0x00A7BC}, + {0x00A7BE, 0x00A7BE}, + {0x00A7C0, 0x00A7C0}, + {0x00A7C2, 0x00A7C2}, + {0x00A7C4, 0x00A7C7}, + {0x00A7C9, 0x00A7C9}, + {0x00A7D0, 0x00A7D0}, + {0x00A7D6, 0x00A7D6}, + {0x00A7D8, 0x00A7D8}, + {0x00A7F5, 0x00A7F5}, + {0x00AB70, 0x00ABBF}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FF21, 0x00FF3A}, + {0x010400, 0x010427}, + {0x0104B0, 0x0104D3}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010C80, 0x010CB2}, + {0x0118A0, 0x0118BF}, + {0x016E40, 0x016E5F}, + {0x01E900, 0x01E921}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_changes_when_casefolded(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_casemapped.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_casemapped.c new file mode 100644 index 0000000..5b40d20 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_casemapped.c @@ -0,0 +1,161 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF002000000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000041, 0x00005A}, + {0x000061, 0x00007A}, + {0x0000B5, 0x0000B5}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000F6}, + {0x0000F8, 0x000137}, + {0x000139, 0x00018C}, + {0x00018E, 0x00019A}, + {0x00019C, 0x0001A9}, + {0x0001AC, 0x0001B9}, + {0x0001BC, 0x0001BD}, + {0x0001BF, 0x0001BF}, + {0x0001C4, 0x000220}, + {0x000222, 0x000233}, + {0x00023A, 0x000254}, + {0x000256, 0x000257}, + {0x000259, 0x000259}, + {0x00025B, 0x00025C}, + {0x000260, 0x000261}, + {0x000263, 0x000263}, + {0x000265, 0x000266}, + {0x000268, 0x00026C}, + {0x00026F, 0x00026F}, + {0x000271, 0x000272}, + {0x000275, 0x000275}, + {0x00027D, 0x00027D}, + {0x000280, 0x000280}, + {0x000282, 0x000283}, + {0x000287, 0x00028C}, + {0x000292, 0x000292}, + {0x00029D, 0x00029E}, + {0x000345, 0x000345}, + {0x000370, 0x000373}, + {0x000376, 0x000377}, + {0x00037B, 0x00037D}, + {0x00037F, 0x00037F}, + {0x000386, 0x000386}, + {0x000388, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x0003A1}, + {0x0003A3, 0x0003D1}, + {0x0003D5, 0x0003F5}, + {0x0003F7, 0x0003FB}, + {0x0003FD, 0x000481}, + {0x00048A, 0x00052F}, + {0x000531, 0x000556}, + {0x000561, 0x000587}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0010D0, 0x0010FA}, + {0x0010FD, 0x0010FF}, + {0x0013A0, 0x0013F5}, + {0x0013F8, 0x0013FD}, + {0x001C80, 0x001C88}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001D79, 0x001D79}, + {0x001D7D, 0x001D7D}, + {0x001D8E, 0x001D8E}, + {0x001E00, 0x001E9B}, + {0x001E9E, 0x001E9E}, + {0x001EA0, 0x001F15}, + {0x001F18, 0x001F1D}, + {0x001F20, 0x001F45}, + {0x001F48, 0x001F4D}, + {0x001F50, 0x001F57}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F7D}, + {0x001F80, 0x001FB4}, + {0x001FB6, 0x001FBC}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FCC}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FDB}, + {0x001FE0, 0x001FEC}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FFC}, + {0x002126, 0x002126}, + {0x00212A, 0x00212B}, + {0x002132, 0x002132}, + {0x00214E, 0x00214E}, + {0x002160, 0x00217F}, + {0x002183, 0x002184}, + {0x0024B6, 0x0024E9}, + {0x002C00, 0x002C70}, + {0x002C72, 0x002C73}, + {0x002C75, 0x002C76}, + {0x002C7E, 0x002CE3}, + {0x002CEB, 0x002CEE}, + {0x002CF2, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x00A640, 0x00A66D}, + {0x00A680, 0x00A69B}, + {0x00A722, 0x00A72F}, + {0x00A732, 0x00A76F}, + {0x00A779, 0x00A787}, + {0x00A78B, 0x00A78D}, + {0x00A790, 0x00A794}, + {0x00A796, 0x00A7AE}, + {0x00A7B0, 0x00A7CA}, + {0x00A7D0, 0x00A7D1}, + {0x00A7D6, 0x00A7D9}, + {0x00A7F5, 0x00A7F6}, + {0x00AB53, 0x00AB53}, + {0x00AB70, 0x00ABBF}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FF21, 0x00FF3A}, + {0x00FF41, 0x00FF5A}, + {0x010400, 0x01044F}, + {0x0104B0, 0x0104D3}, + {0x0104D8, 0x0104FB}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010C80, 0x010CB2}, + {0x010CC0, 0x010CF2}, + {0x0118A0, 0x0118DF}, + {0x016E40, 0x016E7F}, + {0x01E900, 0x01E943}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_changes_when_casemapped(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_lowercased.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_lowercased.c new file mode 100644 index 0000000..dd7575d --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_lowercased.c @@ -0,0 +1,639 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x7F7FFFFF00000000000000000000000007FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000041, 0x00005A}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000DE}, + {0x000100, 0x000100}, + {0x000102, 0x000102}, + {0x000104, 0x000104}, + {0x000106, 0x000106}, + {0x000108, 0x000108}, + {0x00010A, 0x00010A}, + {0x00010C, 0x00010C}, + {0x00010E, 0x00010E}, + {0x000110, 0x000110}, + {0x000112, 0x000112}, + {0x000114, 0x000114}, + {0x000116, 0x000116}, + {0x000118, 0x000118}, + {0x00011A, 0x00011A}, + {0x00011C, 0x00011C}, + {0x00011E, 0x00011E}, + {0x000120, 0x000120}, + {0x000122, 0x000122}, + {0x000124, 0x000124}, + {0x000126, 0x000126}, + {0x000128, 0x000128}, + {0x00012A, 0x00012A}, + {0x00012C, 0x00012C}, + {0x00012E, 0x00012E}, + {0x000130, 0x000130}, + {0x000132, 0x000132}, + {0x000134, 0x000134}, + {0x000136, 0x000136}, + {0x000139, 0x000139}, + {0x00013B, 0x00013B}, + {0x00013D, 0x00013D}, + {0x00013F, 0x00013F}, + {0x000141, 0x000141}, + {0x000143, 0x000143}, + {0x000145, 0x000145}, + {0x000147, 0x000147}, + {0x00014A, 0x00014A}, + {0x00014C, 0x00014C}, + {0x00014E, 0x00014E}, + {0x000150, 0x000150}, + {0x000152, 0x000152}, + {0x000154, 0x000154}, + {0x000156, 0x000156}, + {0x000158, 0x000158}, + {0x00015A, 0x00015A}, + {0x00015C, 0x00015C}, + {0x00015E, 0x00015E}, + {0x000160, 0x000160}, + {0x000162, 0x000162}, + {0x000164, 0x000164}, + {0x000166, 0x000166}, + {0x000168, 0x000168}, + {0x00016A, 0x00016A}, + {0x00016C, 0x00016C}, + {0x00016E, 0x00016E}, + {0x000170, 0x000170}, + {0x000172, 0x000172}, + {0x000174, 0x000174}, + {0x000176, 0x000176}, + {0x000178, 0x000179}, + {0x00017B, 0x00017B}, + {0x00017D, 0x00017D}, + {0x000181, 0x000182}, + {0x000184, 0x000184}, + {0x000186, 0x000187}, + {0x000189, 0x00018B}, + {0x00018E, 0x000191}, + {0x000193, 0x000194}, + {0x000196, 0x000198}, + {0x00019C, 0x00019D}, + {0x00019F, 0x0001A0}, + {0x0001A2, 0x0001A2}, + {0x0001A4, 0x0001A4}, + {0x0001A6, 0x0001A7}, + {0x0001A9, 0x0001A9}, + {0x0001AC, 0x0001AC}, + {0x0001AE, 0x0001AF}, + {0x0001B1, 0x0001B3}, + {0x0001B5, 0x0001B5}, + {0x0001B7, 0x0001B8}, + {0x0001BC, 0x0001BC}, + {0x0001C4, 0x0001C5}, + {0x0001C7, 0x0001C8}, + {0x0001CA, 0x0001CB}, + {0x0001CD, 0x0001CD}, + {0x0001CF, 0x0001CF}, + {0x0001D1, 0x0001D1}, + {0x0001D3, 0x0001D3}, + {0x0001D5, 0x0001D5}, + {0x0001D7, 0x0001D7}, + {0x0001D9, 0x0001D9}, + {0x0001DB, 0x0001DB}, + {0x0001DE, 0x0001DE}, + {0x0001E0, 0x0001E0}, + {0x0001E2, 0x0001E2}, + {0x0001E4, 0x0001E4}, + {0x0001E6, 0x0001E6}, + {0x0001E8, 0x0001E8}, + {0x0001EA, 0x0001EA}, + {0x0001EC, 0x0001EC}, + {0x0001EE, 0x0001EE}, + {0x0001F1, 0x0001F2}, + {0x0001F4, 0x0001F4}, + {0x0001F6, 0x0001F8}, + {0x0001FA, 0x0001FA}, + {0x0001FC, 0x0001FC}, + {0x0001FE, 0x0001FE}, + {0x000200, 0x000200}, + {0x000202, 0x000202}, + {0x000204, 0x000204}, + {0x000206, 0x000206}, + {0x000208, 0x000208}, + {0x00020A, 0x00020A}, + {0x00020C, 0x00020C}, + {0x00020E, 0x00020E}, + {0x000210, 0x000210}, + {0x000212, 0x000212}, + {0x000214, 0x000214}, + {0x000216, 0x000216}, + {0x000218, 0x000218}, + {0x00021A, 0x00021A}, + {0x00021C, 0x00021C}, + {0x00021E, 0x00021E}, + {0x000220, 0x000220}, + {0x000222, 0x000222}, + {0x000224, 0x000224}, + {0x000226, 0x000226}, + {0x000228, 0x000228}, + {0x00022A, 0x00022A}, + {0x00022C, 0x00022C}, + {0x00022E, 0x00022E}, + {0x000230, 0x000230}, + {0x000232, 0x000232}, + {0x00023A, 0x00023B}, + {0x00023D, 0x00023E}, + {0x000241, 0x000241}, + {0x000243, 0x000246}, + {0x000248, 0x000248}, + {0x00024A, 0x00024A}, + {0x00024C, 0x00024C}, + {0x00024E, 0x00024E}, + {0x000370, 0x000370}, + {0x000372, 0x000372}, + {0x000376, 0x000376}, + {0x00037F, 0x00037F}, + {0x000386, 0x000386}, + {0x000388, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x00038F}, + {0x000391, 0x0003A1}, + {0x0003A3, 0x0003AB}, + {0x0003CF, 0x0003CF}, + {0x0003D8, 0x0003D8}, + {0x0003DA, 0x0003DA}, + {0x0003DC, 0x0003DC}, + {0x0003DE, 0x0003DE}, + {0x0003E0, 0x0003E0}, + {0x0003E2, 0x0003E2}, + {0x0003E4, 0x0003E4}, + {0x0003E6, 0x0003E6}, + {0x0003E8, 0x0003E8}, + {0x0003EA, 0x0003EA}, + {0x0003EC, 0x0003EC}, + {0x0003EE, 0x0003EE}, + {0x0003F4, 0x0003F4}, + {0x0003F7, 0x0003F7}, + {0x0003F9, 0x0003FA}, + {0x0003FD, 0x00042F}, + {0x000460, 0x000460}, + {0x000462, 0x000462}, + {0x000464, 0x000464}, + {0x000466, 0x000466}, + {0x000468, 0x000468}, + {0x00046A, 0x00046A}, + {0x00046C, 0x00046C}, + {0x00046E, 0x00046E}, + {0x000470, 0x000470}, + {0x000472, 0x000472}, + {0x000474, 0x000474}, + {0x000476, 0x000476}, + {0x000478, 0x000478}, + {0x00047A, 0x00047A}, + {0x00047C, 0x00047C}, + {0x00047E, 0x00047E}, + {0x000480, 0x000480}, + {0x00048A, 0x00048A}, + {0x00048C, 0x00048C}, + {0x00048E, 0x00048E}, + {0x000490, 0x000490}, + {0x000492, 0x000492}, + {0x000494, 0x000494}, + {0x000496, 0x000496}, + {0x000498, 0x000498}, + {0x00049A, 0x00049A}, + {0x00049C, 0x00049C}, + {0x00049E, 0x00049E}, + {0x0004A0, 0x0004A0}, + {0x0004A2, 0x0004A2}, + {0x0004A4, 0x0004A4}, + {0x0004A6, 0x0004A6}, + {0x0004A8, 0x0004A8}, + {0x0004AA, 0x0004AA}, + {0x0004AC, 0x0004AC}, + {0x0004AE, 0x0004AE}, + {0x0004B0, 0x0004B0}, + {0x0004B2, 0x0004B2}, + {0x0004B4, 0x0004B4}, + {0x0004B6, 0x0004B6}, + {0x0004B8, 0x0004B8}, + {0x0004BA, 0x0004BA}, + {0x0004BC, 0x0004BC}, + {0x0004BE, 0x0004BE}, + {0x0004C0, 0x0004C1}, + {0x0004C3, 0x0004C3}, + {0x0004C5, 0x0004C5}, + {0x0004C7, 0x0004C7}, + {0x0004C9, 0x0004C9}, + {0x0004CB, 0x0004CB}, + {0x0004CD, 0x0004CD}, + {0x0004D0, 0x0004D0}, + {0x0004D2, 0x0004D2}, + {0x0004D4, 0x0004D4}, + {0x0004D6, 0x0004D6}, + {0x0004D8, 0x0004D8}, + {0x0004DA, 0x0004DA}, + {0x0004DC, 0x0004DC}, + {0x0004DE, 0x0004DE}, + {0x0004E0, 0x0004E0}, + {0x0004E2, 0x0004E2}, + {0x0004E4, 0x0004E4}, + {0x0004E6, 0x0004E6}, + {0x0004E8, 0x0004E8}, + {0x0004EA, 0x0004EA}, + {0x0004EC, 0x0004EC}, + {0x0004EE, 0x0004EE}, + {0x0004F0, 0x0004F0}, + {0x0004F2, 0x0004F2}, + {0x0004F4, 0x0004F4}, + {0x0004F6, 0x0004F6}, + {0x0004F8, 0x0004F8}, + {0x0004FA, 0x0004FA}, + {0x0004FC, 0x0004FC}, + {0x0004FE, 0x0004FE}, + {0x000500, 0x000500}, + {0x000502, 0x000502}, + {0x000504, 0x000504}, + {0x000506, 0x000506}, + {0x000508, 0x000508}, + {0x00050A, 0x00050A}, + {0x00050C, 0x00050C}, + {0x00050E, 0x00050E}, + {0x000510, 0x000510}, + {0x000512, 0x000512}, + {0x000514, 0x000514}, + {0x000516, 0x000516}, + {0x000518, 0x000518}, + {0x00051A, 0x00051A}, + {0x00051C, 0x00051C}, + {0x00051E, 0x00051E}, + {0x000520, 0x000520}, + {0x000522, 0x000522}, + {0x000524, 0x000524}, + {0x000526, 0x000526}, + {0x000528, 0x000528}, + {0x00052A, 0x00052A}, + {0x00052C, 0x00052C}, + {0x00052E, 0x00052E}, + {0x000531, 0x000556}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0013A0, 0x0013F5}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001E00, 0x001E00}, + {0x001E02, 0x001E02}, + {0x001E04, 0x001E04}, + {0x001E06, 0x001E06}, + {0x001E08, 0x001E08}, + {0x001E0A, 0x001E0A}, + {0x001E0C, 0x001E0C}, + {0x001E0E, 0x001E0E}, + {0x001E10, 0x001E10}, + {0x001E12, 0x001E12}, + {0x001E14, 0x001E14}, + {0x001E16, 0x001E16}, + {0x001E18, 0x001E18}, + {0x001E1A, 0x001E1A}, + {0x001E1C, 0x001E1C}, + {0x001E1E, 0x001E1E}, + {0x001E20, 0x001E20}, + {0x001E22, 0x001E22}, + {0x001E24, 0x001E24}, + {0x001E26, 0x001E26}, + {0x001E28, 0x001E28}, + {0x001E2A, 0x001E2A}, + {0x001E2C, 0x001E2C}, + {0x001E2E, 0x001E2E}, + {0x001E30, 0x001E30}, + {0x001E32, 0x001E32}, + {0x001E34, 0x001E34}, + {0x001E36, 0x001E36}, + {0x001E38, 0x001E38}, + {0x001E3A, 0x001E3A}, + {0x001E3C, 0x001E3C}, + {0x001E3E, 0x001E3E}, + {0x001E40, 0x001E40}, + {0x001E42, 0x001E42}, + {0x001E44, 0x001E44}, + {0x001E46, 0x001E46}, + {0x001E48, 0x001E48}, + {0x001E4A, 0x001E4A}, + {0x001E4C, 0x001E4C}, + {0x001E4E, 0x001E4E}, + {0x001E50, 0x001E50}, + {0x001E52, 0x001E52}, + {0x001E54, 0x001E54}, + {0x001E56, 0x001E56}, + {0x001E58, 0x001E58}, + {0x001E5A, 0x001E5A}, + {0x001E5C, 0x001E5C}, + {0x001E5E, 0x001E5E}, + {0x001E60, 0x001E60}, + {0x001E62, 0x001E62}, + {0x001E64, 0x001E64}, + {0x001E66, 0x001E66}, + {0x001E68, 0x001E68}, + {0x001E6A, 0x001E6A}, + {0x001E6C, 0x001E6C}, + {0x001E6E, 0x001E6E}, + {0x001E70, 0x001E70}, + {0x001E72, 0x001E72}, + {0x001E74, 0x001E74}, + {0x001E76, 0x001E76}, + {0x001E78, 0x001E78}, + {0x001E7A, 0x001E7A}, + {0x001E7C, 0x001E7C}, + {0x001E7E, 0x001E7E}, + {0x001E80, 0x001E80}, + {0x001E82, 0x001E82}, + {0x001E84, 0x001E84}, + {0x001E86, 0x001E86}, + {0x001E88, 0x001E88}, + {0x001E8A, 0x001E8A}, + {0x001E8C, 0x001E8C}, + {0x001E8E, 0x001E8E}, + {0x001E90, 0x001E90}, + {0x001E92, 0x001E92}, + {0x001E94, 0x001E94}, + {0x001E9E, 0x001E9E}, + {0x001EA0, 0x001EA0}, + {0x001EA2, 0x001EA2}, + {0x001EA4, 0x001EA4}, + {0x001EA6, 0x001EA6}, + {0x001EA8, 0x001EA8}, + {0x001EAA, 0x001EAA}, + {0x001EAC, 0x001EAC}, + {0x001EAE, 0x001EAE}, + {0x001EB0, 0x001EB0}, + {0x001EB2, 0x001EB2}, + {0x001EB4, 0x001EB4}, + {0x001EB6, 0x001EB6}, + {0x001EB8, 0x001EB8}, + {0x001EBA, 0x001EBA}, + {0x001EBC, 0x001EBC}, + {0x001EBE, 0x001EBE}, + {0x001EC0, 0x001EC0}, + {0x001EC2, 0x001EC2}, + {0x001EC4, 0x001EC4}, + {0x001EC6, 0x001EC6}, + {0x001EC8, 0x001EC8}, + {0x001ECA, 0x001ECA}, + {0x001ECC, 0x001ECC}, + {0x001ECE, 0x001ECE}, + {0x001ED0, 0x001ED0}, + {0x001ED2, 0x001ED2}, + {0x001ED4, 0x001ED4}, + {0x001ED6, 0x001ED6}, + {0x001ED8, 0x001ED8}, + {0x001EDA, 0x001EDA}, + {0x001EDC, 0x001EDC}, + {0x001EDE, 0x001EDE}, + {0x001EE0, 0x001EE0}, + {0x001EE2, 0x001EE2}, + {0x001EE4, 0x001EE4}, + {0x001EE6, 0x001EE6}, + {0x001EE8, 0x001EE8}, + {0x001EEA, 0x001EEA}, + {0x001EEC, 0x001EEC}, + {0x001EEE, 0x001EEE}, + {0x001EF0, 0x001EF0}, + {0x001EF2, 0x001EF2}, + {0x001EF4, 0x001EF4}, + {0x001EF6, 0x001EF6}, + {0x001EF8, 0x001EF8}, + {0x001EFA, 0x001EFA}, + {0x001EFC, 0x001EFC}, + {0x001EFE, 0x001EFE}, + {0x001F08, 0x001F0F}, + {0x001F18, 0x001F1D}, + {0x001F28, 0x001F2F}, + {0x001F38, 0x001F3F}, + {0x001F48, 0x001F4D}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F5F}, + {0x001F68, 0x001F6F}, + {0x001F88, 0x001F8F}, + {0x001F98, 0x001F9F}, + {0x001FA8, 0x001FAF}, + {0x001FB8, 0x001FBC}, + {0x001FC8, 0x001FCC}, + {0x001FD8, 0x001FDB}, + {0x001FE8, 0x001FEC}, + {0x001FF8, 0x001FFC}, + {0x002126, 0x002126}, + {0x00212A, 0x00212B}, + {0x002132, 0x002132}, + {0x002160, 0x00216F}, + {0x002183, 0x002183}, + {0x0024B6, 0x0024CF}, + {0x002C00, 0x002C2F}, + {0x002C60, 0x002C60}, + {0x002C62, 0x002C64}, + {0x002C67, 0x002C67}, + {0x002C69, 0x002C69}, + {0x002C6B, 0x002C6B}, + {0x002C6D, 0x002C70}, + {0x002C72, 0x002C72}, + {0x002C75, 0x002C75}, + {0x002C7E, 0x002C80}, + {0x002C82, 0x002C82}, + {0x002C84, 0x002C84}, + {0x002C86, 0x002C86}, + {0x002C88, 0x002C88}, + {0x002C8A, 0x002C8A}, + {0x002C8C, 0x002C8C}, + {0x002C8E, 0x002C8E}, + {0x002C90, 0x002C90}, + {0x002C92, 0x002C92}, + {0x002C94, 0x002C94}, + {0x002C96, 0x002C96}, + {0x002C98, 0x002C98}, + {0x002C9A, 0x002C9A}, + {0x002C9C, 0x002C9C}, + {0x002C9E, 0x002C9E}, + {0x002CA0, 0x002CA0}, + {0x002CA2, 0x002CA2}, + {0x002CA4, 0x002CA4}, + {0x002CA6, 0x002CA6}, + {0x002CA8, 0x002CA8}, + {0x002CAA, 0x002CAA}, + {0x002CAC, 0x002CAC}, + {0x002CAE, 0x002CAE}, + {0x002CB0, 0x002CB0}, + {0x002CB2, 0x002CB2}, + {0x002CB4, 0x002CB4}, + {0x002CB6, 0x002CB6}, + {0x002CB8, 0x002CB8}, + {0x002CBA, 0x002CBA}, + {0x002CBC, 0x002CBC}, + {0x002CBE, 0x002CBE}, + {0x002CC0, 0x002CC0}, + {0x002CC2, 0x002CC2}, + {0x002CC4, 0x002CC4}, + {0x002CC6, 0x002CC6}, + {0x002CC8, 0x002CC8}, + {0x002CCA, 0x002CCA}, + {0x002CCC, 0x002CCC}, + {0x002CCE, 0x002CCE}, + {0x002CD0, 0x002CD0}, + {0x002CD2, 0x002CD2}, + {0x002CD4, 0x002CD4}, + {0x002CD6, 0x002CD6}, + {0x002CD8, 0x002CD8}, + {0x002CDA, 0x002CDA}, + {0x002CDC, 0x002CDC}, + {0x002CDE, 0x002CDE}, + {0x002CE0, 0x002CE0}, + {0x002CE2, 0x002CE2}, + {0x002CEB, 0x002CEB}, + {0x002CED, 0x002CED}, + {0x002CF2, 0x002CF2}, + {0x00A640, 0x00A640}, + {0x00A642, 0x00A642}, + {0x00A644, 0x00A644}, + {0x00A646, 0x00A646}, + {0x00A648, 0x00A648}, + {0x00A64A, 0x00A64A}, + {0x00A64C, 0x00A64C}, + {0x00A64E, 0x00A64E}, + {0x00A650, 0x00A650}, + {0x00A652, 0x00A652}, + {0x00A654, 0x00A654}, + {0x00A656, 0x00A656}, + {0x00A658, 0x00A658}, + {0x00A65A, 0x00A65A}, + {0x00A65C, 0x00A65C}, + {0x00A65E, 0x00A65E}, + {0x00A660, 0x00A660}, + {0x00A662, 0x00A662}, + {0x00A664, 0x00A664}, + {0x00A666, 0x00A666}, + {0x00A668, 0x00A668}, + {0x00A66A, 0x00A66A}, + {0x00A66C, 0x00A66C}, + {0x00A680, 0x00A680}, + {0x00A682, 0x00A682}, + {0x00A684, 0x00A684}, + {0x00A686, 0x00A686}, + {0x00A688, 0x00A688}, + {0x00A68A, 0x00A68A}, + {0x00A68C, 0x00A68C}, + {0x00A68E, 0x00A68E}, + {0x00A690, 0x00A690}, + {0x00A692, 0x00A692}, + {0x00A694, 0x00A694}, + {0x00A696, 0x00A696}, + {0x00A698, 0x00A698}, + {0x00A69A, 0x00A69A}, + {0x00A722, 0x00A722}, + {0x00A724, 0x00A724}, + {0x00A726, 0x00A726}, + {0x00A728, 0x00A728}, + {0x00A72A, 0x00A72A}, + {0x00A72C, 0x00A72C}, + {0x00A72E, 0x00A72E}, + {0x00A732, 0x00A732}, + {0x00A734, 0x00A734}, + {0x00A736, 0x00A736}, + {0x00A738, 0x00A738}, + {0x00A73A, 0x00A73A}, + {0x00A73C, 0x00A73C}, + {0x00A73E, 0x00A73E}, + {0x00A740, 0x00A740}, + {0x00A742, 0x00A742}, + {0x00A744, 0x00A744}, + {0x00A746, 0x00A746}, + {0x00A748, 0x00A748}, + {0x00A74A, 0x00A74A}, + {0x00A74C, 0x00A74C}, + {0x00A74E, 0x00A74E}, + {0x00A750, 0x00A750}, + {0x00A752, 0x00A752}, + {0x00A754, 0x00A754}, + {0x00A756, 0x00A756}, + {0x00A758, 0x00A758}, + {0x00A75A, 0x00A75A}, + {0x00A75C, 0x00A75C}, + {0x00A75E, 0x00A75E}, + {0x00A760, 0x00A760}, + {0x00A762, 0x00A762}, + {0x00A764, 0x00A764}, + {0x00A766, 0x00A766}, + {0x00A768, 0x00A768}, + {0x00A76A, 0x00A76A}, + {0x00A76C, 0x00A76C}, + {0x00A76E, 0x00A76E}, + {0x00A779, 0x00A779}, + {0x00A77B, 0x00A77B}, + {0x00A77D, 0x00A77E}, + {0x00A780, 0x00A780}, + {0x00A782, 0x00A782}, + {0x00A784, 0x00A784}, + {0x00A786, 0x00A786}, + {0x00A78B, 0x00A78B}, + {0x00A78D, 0x00A78D}, + {0x00A790, 0x00A790}, + {0x00A792, 0x00A792}, + {0x00A796, 0x00A796}, + {0x00A798, 0x00A798}, + {0x00A79A, 0x00A79A}, + {0x00A79C, 0x00A79C}, + {0x00A79E, 0x00A79E}, + {0x00A7A0, 0x00A7A0}, + {0x00A7A2, 0x00A7A2}, + {0x00A7A4, 0x00A7A4}, + {0x00A7A6, 0x00A7A6}, + {0x00A7A8, 0x00A7A8}, + {0x00A7AA, 0x00A7AE}, + {0x00A7B0, 0x00A7B4}, + {0x00A7B6, 0x00A7B6}, + {0x00A7B8, 0x00A7B8}, + {0x00A7BA, 0x00A7BA}, + {0x00A7BC, 0x00A7BC}, + {0x00A7BE, 0x00A7BE}, + {0x00A7C0, 0x00A7C0}, + {0x00A7C2, 0x00A7C2}, + {0x00A7C4, 0x00A7C7}, + {0x00A7C9, 0x00A7C9}, + {0x00A7D0, 0x00A7D0}, + {0x00A7D6, 0x00A7D6}, + {0x00A7D8, 0x00A7D8}, + {0x00A7F5, 0x00A7F5}, + {0x00FF21, 0x00FF3A}, + {0x010400, 0x010427}, + {0x0104B0, 0x0104D3}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010C80, 0x010CB2}, + {0x0118A0, 0x0118BF}, + {0x016E40, 0x016E5F}, + {0x01E900, 0x01E921}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_changes_when_lowercased(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_titlecased.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_titlecased.c new file mode 100644 index 0000000..c136a0d --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_titlecased.c @@ -0,0 +1,656 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFF80000000002000000000000007FFFFFE000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000061, 0x00007A}, + {0x0000B5, 0x0000B5}, + {0x0000DF, 0x0000F6}, + {0x0000F8, 0x0000FF}, + {0x000101, 0x000101}, + {0x000103, 0x000103}, + {0x000105, 0x000105}, + {0x000107, 0x000107}, + {0x000109, 0x000109}, + {0x00010B, 0x00010B}, + {0x00010D, 0x00010D}, + {0x00010F, 0x00010F}, + {0x000111, 0x000111}, + {0x000113, 0x000113}, + {0x000115, 0x000115}, + {0x000117, 0x000117}, + {0x000119, 0x000119}, + {0x00011B, 0x00011B}, + {0x00011D, 0x00011D}, + {0x00011F, 0x00011F}, + {0x000121, 0x000121}, + {0x000123, 0x000123}, + {0x000125, 0x000125}, + {0x000127, 0x000127}, + {0x000129, 0x000129}, + {0x00012B, 0x00012B}, + {0x00012D, 0x00012D}, + {0x00012F, 0x00012F}, + {0x000131, 0x000131}, + {0x000133, 0x000133}, + {0x000135, 0x000135}, + {0x000137, 0x000137}, + {0x00013A, 0x00013A}, + {0x00013C, 0x00013C}, + {0x00013E, 0x00013E}, + {0x000140, 0x000140}, + {0x000142, 0x000142}, + {0x000144, 0x000144}, + {0x000146, 0x000146}, + {0x000148, 0x000149}, + {0x00014B, 0x00014B}, + {0x00014D, 0x00014D}, + {0x00014F, 0x00014F}, + {0x000151, 0x000151}, + {0x000153, 0x000153}, + {0x000155, 0x000155}, + {0x000157, 0x000157}, + {0x000159, 0x000159}, + {0x00015B, 0x00015B}, + {0x00015D, 0x00015D}, + {0x00015F, 0x00015F}, + {0x000161, 0x000161}, + {0x000163, 0x000163}, + {0x000165, 0x000165}, + {0x000167, 0x000167}, + {0x000169, 0x000169}, + {0x00016B, 0x00016B}, + {0x00016D, 0x00016D}, + {0x00016F, 0x00016F}, + {0x000171, 0x000171}, + {0x000173, 0x000173}, + {0x000175, 0x000175}, + {0x000177, 0x000177}, + {0x00017A, 0x00017A}, + {0x00017C, 0x00017C}, + {0x00017E, 0x000180}, + {0x000183, 0x000183}, + {0x000185, 0x000185}, + {0x000188, 0x000188}, + {0x00018C, 0x00018C}, + {0x000192, 0x000192}, + {0x000195, 0x000195}, + {0x000199, 0x00019A}, + {0x00019E, 0x00019E}, + {0x0001A1, 0x0001A1}, + {0x0001A3, 0x0001A3}, + {0x0001A5, 0x0001A5}, + {0x0001A8, 0x0001A8}, + {0x0001AD, 0x0001AD}, + {0x0001B0, 0x0001B0}, + {0x0001B4, 0x0001B4}, + {0x0001B6, 0x0001B6}, + {0x0001B9, 0x0001B9}, + {0x0001BD, 0x0001BD}, + {0x0001BF, 0x0001BF}, + {0x0001C4, 0x0001C4}, + {0x0001C6, 0x0001C7}, + {0x0001C9, 0x0001CA}, + {0x0001CC, 0x0001CC}, + {0x0001CE, 0x0001CE}, + {0x0001D0, 0x0001D0}, + {0x0001D2, 0x0001D2}, + {0x0001D4, 0x0001D4}, + {0x0001D6, 0x0001D6}, + {0x0001D8, 0x0001D8}, + {0x0001DA, 0x0001DA}, + {0x0001DC, 0x0001DD}, + {0x0001DF, 0x0001DF}, + {0x0001E1, 0x0001E1}, + {0x0001E3, 0x0001E3}, + {0x0001E5, 0x0001E5}, + {0x0001E7, 0x0001E7}, + {0x0001E9, 0x0001E9}, + {0x0001EB, 0x0001EB}, + {0x0001ED, 0x0001ED}, + {0x0001EF, 0x0001F1}, + {0x0001F3, 0x0001F3}, + {0x0001F5, 0x0001F5}, + {0x0001F9, 0x0001F9}, + {0x0001FB, 0x0001FB}, + {0x0001FD, 0x0001FD}, + {0x0001FF, 0x0001FF}, + {0x000201, 0x000201}, + {0x000203, 0x000203}, + {0x000205, 0x000205}, + {0x000207, 0x000207}, + {0x000209, 0x000209}, + {0x00020B, 0x00020B}, + {0x00020D, 0x00020D}, + {0x00020F, 0x00020F}, + {0x000211, 0x000211}, + {0x000213, 0x000213}, + {0x000215, 0x000215}, + {0x000217, 0x000217}, + {0x000219, 0x000219}, + {0x00021B, 0x00021B}, + {0x00021D, 0x00021D}, + {0x00021F, 0x00021F}, + {0x000223, 0x000223}, + {0x000225, 0x000225}, + {0x000227, 0x000227}, + {0x000229, 0x000229}, + {0x00022B, 0x00022B}, + {0x00022D, 0x00022D}, + {0x00022F, 0x00022F}, + {0x000231, 0x000231}, + {0x000233, 0x000233}, + {0x00023C, 0x00023C}, + {0x00023F, 0x000240}, + {0x000242, 0x000242}, + {0x000247, 0x000247}, + {0x000249, 0x000249}, + {0x00024B, 0x00024B}, + {0x00024D, 0x00024D}, + {0x00024F, 0x000254}, + {0x000256, 0x000257}, + {0x000259, 0x000259}, + {0x00025B, 0x00025C}, + {0x000260, 0x000261}, + {0x000263, 0x000263}, + {0x000265, 0x000266}, + {0x000268, 0x00026C}, + {0x00026F, 0x00026F}, + {0x000271, 0x000272}, + {0x000275, 0x000275}, + {0x00027D, 0x00027D}, + {0x000280, 0x000280}, + {0x000282, 0x000283}, + {0x000287, 0x00028C}, + {0x000292, 0x000292}, + {0x00029D, 0x00029E}, + {0x000345, 0x000345}, + {0x000371, 0x000371}, + {0x000373, 0x000373}, + {0x000377, 0x000377}, + {0x00037B, 0x00037D}, + {0x000390, 0x000390}, + {0x0003AC, 0x0003CE}, + {0x0003D0, 0x0003D1}, + {0x0003D5, 0x0003D7}, + {0x0003D9, 0x0003D9}, + {0x0003DB, 0x0003DB}, + {0x0003DD, 0x0003DD}, + {0x0003DF, 0x0003DF}, + {0x0003E1, 0x0003E1}, + {0x0003E3, 0x0003E3}, + {0x0003E5, 0x0003E5}, + {0x0003E7, 0x0003E7}, + {0x0003E9, 0x0003E9}, + {0x0003EB, 0x0003EB}, + {0x0003ED, 0x0003ED}, + {0x0003EF, 0x0003F3}, + {0x0003F5, 0x0003F5}, + {0x0003F8, 0x0003F8}, + {0x0003FB, 0x0003FB}, + {0x000430, 0x00045F}, + {0x000461, 0x000461}, + {0x000463, 0x000463}, + {0x000465, 0x000465}, + {0x000467, 0x000467}, + {0x000469, 0x000469}, + {0x00046B, 0x00046B}, + {0x00046D, 0x00046D}, + {0x00046F, 0x00046F}, + {0x000471, 0x000471}, + {0x000473, 0x000473}, + {0x000475, 0x000475}, + {0x000477, 0x000477}, + {0x000479, 0x000479}, + {0x00047B, 0x00047B}, + {0x00047D, 0x00047D}, + {0x00047F, 0x00047F}, + {0x000481, 0x000481}, + {0x00048B, 0x00048B}, + {0x00048D, 0x00048D}, + {0x00048F, 0x00048F}, + {0x000491, 0x000491}, + {0x000493, 0x000493}, + {0x000495, 0x000495}, + {0x000497, 0x000497}, + {0x000499, 0x000499}, + {0x00049B, 0x00049B}, + {0x00049D, 0x00049D}, + {0x00049F, 0x00049F}, + {0x0004A1, 0x0004A1}, + {0x0004A3, 0x0004A3}, + {0x0004A5, 0x0004A5}, + {0x0004A7, 0x0004A7}, + {0x0004A9, 0x0004A9}, + {0x0004AB, 0x0004AB}, + {0x0004AD, 0x0004AD}, + {0x0004AF, 0x0004AF}, + {0x0004B1, 0x0004B1}, + {0x0004B3, 0x0004B3}, + {0x0004B5, 0x0004B5}, + {0x0004B7, 0x0004B7}, + {0x0004B9, 0x0004B9}, + {0x0004BB, 0x0004BB}, + {0x0004BD, 0x0004BD}, + {0x0004BF, 0x0004BF}, + {0x0004C2, 0x0004C2}, + {0x0004C4, 0x0004C4}, + {0x0004C6, 0x0004C6}, + {0x0004C8, 0x0004C8}, + {0x0004CA, 0x0004CA}, + {0x0004CC, 0x0004CC}, + {0x0004CE, 0x0004CF}, + {0x0004D1, 0x0004D1}, + {0x0004D3, 0x0004D3}, + {0x0004D5, 0x0004D5}, + {0x0004D7, 0x0004D7}, + {0x0004D9, 0x0004D9}, + {0x0004DB, 0x0004DB}, + {0x0004DD, 0x0004DD}, + {0x0004DF, 0x0004DF}, + {0x0004E1, 0x0004E1}, + {0x0004E3, 0x0004E3}, + {0x0004E5, 0x0004E5}, + {0x0004E7, 0x0004E7}, + {0x0004E9, 0x0004E9}, + {0x0004EB, 0x0004EB}, + {0x0004ED, 0x0004ED}, + {0x0004EF, 0x0004EF}, + {0x0004F1, 0x0004F1}, + {0x0004F3, 0x0004F3}, + {0x0004F5, 0x0004F5}, + {0x0004F7, 0x0004F7}, + {0x0004F9, 0x0004F9}, + {0x0004FB, 0x0004FB}, + {0x0004FD, 0x0004FD}, + {0x0004FF, 0x0004FF}, + {0x000501, 0x000501}, + {0x000503, 0x000503}, + {0x000505, 0x000505}, + {0x000507, 0x000507}, + {0x000509, 0x000509}, + {0x00050B, 0x00050B}, + {0x00050D, 0x00050D}, + {0x00050F, 0x00050F}, + {0x000511, 0x000511}, + {0x000513, 0x000513}, + {0x000515, 0x000515}, + {0x000517, 0x000517}, + {0x000519, 0x000519}, + {0x00051B, 0x00051B}, + {0x00051D, 0x00051D}, + {0x00051F, 0x00051F}, + {0x000521, 0x000521}, + {0x000523, 0x000523}, + {0x000525, 0x000525}, + {0x000527, 0x000527}, + {0x000529, 0x000529}, + {0x00052B, 0x00052B}, + {0x00052D, 0x00052D}, + {0x00052F, 0x00052F}, + {0x000561, 0x000587}, + {0x0013F8, 0x0013FD}, + {0x001C80, 0x001C88}, + {0x001D79, 0x001D79}, + {0x001D7D, 0x001D7D}, + {0x001D8E, 0x001D8E}, + {0x001E01, 0x001E01}, + {0x001E03, 0x001E03}, + {0x001E05, 0x001E05}, + {0x001E07, 0x001E07}, + {0x001E09, 0x001E09}, + {0x001E0B, 0x001E0B}, + {0x001E0D, 0x001E0D}, + {0x001E0F, 0x001E0F}, + {0x001E11, 0x001E11}, + {0x001E13, 0x001E13}, + {0x001E15, 0x001E15}, + {0x001E17, 0x001E17}, + {0x001E19, 0x001E19}, + {0x001E1B, 0x001E1B}, + {0x001E1D, 0x001E1D}, + {0x001E1F, 0x001E1F}, + {0x001E21, 0x001E21}, + {0x001E23, 0x001E23}, + {0x001E25, 0x001E25}, + {0x001E27, 0x001E27}, + {0x001E29, 0x001E29}, + {0x001E2B, 0x001E2B}, + {0x001E2D, 0x001E2D}, + {0x001E2F, 0x001E2F}, + {0x001E31, 0x001E31}, + {0x001E33, 0x001E33}, + {0x001E35, 0x001E35}, + {0x001E37, 0x001E37}, + {0x001E39, 0x001E39}, + {0x001E3B, 0x001E3B}, + {0x001E3D, 0x001E3D}, + {0x001E3F, 0x001E3F}, + {0x001E41, 0x001E41}, + {0x001E43, 0x001E43}, + {0x001E45, 0x001E45}, + {0x001E47, 0x001E47}, + {0x001E49, 0x001E49}, + {0x001E4B, 0x001E4B}, + {0x001E4D, 0x001E4D}, + {0x001E4F, 0x001E4F}, + {0x001E51, 0x001E51}, + {0x001E53, 0x001E53}, + {0x001E55, 0x001E55}, + {0x001E57, 0x001E57}, + {0x001E59, 0x001E59}, + {0x001E5B, 0x001E5B}, + {0x001E5D, 0x001E5D}, + {0x001E5F, 0x001E5F}, + {0x001E61, 0x001E61}, + {0x001E63, 0x001E63}, + {0x001E65, 0x001E65}, + {0x001E67, 0x001E67}, + {0x001E69, 0x001E69}, + {0x001E6B, 0x001E6B}, + {0x001E6D, 0x001E6D}, + {0x001E6F, 0x001E6F}, + {0x001E71, 0x001E71}, + {0x001E73, 0x001E73}, + {0x001E75, 0x001E75}, + {0x001E77, 0x001E77}, + {0x001E79, 0x001E79}, + {0x001E7B, 0x001E7B}, + {0x001E7D, 0x001E7D}, + {0x001E7F, 0x001E7F}, + {0x001E81, 0x001E81}, + {0x001E83, 0x001E83}, + {0x001E85, 0x001E85}, + {0x001E87, 0x001E87}, + {0x001E89, 0x001E89}, + {0x001E8B, 0x001E8B}, + {0x001E8D, 0x001E8D}, + {0x001E8F, 0x001E8F}, + {0x001E91, 0x001E91}, + {0x001E93, 0x001E93}, + {0x001E95, 0x001E9B}, + {0x001EA1, 0x001EA1}, + {0x001EA3, 0x001EA3}, + {0x001EA5, 0x001EA5}, + {0x001EA7, 0x001EA7}, + {0x001EA9, 0x001EA9}, + {0x001EAB, 0x001EAB}, + {0x001EAD, 0x001EAD}, + {0x001EAF, 0x001EAF}, + {0x001EB1, 0x001EB1}, + {0x001EB3, 0x001EB3}, + {0x001EB5, 0x001EB5}, + {0x001EB7, 0x001EB7}, + {0x001EB9, 0x001EB9}, + {0x001EBB, 0x001EBB}, + {0x001EBD, 0x001EBD}, + {0x001EBF, 0x001EBF}, + {0x001EC1, 0x001EC1}, + {0x001EC3, 0x001EC3}, + {0x001EC5, 0x001EC5}, + {0x001EC7, 0x001EC7}, + {0x001EC9, 0x001EC9}, + {0x001ECB, 0x001ECB}, + {0x001ECD, 0x001ECD}, + {0x001ECF, 0x001ECF}, + {0x001ED1, 0x001ED1}, + {0x001ED3, 0x001ED3}, + {0x001ED5, 0x001ED5}, + {0x001ED7, 0x001ED7}, + {0x001ED9, 0x001ED9}, + {0x001EDB, 0x001EDB}, + {0x001EDD, 0x001EDD}, + {0x001EDF, 0x001EDF}, + {0x001EE1, 0x001EE1}, + {0x001EE3, 0x001EE3}, + {0x001EE5, 0x001EE5}, + {0x001EE7, 0x001EE7}, + {0x001EE9, 0x001EE9}, + {0x001EEB, 0x001EEB}, + {0x001EED, 0x001EED}, + {0x001EEF, 0x001EEF}, + {0x001EF1, 0x001EF1}, + {0x001EF3, 0x001EF3}, + {0x001EF5, 0x001EF5}, + {0x001EF7, 0x001EF7}, + {0x001EF9, 0x001EF9}, + {0x001EFB, 0x001EFB}, + {0x001EFD, 0x001EFD}, + {0x001EFF, 0x001F07}, + {0x001F10, 0x001F15}, + {0x001F20, 0x001F27}, + {0x001F30, 0x001F37}, + {0x001F40, 0x001F45}, + {0x001F50, 0x001F57}, + {0x001F60, 0x001F67}, + {0x001F70, 0x001F7D}, + {0x001F80, 0x001F87}, + {0x001F90, 0x001F97}, + {0x001FA0, 0x001FA7}, + {0x001FB0, 0x001FB4}, + {0x001FB6, 0x001FB7}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FC7}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FD7}, + {0x001FE0, 0x001FE7}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FF7}, + {0x00214E, 0x00214E}, + {0x002170, 0x00217F}, + {0x002184, 0x002184}, + {0x0024D0, 0x0024E9}, + {0x002C30, 0x002C5F}, + {0x002C61, 0x002C61}, + {0x002C65, 0x002C66}, + {0x002C68, 0x002C68}, + {0x002C6A, 0x002C6A}, + {0x002C6C, 0x002C6C}, + {0x002C73, 0x002C73}, + {0x002C76, 0x002C76}, + {0x002C81, 0x002C81}, + {0x002C83, 0x002C83}, + {0x002C85, 0x002C85}, + {0x002C87, 0x002C87}, + {0x002C89, 0x002C89}, + {0x002C8B, 0x002C8B}, + {0x002C8D, 0x002C8D}, + {0x002C8F, 0x002C8F}, + {0x002C91, 0x002C91}, + {0x002C93, 0x002C93}, + {0x002C95, 0x002C95}, + {0x002C97, 0x002C97}, + {0x002C99, 0x002C99}, + {0x002C9B, 0x002C9B}, + {0x002C9D, 0x002C9D}, + {0x002C9F, 0x002C9F}, + {0x002CA1, 0x002CA1}, + {0x002CA3, 0x002CA3}, + {0x002CA5, 0x002CA5}, + {0x002CA7, 0x002CA7}, + {0x002CA9, 0x002CA9}, + {0x002CAB, 0x002CAB}, + {0x002CAD, 0x002CAD}, + {0x002CAF, 0x002CAF}, + {0x002CB1, 0x002CB1}, + {0x002CB3, 0x002CB3}, + {0x002CB5, 0x002CB5}, + {0x002CB7, 0x002CB7}, + {0x002CB9, 0x002CB9}, + {0x002CBB, 0x002CBB}, + {0x002CBD, 0x002CBD}, + {0x002CBF, 0x002CBF}, + {0x002CC1, 0x002CC1}, + {0x002CC3, 0x002CC3}, + {0x002CC5, 0x002CC5}, + {0x002CC7, 0x002CC7}, + {0x002CC9, 0x002CC9}, + {0x002CCB, 0x002CCB}, + {0x002CCD, 0x002CCD}, + {0x002CCF, 0x002CCF}, + {0x002CD1, 0x002CD1}, + {0x002CD3, 0x002CD3}, + {0x002CD5, 0x002CD5}, + {0x002CD7, 0x002CD7}, + {0x002CD9, 0x002CD9}, + {0x002CDB, 0x002CDB}, + {0x002CDD, 0x002CDD}, + {0x002CDF, 0x002CDF}, + {0x002CE1, 0x002CE1}, + {0x002CE3, 0x002CE3}, + {0x002CEC, 0x002CEC}, + {0x002CEE, 0x002CEE}, + {0x002CF3, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x00A641, 0x00A641}, + {0x00A643, 0x00A643}, + {0x00A645, 0x00A645}, + {0x00A647, 0x00A647}, + {0x00A649, 0x00A649}, + {0x00A64B, 0x00A64B}, + {0x00A64D, 0x00A64D}, + {0x00A64F, 0x00A64F}, + {0x00A651, 0x00A651}, + {0x00A653, 0x00A653}, + {0x00A655, 0x00A655}, + {0x00A657, 0x00A657}, + {0x00A659, 0x00A659}, + {0x00A65B, 0x00A65B}, + {0x00A65D, 0x00A65D}, + {0x00A65F, 0x00A65F}, + {0x00A661, 0x00A661}, + {0x00A663, 0x00A663}, + {0x00A665, 0x00A665}, + {0x00A667, 0x00A667}, + {0x00A669, 0x00A669}, + {0x00A66B, 0x00A66B}, + {0x00A66D, 0x00A66D}, + {0x00A681, 0x00A681}, + {0x00A683, 0x00A683}, + {0x00A685, 0x00A685}, + {0x00A687, 0x00A687}, + {0x00A689, 0x00A689}, + {0x00A68B, 0x00A68B}, + {0x00A68D, 0x00A68D}, + {0x00A68F, 0x00A68F}, + {0x00A691, 0x00A691}, + {0x00A693, 0x00A693}, + {0x00A695, 0x00A695}, + {0x00A697, 0x00A697}, + {0x00A699, 0x00A699}, + {0x00A69B, 0x00A69B}, + {0x00A723, 0x00A723}, + {0x00A725, 0x00A725}, + {0x00A727, 0x00A727}, + {0x00A729, 0x00A729}, + {0x00A72B, 0x00A72B}, + {0x00A72D, 0x00A72D}, + {0x00A72F, 0x00A72F}, + {0x00A733, 0x00A733}, + {0x00A735, 0x00A735}, + {0x00A737, 0x00A737}, + {0x00A739, 0x00A739}, + {0x00A73B, 0x00A73B}, + {0x00A73D, 0x00A73D}, + {0x00A73F, 0x00A73F}, + {0x00A741, 0x00A741}, + {0x00A743, 0x00A743}, + {0x00A745, 0x00A745}, + {0x00A747, 0x00A747}, + {0x00A749, 0x00A749}, + {0x00A74B, 0x00A74B}, + {0x00A74D, 0x00A74D}, + {0x00A74F, 0x00A74F}, + {0x00A751, 0x00A751}, + {0x00A753, 0x00A753}, + {0x00A755, 0x00A755}, + {0x00A757, 0x00A757}, + {0x00A759, 0x00A759}, + {0x00A75B, 0x00A75B}, + {0x00A75D, 0x00A75D}, + {0x00A75F, 0x00A75F}, + {0x00A761, 0x00A761}, + {0x00A763, 0x00A763}, + {0x00A765, 0x00A765}, + {0x00A767, 0x00A767}, + {0x00A769, 0x00A769}, + {0x00A76B, 0x00A76B}, + {0x00A76D, 0x00A76D}, + {0x00A76F, 0x00A76F}, + {0x00A77A, 0x00A77A}, + {0x00A77C, 0x00A77C}, + {0x00A77F, 0x00A77F}, + {0x00A781, 0x00A781}, + {0x00A783, 0x00A783}, + {0x00A785, 0x00A785}, + {0x00A787, 0x00A787}, + {0x00A78C, 0x00A78C}, + {0x00A791, 0x00A791}, + {0x00A793, 0x00A794}, + {0x00A797, 0x00A797}, + {0x00A799, 0x00A799}, + {0x00A79B, 0x00A79B}, + {0x00A79D, 0x00A79D}, + {0x00A79F, 0x00A79F}, + {0x00A7A1, 0x00A7A1}, + {0x00A7A3, 0x00A7A3}, + {0x00A7A5, 0x00A7A5}, + {0x00A7A7, 0x00A7A7}, + {0x00A7A9, 0x00A7A9}, + {0x00A7B5, 0x00A7B5}, + {0x00A7B7, 0x00A7B7}, + {0x00A7B9, 0x00A7B9}, + {0x00A7BB, 0x00A7BB}, + {0x00A7BD, 0x00A7BD}, + {0x00A7BF, 0x00A7BF}, + {0x00A7C1, 0x00A7C1}, + {0x00A7C3, 0x00A7C3}, + {0x00A7C8, 0x00A7C8}, + {0x00A7CA, 0x00A7CA}, + {0x00A7D1, 0x00A7D1}, + {0x00A7D7, 0x00A7D7}, + {0x00A7D9, 0x00A7D9}, + {0x00A7F6, 0x00A7F6}, + {0x00AB53, 0x00AB53}, + {0x00AB70, 0x00ABBF}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FF41, 0x00FF5A}, + {0x010428, 0x01044F}, + {0x0104D8, 0x0104FB}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010CC0, 0x010CF2}, + {0x0118C0, 0x0118DF}, + {0x016E60, 0x016E7F}, + {0x01E922, 0x01E943}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_changes_when_titlecased(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_uppercased.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_uppercased.c new file mode 100644 index 0000000..993cbca --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_uppercased.c @@ -0,0 +1,657 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFF80000000002000000000000007FFFFFE000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000061, 0x00007A}, + {0x0000B5, 0x0000B5}, + {0x0000DF, 0x0000F6}, + {0x0000F8, 0x0000FF}, + {0x000101, 0x000101}, + {0x000103, 0x000103}, + {0x000105, 0x000105}, + {0x000107, 0x000107}, + {0x000109, 0x000109}, + {0x00010B, 0x00010B}, + {0x00010D, 0x00010D}, + {0x00010F, 0x00010F}, + {0x000111, 0x000111}, + {0x000113, 0x000113}, + {0x000115, 0x000115}, + {0x000117, 0x000117}, + {0x000119, 0x000119}, + {0x00011B, 0x00011B}, + {0x00011D, 0x00011D}, + {0x00011F, 0x00011F}, + {0x000121, 0x000121}, + {0x000123, 0x000123}, + {0x000125, 0x000125}, + {0x000127, 0x000127}, + {0x000129, 0x000129}, + {0x00012B, 0x00012B}, + {0x00012D, 0x00012D}, + {0x00012F, 0x00012F}, + {0x000131, 0x000131}, + {0x000133, 0x000133}, + {0x000135, 0x000135}, + {0x000137, 0x000137}, + {0x00013A, 0x00013A}, + {0x00013C, 0x00013C}, + {0x00013E, 0x00013E}, + {0x000140, 0x000140}, + {0x000142, 0x000142}, + {0x000144, 0x000144}, + {0x000146, 0x000146}, + {0x000148, 0x000149}, + {0x00014B, 0x00014B}, + {0x00014D, 0x00014D}, + {0x00014F, 0x00014F}, + {0x000151, 0x000151}, + {0x000153, 0x000153}, + {0x000155, 0x000155}, + {0x000157, 0x000157}, + {0x000159, 0x000159}, + {0x00015B, 0x00015B}, + {0x00015D, 0x00015D}, + {0x00015F, 0x00015F}, + {0x000161, 0x000161}, + {0x000163, 0x000163}, + {0x000165, 0x000165}, + {0x000167, 0x000167}, + {0x000169, 0x000169}, + {0x00016B, 0x00016B}, + {0x00016D, 0x00016D}, + {0x00016F, 0x00016F}, + {0x000171, 0x000171}, + {0x000173, 0x000173}, + {0x000175, 0x000175}, + {0x000177, 0x000177}, + {0x00017A, 0x00017A}, + {0x00017C, 0x00017C}, + {0x00017E, 0x000180}, + {0x000183, 0x000183}, + {0x000185, 0x000185}, + {0x000188, 0x000188}, + {0x00018C, 0x00018C}, + {0x000192, 0x000192}, + {0x000195, 0x000195}, + {0x000199, 0x00019A}, + {0x00019E, 0x00019E}, + {0x0001A1, 0x0001A1}, + {0x0001A3, 0x0001A3}, + {0x0001A5, 0x0001A5}, + {0x0001A8, 0x0001A8}, + {0x0001AD, 0x0001AD}, + {0x0001B0, 0x0001B0}, + {0x0001B4, 0x0001B4}, + {0x0001B6, 0x0001B6}, + {0x0001B9, 0x0001B9}, + {0x0001BD, 0x0001BD}, + {0x0001BF, 0x0001BF}, + {0x0001C5, 0x0001C6}, + {0x0001C8, 0x0001C9}, + {0x0001CB, 0x0001CC}, + {0x0001CE, 0x0001CE}, + {0x0001D0, 0x0001D0}, + {0x0001D2, 0x0001D2}, + {0x0001D4, 0x0001D4}, + {0x0001D6, 0x0001D6}, + {0x0001D8, 0x0001D8}, + {0x0001DA, 0x0001DA}, + {0x0001DC, 0x0001DD}, + {0x0001DF, 0x0001DF}, + {0x0001E1, 0x0001E1}, + {0x0001E3, 0x0001E3}, + {0x0001E5, 0x0001E5}, + {0x0001E7, 0x0001E7}, + {0x0001E9, 0x0001E9}, + {0x0001EB, 0x0001EB}, + {0x0001ED, 0x0001ED}, + {0x0001EF, 0x0001F0}, + {0x0001F2, 0x0001F3}, + {0x0001F5, 0x0001F5}, + {0x0001F9, 0x0001F9}, + {0x0001FB, 0x0001FB}, + {0x0001FD, 0x0001FD}, + {0x0001FF, 0x0001FF}, + {0x000201, 0x000201}, + {0x000203, 0x000203}, + {0x000205, 0x000205}, + {0x000207, 0x000207}, + {0x000209, 0x000209}, + {0x00020B, 0x00020B}, + {0x00020D, 0x00020D}, + {0x00020F, 0x00020F}, + {0x000211, 0x000211}, + {0x000213, 0x000213}, + {0x000215, 0x000215}, + {0x000217, 0x000217}, + {0x000219, 0x000219}, + {0x00021B, 0x00021B}, + {0x00021D, 0x00021D}, + {0x00021F, 0x00021F}, + {0x000223, 0x000223}, + {0x000225, 0x000225}, + {0x000227, 0x000227}, + {0x000229, 0x000229}, + {0x00022B, 0x00022B}, + {0x00022D, 0x00022D}, + {0x00022F, 0x00022F}, + {0x000231, 0x000231}, + {0x000233, 0x000233}, + {0x00023C, 0x00023C}, + {0x00023F, 0x000240}, + {0x000242, 0x000242}, + {0x000247, 0x000247}, + {0x000249, 0x000249}, + {0x00024B, 0x00024B}, + {0x00024D, 0x00024D}, + {0x00024F, 0x000254}, + {0x000256, 0x000257}, + {0x000259, 0x000259}, + {0x00025B, 0x00025C}, + {0x000260, 0x000261}, + {0x000263, 0x000263}, + {0x000265, 0x000266}, + {0x000268, 0x00026C}, + {0x00026F, 0x00026F}, + {0x000271, 0x000272}, + {0x000275, 0x000275}, + {0x00027D, 0x00027D}, + {0x000280, 0x000280}, + {0x000282, 0x000283}, + {0x000287, 0x00028C}, + {0x000292, 0x000292}, + {0x00029D, 0x00029E}, + {0x000345, 0x000345}, + {0x000371, 0x000371}, + {0x000373, 0x000373}, + {0x000377, 0x000377}, + {0x00037B, 0x00037D}, + {0x000390, 0x000390}, + {0x0003AC, 0x0003CE}, + {0x0003D0, 0x0003D1}, + {0x0003D5, 0x0003D7}, + {0x0003D9, 0x0003D9}, + {0x0003DB, 0x0003DB}, + {0x0003DD, 0x0003DD}, + {0x0003DF, 0x0003DF}, + {0x0003E1, 0x0003E1}, + {0x0003E3, 0x0003E3}, + {0x0003E5, 0x0003E5}, + {0x0003E7, 0x0003E7}, + {0x0003E9, 0x0003E9}, + {0x0003EB, 0x0003EB}, + {0x0003ED, 0x0003ED}, + {0x0003EF, 0x0003F3}, + {0x0003F5, 0x0003F5}, + {0x0003F8, 0x0003F8}, + {0x0003FB, 0x0003FB}, + {0x000430, 0x00045F}, + {0x000461, 0x000461}, + {0x000463, 0x000463}, + {0x000465, 0x000465}, + {0x000467, 0x000467}, + {0x000469, 0x000469}, + {0x00046B, 0x00046B}, + {0x00046D, 0x00046D}, + {0x00046F, 0x00046F}, + {0x000471, 0x000471}, + {0x000473, 0x000473}, + {0x000475, 0x000475}, + {0x000477, 0x000477}, + {0x000479, 0x000479}, + {0x00047B, 0x00047B}, + {0x00047D, 0x00047D}, + {0x00047F, 0x00047F}, + {0x000481, 0x000481}, + {0x00048B, 0x00048B}, + {0x00048D, 0x00048D}, + {0x00048F, 0x00048F}, + {0x000491, 0x000491}, + {0x000493, 0x000493}, + {0x000495, 0x000495}, + {0x000497, 0x000497}, + {0x000499, 0x000499}, + {0x00049B, 0x00049B}, + {0x00049D, 0x00049D}, + {0x00049F, 0x00049F}, + {0x0004A1, 0x0004A1}, + {0x0004A3, 0x0004A3}, + {0x0004A5, 0x0004A5}, + {0x0004A7, 0x0004A7}, + {0x0004A9, 0x0004A9}, + {0x0004AB, 0x0004AB}, + {0x0004AD, 0x0004AD}, + {0x0004AF, 0x0004AF}, + {0x0004B1, 0x0004B1}, + {0x0004B3, 0x0004B3}, + {0x0004B5, 0x0004B5}, + {0x0004B7, 0x0004B7}, + {0x0004B9, 0x0004B9}, + {0x0004BB, 0x0004BB}, + {0x0004BD, 0x0004BD}, + {0x0004BF, 0x0004BF}, + {0x0004C2, 0x0004C2}, + {0x0004C4, 0x0004C4}, + {0x0004C6, 0x0004C6}, + {0x0004C8, 0x0004C8}, + {0x0004CA, 0x0004CA}, + {0x0004CC, 0x0004CC}, + {0x0004CE, 0x0004CF}, + {0x0004D1, 0x0004D1}, + {0x0004D3, 0x0004D3}, + {0x0004D5, 0x0004D5}, + {0x0004D7, 0x0004D7}, + {0x0004D9, 0x0004D9}, + {0x0004DB, 0x0004DB}, + {0x0004DD, 0x0004DD}, + {0x0004DF, 0x0004DF}, + {0x0004E1, 0x0004E1}, + {0x0004E3, 0x0004E3}, + {0x0004E5, 0x0004E5}, + {0x0004E7, 0x0004E7}, + {0x0004E9, 0x0004E9}, + {0x0004EB, 0x0004EB}, + {0x0004ED, 0x0004ED}, + {0x0004EF, 0x0004EF}, + {0x0004F1, 0x0004F1}, + {0x0004F3, 0x0004F3}, + {0x0004F5, 0x0004F5}, + {0x0004F7, 0x0004F7}, + {0x0004F9, 0x0004F9}, + {0x0004FB, 0x0004FB}, + {0x0004FD, 0x0004FD}, + {0x0004FF, 0x0004FF}, + {0x000501, 0x000501}, + {0x000503, 0x000503}, + {0x000505, 0x000505}, + {0x000507, 0x000507}, + {0x000509, 0x000509}, + {0x00050B, 0x00050B}, + {0x00050D, 0x00050D}, + {0x00050F, 0x00050F}, + {0x000511, 0x000511}, + {0x000513, 0x000513}, + {0x000515, 0x000515}, + {0x000517, 0x000517}, + {0x000519, 0x000519}, + {0x00051B, 0x00051B}, + {0x00051D, 0x00051D}, + {0x00051F, 0x00051F}, + {0x000521, 0x000521}, + {0x000523, 0x000523}, + {0x000525, 0x000525}, + {0x000527, 0x000527}, + {0x000529, 0x000529}, + {0x00052B, 0x00052B}, + {0x00052D, 0x00052D}, + {0x00052F, 0x00052F}, + {0x000561, 0x000587}, + {0x0010D0, 0x0010FA}, + {0x0010FD, 0x0010FF}, + {0x0013F8, 0x0013FD}, + {0x001C80, 0x001C88}, + {0x001D79, 0x001D79}, + {0x001D7D, 0x001D7D}, + {0x001D8E, 0x001D8E}, + {0x001E01, 0x001E01}, + {0x001E03, 0x001E03}, + {0x001E05, 0x001E05}, + {0x001E07, 0x001E07}, + {0x001E09, 0x001E09}, + {0x001E0B, 0x001E0B}, + {0x001E0D, 0x001E0D}, + {0x001E0F, 0x001E0F}, + {0x001E11, 0x001E11}, + {0x001E13, 0x001E13}, + {0x001E15, 0x001E15}, + {0x001E17, 0x001E17}, + {0x001E19, 0x001E19}, + {0x001E1B, 0x001E1B}, + {0x001E1D, 0x001E1D}, + {0x001E1F, 0x001E1F}, + {0x001E21, 0x001E21}, + {0x001E23, 0x001E23}, + {0x001E25, 0x001E25}, + {0x001E27, 0x001E27}, + {0x001E29, 0x001E29}, + {0x001E2B, 0x001E2B}, + {0x001E2D, 0x001E2D}, + {0x001E2F, 0x001E2F}, + {0x001E31, 0x001E31}, + {0x001E33, 0x001E33}, + {0x001E35, 0x001E35}, + {0x001E37, 0x001E37}, + {0x001E39, 0x001E39}, + {0x001E3B, 0x001E3B}, + {0x001E3D, 0x001E3D}, + {0x001E3F, 0x001E3F}, + {0x001E41, 0x001E41}, + {0x001E43, 0x001E43}, + {0x001E45, 0x001E45}, + {0x001E47, 0x001E47}, + {0x001E49, 0x001E49}, + {0x001E4B, 0x001E4B}, + {0x001E4D, 0x001E4D}, + {0x001E4F, 0x001E4F}, + {0x001E51, 0x001E51}, + {0x001E53, 0x001E53}, + {0x001E55, 0x001E55}, + {0x001E57, 0x001E57}, + {0x001E59, 0x001E59}, + {0x001E5B, 0x001E5B}, + {0x001E5D, 0x001E5D}, + {0x001E5F, 0x001E5F}, + {0x001E61, 0x001E61}, + {0x001E63, 0x001E63}, + {0x001E65, 0x001E65}, + {0x001E67, 0x001E67}, + {0x001E69, 0x001E69}, + {0x001E6B, 0x001E6B}, + {0x001E6D, 0x001E6D}, + {0x001E6F, 0x001E6F}, + {0x001E71, 0x001E71}, + {0x001E73, 0x001E73}, + {0x001E75, 0x001E75}, + {0x001E77, 0x001E77}, + {0x001E79, 0x001E79}, + {0x001E7B, 0x001E7B}, + {0x001E7D, 0x001E7D}, + {0x001E7F, 0x001E7F}, + {0x001E81, 0x001E81}, + {0x001E83, 0x001E83}, + {0x001E85, 0x001E85}, + {0x001E87, 0x001E87}, + {0x001E89, 0x001E89}, + {0x001E8B, 0x001E8B}, + {0x001E8D, 0x001E8D}, + {0x001E8F, 0x001E8F}, + {0x001E91, 0x001E91}, + {0x001E93, 0x001E93}, + {0x001E95, 0x001E9B}, + {0x001EA1, 0x001EA1}, + {0x001EA3, 0x001EA3}, + {0x001EA5, 0x001EA5}, + {0x001EA7, 0x001EA7}, + {0x001EA9, 0x001EA9}, + {0x001EAB, 0x001EAB}, + {0x001EAD, 0x001EAD}, + {0x001EAF, 0x001EAF}, + {0x001EB1, 0x001EB1}, + {0x001EB3, 0x001EB3}, + {0x001EB5, 0x001EB5}, + {0x001EB7, 0x001EB7}, + {0x001EB9, 0x001EB9}, + {0x001EBB, 0x001EBB}, + {0x001EBD, 0x001EBD}, + {0x001EBF, 0x001EBF}, + {0x001EC1, 0x001EC1}, + {0x001EC3, 0x001EC3}, + {0x001EC5, 0x001EC5}, + {0x001EC7, 0x001EC7}, + {0x001EC9, 0x001EC9}, + {0x001ECB, 0x001ECB}, + {0x001ECD, 0x001ECD}, + {0x001ECF, 0x001ECF}, + {0x001ED1, 0x001ED1}, + {0x001ED3, 0x001ED3}, + {0x001ED5, 0x001ED5}, + {0x001ED7, 0x001ED7}, + {0x001ED9, 0x001ED9}, + {0x001EDB, 0x001EDB}, + {0x001EDD, 0x001EDD}, + {0x001EDF, 0x001EDF}, + {0x001EE1, 0x001EE1}, + {0x001EE3, 0x001EE3}, + {0x001EE5, 0x001EE5}, + {0x001EE7, 0x001EE7}, + {0x001EE9, 0x001EE9}, + {0x001EEB, 0x001EEB}, + {0x001EED, 0x001EED}, + {0x001EEF, 0x001EEF}, + {0x001EF1, 0x001EF1}, + {0x001EF3, 0x001EF3}, + {0x001EF5, 0x001EF5}, + {0x001EF7, 0x001EF7}, + {0x001EF9, 0x001EF9}, + {0x001EFB, 0x001EFB}, + {0x001EFD, 0x001EFD}, + {0x001EFF, 0x001F07}, + {0x001F10, 0x001F15}, + {0x001F20, 0x001F27}, + {0x001F30, 0x001F37}, + {0x001F40, 0x001F45}, + {0x001F50, 0x001F57}, + {0x001F60, 0x001F67}, + {0x001F70, 0x001F7D}, + {0x001F80, 0x001FB4}, + {0x001FB6, 0x001FB7}, + {0x001FBC, 0x001FBC}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FC7}, + {0x001FCC, 0x001FCC}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FD7}, + {0x001FE0, 0x001FE7}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FF7}, + {0x001FFC, 0x001FFC}, + {0x00214E, 0x00214E}, + {0x002170, 0x00217F}, + {0x002184, 0x002184}, + {0x0024D0, 0x0024E9}, + {0x002C30, 0x002C5F}, + {0x002C61, 0x002C61}, + {0x002C65, 0x002C66}, + {0x002C68, 0x002C68}, + {0x002C6A, 0x002C6A}, + {0x002C6C, 0x002C6C}, + {0x002C73, 0x002C73}, + {0x002C76, 0x002C76}, + {0x002C81, 0x002C81}, + {0x002C83, 0x002C83}, + {0x002C85, 0x002C85}, + {0x002C87, 0x002C87}, + {0x002C89, 0x002C89}, + {0x002C8B, 0x002C8B}, + {0x002C8D, 0x002C8D}, + {0x002C8F, 0x002C8F}, + {0x002C91, 0x002C91}, + {0x002C93, 0x002C93}, + {0x002C95, 0x002C95}, + {0x002C97, 0x002C97}, + {0x002C99, 0x002C99}, + {0x002C9B, 0x002C9B}, + {0x002C9D, 0x002C9D}, + {0x002C9F, 0x002C9F}, + {0x002CA1, 0x002CA1}, + {0x002CA3, 0x002CA3}, + {0x002CA5, 0x002CA5}, + {0x002CA7, 0x002CA7}, + {0x002CA9, 0x002CA9}, + {0x002CAB, 0x002CAB}, + {0x002CAD, 0x002CAD}, + {0x002CAF, 0x002CAF}, + {0x002CB1, 0x002CB1}, + {0x002CB3, 0x002CB3}, + {0x002CB5, 0x002CB5}, + {0x002CB7, 0x002CB7}, + {0x002CB9, 0x002CB9}, + {0x002CBB, 0x002CBB}, + {0x002CBD, 0x002CBD}, + {0x002CBF, 0x002CBF}, + {0x002CC1, 0x002CC1}, + {0x002CC3, 0x002CC3}, + {0x002CC5, 0x002CC5}, + {0x002CC7, 0x002CC7}, + {0x002CC9, 0x002CC9}, + {0x002CCB, 0x002CCB}, + {0x002CCD, 0x002CCD}, + {0x002CCF, 0x002CCF}, + {0x002CD1, 0x002CD1}, + {0x002CD3, 0x002CD3}, + {0x002CD5, 0x002CD5}, + {0x002CD7, 0x002CD7}, + {0x002CD9, 0x002CD9}, + {0x002CDB, 0x002CDB}, + {0x002CDD, 0x002CDD}, + {0x002CDF, 0x002CDF}, + {0x002CE1, 0x002CE1}, + {0x002CE3, 0x002CE3}, + {0x002CEC, 0x002CEC}, + {0x002CEE, 0x002CEE}, + {0x002CF3, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x00A641, 0x00A641}, + {0x00A643, 0x00A643}, + {0x00A645, 0x00A645}, + {0x00A647, 0x00A647}, + {0x00A649, 0x00A649}, + {0x00A64B, 0x00A64B}, + {0x00A64D, 0x00A64D}, + {0x00A64F, 0x00A64F}, + {0x00A651, 0x00A651}, + {0x00A653, 0x00A653}, + {0x00A655, 0x00A655}, + {0x00A657, 0x00A657}, + {0x00A659, 0x00A659}, + {0x00A65B, 0x00A65B}, + {0x00A65D, 0x00A65D}, + {0x00A65F, 0x00A65F}, + {0x00A661, 0x00A661}, + {0x00A663, 0x00A663}, + {0x00A665, 0x00A665}, + {0x00A667, 0x00A667}, + {0x00A669, 0x00A669}, + {0x00A66B, 0x00A66B}, + {0x00A66D, 0x00A66D}, + {0x00A681, 0x00A681}, + {0x00A683, 0x00A683}, + {0x00A685, 0x00A685}, + {0x00A687, 0x00A687}, + {0x00A689, 0x00A689}, + {0x00A68B, 0x00A68B}, + {0x00A68D, 0x00A68D}, + {0x00A68F, 0x00A68F}, + {0x00A691, 0x00A691}, + {0x00A693, 0x00A693}, + {0x00A695, 0x00A695}, + {0x00A697, 0x00A697}, + {0x00A699, 0x00A699}, + {0x00A69B, 0x00A69B}, + {0x00A723, 0x00A723}, + {0x00A725, 0x00A725}, + {0x00A727, 0x00A727}, + {0x00A729, 0x00A729}, + {0x00A72B, 0x00A72B}, + {0x00A72D, 0x00A72D}, + {0x00A72F, 0x00A72F}, + {0x00A733, 0x00A733}, + {0x00A735, 0x00A735}, + {0x00A737, 0x00A737}, + {0x00A739, 0x00A739}, + {0x00A73B, 0x00A73B}, + {0x00A73D, 0x00A73D}, + {0x00A73F, 0x00A73F}, + {0x00A741, 0x00A741}, + {0x00A743, 0x00A743}, + {0x00A745, 0x00A745}, + {0x00A747, 0x00A747}, + {0x00A749, 0x00A749}, + {0x00A74B, 0x00A74B}, + {0x00A74D, 0x00A74D}, + {0x00A74F, 0x00A74F}, + {0x00A751, 0x00A751}, + {0x00A753, 0x00A753}, + {0x00A755, 0x00A755}, + {0x00A757, 0x00A757}, + {0x00A759, 0x00A759}, + {0x00A75B, 0x00A75B}, + {0x00A75D, 0x00A75D}, + {0x00A75F, 0x00A75F}, + {0x00A761, 0x00A761}, + {0x00A763, 0x00A763}, + {0x00A765, 0x00A765}, + {0x00A767, 0x00A767}, + {0x00A769, 0x00A769}, + {0x00A76B, 0x00A76B}, + {0x00A76D, 0x00A76D}, + {0x00A76F, 0x00A76F}, + {0x00A77A, 0x00A77A}, + {0x00A77C, 0x00A77C}, + {0x00A77F, 0x00A77F}, + {0x00A781, 0x00A781}, + {0x00A783, 0x00A783}, + {0x00A785, 0x00A785}, + {0x00A787, 0x00A787}, + {0x00A78C, 0x00A78C}, + {0x00A791, 0x00A791}, + {0x00A793, 0x00A794}, + {0x00A797, 0x00A797}, + {0x00A799, 0x00A799}, + {0x00A79B, 0x00A79B}, + {0x00A79D, 0x00A79D}, + {0x00A79F, 0x00A79F}, + {0x00A7A1, 0x00A7A1}, + {0x00A7A3, 0x00A7A3}, + {0x00A7A5, 0x00A7A5}, + {0x00A7A7, 0x00A7A7}, + {0x00A7A9, 0x00A7A9}, + {0x00A7B5, 0x00A7B5}, + {0x00A7B7, 0x00A7B7}, + {0x00A7B9, 0x00A7B9}, + {0x00A7BB, 0x00A7BB}, + {0x00A7BD, 0x00A7BD}, + {0x00A7BF, 0x00A7BF}, + {0x00A7C1, 0x00A7C1}, + {0x00A7C3, 0x00A7C3}, + {0x00A7C8, 0x00A7C8}, + {0x00A7CA, 0x00A7CA}, + {0x00A7D1, 0x00A7D1}, + {0x00A7D7, 0x00A7D7}, + {0x00A7D9, 0x00A7D9}, + {0x00A7F6, 0x00A7F6}, + {0x00AB53, 0x00AB53}, + {0x00AB70, 0x00ABBF}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FF41, 0x00FF5A}, + {0x010428, 0x01044F}, + {0x0104D8, 0x0104FB}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010CC0, 0x010CF2}, + {0x0118C0, 0x0118DF}, + {0x016E60, 0x016E7F}, + {0x01E922, 0x01E943}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_changes_when_uppercased(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_dash.c b/vendor/librune/lib/rtype/rune_has_prop_dash.c new file mode 100644 index 0000000..248eb00 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_dash.c @@ -0,0 +1,53 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x200000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x00002D, 0x00002D}, + {0x00058A, 0x00058A}, + {0x0005BE, 0x0005BE}, + {0x001400, 0x001400}, + {0x001806, 0x001806}, + {0x002010, 0x002015}, + {0x002053, 0x002053}, + {0x00207B, 0x00207B}, + {0x00208B, 0x00208B}, + {0x002212, 0x002212}, + {0x002E17, 0x002E17}, + {0x002E1A, 0x002E1A}, + {0x002E3A, 0x002E3B}, + {0x002E40, 0x002E40}, + {0x002E5D, 0x002E5D}, + {0x00301C, 0x00301C}, + {0x003030, 0x003030}, + {0x0030A0, 0x0030A0}, + {0x00FE31, 0x00FE32}, + {0x00FE58, 0x00FE58}, + {0x00FE63, 0x00FE63}, + {0x00FF0D, 0x00FF0D}, + {0x010EAD, 0x010EAD}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_dash(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_default_ignorable_code_point.c b/vendor/librune/lib/rtype/rune_has_prop_default_ignorable_code_point.c new file mode 100644 index 0000000..bf0f850 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_default_ignorable_code_point.c @@ -0,0 +1,47 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x20000000000000000000000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x0000AD, 0x0000AD}, + {0x00034F, 0x00034F}, + {0x00061C, 0x00061C}, + {0x00115F, 0x001160}, + {0x0017B4, 0x0017B5}, + {0x00180B, 0x00180F}, + {0x00200B, 0x00200F}, + {0x00202A, 0x00202E}, + {0x002060, 0x00206F}, + {0x003164, 0x003164}, + {0x00FE00, 0x00FE0F}, + {0x00FEFF, 0x00FEFF}, + {0x00FFA0, 0x00FFA0}, + {0x00FFF0, 0x00FFF8}, + {0x01BCA0, 0x01BCA3}, + {0x01D173, 0x01D17A}, + {0x0E0000, 0x0E0FFF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_default_ignorable_code_point(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_deprecated.c b/vendor/librune/lib/rtype/rune_has_prop_deprecated.c new file mode 100644 index 0000000..fe70ddc --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_deprecated.c @@ -0,0 +1,38 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000149, 0x000149}, + {0x000673, 0x000673}, + {0x000F77, 0x000F77}, + {0x000F79, 0x000F79}, + {0x0017A3, 0x0017A4}, + {0x00206A, 0x00206F}, + {0x002329, 0x00232A}, + {0x0E0001, 0x0E0001}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_deprecated(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_diacritic.c b/vendor/librune/lib/rtype/rune_has_prop_diacritic.c new file mode 100644 index 0000000..5d423a1 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_diacritic.c @@ -0,0 +1,225 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x19081000000000000000001400000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x00005E, 0x00005E}, + {0x000060, 0x000060}, + {0x0000A8, 0x0000A8}, + {0x0000AF, 0x0000AF}, + {0x0000B4, 0x0000B4}, + {0x0000B7, 0x0000B8}, + {0x0002B0, 0x00034E}, + {0x000350, 0x000357}, + {0x00035D, 0x000362}, + {0x000374, 0x000375}, + {0x00037A, 0x00037A}, + {0x000384, 0x000385}, + {0x000483, 0x000487}, + {0x000559, 0x000559}, + {0x000591, 0x0005A1}, + {0x0005A3, 0x0005BD}, + {0x0005BF, 0x0005BF}, + {0x0005C1, 0x0005C2}, + {0x0005C4, 0x0005C4}, + {0x00064B, 0x000652}, + {0x000657, 0x000658}, + {0x0006DF, 0x0006E0}, + {0x0006E5, 0x0006E6}, + {0x0006EA, 0x0006EC}, + {0x000730, 0x00074A}, + {0x0007A6, 0x0007B0}, + {0x0007EB, 0x0007F5}, + {0x000818, 0x000819}, + {0x000898, 0x00089F}, + {0x0008C9, 0x0008D2}, + {0x0008E3, 0x0008FE}, + {0x00093C, 0x00093C}, + {0x00094D, 0x00094D}, + {0x000951, 0x000954}, + {0x000971, 0x000971}, + {0x0009BC, 0x0009BC}, + {0x0009CD, 0x0009CD}, + {0x000A3C, 0x000A3C}, + {0x000A4D, 0x000A4D}, + {0x000ABC, 0x000ABC}, + {0x000ACD, 0x000ACD}, + {0x000AFD, 0x000AFF}, + {0x000B3C, 0x000B3C}, + {0x000B4D, 0x000B4D}, + {0x000B55, 0x000B55}, + {0x000BCD, 0x000BCD}, + {0x000C3C, 0x000C3C}, + {0x000C4D, 0x000C4D}, + {0x000CBC, 0x000CBC}, + {0x000CCD, 0x000CCD}, + {0x000D3B, 0x000D3C}, + {0x000D4D, 0x000D4D}, + {0x000DCA, 0x000DCA}, + {0x000E47, 0x000E4C}, + {0x000E4E, 0x000E4E}, + {0x000EBA, 0x000EBA}, + {0x000EC8, 0x000ECC}, + {0x000F18, 0x000F19}, + {0x000F35, 0x000F35}, + {0x000F37, 0x000F37}, + {0x000F39, 0x000F39}, + {0x000F3E, 0x000F3F}, + {0x000F82, 0x000F84}, + {0x000F86, 0x000F87}, + {0x000FC6, 0x000FC6}, + {0x001037, 0x001037}, + {0x001039, 0x00103A}, + {0x001063, 0x001064}, + {0x001069, 0x00106D}, + {0x001087, 0x00108D}, + {0x00108F, 0x00108F}, + {0x00109A, 0x00109B}, + {0x00135D, 0x00135F}, + {0x001714, 0x001715}, + {0x0017C9, 0x0017D3}, + {0x0017DD, 0x0017DD}, + {0x001939, 0x00193B}, + {0x001A75, 0x001A7C}, + {0x001A7F, 0x001A7F}, + {0x001AB0, 0x001ABE}, + {0x001AC1, 0x001ACB}, + {0x001B34, 0x001B34}, + {0x001B44, 0x001B44}, + {0x001B6B, 0x001B73}, + {0x001BAA, 0x001BAB}, + {0x001C36, 0x001C37}, + {0x001C78, 0x001C7D}, + {0x001CD0, 0x001CE8}, + {0x001CED, 0x001CED}, + {0x001CF4, 0x001CF4}, + {0x001CF7, 0x001CF9}, + {0x001D2C, 0x001D6A}, + {0x001DC4, 0x001DCF}, + {0x001DF5, 0x001DFF}, + {0x001FBD, 0x001FBD}, + {0x001FBF, 0x001FC1}, + {0x001FCD, 0x001FCF}, + {0x001FDD, 0x001FDF}, + {0x001FED, 0x001FEF}, + {0x001FFD, 0x001FFE}, + {0x002CEF, 0x002CF1}, + {0x002E2F, 0x002E2F}, + {0x00302A, 0x00302F}, + {0x003099, 0x00309C}, + {0x0030FC, 0x0030FC}, + {0x00A66F, 0x00A66F}, + {0x00A67C, 0x00A67D}, + {0x00A67F, 0x00A67F}, + {0x00A69C, 0x00A69D}, + {0x00A6F0, 0x00A6F1}, + {0x00A700, 0x00A721}, + {0x00A788, 0x00A78A}, + {0x00A7F8, 0x00A7F9}, + {0x00A8C4, 0x00A8C4}, + {0x00A8E0, 0x00A8F1}, + {0x00A92B, 0x00A92E}, + {0x00A953, 0x00A953}, + {0x00A9B3, 0x00A9B3}, + {0x00A9C0, 0x00A9C0}, + {0x00A9E5, 0x00A9E5}, + {0x00AA7B, 0x00AA7D}, + {0x00AABF, 0x00AAC2}, + {0x00AAF6, 0x00AAF6}, + {0x00AB5B, 0x00AB5F}, + {0x00AB69, 0x00AB6B}, + {0x00ABEC, 0x00ABED}, + {0x00FB1E, 0x00FB1E}, + {0x00FE20, 0x00FE2F}, + {0x00FF3E, 0x00FF3E}, + {0x00FF40, 0x00FF40}, + {0x00FF70, 0x00FF70}, + {0x00FF9E, 0x00FF9F}, + {0x00FFE3, 0x00FFE3}, + {0x0102E0, 0x0102E0}, + {0x010780, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010AE5, 0x010AE6}, + {0x010D22, 0x010D27}, + {0x010EFD, 0x010EFF}, + {0x010F46, 0x010F50}, + {0x010F82, 0x010F85}, + {0x011046, 0x011046}, + {0x011070, 0x011070}, + {0x0110B9, 0x0110BA}, + {0x011133, 0x011134}, + {0x011173, 0x011173}, + {0x0111C0, 0x0111C0}, + {0x0111CA, 0x0111CC}, + {0x011235, 0x011236}, + {0x0112E9, 0x0112EA}, + {0x01133C, 0x01133C}, + {0x01134D, 0x01134D}, + {0x011366, 0x01136C}, + {0x011370, 0x011374}, + {0x011442, 0x011442}, + {0x011446, 0x011446}, + {0x0114C2, 0x0114C3}, + {0x0115BF, 0x0115C0}, + {0x01163F, 0x01163F}, + {0x0116B6, 0x0116B7}, + {0x01172B, 0x01172B}, + {0x011839, 0x01183A}, + {0x01193D, 0x01193E}, + {0x011943, 0x011943}, + {0x0119E0, 0x0119E0}, + {0x011A34, 0x011A34}, + {0x011A47, 0x011A47}, + {0x011A99, 0x011A99}, + {0x011C3F, 0x011C3F}, + {0x011D42, 0x011D42}, + {0x011D44, 0x011D45}, + {0x011D97, 0x011D97}, + {0x013447, 0x013455}, + {0x016AF0, 0x016AF4}, + {0x016B30, 0x016B36}, + {0x016F8F, 0x016F9F}, + {0x016FF0, 0x016FF1}, + {0x01AFF0, 0x01AFF3}, + {0x01AFF5, 0x01AFFB}, + {0x01AFFD, 0x01AFFE}, + {0x01CF00, 0x01CF2D}, + {0x01CF30, 0x01CF46}, + {0x01D167, 0x01D169}, + {0x01D16D, 0x01D172}, + {0x01D17B, 0x01D182}, + {0x01D185, 0x01D18B}, + {0x01D1AA, 0x01D1AD}, + {0x01E030, 0x01E06D}, + {0x01E130, 0x01E136}, + {0x01E2AE, 0x01E2AE}, + {0x01E2EC, 0x01E2EF}, + {0x01E8D0, 0x01E8D6}, + {0x01E944, 0x01E946}, + {0x01E948, 0x01E94A}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_diacritic(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_extender.c b/vendor/librune/lib/rtype/rune_has_prop_extender.c new file mode 100644 index 0000000..961fd2e --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_extender.c @@ -0,0 +1,63 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x8000000000000000000000000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x0000B7, 0x0000B7}, + {0x0002D0, 0x0002D1}, + {0x000640, 0x000640}, + {0x0007FA, 0x0007FA}, + {0x000B55, 0x000B55}, + {0x000E46, 0x000E46}, + {0x000EC6, 0x000EC6}, + {0x00180A, 0x00180A}, + {0x001843, 0x001843}, + {0x001AA7, 0x001AA7}, + {0x001C36, 0x001C36}, + {0x001C7B, 0x001C7B}, + {0x003005, 0x003005}, + {0x003031, 0x003035}, + {0x00309D, 0x00309E}, + {0x0030FC, 0x0030FE}, + {0x00A015, 0x00A015}, + {0x00A60C, 0x00A60C}, + {0x00A9CF, 0x00A9CF}, + {0x00A9E6, 0x00A9E6}, + {0x00AA70, 0x00AA70}, + {0x00AADD, 0x00AADD}, + {0x00AAF3, 0x00AAF4}, + {0x00FF70, 0x00FF70}, + {0x010781, 0x010782}, + {0x01135D, 0x01135D}, + {0x0115C6, 0x0115C8}, + {0x011A98, 0x011A98}, + {0x016B42, 0x016B43}, + {0x016FE0, 0x016FE1}, + {0x016FE3, 0x016FE3}, + {0x01E13C, 0x01E13D}, + {0x01E944, 0x01E946}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_extender(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_grapheme_base.c b/vendor/librune/lib/rtype/rune_has_prop_grapheme_base.c new file mode 100644 index 0000000..0de7ba6 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_grapheme_base.c @@ -0,0 +1,905 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFFFFFFFFFFFFFFFFFFFFDFFF000000007FFFFFFFFFFFFFFFFFFFFFFF00000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000020, 0x00007E}, + {0x0000A0, 0x0000AC}, + {0x0000AE, 0x0002FF}, + {0x000370, 0x000377}, + {0x00037A, 0x00037F}, + {0x000384, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x0003A1}, + {0x0003A3, 0x000482}, + {0x00048A, 0x00052F}, + {0x000531, 0x000556}, + {0x000559, 0x00058A}, + {0x00058D, 0x00058F}, + {0x0005BE, 0x0005BE}, + {0x0005C0, 0x0005C0}, + {0x0005C3, 0x0005C3}, + {0x0005C6, 0x0005C6}, + {0x0005D0, 0x0005EA}, + {0x0005EF, 0x0005F4}, + {0x000606, 0x00060F}, + {0x00061B, 0x00061B}, + {0x00061D, 0x00064A}, + {0x000660, 0x00066F}, + {0x000671, 0x0006D5}, + {0x0006DE, 0x0006DE}, + {0x0006E5, 0x0006E6}, + {0x0006E9, 0x0006E9}, + {0x0006EE, 0x00070D}, + {0x000710, 0x000710}, + {0x000712, 0x00072F}, + {0x00074D, 0x0007A5}, + {0x0007B1, 0x0007B1}, + {0x0007C0, 0x0007EA}, + {0x0007F4, 0x0007FA}, + {0x0007FE, 0x000815}, + {0x00081A, 0x00081A}, + {0x000824, 0x000824}, + {0x000828, 0x000828}, + {0x000830, 0x00083E}, + {0x000840, 0x000858}, + {0x00085E, 0x00085E}, + {0x000860, 0x00086A}, + {0x000870, 0x00088E}, + {0x0008A0, 0x0008C9}, + {0x000903, 0x000939}, + {0x00093B, 0x00093B}, + {0x00093D, 0x000940}, + {0x000949, 0x00094C}, + {0x00094E, 0x000950}, + {0x000958, 0x000961}, + {0x000964, 0x000980}, + {0x000982, 0x000983}, + {0x000985, 0x00098C}, + {0x00098F, 0x000990}, + {0x000993, 0x0009A8}, + {0x0009AA, 0x0009B0}, + {0x0009B2, 0x0009B2}, + {0x0009B6, 0x0009B9}, + {0x0009BD, 0x0009BD}, + {0x0009BF, 0x0009C0}, + {0x0009C7, 0x0009C8}, + {0x0009CB, 0x0009CC}, + {0x0009CE, 0x0009CE}, + {0x0009DC, 0x0009DD}, + {0x0009DF, 0x0009E1}, + {0x0009E6, 0x0009FD}, + {0x000A03, 0x000A03}, + {0x000A05, 0x000A0A}, + {0x000A0F, 0x000A10}, + {0x000A13, 0x000A28}, + {0x000A2A, 0x000A30}, + {0x000A32, 0x000A33}, + {0x000A35, 0x000A36}, + {0x000A38, 0x000A39}, + {0x000A3E, 0x000A40}, + {0x000A59, 0x000A5C}, + {0x000A5E, 0x000A5E}, + {0x000A66, 0x000A6F}, + {0x000A72, 0x000A74}, + {0x000A76, 0x000A76}, + {0x000A83, 0x000A83}, + {0x000A85, 0x000A8D}, + {0x000A8F, 0x000A91}, + {0x000A93, 0x000AA8}, + {0x000AAA, 0x000AB0}, + {0x000AB2, 0x000AB3}, + {0x000AB5, 0x000AB9}, + {0x000ABD, 0x000AC0}, + {0x000AC9, 0x000AC9}, + {0x000ACB, 0x000ACC}, + {0x000AD0, 0x000AD0}, + {0x000AE0, 0x000AE1}, + {0x000AE6, 0x000AF1}, + {0x000AF9, 0x000AF9}, + {0x000B02, 0x000B03}, + {0x000B05, 0x000B0C}, + {0x000B0F, 0x000B10}, + {0x000B13, 0x000B28}, + {0x000B2A, 0x000B30}, + {0x000B32, 0x000B33}, + {0x000B35, 0x000B39}, + {0x000B3D, 0x000B3D}, + {0x000B40, 0x000B40}, + {0x000B47, 0x000B48}, + {0x000B4B, 0x000B4C}, + {0x000B5C, 0x000B5D}, + {0x000B5F, 0x000B61}, + {0x000B66, 0x000B77}, + {0x000B83, 0x000B83}, + {0x000B85, 0x000B8A}, + {0x000B8E, 0x000B90}, + {0x000B92, 0x000B95}, + {0x000B99, 0x000B9A}, + {0x000B9C, 0x000B9C}, + {0x000B9E, 0x000B9F}, + {0x000BA3, 0x000BA4}, + {0x000BA8, 0x000BAA}, + {0x000BAE, 0x000BB9}, + {0x000BBF, 0x000BBF}, + {0x000BC1, 0x000BC2}, + {0x000BC6, 0x000BC8}, + {0x000BCA, 0x000BCC}, + {0x000BD0, 0x000BD0}, + {0x000BE6, 0x000BFA}, + {0x000C01, 0x000C03}, + {0x000C05, 0x000C0C}, + {0x000C0E, 0x000C10}, + {0x000C12, 0x000C28}, + {0x000C2A, 0x000C39}, + {0x000C3D, 0x000C3D}, + {0x000C41, 0x000C44}, + {0x000C58, 0x000C5A}, + {0x000C5D, 0x000C5D}, + {0x000C60, 0x000C61}, + {0x000C66, 0x000C6F}, + {0x000C77, 0x000C80}, + {0x000C82, 0x000C8C}, + {0x000C8E, 0x000C90}, + {0x000C92, 0x000CA8}, + {0x000CAA, 0x000CB3}, + {0x000CB5, 0x000CB9}, + {0x000CBD, 0x000CBE}, + {0x000CC0, 0x000CC1}, + {0x000CC3, 0x000CC4}, + {0x000CC7, 0x000CC8}, + {0x000CCA, 0x000CCB}, + {0x000CDD, 0x000CDE}, + {0x000CE0, 0x000CE1}, + {0x000CE6, 0x000CEF}, + {0x000CF1, 0x000CF3}, + {0x000D02, 0x000D0C}, + {0x000D0E, 0x000D10}, + {0x000D12, 0x000D3A}, + {0x000D3D, 0x000D3D}, + {0x000D3F, 0x000D40}, + {0x000D46, 0x000D48}, + {0x000D4A, 0x000D4C}, + {0x000D4E, 0x000D4F}, + {0x000D54, 0x000D56}, + {0x000D58, 0x000D61}, + {0x000D66, 0x000D7F}, + {0x000D82, 0x000D83}, + {0x000D85, 0x000D96}, + {0x000D9A, 0x000DB1}, + {0x000DB3, 0x000DBB}, + {0x000DBD, 0x000DBD}, + {0x000DC0, 0x000DC6}, + {0x000DD0, 0x000DD1}, + {0x000DD8, 0x000DDE}, + {0x000DE6, 0x000DEF}, + {0x000DF2, 0x000DF4}, + {0x000E01, 0x000E30}, + {0x000E32, 0x000E33}, + {0x000E3F, 0x000E46}, + {0x000E4F, 0x000E5B}, + {0x000E81, 0x000E82}, + {0x000E84, 0x000E84}, + {0x000E86, 0x000E8A}, + {0x000E8C, 0x000EA3}, + {0x000EA5, 0x000EA5}, + {0x000EA7, 0x000EB0}, + {0x000EB2, 0x000EB3}, + {0x000EBD, 0x000EBD}, + {0x000EC0, 0x000EC4}, + {0x000EC6, 0x000EC6}, + {0x000ED0, 0x000ED9}, + {0x000EDC, 0x000EDF}, + {0x000F00, 0x000F17}, + {0x000F1A, 0x000F34}, + {0x000F36, 0x000F36}, + {0x000F38, 0x000F38}, + {0x000F3A, 0x000F47}, + {0x000F49, 0x000F6C}, + {0x000F7F, 0x000F7F}, + {0x000F85, 0x000F85}, + {0x000F88, 0x000F8C}, + {0x000FBE, 0x000FC5}, + {0x000FC7, 0x000FCC}, + {0x000FCE, 0x000FDA}, + {0x001000, 0x00102C}, + {0x001031, 0x001031}, + {0x001038, 0x001038}, + {0x00103B, 0x00103C}, + {0x00103F, 0x001057}, + {0x00105A, 0x00105D}, + {0x001061, 0x001070}, + {0x001075, 0x001081}, + {0x001083, 0x001084}, + {0x001087, 0x00108C}, + {0x00108E, 0x00109C}, + {0x00109E, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0010D0, 0x001248}, + {0x00124A, 0x00124D}, + {0x001250, 0x001256}, + {0x001258, 0x001258}, + {0x00125A, 0x00125D}, + {0x001260, 0x001288}, + {0x00128A, 0x00128D}, + {0x001290, 0x0012B0}, + {0x0012B2, 0x0012B5}, + {0x0012B8, 0x0012BE}, + {0x0012C0, 0x0012C0}, + {0x0012C2, 0x0012C5}, + {0x0012C8, 0x0012D6}, + {0x0012D8, 0x001310}, + {0x001312, 0x001315}, + {0x001318, 0x00135A}, + {0x001360, 0x00137C}, + {0x001380, 0x001399}, + {0x0013A0, 0x0013F5}, + {0x0013F8, 0x0013FD}, + {0x001400, 0x00169C}, + {0x0016A0, 0x0016F8}, + {0x001700, 0x001711}, + {0x001715, 0x001715}, + {0x00171F, 0x001731}, + {0x001734, 0x001736}, + {0x001740, 0x001751}, + {0x001760, 0x00176C}, + {0x00176E, 0x001770}, + {0x001780, 0x0017B3}, + {0x0017B6, 0x0017B6}, + {0x0017BE, 0x0017C5}, + {0x0017C7, 0x0017C8}, + {0x0017D4, 0x0017DC}, + {0x0017E0, 0x0017E9}, + {0x0017F0, 0x0017F9}, + {0x001800, 0x00180A}, + {0x001810, 0x001819}, + {0x001820, 0x001878}, + {0x001880, 0x001884}, + {0x001887, 0x0018A8}, + {0x0018AA, 0x0018AA}, + {0x0018B0, 0x0018F5}, + {0x001900, 0x00191E}, + {0x001923, 0x001926}, + {0x001929, 0x00192B}, + {0x001930, 0x001931}, + {0x001933, 0x001938}, + {0x001940, 0x001940}, + {0x001944, 0x00196D}, + {0x001970, 0x001974}, + {0x001980, 0x0019AB}, + {0x0019B0, 0x0019C9}, + {0x0019D0, 0x0019DA}, + {0x0019DE, 0x001A16}, + {0x001A19, 0x001A1A}, + {0x001A1E, 0x001A55}, + {0x001A57, 0x001A57}, + {0x001A61, 0x001A61}, + {0x001A63, 0x001A64}, + {0x001A6D, 0x001A72}, + {0x001A80, 0x001A89}, + {0x001A90, 0x001A99}, + {0x001AA0, 0x001AAD}, + {0x001B04, 0x001B33}, + {0x001B3B, 0x001B3B}, + {0x001B3D, 0x001B41}, + {0x001B43, 0x001B4C}, + {0x001B50, 0x001B6A}, + {0x001B74, 0x001B7E}, + {0x001B82, 0x001BA1}, + {0x001BA6, 0x001BA7}, + {0x001BAA, 0x001BAA}, + {0x001BAE, 0x001BE5}, + {0x001BE7, 0x001BE7}, + {0x001BEA, 0x001BEC}, + {0x001BEE, 0x001BEE}, + {0x001BF2, 0x001BF3}, + {0x001BFC, 0x001C2B}, + {0x001C34, 0x001C35}, + {0x001C3B, 0x001C49}, + {0x001C4D, 0x001C88}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CC7}, + {0x001CD3, 0x001CD3}, + {0x001CE1, 0x001CE1}, + {0x001CE9, 0x001CEC}, + {0x001CEE, 0x001CF3}, + {0x001CF5, 0x001CF7}, + {0x001CFA, 0x001CFA}, + {0x001D00, 0x001DBF}, + {0x001E00, 0x001F15}, + {0x001F18, 0x001F1D}, + {0x001F20, 0x001F45}, + {0x001F48, 0x001F4D}, + {0x001F50, 0x001F57}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F7D}, + {0x001F80, 0x001FB4}, + {0x001FB6, 0x001FC4}, + {0x001FC6, 0x001FD3}, + {0x001FD6, 0x001FDB}, + {0x001FDD, 0x001FEF}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FFE}, + {0x002000, 0x00200A}, + {0x002010, 0x002027}, + {0x00202F, 0x00205F}, + {0x002070, 0x002071}, + {0x002074, 0x00208E}, + {0x002090, 0x00209C}, + {0x0020A0, 0x0020C0}, + {0x002100, 0x00218B}, + {0x002190, 0x002426}, + {0x002440, 0x00244A}, + {0x002460, 0x002B73}, + {0x002B76, 0x002B95}, + {0x002B97, 0x002CEE}, + {0x002CF2, 0x002CF3}, + {0x002CF9, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x002D30, 0x002D67}, + {0x002D6F, 0x002D70}, + {0x002D80, 0x002D96}, + {0x002DA0, 0x002DA6}, + {0x002DA8, 0x002DAE}, + {0x002DB0, 0x002DB6}, + {0x002DB8, 0x002DBE}, + {0x002DC0, 0x002DC6}, + {0x002DC8, 0x002DCE}, + {0x002DD0, 0x002DD6}, + {0x002DD8, 0x002DDE}, + {0x002E00, 0x002E5D}, + {0x002E80, 0x002E99}, + {0x002E9B, 0x002EF3}, + {0x002F00, 0x002FD5}, + {0x002FF0, 0x003029}, + {0x003030, 0x00303F}, + {0x003041, 0x003096}, + {0x00309B, 0x0030FF}, + {0x003105, 0x00312F}, + {0x003131, 0x00318E}, + {0x003190, 0x0031E3}, + {0x0031EF, 0x00321E}, + {0x003220, 0x00A48C}, + {0x00A490, 0x00A4C6}, + {0x00A4D0, 0x00A62B}, + {0x00A640, 0x00A66E}, + {0x00A673, 0x00A673}, + {0x00A67E, 0x00A69D}, + {0x00A6A0, 0x00A6EF}, + {0x00A6F2, 0x00A6F7}, + {0x00A700, 0x00A7CA}, + {0x00A7D0, 0x00A7D1}, + {0x00A7D3, 0x00A7D3}, + {0x00A7D5, 0x00A7D9}, + {0x00A7F2, 0x00A801}, + {0x00A803, 0x00A805}, + {0x00A807, 0x00A80A}, + {0x00A80C, 0x00A824}, + {0x00A827, 0x00A82B}, + {0x00A830, 0x00A839}, + {0x00A840, 0x00A877}, + {0x00A880, 0x00A8C3}, + {0x00A8CE, 0x00A8D9}, + {0x00A8F2, 0x00A8FE}, + {0x00A900, 0x00A925}, + {0x00A92E, 0x00A946}, + {0x00A952, 0x00A953}, + {0x00A95F, 0x00A97C}, + {0x00A983, 0x00A9B2}, + {0x00A9B4, 0x00A9B5}, + {0x00A9BA, 0x00A9BB}, + {0x00A9BE, 0x00A9CD}, + {0x00A9CF, 0x00A9D9}, + {0x00A9DE, 0x00A9E4}, + {0x00A9E6, 0x00A9FE}, + {0x00AA00, 0x00AA28}, + {0x00AA2F, 0x00AA30}, + {0x00AA33, 0x00AA34}, + {0x00AA40, 0x00AA42}, + {0x00AA44, 0x00AA4B}, + {0x00AA4D, 0x00AA4D}, + {0x00AA50, 0x00AA59}, + {0x00AA5C, 0x00AA7B}, + {0x00AA7D, 0x00AAAF}, + {0x00AAB1, 0x00AAB1}, + {0x00AAB5, 0x00AAB6}, + {0x00AAB9, 0x00AABD}, + {0x00AAC0, 0x00AAC0}, + {0x00AAC2, 0x00AAC2}, + {0x00AADB, 0x00AAEB}, + {0x00AAEE, 0x00AAF5}, + {0x00AB01, 0x00AB06}, + {0x00AB09, 0x00AB0E}, + {0x00AB11, 0x00AB16}, + {0x00AB20, 0x00AB26}, + {0x00AB28, 0x00AB2E}, + {0x00AB30, 0x00AB6B}, + {0x00AB70, 0x00ABE4}, + {0x00ABE6, 0x00ABE7}, + {0x00ABE9, 0x00ABEC}, + {0x00ABF0, 0x00ABF9}, + {0x00AC00, 0x00D7A3}, + {0x00D7B0, 0x00D7C6}, + {0x00D7CB, 0x00D7FB}, + {0x00F900, 0x00FA6D}, + {0x00FA70, 0x00FAD9}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FB1D, 0x00FB1D}, + {0x00FB1F, 0x00FB36}, + {0x00FB38, 0x00FB3C}, + {0x00FB3E, 0x00FB3E}, + {0x00FB40, 0x00FB41}, + {0x00FB43, 0x00FB44}, + {0x00FB46, 0x00FBC2}, + {0x00FBD3, 0x00FD8F}, + {0x00FD92, 0x00FDC7}, + {0x00FDCF, 0x00FDCF}, + {0x00FDF0, 0x00FDFF}, + {0x00FE10, 0x00FE19}, + {0x00FE30, 0x00FE52}, + {0x00FE54, 0x00FE66}, + {0x00FE68, 0x00FE6B}, + {0x00FE70, 0x00FE74}, + {0x00FE76, 0x00FEFC}, + {0x00FF01, 0x00FF9D}, + {0x00FFA0, 0x00FFBE}, + {0x00FFC2, 0x00FFC7}, + {0x00FFCA, 0x00FFCF}, + {0x00FFD2, 0x00FFD7}, + {0x00FFDA, 0x00FFDC}, + {0x00FFE0, 0x00FFE6}, + {0x00FFE8, 0x00FFEE}, + {0x00FFFC, 0x00FFFD}, + {0x010000, 0x01000B}, + {0x01000D, 0x010026}, + {0x010028, 0x01003A}, + {0x01003C, 0x01003D}, + {0x01003F, 0x01004D}, + {0x010050, 0x01005D}, + {0x010080, 0x0100FA}, + {0x010100, 0x010102}, + {0x010107, 0x010133}, + {0x010137, 0x01018E}, + {0x010190, 0x01019C}, + {0x0101A0, 0x0101A0}, + {0x0101D0, 0x0101FC}, + {0x010280, 0x01029C}, + {0x0102A0, 0x0102D0}, + {0x0102E1, 0x0102FB}, + {0x010300, 0x010323}, + {0x01032D, 0x01034A}, + {0x010350, 0x010375}, + {0x010380, 0x01039D}, + {0x01039F, 0x0103C3}, + {0x0103C8, 0x0103D5}, + {0x010400, 0x01049D}, + {0x0104A0, 0x0104A9}, + {0x0104B0, 0x0104D3}, + {0x0104D8, 0x0104FB}, + {0x010500, 0x010527}, + {0x010530, 0x010563}, + {0x01056F, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010600, 0x010736}, + {0x010740, 0x010755}, + {0x010760, 0x010767}, + {0x010780, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010800, 0x010805}, + {0x010808, 0x010808}, + {0x01080A, 0x010835}, + {0x010837, 0x010838}, + {0x01083C, 0x01083C}, + {0x01083F, 0x010855}, + {0x010857, 0x01089E}, + {0x0108A7, 0x0108AF}, + {0x0108E0, 0x0108F2}, + {0x0108F4, 0x0108F5}, + {0x0108FB, 0x01091B}, + {0x01091F, 0x010939}, + {0x01093F, 0x01093F}, + {0x010980, 0x0109B7}, + {0x0109BC, 0x0109CF}, + {0x0109D2, 0x010A00}, + {0x010A10, 0x010A13}, + {0x010A15, 0x010A17}, + {0x010A19, 0x010A35}, + {0x010A40, 0x010A48}, + {0x010A50, 0x010A58}, + {0x010A60, 0x010A9F}, + {0x010AC0, 0x010AE4}, + {0x010AEB, 0x010AF6}, + {0x010B00, 0x010B35}, + {0x010B39, 0x010B55}, + {0x010B58, 0x010B72}, + {0x010B78, 0x010B91}, + {0x010B99, 0x010B9C}, + {0x010BA9, 0x010BAF}, + {0x010C00, 0x010C48}, + {0x010C80, 0x010CB2}, + {0x010CC0, 0x010CF2}, + {0x010CFA, 0x010D23}, + {0x010D30, 0x010D39}, + {0x010E60, 0x010E7E}, + {0x010E80, 0x010EA9}, + {0x010EAD, 0x010EAD}, + {0x010EB0, 0x010EB1}, + {0x010F00, 0x010F27}, + {0x010F30, 0x010F45}, + {0x010F51, 0x010F59}, + {0x010F70, 0x010F81}, + {0x010F86, 0x010F89}, + {0x010FB0, 0x010FCB}, + {0x010FE0, 0x010FF6}, + {0x011000, 0x011000}, + {0x011002, 0x011037}, + {0x011047, 0x01104D}, + {0x011052, 0x01106F}, + {0x011071, 0x011072}, + {0x011075, 0x011075}, + {0x011082, 0x0110B2}, + {0x0110B7, 0x0110B8}, + {0x0110BB, 0x0110BC}, + {0x0110BE, 0x0110C1}, + {0x0110D0, 0x0110E8}, + {0x0110F0, 0x0110F9}, + {0x011103, 0x011126}, + {0x01112C, 0x01112C}, + {0x011136, 0x011147}, + {0x011150, 0x011172}, + {0x011174, 0x011176}, + {0x011182, 0x0111B5}, + {0x0111BF, 0x0111C8}, + {0x0111CD, 0x0111CE}, + {0x0111D0, 0x0111DF}, + {0x0111E1, 0x0111F4}, + {0x011200, 0x011211}, + {0x011213, 0x01122E}, + {0x011232, 0x011233}, + {0x011235, 0x011235}, + {0x011238, 0x01123D}, + {0x01123F, 0x011240}, + {0x011280, 0x011286}, + {0x011288, 0x011288}, + {0x01128A, 0x01128D}, + {0x01128F, 0x01129D}, + {0x01129F, 0x0112A9}, + {0x0112B0, 0x0112DE}, + {0x0112E0, 0x0112E2}, + {0x0112F0, 0x0112F9}, + {0x011302, 0x011303}, + {0x011305, 0x01130C}, + {0x01130F, 0x011310}, + {0x011313, 0x011328}, + {0x01132A, 0x011330}, + {0x011332, 0x011333}, + {0x011335, 0x011339}, + {0x01133D, 0x01133D}, + {0x01133F, 0x01133F}, + {0x011341, 0x011344}, + {0x011347, 0x011348}, + {0x01134B, 0x01134D}, + {0x011350, 0x011350}, + {0x01135D, 0x011363}, + {0x011400, 0x011437}, + {0x011440, 0x011441}, + {0x011445, 0x011445}, + {0x011447, 0x01145B}, + {0x01145D, 0x01145D}, + {0x01145F, 0x011461}, + {0x011480, 0x0114AF}, + {0x0114B1, 0x0114B2}, + {0x0114B9, 0x0114B9}, + {0x0114BB, 0x0114BC}, + {0x0114BE, 0x0114BE}, + {0x0114C1, 0x0114C1}, + {0x0114C4, 0x0114C7}, + {0x0114D0, 0x0114D9}, + {0x011580, 0x0115AE}, + {0x0115B0, 0x0115B1}, + {0x0115B8, 0x0115BB}, + {0x0115BE, 0x0115BE}, + {0x0115C1, 0x0115DB}, + {0x011600, 0x011632}, + {0x01163B, 0x01163C}, + {0x01163E, 0x01163E}, + {0x011641, 0x011644}, + {0x011650, 0x011659}, + {0x011660, 0x01166C}, + {0x011680, 0x0116AA}, + {0x0116AC, 0x0116AC}, + {0x0116AE, 0x0116AF}, + {0x0116B6, 0x0116B6}, + {0x0116B8, 0x0116B9}, + {0x0116C0, 0x0116C9}, + {0x011700, 0x01171A}, + {0x011720, 0x011721}, + {0x011726, 0x011726}, + {0x011730, 0x011746}, + {0x011800, 0x01182E}, + {0x011838, 0x011838}, + {0x01183B, 0x01183B}, + {0x0118A0, 0x0118F2}, + {0x0118FF, 0x011906}, + {0x011909, 0x011909}, + {0x01190C, 0x011913}, + {0x011915, 0x011916}, + {0x011918, 0x01192F}, + {0x011931, 0x011935}, + {0x011937, 0x011938}, + {0x01193D, 0x01193D}, + {0x01193F, 0x011942}, + {0x011944, 0x011946}, + {0x011950, 0x011959}, + {0x0119A0, 0x0119A7}, + {0x0119AA, 0x0119D3}, + {0x0119DC, 0x0119DF}, + {0x0119E1, 0x0119E4}, + {0x011A00, 0x011A00}, + {0x011A0B, 0x011A32}, + {0x011A39, 0x011A3A}, + {0x011A3F, 0x011A46}, + {0x011A50, 0x011A50}, + {0x011A57, 0x011A58}, + {0x011A5C, 0x011A89}, + {0x011A97, 0x011A97}, + {0x011A9A, 0x011AA2}, + {0x011AB0, 0x011AF8}, + {0x011B00, 0x011B09}, + {0x011C00, 0x011C08}, + {0x011C0A, 0x011C2F}, + {0x011C3E, 0x011C3E}, + {0x011C40, 0x011C45}, + {0x011C50, 0x011C6C}, + {0x011C70, 0x011C8F}, + {0x011CA9, 0x011CA9}, + {0x011CB1, 0x011CB1}, + {0x011CB4, 0x011CB4}, + {0x011D00, 0x011D06}, + {0x011D08, 0x011D09}, + {0x011D0B, 0x011D30}, + {0x011D46, 0x011D46}, + {0x011D50, 0x011D59}, + {0x011D60, 0x011D65}, + {0x011D67, 0x011D68}, + {0x011D6A, 0x011D8E}, + {0x011D93, 0x011D94}, + {0x011D96, 0x011D96}, + {0x011D98, 0x011D98}, + {0x011DA0, 0x011DA9}, + {0x011EE0, 0x011EF2}, + {0x011EF5, 0x011EF8}, + {0x011F02, 0x011F10}, + {0x011F12, 0x011F35}, + {0x011F3E, 0x011F3F}, + {0x011F41, 0x011F41}, + {0x011F43, 0x011F59}, + {0x011FB0, 0x011FB0}, + {0x011FC0, 0x011FF1}, + {0x011FFF, 0x012399}, + {0x012400, 0x01246E}, + {0x012470, 0x012474}, + {0x012480, 0x012543}, + {0x012F90, 0x012FF2}, + {0x013000, 0x01342F}, + {0x013441, 0x013446}, + {0x014400, 0x014646}, + {0x016800, 0x016A38}, + {0x016A40, 0x016A5E}, + {0x016A60, 0x016A69}, + {0x016A6E, 0x016ABE}, + {0x016AC0, 0x016AC9}, + {0x016AD0, 0x016AED}, + {0x016AF5, 0x016AF5}, + {0x016B00, 0x016B2F}, + {0x016B37, 0x016B45}, + {0x016B50, 0x016B59}, + {0x016B5B, 0x016B61}, + {0x016B63, 0x016B77}, + {0x016B7D, 0x016B8F}, + {0x016E40, 0x016E9A}, + {0x016F00, 0x016F4A}, + {0x016F50, 0x016F87}, + {0x016F93, 0x016F9F}, + {0x016FE0, 0x016FE3}, + {0x016FF0, 0x016FF1}, + {0x017000, 0x0187F7}, + {0x018800, 0x018CD5}, + {0x018D00, 0x018D08}, + {0x01AFF0, 0x01AFF3}, + {0x01AFF5, 0x01AFFB}, + {0x01AFFD, 0x01AFFE}, + {0x01B000, 0x01B122}, + {0x01B132, 0x01B132}, + {0x01B150, 0x01B152}, + {0x01B155, 0x01B155}, + {0x01B164, 0x01B167}, + {0x01B170, 0x01B2FB}, + {0x01BC00, 0x01BC6A}, + {0x01BC70, 0x01BC7C}, + {0x01BC80, 0x01BC88}, + {0x01BC90, 0x01BC99}, + {0x01BC9C, 0x01BC9C}, + {0x01BC9F, 0x01BC9F}, + {0x01CF50, 0x01CFC3}, + {0x01D000, 0x01D0F5}, + {0x01D100, 0x01D126}, + {0x01D129, 0x01D164}, + {0x01D166, 0x01D166}, + {0x01D16A, 0x01D16D}, + {0x01D183, 0x01D184}, + {0x01D18C, 0x01D1A9}, + {0x01D1AE, 0x01D1EA}, + {0x01D200, 0x01D241}, + {0x01D245, 0x01D245}, + {0x01D2C0, 0x01D2D3}, + {0x01D2E0, 0x01D2F3}, + {0x01D300, 0x01D356}, + {0x01D360, 0x01D378}, + {0x01D400, 0x01D454}, + {0x01D456, 0x01D49C}, + {0x01D49E, 0x01D49F}, + {0x01D4A2, 0x01D4A2}, + {0x01D4A5, 0x01D4A6}, + {0x01D4A9, 0x01D4AC}, + {0x01D4AE, 0x01D4B9}, + {0x01D4BB, 0x01D4BB}, + {0x01D4BD, 0x01D4C3}, + {0x01D4C5, 0x01D505}, + {0x01D507, 0x01D50A}, + {0x01D50D, 0x01D514}, + {0x01D516, 0x01D51C}, + {0x01D51E, 0x01D539}, + {0x01D53B, 0x01D53E}, + {0x01D540, 0x01D544}, + {0x01D546, 0x01D546}, + {0x01D54A, 0x01D550}, + {0x01D552, 0x01D6A5}, + {0x01D6A8, 0x01D7CB}, + {0x01D7CE, 0x01D9FF}, + {0x01DA37, 0x01DA3A}, + {0x01DA6D, 0x01DA74}, + {0x01DA76, 0x01DA83}, + {0x01DA85, 0x01DA8B}, + {0x01DF00, 0x01DF1E}, + {0x01DF25, 0x01DF2A}, + {0x01E030, 0x01E06D}, + {0x01E100, 0x01E12C}, + {0x01E137, 0x01E13D}, + {0x01E140, 0x01E149}, + {0x01E14E, 0x01E14F}, + {0x01E290, 0x01E2AD}, + {0x01E2C0, 0x01E2EB}, + {0x01E2F0, 0x01E2F9}, + {0x01E2FF, 0x01E2FF}, + {0x01E4D0, 0x01E4EB}, + {0x01E4F0, 0x01E4F9}, + {0x01E7E0, 0x01E7E6}, + {0x01E7E8, 0x01E7EB}, + {0x01E7ED, 0x01E7EE}, + {0x01E7F0, 0x01E7FE}, + {0x01E800, 0x01E8C4}, + {0x01E8C7, 0x01E8CF}, + {0x01E900, 0x01E943}, + {0x01E94B, 0x01E94B}, + {0x01E950, 0x01E959}, + {0x01E95E, 0x01E95F}, + {0x01EC71, 0x01ECB4}, + {0x01ED01, 0x01ED3D}, + {0x01EE00, 0x01EE03}, + {0x01EE05, 0x01EE1F}, + {0x01EE21, 0x01EE22}, + {0x01EE24, 0x01EE24}, + {0x01EE27, 0x01EE27}, + {0x01EE29, 0x01EE32}, + {0x01EE34, 0x01EE37}, + {0x01EE39, 0x01EE39}, + {0x01EE3B, 0x01EE3B}, + {0x01EE42, 0x01EE42}, + {0x01EE47, 0x01EE47}, + {0x01EE49, 0x01EE49}, + {0x01EE4B, 0x01EE4B}, + {0x01EE4D, 0x01EE4F}, + {0x01EE51, 0x01EE52}, + {0x01EE54, 0x01EE54}, + {0x01EE57, 0x01EE57}, + {0x01EE59, 0x01EE59}, + {0x01EE5B, 0x01EE5B}, + {0x01EE5D, 0x01EE5D}, + {0x01EE5F, 0x01EE5F}, + {0x01EE61, 0x01EE62}, + {0x01EE64, 0x01EE64}, + {0x01EE67, 0x01EE6A}, + {0x01EE6C, 0x01EE72}, + {0x01EE74, 0x01EE77}, + {0x01EE79, 0x01EE7C}, + {0x01EE7E, 0x01EE7E}, + {0x01EE80, 0x01EE89}, + {0x01EE8B, 0x01EE9B}, + {0x01EEA1, 0x01EEA3}, + {0x01EEA5, 0x01EEA9}, + {0x01EEAB, 0x01EEBB}, + {0x01EEF0, 0x01EEF1}, + {0x01F000, 0x01F02B}, + {0x01F030, 0x01F093}, + {0x01F0A0, 0x01F0AE}, + {0x01F0B1, 0x01F0BF}, + {0x01F0C1, 0x01F0CF}, + {0x01F0D1, 0x01F0F5}, + {0x01F100, 0x01F1AD}, + {0x01F1E6, 0x01F202}, + {0x01F210, 0x01F23B}, + {0x01F240, 0x01F248}, + {0x01F250, 0x01F251}, + {0x01F260, 0x01F265}, + {0x01F300, 0x01F6D7}, + {0x01F6DC, 0x01F6EC}, + {0x01F6F0, 0x01F6FC}, + {0x01F700, 0x01F776}, + {0x01F77B, 0x01F7D9}, + {0x01F7E0, 0x01F7EB}, + {0x01F7F0, 0x01F7F0}, + {0x01F800, 0x01F80B}, + {0x01F810, 0x01F847}, + {0x01F850, 0x01F859}, + {0x01F860, 0x01F887}, + {0x01F890, 0x01F8AD}, + {0x01F8B0, 0x01F8B1}, + {0x01F900, 0x01FA53}, + {0x01FA60, 0x01FA6D}, + {0x01FA70, 0x01FA7C}, + {0x01FA80, 0x01FA88}, + {0x01FA90, 0x01FABD}, + {0x01FABF, 0x01FAC5}, + {0x01FACE, 0x01FADB}, + {0x01FAE0, 0x01FAE8}, + {0x01FAF0, 0x01FAF8}, + {0x01FB00, 0x01FB92}, + {0x01FB94, 0x01FBCA}, + {0x01FBF0, 0x01FBF9}, + {0x020000, 0x02A6DF}, + {0x02A700, 0x02B739}, + {0x02B740, 0x02B81D}, + {0x02B820, 0x02CEA1}, + {0x02CEB0, 0x02EBE0}, + {0x02EBF0, 0x02EE5D}, + {0x02F800, 0x02FA1D}, + {0x030000, 0x03134A}, + {0x031350, 0x0323AF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_grapheme_base(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_grapheme_extend.c b/vendor/librune/lib/rtype/rune_has_prop_grapheme_extend.c new file mode 100644 index 0000000..041c74b --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_grapheme_extend.c @@ -0,0 +1,393 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000300, 0x00036F}, + {0x000483, 0x000489}, + {0x000591, 0x0005BD}, + {0x0005BF, 0x0005BF}, + {0x0005C1, 0x0005C2}, + {0x0005C4, 0x0005C5}, + {0x0005C7, 0x0005C7}, + {0x000610, 0x00061A}, + {0x00064B, 0x00065F}, + {0x000670, 0x000670}, + {0x0006D6, 0x0006DC}, + {0x0006DF, 0x0006E4}, + {0x0006E7, 0x0006E8}, + {0x0006EA, 0x0006ED}, + {0x000711, 0x000711}, + {0x000730, 0x00074A}, + {0x0007A6, 0x0007B0}, + {0x0007EB, 0x0007F3}, + {0x0007FD, 0x0007FD}, + {0x000816, 0x000819}, + {0x00081B, 0x000823}, + {0x000825, 0x000827}, + {0x000829, 0x00082D}, + {0x000859, 0x00085B}, + {0x000898, 0x00089F}, + {0x0008CA, 0x0008E1}, + {0x0008E3, 0x000902}, + {0x00093A, 0x00093A}, + {0x00093C, 0x00093C}, + {0x000941, 0x000948}, + {0x00094D, 0x00094D}, + {0x000951, 0x000957}, + {0x000962, 0x000963}, + {0x000981, 0x000981}, + {0x0009BC, 0x0009BC}, + {0x0009BE, 0x0009BE}, + {0x0009C1, 0x0009C4}, + {0x0009CD, 0x0009CD}, + {0x0009D7, 0x0009D7}, + {0x0009E2, 0x0009E3}, + {0x0009FE, 0x0009FE}, + {0x000A01, 0x000A02}, + {0x000A3C, 0x000A3C}, + {0x000A41, 0x000A42}, + {0x000A47, 0x000A48}, + {0x000A4B, 0x000A4D}, + {0x000A51, 0x000A51}, + {0x000A70, 0x000A71}, + {0x000A75, 0x000A75}, + {0x000A81, 0x000A82}, + {0x000ABC, 0x000ABC}, + {0x000AC1, 0x000AC5}, + {0x000AC7, 0x000AC8}, + {0x000ACD, 0x000ACD}, + {0x000AE2, 0x000AE3}, + {0x000AFA, 0x000AFF}, + {0x000B01, 0x000B01}, + {0x000B3C, 0x000B3C}, + {0x000B3E, 0x000B3F}, + {0x000B41, 0x000B44}, + {0x000B4D, 0x000B4D}, + {0x000B55, 0x000B57}, + {0x000B62, 0x000B63}, + {0x000B82, 0x000B82}, + {0x000BBE, 0x000BBE}, + {0x000BC0, 0x000BC0}, + {0x000BCD, 0x000BCD}, + {0x000BD7, 0x000BD7}, + {0x000C00, 0x000C00}, + {0x000C04, 0x000C04}, + {0x000C3C, 0x000C3C}, + {0x000C3E, 0x000C40}, + {0x000C46, 0x000C48}, + {0x000C4A, 0x000C4D}, + {0x000C55, 0x000C56}, + {0x000C62, 0x000C63}, + {0x000C81, 0x000C81}, + {0x000CBC, 0x000CBC}, + {0x000CBF, 0x000CBF}, + {0x000CC2, 0x000CC2}, + {0x000CC6, 0x000CC6}, + {0x000CCC, 0x000CCD}, + {0x000CD5, 0x000CD6}, + {0x000CE2, 0x000CE3}, + {0x000D00, 0x000D01}, + {0x000D3B, 0x000D3C}, + {0x000D3E, 0x000D3E}, + {0x000D41, 0x000D44}, + {0x000D4D, 0x000D4D}, + {0x000D57, 0x000D57}, + {0x000D62, 0x000D63}, + {0x000D81, 0x000D81}, + {0x000DCA, 0x000DCA}, + {0x000DCF, 0x000DCF}, + {0x000DD2, 0x000DD4}, + {0x000DD6, 0x000DD6}, + {0x000DDF, 0x000DDF}, + {0x000E31, 0x000E31}, + {0x000E34, 0x000E3A}, + {0x000E47, 0x000E4E}, + {0x000EB1, 0x000EB1}, + {0x000EB4, 0x000EBC}, + {0x000EC8, 0x000ECE}, + {0x000F18, 0x000F19}, + {0x000F35, 0x000F35}, + {0x000F37, 0x000F37}, + {0x000F39, 0x000F39}, + {0x000F71, 0x000F7E}, + {0x000F80, 0x000F84}, + {0x000F86, 0x000F87}, + {0x000F8D, 0x000F97}, + {0x000F99, 0x000FBC}, + {0x000FC6, 0x000FC6}, + {0x00102D, 0x001030}, + {0x001032, 0x001037}, + {0x001039, 0x00103A}, + {0x00103D, 0x00103E}, + {0x001058, 0x001059}, + {0x00105E, 0x001060}, + {0x001071, 0x001074}, + {0x001082, 0x001082}, + {0x001085, 0x001086}, + {0x00108D, 0x00108D}, + {0x00109D, 0x00109D}, + {0x00135D, 0x00135F}, + {0x001712, 0x001714}, + {0x001732, 0x001733}, + {0x001752, 0x001753}, + {0x001772, 0x001773}, + {0x0017B4, 0x0017B5}, + {0x0017B7, 0x0017BD}, + {0x0017C6, 0x0017C6}, + {0x0017C9, 0x0017D3}, + {0x0017DD, 0x0017DD}, + {0x00180B, 0x00180D}, + {0x00180F, 0x00180F}, + {0x001885, 0x001886}, + {0x0018A9, 0x0018A9}, + {0x001920, 0x001922}, + {0x001927, 0x001928}, + {0x001932, 0x001932}, + {0x001939, 0x00193B}, + {0x001A17, 0x001A18}, + {0x001A1B, 0x001A1B}, + {0x001A56, 0x001A56}, + {0x001A58, 0x001A5E}, + {0x001A60, 0x001A60}, + {0x001A62, 0x001A62}, + {0x001A65, 0x001A6C}, + {0x001A73, 0x001A7C}, + {0x001A7F, 0x001A7F}, + {0x001AB0, 0x001ACE}, + {0x001B00, 0x001B03}, + {0x001B34, 0x001B3A}, + {0x001B3C, 0x001B3C}, + {0x001B42, 0x001B42}, + {0x001B6B, 0x001B73}, + {0x001B80, 0x001B81}, + {0x001BA2, 0x001BA5}, + {0x001BA8, 0x001BA9}, + {0x001BAB, 0x001BAD}, + {0x001BE6, 0x001BE6}, + {0x001BE8, 0x001BE9}, + {0x001BED, 0x001BED}, + {0x001BEF, 0x001BF1}, + {0x001C2C, 0x001C33}, + {0x001C36, 0x001C37}, + {0x001CD0, 0x001CD2}, + {0x001CD4, 0x001CE0}, + {0x001CE2, 0x001CE8}, + {0x001CED, 0x001CED}, + {0x001CF4, 0x001CF4}, + {0x001CF8, 0x001CF9}, + {0x001DC0, 0x001DFF}, + {0x00200C, 0x00200C}, + {0x0020D0, 0x0020F0}, + {0x002CEF, 0x002CF1}, + {0x002D7F, 0x002D7F}, + {0x002DE0, 0x002DFF}, + {0x00302A, 0x00302F}, + {0x003099, 0x00309A}, + {0x00A66F, 0x00A672}, + {0x00A674, 0x00A67D}, + {0x00A69E, 0x00A69F}, + {0x00A6F0, 0x00A6F1}, + {0x00A802, 0x00A802}, + {0x00A806, 0x00A806}, + {0x00A80B, 0x00A80B}, + {0x00A825, 0x00A826}, + {0x00A82C, 0x00A82C}, + {0x00A8C4, 0x00A8C5}, + {0x00A8E0, 0x00A8F1}, + {0x00A8FF, 0x00A8FF}, + {0x00A926, 0x00A92D}, + {0x00A947, 0x00A951}, + {0x00A980, 0x00A982}, + {0x00A9B3, 0x00A9B3}, + {0x00A9B6, 0x00A9B9}, + {0x00A9BC, 0x00A9BD}, + {0x00A9E5, 0x00A9E5}, + {0x00AA29, 0x00AA2E}, + {0x00AA31, 0x00AA32}, + {0x00AA35, 0x00AA36}, + {0x00AA43, 0x00AA43}, + {0x00AA4C, 0x00AA4C}, + {0x00AA7C, 0x00AA7C}, + {0x00AAB0, 0x00AAB0}, + {0x00AAB2, 0x00AAB4}, + {0x00AAB7, 0x00AAB8}, + {0x00AABE, 0x00AABF}, + {0x00AAC1, 0x00AAC1}, + {0x00AAEC, 0x00AAED}, + {0x00AAF6, 0x00AAF6}, + {0x00ABE5, 0x00ABE5}, + {0x00ABE8, 0x00ABE8}, + {0x00ABED, 0x00ABED}, + {0x00FB1E, 0x00FB1E}, + {0x00FE00, 0x00FE0F}, + {0x00FE20, 0x00FE2F}, + {0x00FF9E, 0x00FF9F}, + {0x0101FD, 0x0101FD}, + {0x0102E0, 0x0102E0}, + {0x010376, 0x01037A}, + {0x010A01, 0x010A03}, + {0x010A05, 0x010A06}, + {0x010A0C, 0x010A0F}, + {0x010A38, 0x010A3A}, + {0x010A3F, 0x010A3F}, + {0x010AE5, 0x010AE6}, + {0x010D24, 0x010D27}, + {0x010EAB, 0x010EAC}, + {0x010EFD, 0x010EFF}, + {0x010F46, 0x010F50}, + {0x010F82, 0x010F85}, + {0x011001, 0x011001}, + {0x011038, 0x011046}, + {0x011070, 0x011070}, + {0x011073, 0x011074}, + {0x01107F, 0x011081}, + {0x0110B3, 0x0110B6}, + {0x0110B9, 0x0110BA}, + {0x0110C2, 0x0110C2}, + {0x011100, 0x011102}, + {0x011127, 0x01112B}, + {0x01112D, 0x011134}, + {0x011173, 0x011173}, + {0x011180, 0x011181}, + {0x0111B6, 0x0111BE}, + {0x0111C9, 0x0111CC}, + {0x0111CF, 0x0111CF}, + {0x01122F, 0x011231}, + {0x011234, 0x011234}, + {0x011236, 0x011237}, + {0x01123E, 0x01123E}, + {0x011241, 0x011241}, + {0x0112DF, 0x0112DF}, + {0x0112E3, 0x0112EA}, + {0x011300, 0x011301}, + {0x01133B, 0x01133C}, + {0x01133E, 0x01133E}, + {0x011340, 0x011340}, + {0x011357, 0x011357}, + {0x011366, 0x01136C}, + {0x011370, 0x011374}, + {0x011438, 0x01143F}, + {0x011442, 0x011444}, + {0x011446, 0x011446}, + {0x01145E, 0x01145E}, + {0x0114B0, 0x0114B0}, + {0x0114B3, 0x0114B8}, + {0x0114BA, 0x0114BA}, + {0x0114BD, 0x0114BD}, + {0x0114BF, 0x0114C0}, + {0x0114C2, 0x0114C3}, + {0x0115AF, 0x0115AF}, + {0x0115B2, 0x0115B5}, + {0x0115BC, 0x0115BD}, + {0x0115BF, 0x0115C0}, + {0x0115DC, 0x0115DD}, + {0x011633, 0x01163A}, + {0x01163D, 0x01163D}, + {0x01163F, 0x011640}, + {0x0116AB, 0x0116AB}, + {0x0116AD, 0x0116AD}, + {0x0116B0, 0x0116B5}, + {0x0116B7, 0x0116B7}, + {0x01171D, 0x01171F}, + {0x011722, 0x011725}, + {0x011727, 0x01172B}, + {0x01182F, 0x011837}, + {0x011839, 0x01183A}, + {0x011930, 0x011930}, + {0x01193B, 0x01193C}, + {0x01193E, 0x01193E}, + {0x011943, 0x011943}, + {0x0119D4, 0x0119D7}, + {0x0119DA, 0x0119DB}, + {0x0119E0, 0x0119E0}, + {0x011A01, 0x011A0A}, + {0x011A33, 0x011A38}, + {0x011A3B, 0x011A3E}, + {0x011A47, 0x011A47}, + {0x011A51, 0x011A56}, + {0x011A59, 0x011A5B}, + {0x011A8A, 0x011A96}, + {0x011A98, 0x011A99}, + {0x011C30, 0x011C36}, + {0x011C38, 0x011C3D}, + {0x011C3F, 0x011C3F}, + {0x011C92, 0x011CA7}, + {0x011CAA, 0x011CB0}, + {0x011CB2, 0x011CB3}, + {0x011CB5, 0x011CB6}, + {0x011D31, 0x011D36}, + {0x011D3A, 0x011D3A}, + {0x011D3C, 0x011D3D}, + {0x011D3F, 0x011D45}, + {0x011D47, 0x011D47}, + {0x011D90, 0x011D91}, + {0x011D95, 0x011D95}, + {0x011D97, 0x011D97}, + {0x011EF3, 0x011EF4}, + {0x011F00, 0x011F01}, + {0x011F36, 0x011F3A}, + {0x011F40, 0x011F40}, + {0x011F42, 0x011F42}, + {0x013440, 0x013440}, + {0x013447, 0x013455}, + {0x016AF0, 0x016AF4}, + {0x016B30, 0x016B36}, + {0x016F4F, 0x016F4F}, + {0x016F8F, 0x016F92}, + {0x016FE4, 0x016FE4}, + {0x01BC9D, 0x01BC9E}, + {0x01CF00, 0x01CF2D}, + {0x01CF30, 0x01CF46}, + {0x01D165, 0x01D165}, + {0x01D167, 0x01D169}, + {0x01D16E, 0x01D172}, + {0x01D17B, 0x01D182}, + {0x01D185, 0x01D18B}, + {0x01D1AA, 0x01D1AD}, + {0x01D242, 0x01D244}, + {0x01DA00, 0x01DA36}, + {0x01DA3B, 0x01DA6C}, + {0x01DA75, 0x01DA75}, + {0x01DA84, 0x01DA84}, + {0x01DA9B, 0x01DA9F}, + {0x01DAA1, 0x01DAAF}, + {0x01E000, 0x01E006}, + {0x01E008, 0x01E018}, + {0x01E01B, 0x01E021}, + {0x01E023, 0x01E024}, + {0x01E026, 0x01E02A}, + {0x01E08F, 0x01E08F}, + {0x01E130, 0x01E136}, + {0x01E2AE, 0x01E2AE}, + {0x01E2EC, 0x01E2EF}, + {0x01E4EC, 0x01E4EF}, + {0x01E8D0, 0x01E8D6}, + {0x01E944, 0x01E94A}, + {0x0E0020, 0x0E007F}, + {0x0E0100, 0x0E01EF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_grapheme_extend(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_hex_digit.c b/vendor/librune/lib/rtype/rune_has_prop_hex_digit.c new file mode 100644 index 0000000..471f6c3 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_hex_digit.c @@ -0,0 +1,36 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x7E0000007E03FF000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000030, 0x000039}, + {0x000041, 0x000046}, + {0x000061, 0x000066}, + {0x00FF10, 0x00FF19}, + {0x00FF21, 0x00FF26}, + {0x00FF41, 0x00FF46}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_hex_digit(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_continue.c b/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_continue.c new file mode 100644 index 0000000..eb842bd --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_continue.c @@ -0,0 +1,48 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x20C00000000000000000000000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x0000B2, 0x0000B3}, + {0x0000B9, 0x0000B9}, + {0x002070, 0x002070}, + {0x002074, 0x00207E}, + {0x002080, 0x00208E}, + {0x002202, 0x002202}, + {0x002207, 0x002207}, + {0x00221E, 0x00221E}, + {0x01D6C1, 0x01D6C1}, + {0x01D6DB, 0x01D6DB}, + {0x01D6FB, 0x01D6FB}, + {0x01D715, 0x01D715}, + {0x01D735, 0x01D735}, + {0x01D74F, 0x01D74F}, + {0x01D76F, 0x01D76F}, + {0x01D789, 0x01D789}, + {0x01D7A9, 0x01D7A9}, + {0x01D7C3, 0x01D7C3}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_id_compat_math_continue(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_start.c b/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_start.c new file mode 100644 index 0000000..ee09cba --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_start.c @@ -0,0 +1,43 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x002202, 0x002202}, + {0x002207, 0x002207}, + {0x00221E, 0x00221E}, + {0x01D6C1, 0x01D6C1}, + {0x01D6DB, 0x01D6DB}, + {0x01D6FB, 0x01D6FB}, + {0x01D715, 0x01D715}, + {0x01D735, 0x01D735}, + {0x01D74F, 0x01D74F}, + {0x01D76F, 0x01D76F}, + {0x01D789, 0x01D789}, + {0x01D7A9, 0x01D7A9}, + {0x01D7C3, 0x01D7C3}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_id_compat_math_start(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_id_continue.c b/vendor/librune/lib/rtype/rune_has_prop_id_continue.c new file mode 100644 index 0000000..2bbf130 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_id_continue.c @@ -0,0 +1,799 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF04A004000000000007FFFFFE87FFFFFE03FF000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000030, 0x000039}, + {0x000041, 0x00005A}, + {0x00005F, 0x00005F}, + {0x000061, 0x00007A}, + {0x0000AA, 0x0000AA}, + {0x0000B5, 0x0000B5}, + {0x0000B7, 0x0000B7}, + {0x0000BA, 0x0000BA}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000F6}, + {0x0000F8, 0x0002C1}, + {0x0002C6, 0x0002D1}, + {0x0002E0, 0x0002E4}, + {0x0002EC, 0x0002EC}, + {0x0002EE, 0x0002EE}, + {0x000300, 0x000374}, + {0x000376, 0x000377}, + {0x00037A, 0x00037D}, + {0x00037F, 0x00037F}, + {0x000386, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x0003A1}, + {0x0003A3, 0x0003F5}, + {0x0003F7, 0x000481}, + {0x000483, 0x000487}, + {0x00048A, 0x00052F}, + {0x000531, 0x000556}, + {0x000559, 0x000559}, + {0x000560, 0x000588}, + {0x000591, 0x0005BD}, + {0x0005BF, 0x0005BF}, + {0x0005C1, 0x0005C2}, + {0x0005C4, 0x0005C5}, + {0x0005C7, 0x0005C7}, + {0x0005D0, 0x0005EA}, + {0x0005EF, 0x0005F2}, + {0x000610, 0x00061A}, + {0x000620, 0x000669}, + {0x00066E, 0x0006D3}, + {0x0006D5, 0x0006DC}, + {0x0006DF, 0x0006E8}, + {0x0006EA, 0x0006FC}, + {0x0006FF, 0x0006FF}, + {0x000710, 0x00074A}, + {0x00074D, 0x0007B1}, + {0x0007C0, 0x0007F5}, + {0x0007FA, 0x0007FA}, + {0x0007FD, 0x0007FD}, + {0x000800, 0x00082D}, + {0x000840, 0x00085B}, + {0x000860, 0x00086A}, + {0x000870, 0x000887}, + {0x000889, 0x00088E}, + {0x000898, 0x0008E1}, + {0x0008E3, 0x000963}, + {0x000966, 0x00096F}, + {0x000971, 0x000983}, + {0x000985, 0x00098C}, + {0x00098F, 0x000990}, + {0x000993, 0x0009A8}, + {0x0009AA, 0x0009B0}, + {0x0009B2, 0x0009B2}, + {0x0009B6, 0x0009B9}, + {0x0009BC, 0x0009C4}, + {0x0009C7, 0x0009C8}, + {0x0009CB, 0x0009CE}, + {0x0009D7, 0x0009D7}, + {0x0009DC, 0x0009DD}, + {0x0009DF, 0x0009E3}, + {0x0009E6, 0x0009F1}, + {0x0009FC, 0x0009FC}, + {0x0009FE, 0x0009FE}, + {0x000A01, 0x000A03}, + {0x000A05, 0x000A0A}, + {0x000A0F, 0x000A10}, + {0x000A13, 0x000A28}, + {0x000A2A, 0x000A30}, + {0x000A32, 0x000A33}, + {0x000A35, 0x000A36}, + {0x000A38, 0x000A39}, + {0x000A3C, 0x000A3C}, + {0x000A3E, 0x000A42}, + {0x000A47, 0x000A48}, + {0x000A4B, 0x000A4D}, + {0x000A51, 0x000A51}, + {0x000A59, 0x000A5C}, + {0x000A5E, 0x000A5E}, + {0x000A66, 0x000A75}, + {0x000A81, 0x000A83}, + {0x000A85, 0x000A8D}, + {0x000A8F, 0x000A91}, + {0x000A93, 0x000AA8}, + {0x000AAA, 0x000AB0}, + {0x000AB2, 0x000AB3}, + {0x000AB5, 0x000AB9}, + {0x000ABC, 0x000AC5}, + {0x000AC7, 0x000AC9}, + {0x000ACB, 0x000ACD}, + {0x000AD0, 0x000AD0}, + {0x000AE0, 0x000AE3}, + {0x000AE6, 0x000AEF}, + {0x000AF9, 0x000AFF}, + {0x000B01, 0x000B03}, + {0x000B05, 0x000B0C}, + {0x000B0F, 0x000B10}, + {0x000B13, 0x000B28}, + {0x000B2A, 0x000B30}, + {0x000B32, 0x000B33}, + {0x000B35, 0x000B39}, + {0x000B3C, 0x000B44}, + {0x000B47, 0x000B48}, + {0x000B4B, 0x000B4D}, + {0x000B55, 0x000B57}, + {0x000B5C, 0x000B5D}, + {0x000B5F, 0x000B63}, + {0x000B66, 0x000B6F}, + {0x000B71, 0x000B71}, + {0x000B82, 0x000B83}, + {0x000B85, 0x000B8A}, + {0x000B8E, 0x000B90}, + {0x000B92, 0x000B95}, + {0x000B99, 0x000B9A}, + {0x000B9C, 0x000B9C}, + {0x000B9E, 0x000B9F}, + {0x000BA3, 0x000BA4}, + {0x000BA8, 0x000BAA}, + {0x000BAE, 0x000BB9}, + {0x000BBE, 0x000BC2}, + {0x000BC6, 0x000BC8}, + {0x000BCA, 0x000BCD}, + {0x000BD0, 0x000BD0}, + {0x000BD7, 0x000BD7}, + {0x000BE6, 0x000BEF}, + {0x000C00, 0x000C0C}, + {0x000C0E, 0x000C10}, + {0x000C12, 0x000C28}, + {0x000C2A, 0x000C39}, + {0x000C3C, 0x000C44}, + {0x000C46, 0x000C48}, + {0x000C4A, 0x000C4D}, + {0x000C55, 0x000C56}, + {0x000C58, 0x000C5A}, + {0x000C5D, 0x000C5D}, + {0x000C60, 0x000C63}, + {0x000C66, 0x000C6F}, + {0x000C80, 0x000C83}, + {0x000C85, 0x000C8C}, + {0x000C8E, 0x000C90}, + {0x000C92, 0x000CA8}, + {0x000CAA, 0x000CB3}, + {0x000CB5, 0x000CB9}, + {0x000CBC, 0x000CC4}, + {0x000CC6, 0x000CC8}, + {0x000CCA, 0x000CCD}, + {0x000CD5, 0x000CD6}, + {0x000CDD, 0x000CDE}, + {0x000CE0, 0x000CE3}, + {0x000CE6, 0x000CEF}, + {0x000CF1, 0x000CF3}, + {0x000D00, 0x000D0C}, + {0x000D0E, 0x000D10}, + {0x000D12, 0x000D44}, + {0x000D46, 0x000D48}, + {0x000D4A, 0x000D4E}, + {0x000D54, 0x000D57}, + {0x000D5F, 0x000D63}, + {0x000D66, 0x000D6F}, + {0x000D7A, 0x000D7F}, + {0x000D81, 0x000D83}, + {0x000D85, 0x000D96}, + {0x000D9A, 0x000DB1}, + {0x000DB3, 0x000DBB}, + {0x000DBD, 0x000DBD}, + {0x000DC0, 0x000DC6}, + {0x000DCA, 0x000DCA}, + {0x000DCF, 0x000DD4}, + {0x000DD6, 0x000DD6}, + {0x000DD8, 0x000DDF}, + {0x000DE6, 0x000DEF}, + {0x000DF2, 0x000DF3}, + {0x000E01, 0x000E3A}, + {0x000E40, 0x000E4E}, + {0x000E50, 0x000E59}, + {0x000E81, 0x000E82}, + {0x000E84, 0x000E84}, + {0x000E86, 0x000E8A}, + {0x000E8C, 0x000EA3}, + {0x000EA5, 0x000EA5}, + {0x000EA7, 0x000EBD}, + {0x000EC0, 0x000EC4}, + {0x000EC6, 0x000EC6}, + {0x000EC8, 0x000ECE}, + {0x000ED0, 0x000ED9}, + {0x000EDC, 0x000EDF}, + {0x000F00, 0x000F00}, + {0x000F18, 0x000F19}, + {0x000F20, 0x000F29}, + {0x000F35, 0x000F35}, + {0x000F37, 0x000F37}, + {0x000F39, 0x000F39}, + {0x000F3E, 0x000F47}, + {0x000F49, 0x000F6C}, + {0x000F71, 0x000F84}, + {0x000F86, 0x000F97}, + {0x000F99, 0x000FBC}, + {0x000FC6, 0x000FC6}, + {0x001000, 0x001049}, + {0x001050, 0x00109D}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0010D0, 0x0010FA}, + {0x0010FC, 0x001248}, + {0x00124A, 0x00124D}, + {0x001250, 0x001256}, + {0x001258, 0x001258}, + {0x00125A, 0x00125D}, + {0x001260, 0x001288}, + {0x00128A, 0x00128D}, + {0x001290, 0x0012B0}, + {0x0012B2, 0x0012B5}, + {0x0012B8, 0x0012BE}, + {0x0012C0, 0x0012C0}, + {0x0012C2, 0x0012C5}, + {0x0012C8, 0x0012D6}, + {0x0012D8, 0x001310}, + {0x001312, 0x001315}, + {0x001318, 0x00135A}, + {0x00135D, 0x00135F}, + {0x001369, 0x001371}, + {0x001380, 0x00138F}, + {0x0013A0, 0x0013F5}, + {0x0013F8, 0x0013FD}, + {0x001401, 0x00166C}, + {0x00166F, 0x00167F}, + {0x001681, 0x00169A}, + {0x0016A0, 0x0016EA}, + {0x0016EE, 0x0016F8}, + {0x001700, 0x001715}, + {0x00171F, 0x001734}, + {0x001740, 0x001753}, + {0x001760, 0x00176C}, + {0x00176E, 0x001770}, + {0x001772, 0x001773}, + {0x001780, 0x0017D3}, + {0x0017D7, 0x0017D7}, + {0x0017DC, 0x0017DD}, + {0x0017E0, 0x0017E9}, + {0x00180B, 0x00180D}, + {0x00180F, 0x001819}, + {0x001820, 0x001878}, + {0x001880, 0x0018AA}, + {0x0018B0, 0x0018F5}, + {0x001900, 0x00191E}, + {0x001920, 0x00192B}, + {0x001930, 0x00193B}, + {0x001946, 0x00196D}, + {0x001970, 0x001974}, + {0x001980, 0x0019AB}, + {0x0019B0, 0x0019C9}, + {0x0019D0, 0x0019DA}, + {0x001A00, 0x001A1B}, + {0x001A20, 0x001A5E}, + {0x001A60, 0x001A7C}, + {0x001A7F, 0x001A89}, + {0x001A90, 0x001A99}, + {0x001AA7, 0x001AA7}, + {0x001AB0, 0x001ABD}, + {0x001ABF, 0x001ACE}, + {0x001B00, 0x001B4C}, + {0x001B50, 0x001B59}, + {0x001B6B, 0x001B73}, + {0x001B80, 0x001BF3}, + {0x001C00, 0x001C37}, + {0x001C40, 0x001C49}, + {0x001C4D, 0x001C7D}, + {0x001C80, 0x001C88}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001CD0, 0x001CD2}, + {0x001CD4, 0x001CFA}, + {0x001D00, 0x001F15}, + {0x001F18, 0x001F1D}, + {0x001F20, 0x001F45}, + {0x001F48, 0x001F4D}, + {0x001F50, 0x001F57}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F7D}, + {0x001F80, 0x001FB4}, + {0x001FB6, 0x001FBC}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FCC}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FDB}, + {0x001FE0, 0x001FEC}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FFC}, + {0x00200C, 0x00200D}, + {0x00203F, 0x002040}, + {0x002054, 0x002054}, + {0x002071, 0x002071}, + {0x00207F, 0x00207F}, + {0x002090, 0x00209C}, + {0x0020D0, 0x0020DC}, + {0x0020E1, 0x0020E1}, + {0x0020E5, 0x0020F0}, + {0x002102, 0x002102}, + {0x002107, 0x002107}, + {0x00210A, 0x002113}, + {0x002115, 0x002115}, + {0x002118, 0x00211D}, + {0x002124, 0x002124}, + {0x002126, 0x002126}, + {0x002128, 0x002128}, + {0x00212A, 0x002139}, + {0x00213C, 0x00213F}, + {0x002145, 0x002149}, + {0x00214E, 0x00214E}, + {0x002160, 0x002188}, + {0x002C00, 0x002CE4}, + {0x002CEB, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x002D30, 0x002D67}, + {0x002D6F, 0x002D6F}, + {0x002D7F, 0x002D96}, + {0x002DA0, 0x002DA6}, + {0x002DA8, 0x002DAE}, + {0x002DB0, 0x002DB6}, + {0x002DB8, 0x002DBE}, + {0x002DC0, 0x002DC6}, + {0x002DC8, 0x002DCE}, + {0x002DD0, 0x002DD6}, + {0x002DD8, 0x002DDE}, + {0x002DE0, 0x002DFF}, + {0x003005, 0x003007}, + {0x003021, 0x00302F}, + {0x003031, 0x003035}, + {0x003038, 0x00303C}, + {0x003041, 0x003096}, + {0x003099, 0x00309F}, + {0x0030A1, 0x0030FF}, + {0x003105, 0x00312F}, + {0x003131, 0x00318E}, + {0x0031A0, 0x0031BF}, + {0x0031F0, 0x0031FF}, + {0x003400, 0x004DBF}, + {0x004E00, 0x00A48C}, + {0x00A4D0, 0x00A4FD}, + {0x00A500, 0x00A60C}, + {0x00A610, 0x00A62B}, + {0x00A640, 0x00A66F}, + {0x00A674, 0x00A67D}, + {0x00A67F, 0x00A6F1}, + {0x00A717, 0x00A71F}, + {0x00A722, 0x00A788}, + {0x00A78B, 0x00A7CA}, + {0x00A7D0, 0x00A7D1}, + {0x00A7D3, 0x00A7D3}, + {0x00A7D5, 0x00A7D9}, + {0x00A7F2, 0x00A827}, + {0x00A82C, 0x00A82C}, + {0x00A840, 0x00A873}, + {0x00A880, 0x00A8C5}, + {0x00A8D0, 0x00A8D9}, + {0x00A8E0, 0x00A8F7}, + {0x00A8FB, 0x00A8FB}, + {0x00A8FD, 0x00A92D}, + {0x00A930, 0x00A953}, + {0x00A960, 0x00A97C}, + {0x00A980, 0x00A9C0}, + {0x00A9CF, 0x00A9D9}, + {0x00A9E0, 0x00A9FE}, + {0x00AA00, 0x00AA36}, + {0x00AA40, 0x00AA4D}, + {0x00AA50, 0x00AA59}, + {0x00AA60, 0x00AA76}, + {0x00AA7A, 0x00AAC2}, + {0x00AADB, 0x00AADD}, + {0x00AAE0, 0x00AAEF}, + {0x00AAF2, 0x00AAF6}, + {0x00AB01, 0x00AB06}, + {0x00AB09, 0x00AB0E}, + {0x00AB11, 0x00AB16}, + {0x00AB20, 0x00AB26}, + {0x00AB28, 0x00AB2E}, + {0x00AB30, 0x00AB5A}, + {0x00AB5C, 0x00AB69}, + {0x00AB70, 0x00ABEA}, + {0x00ABEC, 0x00ABED}, + {0x00ABF0, 0x00ABF9}, + {0x00AC00, 0x00D7A3}, + {0x00D7B0, 0x00D7C6}, + {0x00D7CB, 0x00D7FB}, + {0x00F900, 0x00FA6D}, + {0x00FA70, 0x00FAD9}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FB1D, 0x00FB28}, + {0x00FB2A, 0x00FB36}, + {0x00FB38, 0x00FB3C}, + {0x00FB3E, 0x00FB3E}, + {0x00FB40, 0x00FB41}, + {0x00FB43, 0x00FB44}, + {0x00FB46, 0x00FBB1}, + {0x00FBD3, 0x00FD3D}, + {0x00FD50, 0x00FD8F}, + {0x00FD92, 0x00FDC7}, + {0x00FDF0, 0x00FDFB}, + {0x00FE00, 0x00FE0F}, + {0x00FE20, 0x00FE2F}, + {0x00FE33, 0x00FE34}, + {0x00FE4D, 0x00FE4F}, + {0x00FE70, 0x00FE74}, + {0x00FE76, 0x00FEFC}, + {0x00FF10, 0x00FF19}, + {0x00FF21, 0x00FF3A}, + {0x00FF3F, 0x00FF3F}, + {0x00FF41, 0x00FF5A}, + {0x00FF65, 0x00FFBE}, + {0x00FFC2, 0x00FFC7}, + {0x00FFCA, 0x00FFCF}, + {0x00FFD2, 0x00FFD7}, + {0x00FFDA, 0x00FFDC}, + {0x010000, 0x01000B}, + {0x01000D, 0x010026}, + {0x010028, 0x01003A}, + {0x01003C, 0x01003D}, + {0x01003F, 0x01004D}, + {0x010050, 0x01005D}, + {0x010080, 0x0100FA}, + {0x010140, 0x010174}, + {0x0101FD, 0x0101FD}, + {0x010280, 0x01029C}, + {0x0102A0, 0x0102D0}, + {0x0102E0, 0x0102E0}, + {0x010300, 0x01031F}, + {0x01032D, 0x01034A}, + {0x010350, 0x01037A}, + {0x010380, 0x01039D}, + {0x0103A0, 0x0103C3}, + {0x0103C8, 0x0103CF}, + {0x0103D1, 0x0103D5}, + {0x010400, 0x01049D}, + {0x0104A0, 0x0104A9}, + {0x0104B0, 0x0104D3}, + {0x0104D8, 0x0104FB}, + {0x010500, 0x010527}, + {0x010530, 0x010563}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010600, 0x010736}, + {0x010740, 0x010755}, + {0x010760, 0x010767}, + {0x010780, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010800, 0x010805}, + {0x010808, 0x010808}, + {0x01080A, 0x010835}, + {0x010837, 0x010838}, + {0x01083C, 0x01083C}, + {0x01083F, 0x010855}, + {0x010860, 0x010876}, + {0x010880, 0x01089E}, + {0x0108E0, 0x0108F2}, + {0x0108F4, 0x0108F5}, + {0x010900, 0x010915}, + {0x010920, 0x010939}, + {0x010980, 0x0109B7}, + {0x0109BE, 0x0109BF}, + {0x010A00, 0x010A03}, + {0x010A05, 0x010A06}, + {0x010A0C, 0x010A13}, + {0x010A15, 0x010A17}, + {0x010A19, 0x010A35}, + {0x010A38, 0x010A3A}, + {0x010A3F, 0x010A3F}, + {0x010A60, 0x010A7C}, + {0x010A80, 0x010A9C}, + {0x010AC0, 0x010AC7}, + {0x010AC9, 0x010AE6}, + {0x010B00, 0x010B35}, + {0x010B40, 0x010B55}, + {0x010B60, 0x010B72}, + {0x010B80, 0x010B91}, + {0x010C00, 0x010C48}, + {0x010C80, 0x010CB2}, + {0x010CC0, 0x010CF2}, + {0x010D00, 0x010D27}, + {0x010D30, 0x010D39}, + {0x010E80, 0x010EA9}, + {0x010EAB, 0x010EAC}, + {0x010EB0, 0x010EB1}, + {0x010EFD, 0x010F1C}, + {0x010F27, 0x010F27}, + {0x010F30, 0x010F50}, + {0x010F70, 0x010F85}, + {0x010FB0, 0x010FC4}, + {0x010FE0, 0x010FF6}, + {0x011000, 0x011046}, + {0x011066, 0x011075}, + {0x01107F, 0x0110BA}, + {0x0110C2, 0x0110C2}, + {0x0110D0, 0x0110E8}, + {0x0110F0, 0x0110F9}, + {0x011100, 0x011134}, + {0x011136, 0x01113F}, + {0x011144, 0x011147}, + {0x011150, 0x011173}, + {0x011176, 0x011176}, + {0x011180, 0x0111C4}, + {0x0111C9, 0x0111CC}, + {0x0111CE, 0x0111DA}, + {0x0111DC, 0x0111DC}, + {0x011200, 0x011211}, + {0x011213, 0x011237}, + {0x01123E, 0x011241}, + {0x011280, 0x011286}, + {0x011288, 0x011288}, + {0x01128A, 0x01128D}, + {0x01128F, 0x01129D}, + {0x01129F, 0x0112A8}, + {0x0112B0, 0x0112EA}, + {0x0112F0, 0x0112F9}, + {0x011300, 0x011303}, + {0x011305, 0x01130C}, + {0x01130F, 0x011310}, + {0x011313, 0x011328}, + {0x01132A, 0x011330}, + {0x011332, 0x011333}, + {0x011335, 0x011339}, + {0x01133B, 0x011344}, + {0x011347, 0x011348}, + {0x01134B, 0x01134D}, + {0x011350, 0x011350}, + {0x011357, 0x011357}, + {0x01135D, 0x011363}, + {0x011366, 0x01136C}, + {0x011370, 0x011374}, + {0x011400, 0x01144A}, + {0x011450, 0x011459}, + {0x01145E, 0x011461}, + {0x011480, 0x0114C5}, + {0x0114C7, 0x0114C7}, + {0x0114D0, 0x0114D9}, + {0x011580, 0x0115B5}, + {0x0115B8, 0x0115C0}, + {0x0115D8, 0x0115DD}, + {0x011600, 0x011640}, + {0x011644, 0x011644}, + {0x011650, 0x011659}, + {0x011680, 0x0116B8}, + {0x0116C0, 0x0116C9}, + {0x011700, 0x01171A}, + {0x01171D, 0x01172B}, + {0x011730, 0x011739}, + {0x011740, 0x011746}, + {0x011800, 0x01183A}, + {0x0118A0, 0x0118E9}, + {0x0118FF, 0x011906}, + {0x011909, 0x011909}, + {0x01190C, 0x011913}, + {0x011915, 0x011916}, + {0x011918, 0x011935}, + {0x011937, 0x011938}, + {0x01193B, 0x011943}, + {0x011950, 0x011959}, + {0x0119A0, 0x0119A7}, + {0x0119AA, 0x0119D7}, + {0x0119DA, 0x0119E1}, + {0x0119E3, 0x0119E4}, + {0x011A00, 0x011A3E}, + {0x011A47, 0x011A47}, + {0x011A50, 0x011A99}, + {0x011A9D, 0x011A9D}, + {0x011AB0, 0x011AF8}, + {0x011C00, 0x011C08}, + {0x011C0A, 0x011C36}, + {0x011C38, 0x011C40}, + {0x011C50, 0x011C59}, + {0x011C72, 0x011C8F}, + {0x011C92, 0x011CA7}, + {0x011CA9, 0x011CB6}, + {0x011D00, 0x011D06}, + {0x011D08, 0x011D09}, + {0x011D0B, 0x011D36}, + {0x011D3A, 0x011D3A}, + {0x011D3C, 0x011D3D}, + {0x011D3F, 0x011D47}, + {0x011D50, 0x011D59}, + {0x011D60, 0x011D65}, + {0x011D67, 0x011D68}, + {0x011D6A, 0x011D8E}, + {0x011D90, 0x011D91}, + {0x011D93, 0x011D98}, + {0x011DA0, 0x011DA9}, + {0x011EE0, 0x011EF6}, + {0x011F00, 0x011F10}, + {0x011F12, 0x011F3A}, + {0x011F3E, 0x011F42}, + {0x011F50, 0x011F59}, + {0x011FB0, 0x011FB0}, + {0x012000, 0x012399}, + {0x012400, 0x01246E}, + {0x012480, 0x012543}, + {0x012F90, 0x012FF0}, + {0x013000, 0x01342F}, + {0x013440, 0x013455}, + {0x014400, 0x014646}, + {0x016800, 0x016A38}, + {0x016A40, 0x016A5E}, + {0x016A60, 0x016A69}, + {0x016A70, 0x016ABE}, + {0x016AC0, 0x016AC9}, + {0x016AD0, 0x016AED}, + {0x016AF0, 0x016AF4}, + {0x016B00, 0x016B36}, + {0x016B40, 0x016B43}, + {0x016B50, 0x016B59}, + {0x016B63, 0x016B77}, + {0x016B7D, 0x016B8F}, + {0x016E40, 0x016E7F}, + {0x016F00, 0x016F4A}, + {0x016F4F, 0x016F87}, + {0x016F8F, 0x016F9F}, + {0x016FE0, 0x016FE1}, + {0x016FE3, 0x016FE4}, + {0x016FF0, 0x016FF1}, + {0x017000, 0x0187F7}, + {0x018800, 0x018CD5}, + {0x018D00, 0x018D08}, + {0x01AFF0, 0x01AFF3}, + {0x01AFF5, 0x01AFFB}, + {0x01AFFD, 0x01AFFE}, + {0x01B000, 0x01B122}, + {0x01B132, 0x01B132}, + {0x01B150, 0x01B152}, + {0x01B155, 0x01B155}, + {0x01B164, 0x01B167}, + {0x01B170, 0x01B2FB}, + {0x01BC00, 0x01BC6A}, + {0x01BC70, 0x01BC7C}, + {0x01BC80, 0x01BC88}, + {0x01BC90, 0x01BC99}, + {0x01BC9D, 0x01BC9E}, + {0x01CF00, 0x01CF2D}, + {0x01CF30, 0x01CF46}, + {0x01D165, 0x01D169}, + {0x01D16D, 0x01D172}, + {0x01D17B, 0x01D182}, + {0x01D185, 0x01D18B}, + {0x01D1AA, 0x01D1AD}, + {0x01D242, 0x01D244}, + {0x01D400, 0x01D454}, + {0x01D456, 0x01D49C}, + {0x01D49E, 0x01D49F}, + {0x01D4A2, 0x01D4A2}, + {0x01D4A5, 0x01D4A6}, + {0x01D4A9, 0x01D4AC}, + {0x01D4AE, 0x01D4B9}, + {0x01D4BB, 0x01D4BB}, + {0x01D4BD, 0x01D4C3}, + {0x01D4C5, 0x01D505}, + {0x01D507, 0x01D50A}, + {0x01D50D, 0x01D514}, + {0x01D516, 0x01D51C}, + {0x01D51E, 0x01D539}, + {0x01D53B, 0x01D53E}, + {0x01D540, 0x01D544}, + {0x01D546, 0x01D546}, + {0x01D54A, 0x01D550}, + {0x01D552, 0x01D6A5}, + {0x01D6A8, 0x01D6C0}, + {0x01D6C2, 0x01D6DA}, + {0x01D6DC, 0x01D6FA}, + {0x01D6FC, 0x01D714}, + {0x01D716, 0x01D734}, + {0x01D736, 0x01D74E}, + {0x01D750, 0x01D76E}, + {0x01D770, 0x01D788}, + {0x01D78A, 0x01D7A8}, + {0x01D7AA, 0x01D7C2}, + {0x01D7C4, 0x01D7CB}, + {0x01D7CE, 0x01D7FF}, + {0x01DA00, 0x01DA36}, + {0x01DA3B, 0x01DA6C}, + {0x01DA75, 0x01DA75}, + {0x01DA84, 0x01DA84}, + {0x01DA9B, 0x01DA9F}, + {0x01DAA1, 0x01DAAF}, + {0x01DF00, 0x01DF1E}, + {0x01DF25, 0x01DF2A}, + {0x01E000, 0x01E006}, + {0x01E008, 0x01E018}, + {0x01E01B, 0x01E021}, + {0x01E023, 0x01E024}, + {0x01E026, 0x01E02A}, + {0x01E030, 0x01E06D}, + {0x01E08F, 0x01E08F}, + {0x01E100, 0x01E12C}, + {0x01E130, 0x01E13D}, + {0x01E140, 0x01E149}, + {0x01E14E, 0x01E14E}, + {0x01E290, 0x01E2AE}, + {0x01E2C0, 0x01E2F9}, + {0x01E4D0, 0x01E4F9}, + {0x01E7E0, 0x01E7E6}, + {0x01E7E8, 0x01E7EB}, + {0x01E7ED, 0x01E7EE}, + {0x01E7F0, 0x01E7FE}, + {0x01E800, 0x01E8C4}, + {0x01E8D0, 0x01E8D6}, + {0x01E900, 0x01E94B}, + {0x01E950, 0x01E959}, + {0x01EE00, 0x01EE03}, + {0x01EE05, 0x01EE1F}, + {0x01EE21, 0x01EE22}, + {0x01EE24, 0x01EE24}, + {0x01EE27, 0x01EE27}, + {0x01EE29, 0x01EE32}, + {0x01EE34, 0x01EE37}, + {0x01EE39, 0x01EE39}, + {0x01EE3B, 0x01EE3B}, + {0x01EE42, 0x01EE42}, + {0x01EE47, 0x01EE47}, + {0x01EE49, 0x01EE49}, + {0x01EE4B, 0x01EE4B}, + {0x01EE4D, 0x01EE4F}, + {0x01EE51, 0x01EE52}, + {0x01EE54, 0x01EE54}, + {0x01EE57, 0x01EE57}, + {0x01EE59, 0x01EE59}, + {0x01EE5B, 0x01EE5B}, + {0x01EE5D, 0x01EE5D}, + {0x01EE5F, 0x01EE5F}, + {0x01EE61, 0x01EE62}, + {0x01EE64, 0x01EE64}, + {0x01EE67, 0x01EE6A}, + {0x01EE6C, 0x01EE72}, + {0x01EE74, 0x01EE77}, + {0x01EE79, 0x01EE7C}, + {0x01EE7E, 0x01EE7E}, + {0x01EE80, 0x01EE89}, + {0x01EE8B, 0x01EE9B}, + {0x01EEA1, 0x01EEA3}, + {0x01EEA5, 0x01EEA9}, + {0x01EEAB, 0x01EEBB}, + {0x01FBF0, 0x01FBF9}, + {0x020000, 0x02A6DF}, + {0x02A700, 0x02B739}, + {0x02B740, 0x02B81D}, + {0x02B820, 0x02CEA1}, + {0x02CEB0, 0x02EBE0}, + {0x02EBF0, 0x02EE5D}, + {0x02F800, 0x02FA1D}, + {0x030000, 0x03134A}, + {0x031350, 0x0323AF}, + {0x0E0100, 0x0E01EF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_id_continue(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_id_start.c b/vendor/librune/lib/rtype/rune_has_prop_id_start.c new file mode 100644 index 0000000..da8ee30 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_id_start.c @@ -0,0 +1,690 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000041, 0x00005A}, + {0x000061, 0x00007A}, + {0x0000AA, 0x0000AA}, + {0x0000B5, 0x0000B5}, + {0x0000BA, 0x0000BA}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000F6}, + {0x0000F8, 0x0002C1}, + {0x0002C6, 0x0002D1}, + {0x0002E0, 0x0002E4}, + {0x0002EC, 0x0002EC}, + {0x0002EE, 0x0002EE}, + {0x000370, 0x000374}, + {0x000376, 0x000377}, + {0x00037A, 0x00037D}, + {0x00037F, 0x00037F}, + {0x000386, 0x000386}, + {0x000388, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x0003A1}, + {0x0003A3, 0x0003F5}, + {0x0003F7, 0x000481}, + {0x00048A, 0x00052F}, + {0x000531, 0x000556}, + {0x000559, 0x000559}, + {0x000560, 0x000588}, + {0x0005D0, 0x0005EA}, + {0x0005EF, 0x0005F2}, + {0x000620, 0x00064A}, + {0x00066E, 0x00066F}, + {0x000671, 0x0006D3}, + {0x0006D5, 0x0006D5}, + {0x0006E5, 0x0006E6}, + {0x0006EE, 0x0006EF}, + {0x0006FA, 0x0006FC}, + {0x0006FF, 0x0006FF}, + {0x000710, 0x000710}, + {0x000712, 0x00072F}, + {0x00074D, 0x0007A5}, + {0x0007B1, 0x0007B1}, + {0x0007CA, 0x0007EA}, + {0x0007F4, 0x0007F5}, + {0x0007FA, 0x0007FA}, + {0x000800, 0x000815}, + {0x00081A, 0x00081A}, + {0x000824, 0x000824}, + {0x000828, 0x000828}, + {0x000840, 0x000858}, + {0x000860, 0x00086A}, + {0x000870, 0x000887}, + {0x000889, 0x00088E}, + {0x0008A0, 0x0008C9}, + {0x000904, 0x000939}, + {0x00093D, 0x00093D}, + {0x000950, 0x000950}, + {0x000958, 0x000961}, + {0x000971, 0x000980}, + {0x000985, 0x00098C}, + {0x00098F, 0x000990}, + {0x000993, 0x0009A8}, + {0x0009AA, 0x0009B0}, + {0x0009B2, 0x0009B2}, + {0x0009B6, 0x0009B9}, + {0x0009BD, 0x0009BD}, + {0x0009CE, 0x0009CE}, + {0x0009DC, 0x0009DD}, + {0x0009DF, 0x0009E1}, + {0x0009F0, 0x0009F1}, + {0x0009FC, 0x0009FC}, + {0x000A05, 0x000A0A}, + {0x000A0F, 0x000A10}, + {0x000A13, 0x000A28}, + {0x000A2A, 0x000A30}, + {0x000A32, 0x000A33}, + {0x000A35, 0x000A36}, + {0x000A38, 0x000A39}, + {0x000A59, 0x000A5C}, + {0x000A5E, 0x000A5E}, + {0x000A72, 0x000A74}, + {0x000A85, 0x000A8D}, + {0x000A8F, 0x000A91}, + {0x000A93, 0x000AA8}, + {0x000AAA, 0x000AB0}, + {0x000AB2, 0x000AB3}, + {0x000AB5, 0x000AB9}, + {0x000ABD, 0x000ABD}, + {0x000AD0, 0x000AD0}, + {0x000AE0, 0x000AE1}, + {0x000AF9, 0x000AF9}, + {0x000B05, 0x000B0C}, + {0x000B0F, 0x000B10}, + {0x000B13, 0x000B28}, + {0x000B2A, 0x000B30}, + {0x000B32, 0x000B33}, + {0x000B35, 0x000B39}, + {0x000B3D, 0x000B3D}, + {0x000B5C, 0x000B5D}, + {0x000B5F, 0x000B61}, + {0x000B71, 0x000B71}, + {0x000B83, 0x000B83}, + {0x000B85, 0x000B8A}, + {0x000B8E, 0x000B90}, + {0x000B92, 0x000B95}, + {0x000B99, 0x000B9A}, + {0x000B9C, 0x000B9C}, + {0x000B9E, 0x000B9F}, + {0x000BA3, 0x000BA4}, + {0x000BA8, 0x000BAA}, + {0x000BAE, 0x000BB9}, + {0x000BD0, 0x000BD0}, + {0x000C05, 0x000C0C}, + {0x000C0E, 0x000C10}, + {0x000C12, 0x000C28}, + {0x000C2A, 0x000C39}, + {0x000C3D, 0x000C3D}, + {0x000C58, 0x000C5A}, + {0x000C5D, 0x000C5D}, + {0x000C60, 0x000C61}, + {0x000C80, 0x000C80}, + {0x000C85, 0x000C8C}, + {0x000C8E, 0x000C90}, + {0x000C92, 0x000CA8}, + {0x000CAA, 0x000CB3}, + {0x000CB5, 0x000CB9}, + {0x000CBD, 0x000CBD}, + {0x000CDD, 0x000CDE}, + {0x000CE0, 0x000CE1}, + {0x000CF1, 0x000CF2}, + {0x000D04, 0x000D0C}, + {0x000D0E, 0x000D10}, + {0x000D12, 0x000D3A}, + {0x000D3D, 0x000D3D}, + {0x000D4E, 0x000D4E}, + {0x000D54, 0x000D56}, + {0x000D5F, 0x000D61}, + {0x000D7A, 0x000D7F}, + {0x000D85, 0x000D96}, + {0x000D9A, 0x000DB1}, + {0x000DB3, 0x000DBB}, + {0x000DBD, 0x000DBD}, + {0x000DC0, 0x000DC6}, + {0x000E01, 0x000E30}, + {0x000E32, 0x000E33}, + {0x000E40, 0x000E46}, + {0x000E81, 0x000E82}, + {0x000E84, 0x000E84}, + {0x000E86, 0x000E8A}, + {0x000E8C, 0x000EA3}, + {0x000EA5, 0x000EA5}, + {0x000EA7, 0x000EB0}, + {0x000EB2, 0x000EB3}, + {0x000EBD, 0x000EBD}, + {0x000EC0, 0x000EC4}, + {0x000EC6, 0x000EC6}, + {0x000EDC, 0x000EDF}, + {0x000F00, 0x000F00}, + {0x000F40, 0x000F47}, + {0x000F49, 0x000F6C}, + {0x000F88, 0x000F8C}, + {0x001000, 0x00102A}, + {0x00103F, 0x00103F}, + {0x001050, 0x001055}, + {0x00105A, 0x00105D}, + {0x001061, 0x001061}, + {0x001065, 0x001066}, + {0x00106E, 0x001070}, + {0x001075, 0x001081}, + {0x00108E, 0x00108E}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0010D0, 0x0010FA}, + {0x0010FC, 0x001248}, + {0x00124A, 0x00124D}, + {0x001250, 0x001256}, + {0x001258, 0x001258}, + {0x00125A, 0x00125D}, + {0x001260, 0x001288}, + {0x00128A, 0x00128D}, + {0x001290, 0x0012B0}, + {0x0012B2, 0x0012B5}, + {0x0012B8, 0x0012BE}, + {0x0012C0, 0x0012C0}, + {0x0012C2, 0x0012C5}, + {0x0012C8, 0x0012D6}, + {0x0012D8, 0x001310}, + {0x001312, 0x001315}, + {0x001318, 0x00135A}, + {0x001380, 0x00138F}, + {0x0013A0, 0x0013F5}, + {0x0013F8, 0x0013FD}, + {0x001401, 0x00166C}, + {0x00166F, 0x00167F}, + {0x001681, 0x00169A}, + {0x0016A0, 0x0016EA}, + {0x0016EE, 0x0016F8}, + {0x001700, 0x001711}, + {0x00171F, 0x001731}, + {0x001740, 0x001751}, + {0x001760, 0x00176C}, + {0x00176E, 0x001770}, + {0x001780, 0x0017B3}, + {0x0017D7, 0x0017D7}, + {0x0017DC, 0x0017DC}, + {0x001820, 0x001878}, + {0x001880, 0x0018A8}, + {0x0018AA, 0x0018AA}, + {0x0018B0, 0x0018F5}, + {0x001900, 0x00191E}, + {0x001950, 0x00196D}, + {0x001970, 0x001974}, + {0x001980, 0x0019AB}, + {0x0019B0, 0x0019C9}, + {0x001A00, 0x001A16}, + {0x001A20, 0x001A54}, + {0x001AA7, 0x001AA7}, + {0x001B05, 0x001B33}, + {0x001B45, 0x001B4C}, + {0x001B83, 0x001BA0}, + {0x001BAE, 0x001BAF}, + {0x001BBA, 0x001BE5}, + {0x001C00, 0x001C23}, + {0x001C4D, 0x001C4F}, + {0x001C5A, 0x001C7D}, + {0x001C80, 0x001C88}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001CE9, 0x001CEC}, + {0x001CEE, 0x001CF3}, + {0x001CF5, 0x001CF6}, + {0x001CFA, 0x001CFA}, + {0x001D00, 0x001DBF}, + {0x001E00, 0x001F15}, + {0x001F18, 0x001F1D}, + {0x001F20, 0x001F45}, + {0x001F48, 0x001F4D}, + {0x001F50, 0x001F57}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F7D}, + {0x001F80, 0x001FB4}, + {0x001FB6, 0x001FBC}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FCC}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FDB}, + {0x001FE0, 0x001FEC}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FFC}, + {0x002071, 0x002071}, + {0x00207F, 0x00207F}, + {0x002090, 0x00209C}, + {0x002102, 0x002102}, + {0x002107, 0x002107}, + {0x00210A, 0x002113}, + {0x002115, 0x002115}, + {0x002118, 0x00211D}, + {0x002124, 0x002124}, + {0x002126, 0x002126}, + {0x002128, 0x002128}, + {0x00212A, 0x002139}, + {0x00213C, 0x00213F}, + {0x002145, 0x002149}, + {0x00214E, 0x00214E}, + {0x002160, 0x002188}, + {0x002C00, 0x002CE4}, + {0x002CEB, 0x002CEE}, + {0x002CF2, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x002D30, 0x002D67}, + {0x002D6F, 0x002D6F}, + {0x002D80, 0x002D96}, + {0x002DA0, 0x002DA6}, + {0x002DA8, 0x002DAE}, + {0x002DB0, 0x002DB6}, + {0x002DB8, 0x002DBE}, + {0x002DC0, 0x002DC6}, + {0x002DC8, 0x002DCE}, + {0x002DD0, 0x002DD6}, + {0x002DD8, 0x002DDE}, + {0x003005, 0x003007}, + {0x003021, 0x003029}, + {0x003031, 0x003035}, + {0x003038, 0x00303C}, + {0x003041, 0x003096}, + {0x00309B, 0x00309F}, + {0x0030A1, 0x0030FA}, + {0x0030FC, 0x0030FF}, + {0x003105, 0x00312F}, + {0x003131, 0x00318E}, + {0x0031A0, 0x0031BF}, + {0x0031F0, 0x0031FF}, + {0x003400, 0x004DBF}, + {0x004E00, 0x00A48C}, + {0x00A4D0, 0x00A4FD}, + {0x00A500, 0x00A60C}, + {0x00A610, 0x00A61F}, + {0x00A62A, 0x00A62B}, + {0x00A640, 0x00A66E}, + {0x00A67F, 0x00A69D}, + {0x00A6A0, 0x00A6EF}, + {0x00A717, 0x00A71F}, + {0x00A722, 0x00A788}, + {0x00A78B, 0x00A7CA}, + {0x00A7D0, 0x00A7D1}, + {0x00A7D3, 0x00A7D3}, + {0x00A7D5, 0x00A7D9}, + {0x00A7F2, 0x00A801}, + {0x00A803, 0x00A805}, + {0x00A807, 0x00A80A}, + {0x00A80C, 0x00A822}, + {0x00A840, 0x00A873}, + {0x00A882, 0x00A8B3}, + {0x00A8F2, 0x00A8F7}, + {0x00A8FB, 0x00A8FB}, + {0x00A8FD, 0x00A8FE}, + {0x00A90A, 0x00A925}, + {0x00A930, 0x00A946}, + {0x00A960, 0x00A97C}, + {0x00A984, 0x00A9B2}, + {0x00A9CF, 0x00A9CF}, + {0x00A9E0, 0x00A9E4}, + {0x00A9E6, 0x00A9EF}, + {0x00A9FA, 0x00A9FE}, + {0x00AA00, 0x00AA28}, + {0x00AA40, 0x00AA42}, + {0x00AA44, 0x00AA4B}, + {0x00AA60, 0x00AA76}, + {0x00AA7A, 0x00AA7A}, + {0x00AA7E, 0x00AAAF}, + {0x00AAB1, 0x00AAB1}, + {0x00AAB5, 0x00AAB6}, + {0x00AAB9, 0x00AABD}, + {0x00AAC0, 0x00AAC0}, + {0x00AAC2, 0x00AAC2}, + {0x00AADB, 0x00AADD}, + {0x00AAE0, 0x00AAEA}, + {0x00AAF2, 0x00AAF4}, + {0x00AB01, 0x00AB06}, + {0x00AB09, 0x00AB0E}, + {0x00AB11, 0x00AB16}, + {0x00AB20, 0x00AB26}, + {0x00AB28, 0x00AB2E}, + {0x00AB30, 0x00AB5A}, + {0x00AB5C, 0x00AB69}, + {0x00AB70, 0x00ABE2}, + {0x00AC00, 0x00D7A3}, + {0x00D7B0, 0x00D7C6}, + {0x00D7CB, 0x00D7FB}, + {0x00F900, 0x00FA6D}, + {0x00FA70, 0x00FAD9}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FB1D, 0x00FB1D}, + {0x00FB1F, 0x00FB28}, + {0x00FB2A, 0x00FB36}, + {0x00FB38, 0x00FB3C}, + {0x00FB3E, 0x00FB3E}, + {0x00FB40, 0x00FB41}, + {0x00FB43, 0x00FB44}, + {0x00FB46, 0x00FBB1}, + {0x00FBD3, 0x00FD3D}, + {0x00FD50, 0x00FD8F}, + {0x00FD92, 0x00FDC7}, + {0x00FDF0, 0x00FDFB}, + {0x00FE70, 0x00FE74}, + {0x00FE76, 0x00FEFC}, + {0x00FF21, 0x00FF3A}, + {0x00FF41, 0x00FF5A}, + {0x00FF66, 0x00FFBE}, + {0x00FFC2, 0x00FFC7}, + {0x00FFCA, 0x00FFCF}, + {0x00FFD2, 0x00FFD7}, + {0x00FFDA, 0x00FFDC}, + {0x010000, 0x01000B}, + {0x01000D, 0x010026}, + {0x010028, 0x01003A}, + {0x01003C, 0x01003D}, + {0x01003F, 0x01004D}, + {0x010050, 0x01005D}, + {0x010080, 0x0100FA}, + {0x010140, 0x010174}, + {0x010280, 0x01029C}, + {0x0102A0, 0x0102D0}, + {0x010300, 0x01031F}, + {0x01032D, 0x01034A}, + {0x010350, 0x010375}, + {0x010380, 0x01039D}, + {0x0103A0, 0x0103C3}, + {0x0103C8, 0x0103CF}, + {0x0103D1, 0x0103D5}, + {0x010400, 0x01049D}, + {0x0104B0, 0x0104D3}, + {0x0104D8, 0x0104FB}, + {0x010500, 0x010527}, + {0x010530, 0x010563}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010600, 0x010736}, + {0x010740, 0x010755}, + {0x010760, 0x010767}, + {0x010780, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010800, 0x010805}, + {0x010808, 0x010808}, + {0x01080A, 0x010835}, + {0x010837, 0x010838}, + {0x01083C, 0x01083C}, + {0x01083F, 0x010855}, + {0x010860, 0x010876}, + {0x010880, 0x01089E}, + {0x0108E0, 0x0108F2}, + {0x0108F4, 0x0108F5}, + {0x010900, 0x010915}, + {0x010920, 0x010939}, + {0x010980, 0x0109B7}, + {0x0109BE, 0x0109BF}, + {0x010A00, 0x010A00}, + {0x010A10, 0x010A13}, + {0x010A15, 0x010A17}, + {0x010A19, 0x010A35}, + {0x010A60, 0x010A7C}, + {0x010A80, 0x010A9C}, + {0x010AC0, 0x010AC7}, + {0x010AC9, 0x010AE4}, + {0x010B00, 0x010B35}, + {0x010B40, 0x010B55}, + {0x010B60, 0x010B72}, + {0x010B80, 0x010B91}, + {0x010C00, 0x010C48}, + {0x010C80, 0x010CB2}, + {0x010CC0, 0x010CF2}, + {0x010D00, 0x010D23}, + {0x010E80, 0x010EA9}, + {0x010EB0, 0x010EB1}, + {0x010F00, 0x010F1C}, + {0x010F27, 0x010F27}, + {0x010F30, 0x010F45}, + {0x010F70, 0x010F81}, + {0x010FB0, 0x010FC4}, + {0x010FE0, 0x010FF6}, + {0x011003, 0x011037}, + {0x011071, 0x011072}, + {0x011075, 0x011075}, + {0x011083, 0x0110AF}, + {0x0110D0, 0x0110E8}, + {0x011103, 0x011126}, + {0x011144, 0x011144}, + {0x011147, 0x011147}, + {0x011150, 0x011172}, + {0x011176, 0x011176}, + {0x011183, 0x0111B2}, + {0x0111C1, 0x0111C4}, + {0x0111DA, 0x0111DA}, + {0x0111DC, 0x0111DC}, + {0x011200, 0x011211}, + {0x011213, 0x01122B}, + {0x01123F, 0x011240}, + {0x011280, 0x011286}, + {0x011288, 0x011288}, + {0x01128A, 0x01128D}, + {0x01128F, 0x01129D}, + {0x01129F, 0x0112A8}, + {0x0112B0, 0x0112DE}, + {0x011305, 0x01130C}, + {0x01130F, 0x011310}, + {0x011313, 0x011328}, + {0x01132A, 0x011330}, + {0x011332, 0x011333}, + {0x011335, 0x011339}, + {0x01133D, 0x01133D}, + {0x011350, 0x011350}, + {0x01135D, 0x011361}, + {0x011400, 0x011434}, + {0x011447, 0x01144A}, + {0x01145F, 0x011461}, + {0x011480, 0x0114AF}, + {0x0114C4, 0x0114C5}, + {0x0114C7, 0x0114C7}, + {0x011580, 0x0115AE}, + {0x0115D8, 0x0115DB}, + {0x011600, 0x01162F}, + {0x011644, 0x011644}, + {0x011680, 0x0116AA}, + {0x0116B8, 0x0116B8}, + {0x011700, 0x01171A}, + {0x011740, 0x011746}, + {0x011800, 0x01182B}, + {0x0118A0, 0x0118DF}, + {0x0118FF, 0x011906}, + {0x011909, 0x011909}, + {0x01190C, 0x011913}, + {0x011915, 0x011916}, + {0x011918, 0x01192F}, + {0x01193F, 0x01193F}, + {0x011941, 0x011941}, + {0x0119A0, 0x0119A7}, + {0x0119AA, 0x0119D0}, + {0x0119E1, 0x0119E1}, + {0x0119E3, 0x0119E3}, + {0x011A00, 0x011A00}, + {0x011A0B, 0x011A32}, + {0x011A3A, 0x011A3A}, + {0x011A50, 0x011A50}, + {0x011A5C, 0x011A89}, + {0x011A9D, 0x011A9D}, + {0x011AB0, 0x011AF8}, + {0x011C00, 0x011C08}, + {0x011C0A, 0x011C2E}, + {0x011C40, 0x011C40}, + {0x011C72, 0x011C8F}, + {0x011D00, 0x011D06}, + {0x011D08, 0x011D09}, + {0x011D0B, 0x011D30}, + {0x011D46, 0x011D46}, + {0x011D60, 0x011D65}, + {0x011D67, 0x011D68}, + {0x011D6A, 0x011D89}, + {0x011D98, 0x011D98}, + {0x011EE0, 0x011EF2}, + {0x011F02, 0x011F02}, + {0x011F04, 0x011F10}, + {0x011F12, 0x011F33}, + {0x011FB0, 0x011FB0}, + {0x012000, 0x012399}, + {0x012400, 0x01246E}, + {0x012480, 0x012543}, + {0x012F90, 0x012FF0}, + {0x013000, 0x01342F}, + {0x013441, 0x013446}, + {0x014400, 0x014646}, + {0x016800, 0x016A38}, + {0x016A40, 0x016A5E}, + {0x016A70, 0x016ABE}, + {0x016AD0, 0x016AED}, + {0x016B00, 0x016B2F}, + {0x016B40, 0x016B43}, + {0x016B63, 0x016B77}, + {0x016B7D, 0x016B8F}, + {0x016E40, 0x016E7F}, + {0x016F00, 0x016F4A}, + {0x016F50, 0x016F50}, + {0x016F93, 0x016F9F}, + {0x016FE0, 0x016FE1}, + {0x016FE3, 0x016FE3}, + {0x017000, 0x0187F7}, + {0x018800, 0x018CD5}, + {0x018D00, 0x018D08}, + {0x01AFF0, 0x01AFF3}, + {0x01AFF5, 0x01AFFB}, + {0x01AFFD, 0x01AFFE}, + {0x01B000, 0x01B122}, + {0x01B132, 0x01B132}, + {0x01B150, 0x01B152}, + {0x01B155, 0x01B155}, + {0x01B164, 0x01B167}, + {0x01B170, 0x01B2FB}, + {0x01BC00, 0x01BC6A}, + {0x01BC70, 0x01BC7C}, + {0x01BC80, 0x01BC88}, + {0x01BC90, 0x01BC99}, + {0x01D400, 0x01D454}, + {0x01D456, 0x01D49C}, + {0x01D49E, 0x01D49F}, + {0x01D4A2, 0x01D4A2}, + {0x01D4A5, 0x01D4A6}, + {0x01D4A9, 0x01D4AC}, + {0x01D4AE, 0x01D4B9}, + {0x01D4BB, 0x01D4BB}, + {0x01D4BD, 0x01D4C3}, + {0x01D4C5, 0x01D505}, + {0x01D507, 0x01D50A}, + {0x01D50D, 0x01D514}, + {0x01D516, 0x01D51C}, + {0x01D51E, 0x01D539}, + {0x01D53B, 0x01D53E}, + {0x01D540, 0x01D544}, + {0x01D546, 0x01D546}, + {0x01D54A, 0x01D550}, + {0x01D552, 0x01D6A5}, + {0x01D6A8, 0x01D6C0}, + {0x01D6C2, 0x01D6DA}, + {0x01D6DC, 0x01D6FA}, + {0x01D6FC, 0x01D714}, + {0x01D716, 0x01D734}, + {0x01D736, 0x01D74E}, + {0x01D750, 0x01D76E}, + {0x01D770, 0x01D788}, + {0x01D78A, 0x01D7A8}, + {0x01D7AA, 0x01D7C2}, + {0x01D7C4, 0x01D7CB}, + {0x01DF00, 0x01DF1E}, + {0x01DF25, 0x01DF2A}, + {0x01E030, 0x01E06D}, + {0x01E100, 0x01E12C}, + {0x01E137, 0x01E13D}, + {0x01E14E, 0x01E14E}, + {0x01E290, 0x01E2AD}, + {0x01E2C0, 0x01E2EB}, + {0x01E4D0, 0x01E4EB}, + {0x01E7E0, 0x01E7E6}, + {0x01E7E8, 0x01E7EB}, + {0x01E7ED, 0x01E7EE}, + {0x01E7F0, 0x01E7FE}, + {0x01E800, 0x01E8C4}, + {0x01E900, 0x01E943}, + {0x01E94B, 0x01E94B}, + {0x01EE00, 0x01EE03}, + {0x01EE05, 0x01EE1F}, + {0x01EE21, 0x01EE22}, + {0x01EE24, 0x01EE24}, + {0x01EE27, 0x01EE27}, + {0x01EE29, 0x01EE32}, + {0x01EE34, 0x01EE37}, + {0x01EE39, 0x01EE39}, + {0x01EE3B, 0x01EE3B}, + {0x01EE42, 0x01EE42}, + {0x01EE47, 0x01EE47}, + {0x01EE49, 0x01EE49}, + {0x01EE4B, 0x01EE4B}, + {0x01EE4D, 0x01EE4F}, + {0x01EE51, 0x01EE52}, + {0x01EE54, 0x01EE54}, + {0x01EE57, 0x01EE57}, + {0x01EE59, 0x01EE59}, + {0x01EE5B, 0x01EE5B}, + {0x01EE5D, 0x01EE5D}, + {0x01EE5F, 0x01EE5F}, + {0x01EE61, 0x01EE62}, + {0x01EE64, 0x01EE64}, + {0x01EE67, 0x01EE6A}, + {0x01EE6C, 0x01EE72}, + {0x01EE74, 0x01EE77}, + {0x01EE79, 0x01EE7C}, + {0x01EE7E, 0x01EE7E}, + {0x01EE80, 0x01EE89}, + {0x01EE8B, 0x01EE9B}, + {0x01EEA1, 0x01EEA3}, + {0x01EEA5, 0x01EEA9}, + {0x01EEAB, 0x01EEBB}, + {0x020000, 0x02A6DF}, + {0x02A700, 0x02B739}, + {0x02B740, 0x02B81D}, + {0x02B820, 0x02CEA1}, + {0x02CEB0, 0x02EBE0}, + {0x02EBF0, 0x02EE5D}, + {0x02F800, 0x02FA1D}, + {0x030000, 0x03134A}, + {0x031350, 0x0323AF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_id_start(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_ideographic.c b/vendor/librune/lib/rtype/rune_has_prop_ideographic.c new file mode 100644 index 0000000..ddc7bda --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_ideographic.c @@ -0,0 +1,51 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x003006, 0x003007}, + {0x003021, 0x003029}, + {0x003038, 0x00303A}, + {0x003400, 0x004DBF}, + {0x004E00, 0x009FFF}, + {0x00F900, 0x00FA6D}, + {0x00FA70, 0x00FAD9}, + {0x016FE4, 0x016FE4}, + {0x017000, 0x0187F7}, + {0x018800, 0x018CD5}, + {0x018D00, 0x018D08}, + {0x01B170, 0x01B2FB}, + {0x020000, 0x02A6DF}, + {0x02A700, 0x02B739}, + {0x02B740, 0x02B81D}, + {0x02B820, 0x02CEA1}, + {0x02CEB0, 0x02EBE0}, + {0x02EBF0, 0x02EE5D}, + {0x02F800, 0x02FA1D}, + {0x030000, 0x03134A}, + {0x031350, 0x0323AF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_ideographic(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_ids_binary_operator.c b/vendor/librune/lib/rtype/rune_has_prop_ids_binary_operator.c new file mode 100644 index 0000000..b558b1b --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_ids_binary_operator.c @@ -0,0 +1,33 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x002FF0, 0x002FF1}, + {0x002FF4, 0x002FFD}, + {0x0031EF, 0x0031EF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_ids_binary_operator(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_ids_trinary_operator.c b/vendor/librune/lib/rtype/rune_has_prop_ids_trinary_operator.c new file mode 100644 index 0000000..f9dd547 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_ids_trinary_operator.c @@ -0,0 +1,31 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x002FF2, 0x002FF3}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_ids_trinary_operator(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_ids_unary_operator.c b/vendor/librune/lib/rtype/rune_has_prop_ids_unary_operator.c new file mode 100644 index 0000000..59a4d3d --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_ids_unary_operator.c @@ -0,0 +1,31 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x002FFE, 0x002FFF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_ids_unary_operator(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_indic_conjunct_break.c b/vendor/librune/lib/rtype/rune_has_prop_indic_conjunct_break.c new file mode 100644 index 0000000..a1af4a6 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_indic_conjunct_break.c @@ -0,0 +1,230 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000300, 0x00034E}, + {0x000350, 0x00036F}, + {0x000483, 0x000487}, + {0x000591, 0x0005BD}, + {0x0005BF, 0x0005BF}, + {0x0005C1, 0x0005C2}, + {0x0005C4, 0x0005C5}, + {0x0005C7, 0x0005C7}, + {0x000610, 0x00061A}, + {0x00064B, 0x00065F}, + {0x000670, 0x000670}, + {0x0006D6, 0x0006DC}, + {0x0006DF, 0x0006E4}, + {0x0006E7, 0x0006E8}, + {0x0006EA, 0x0006ED}, + {0x000711, 0x000711}, + {0x000730, 0x00074A}, + {0x0007EB, 0x0007F3}, + {0x0007FD, 0x0007FD}, + {0x000816, 0x000819}, + {0x00081B, 0x000823}, + {0x000825, 0x000827}, + {0x000829, 0x00082D}, + {0x000859, 0x00085B}, + {0x000898, 0x00089F}, + {0x0008CA, 0x0008E1}, + {0x0008E3, 0x0008FF}, + {0x000915, 0x000939}, + {0x00093C, 0x00093C}, + {0x00094D, 0x00094D}, + {0x000951, 0x000954}, + {0x000958, 0x00095F}, + {0x000978, 0x00097F}, + {0x000995, 0x0009A8}, + {0x0009AA, 0x0009B0}, + {0x0009B2, 0x0009B2}, + {0x0009B6, 0x0009B9}, + {0x0009BC, 0x0009BC}, + {0x0009CD, 0x0009CD}, + {0x0009DC, 0x0009DD}, + {0x0009DF, 0x0009DF}, + {0x0009F0, 0x0009F1}, + {0x0009FE, 0x0009FE}, + {0x000A3C, 0x000A3C}, + {0x000A95, 0x000AA8}, + {0x000AAA, 0x000AB0}, + {0x000AB2, 0x000AB3}, + {0x000AB5, 0x000AB9}, + {0x000ABC, 0x000ABC}, + {0x000ACD, 0x000ACD}, + {0x000AF9, 0x000AF9}, + {0x000B15, 0x000B28}, + {0x000B2A, 0x000B30}, + {0x000B32, 0x000B33}, + {0x000B35, 0x000B39}, + {0x000B3C, 0x000B3C}, + {0x000B4D, 0x000B4D}, + {0x000B5C, 0x000B5D}, + {0x000B5F, 0x000B5F}, + {0x000B71, 0x000B71}, + {0x000C15, 0x000C28}, + {0x000C2A, 0x000C39}, + {0x000C3C, 0x000C3C}, + {0x000C4D, 0x000C4D}, + {0x000C55, 0x000C56}, + {0x000C58, 0x000C5A}, + {0x000CBC, 0x000CBC}, + {0x000D15, 0x000D3C}, + {0x000D4D, 0x000D4D}, + {0x000E38, 0x000E3A}, + {0x000E48, 0x000E4B}, + {0x000EB8, 0x000EBA}, + {0x000EC8, 0x000ECB}, + {0x000F18, 0x000F19}, + {0x000F35, 0x000F35}, + {0x000F37, 0x000F37}, + {0x000F39, 0x000F39}, + {0x000F71, 0x000F72}, + {0x000F74, 0x000F74}, + {0x000F7A, 0x000F7D}, + {0x000F80, 0x000F80}, + {0x000F82, 0x000F84}, + {0x000F86, 0x000F87}, + {0x000FC6, 0x000FC6}, + {0x001037, 0x001037}, + {0x001039, 0x00103A}, + {0x00108D, 0x00108D}, + {0x00135D, 0x00135F}, + {0x001714, 0x001714}, + {0x0017D2, 0x0017D2}, + {0x0017DD, 0x0017DD}, + {0x0018A9, 0x0018A9}, + {0x001939, 0x00193B}, + {0x001A17, 0x001A18}, + {0x001A60, 0x001A60}, + {0x001A75, 0x001A7C}, + {0x001A7F, 0x001A7F}, + {0x001AB0, 0x001ABD}, + {0x001ABF, 0x001ACE}, + {0x001B34, 0x001B34}, + {0x001B6B, 0x001B73}, + {0x001BAB, 0x001BAB}, + {0x001BE6, 0x001BE6}, + {0x001C37, 0x001C37}, + {0x001CD0, 0x001CD2}, + {0x001CD4, 0x001CE0}, + {0x001CE2, 0x001CE8}, + {0x001CED, 0x001CED}, + {0x001CF4, 0x001CF4}, + {0x001CF8, 0x001CF9}, + {0x001DC0, 0x001DFF}, + {0x00200D, 0x00200D}, + {0x0020D0, 0x0020DC}, + {0x0020E1, 0x0020E1}, + {0x0020E5, 0x0020F0}, + {0x002CEF, 0x002CF1}, + {0x002D7F, 0x002D7F}, + {0x002DE0, 0x002DFF}, + {0x00302A, 0x00302F}, + {0x003099, 0x00309A}, + {0x00A66F, 0x00A66F}, + {0x00A674, 0x00A67D}, + {0x00A69E, 0x00A69F}, + {0x00A6F0, 0x00A6F1}, + {0x00A82C, 0x00A82C}, + {0x00A8E0, 0x00A8F1}, + {0x00A92B, 0x00A92D}, + {0x00A9B3, 0x00A9B3}, + {0x00AAB0, 0x00AAB0}, + {0x00AAB2, 0x00AAB4}, + {0x00AAB7, 0x00AAB8}, + {0x00AABE, 0x00AABF}, + {0x00AAC1, 0x00AAC1}, + {0x00AAF6, 0x00AAF6}, + {0x00ABED, 0x00ABED}, + {0x00FB1E, 0x00FB1E}, + {0x00FE20, 0x00FE2F}, + {0x0101FD, 0x0101FD}, + {0x0102E0, 0x0102E0}, + {0x010376, 0x01037A}, + {0x010A0D, 0x010A0D}, + {0x010A0F, 0x010A0F}, + {0x010A38, 0x010A3A}, + {0x010A3F, 0x010A3F}, + {0x010AE5, 0x010AE6}, + {0x010D24, 0x010D27}, + {0x010EAB, 0x010EAC}, + {0x010EFD, 0x010EFF}, + {0x010F46, 0x010F50}, + {0x010F82, 0x010F85}, + {0x011070, 0x011070}, + {0x01107F, 0x01107F}, + {0x0110BA, 0x0110BA}, + {0x011100, 0x011102}, + {0x011133, 0x011134}, + {0x011173, 0x011173}, + {0x0111CA, 0x0111CA}, + {0x011236, 0x011236}, + {0x0112E9, 0x0112EA}, + {0x01133B, 0x01133C}, + {0x011366, 0x01136C}, + {0x011370, 0x011374}, + {0x011446, 0x011446}, + {0x01145E, 0x01145E}, + {0x0114C3, 0x0114C3}, + {0x0115C0, 0x0115C0}, + {0x0116B7, 0x0116B7}, + {0x01172B, 0x01172B}, + {0x01183A, 0x01183A}, + {0x01193E, 0x01193E}, + {0x011943, 0x011943}, + {0x011A34, 0x011A34}, + {0x011A47, 0x011A47}, + {0x011A99, 0x011A99}, + {0x011D42, 0x011D42}, + {0x011D44, 0x011D45}, + {0x011D97, 0x011D97}, + {0x011F42, 0x011F42}, + {0x016AF0, 0x016AF4}, + {0x016B30, 0x016B36}, + {0x01BC9E, 0x01BC9E}, + {0x01D165, 0x01D165}, + {0x01D167, 0x01D169}, + {0x01D16E, 0x01D172}, + {0x01D17B, 0x01D182}, + {0x01D185, 0x01D18B}, + {0x01D1AA, 0x01D1AD}, + {0x01D242, 0x01D244}, + {0x01E000, 0x01E006}, + {0x01E008, 0x01E018}, + {0x01E01B, 0x01E021}, + {0x01E023, 0x01E024}, + {0x01E026, 0x01E02A}, + {0x01E08F, 0x01E08F}, + {0x01E130, 0x01E136}, + {0x01E2AE, 0x01E2AE}, + {0x01E2EC, 0x01E2EF}, + {0x01E4EC, 0x01E4EF}, + {0x01E8D0, 0x01E8D6}, + {0x01E944, 0x01E94A}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_indic_conjunct_break(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_join_control.c b/vendor/librune/lib/rtype/rune_has_prop_join_control.c new file mode 100644 index 0000000..a26fc37 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_join_control.c @@ -0,0 +1,31 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x00200C, 0x00200D}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_join_control(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_logical_order_exception.c b/vendor/librune/lib/rtype/rune_has_prop_logical_order_exception.c new file mode 100644 index 0000000..6af7d9d --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_logical_order_exception.c @@ -0,0 +1,37 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000E40, 0x000E44}, + {0x000EC0, 0x000EC4}, + {0x0019B5, 0x0019B7}, + {0x0019BA, 0x0019BA}, + {0x00AAB5, 0x00AAB6}, + {0x00AAB9, 0x00AAB9}, + {0x00AABB, 0x00AABC}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_logical_order_exception(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_lowercase.c b/vendor/librune/lib/rtype/rune_has_prop_lowercase.c new file mode 100644 index 0000000..e6308cd --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_lowercase.c @@ -0,0 +1,701 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFF80000000042004000000000007FFFFFE000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000061, 0x00007A}, + {0x0000AA, 0x0000AA}, + {0x0000B5, 0x0000B5}, + {0x0000BA, 0x0000BA}, + {0x0000DF, 0x0000F6}, + {0x0000F8, 0x0000FF}, + {0x000101, 0x000101}, + {0x000103, 0x000103}, + {0x000105, 0x000105}, + {0x000107, 0x000107}, + {0x000109, 0x000109}, + {0x00010B, 0x00010B}, + {0x00010D, 0x00010D}, + {0x00010F, 0x00010F}, + {0x000111, 0x000111}, + {0x000113, 0x000113}, + {0x000115, 0x000115}, + {0x000117, 0x000117}, + {0x000119, 0x000119}, + {0x00011B, 0x00011B}, + {0x00011D, 0x00011D}, + {0x00011F, 0x00011F}, + {0x000121, 0x000121}, + {0x000123, 0x000123}, + {0x000125, 0x000125}, + {0x000127, 0x000127}, + {0x000129, 0x000129}, + {0x00012B, 0x00012B}, + {0x00012D, 0x00012D}, + {0x00012F, 0x00012F}, + {0x000131, 0x000131}, + {0x000133, 0x000133}, + {0x000135, 0x000135}, + {0x000137, 0x000138}, + {0x00013A, 0x00013A}, + {0x00013C, 0x00013C}, + {0x00013E, 0x00013E}, + {0x000140, 0x000140}, + {0x000142, 0x000142}, + {0x000144, 0x000144}, + {0x000146, 0x000146}, + {0x000148, 0x000149}, + {0x00014B, 0x00014B}, + {0x00014D, 0x00014D}, + {0x00014F, 0x00014F}, + {0x000151, 0x000151}, + {0x000153, 0x000153}, + {0x000155, 0x000155}, + {0x000157, 0x000157}, + {0x000159, 0x000159}, + {0x00015B, 0x00015B}, + {0x00015D, 0x00015D}, + {0x00015F, 0x00015F}, + {0x000161, 0x000161}, + {0x000163, 0x000163}, + {0x000165, 0x000165}, + {0x000167, 0x000167}, + {0x000169, 0x000169}, + {0x00016B, 0x00016B}, + {0x00016D, 0x00016D}, + {0x00016F, 0x00016F}, + {0x000171, 0x000171}, + {0x000173, 0x000173}, + {0x000175, 0x000175}, + {0x000177, 0x000177}, + {0x00017A, 0x00017A}, + {0x00017C, 0x00017C}, + {0x00017E, 0x000180}, + {0x000183, 0x000183}, + {0x000185, 0x000185}, + {0x000188, 0x000188}, + {0x00018C, 0x00018D}, + {0x000192, 0x000192}, + {0x000195, 0x000195}, + {0x000199, 0x00019B}, + {0x00019E, 0x00019E}, + {0x0001A1, 0x0001A1}, + {0x0001A3, 0x0001A3}, + {0x0001A5, 0x0001A5}, + {0x0001A8, 0x0001A8}, + {0x0001AA, 0x0001AB}, + {0x0001AD, 0x0001AD}, + {0x0001B0, 0x0001B0}, + {0x0001B4, 0x0001B4}, + {0x0001B6, 0x0001B6}, + {0x0001B9, 0x0001BA}, + {0x0001BD, 0x0001BF}, + {0x0001C6, 0x0001C6}, + {0x0001C9, 0x0001C9}, + {0x0001CC, 0x0001CC}, + {0x0001CE, 0x0001CE}, + {0x0001D0, 0x0001D0}, + {0x0001D2, 0x0001D2}, + {0x0001D4, 0x0001D4}, + {0x0001D6, 0x0001D6}, + {0x0001D8, 0x0001D8}, + {0x0001DA, 0x0001DA}, + {0x0001DC, 0x0001DD}, + {0x0001DF, 0x0001DF}, + {0x0001E1, 0x0001E1}, + {0x0001E3, 0x0001E3}, + {0x0001E5, 0x0001E5}, + {0x0001E7, 0x0001E7}, + {0x0001E9, 0x0001E9}, + {0x0001EB, 0x0001EB}, + {0x0001ED, 0x0001ED}, + {0x0001EF, 0x0001F0}, + {0x0001F3, 0x0001F3}, + {0x0001F5, 0x0001F5}, + {0x0001F9, 0x0001F9}, + {0x0001FB, 0x0001FB}, + {0x0001FD, 0x0001FD}, + {0x0001FF, 0x0001FF}, + {0x000201, 0x000201}, + {0x000203, 0x000203}, + {0x000205, 0x000205}, + {0x000207, 0x000207}, + {0x000209, 0x000209}, + {0x00020B, 0x00020B}, + {0x00020D, 0x00020D}, + {0x00020F, 0x00020F}, + {0x000211, 0x000211}, + {0x000213, 0x000213}, + {0x000215, 0x000215}, + {0x000217, 0x000217}, + {0x000219, 0x000219}, + {0x00021B, 0x00021B}, + {0x00021D, 0x00021D}, + {0x00021F, 0x00021F}, + {0x000221, 0x000221}, + {0x000223, 0x000223}, + {0x000225, 0x000225}, + {0x000227, 0x000227}, + {0x000229, 0x000229}, + {0x00022B, 0x00022B}, + {0x00022D, 0x00022D}, + {0x00022F, 0x00022F}, + {0x000231, 0x000231}, + {0x000233, 0x000239}, + {0x00023C, 0x00023C}, + {0x00023F, 0x000240}, + {0x000242, 0x000242}, + {0x000247, 0x000247}, + {0x000249, 0x000249}, + {0x00024B, 0x00024B}, + {0x00024D, 0x00024D}, + {0x00024F, 0x000293}, + {0x000295, 0x0002B8}, + {0x0002C0, 0x0002C1}, + {0x0002E0, 0x0002E4}, + {0x000345, 0x000345}, + {0x000371, 0x000371}, + {0x000373, 0x000373}, + {0x000377, 0x000377}, + {0x00037A, 0x00037D}, + {0x000390, 0x000390}, + {0x0003AC, 0x0003CE}, + {0x0003D0, 0x0003D1}, + {0x0003D5, 0x0003D7}, + {0x0003D9, 0x0003D9}, + {0x0003DB, 0x0003DB}, + {0x0003DD, 0x0003DD}, + {0x0003DF, 0x0003DF}, + {0x0003E1, 0x0003E1}, + {0x0003E3, 0x0003E3}, + {0x0003E5, 0x0003E5}, + {0x0003E7, 0x0003E7}, + {0x0003E9, 0x0003E9}, + {0x0003EB, 0x0003EB}, + {0x0003ED, 0x0003ED}, + {0x0003EF, 0x0003F3}, + {0x0003F5, 0x0003F5}, + {0x0003F8, 0x0003F8}, + {0x0003FB, 0x0003FC}, + {0x000430, 0x00045F}, + {0x000461, 0x000461}, + {0x000463, 0x000463}, + {0x000465, 0x000465}, + {0x000467, 0x000467}, + {0x000469, 0x000469}, + {0x00046B, 0x00046B}, + {0x00046D, 0x00046D}, + {0x00046F, 0x00046F}, + {0x000471, 0x000471}, + {0x000473, 0x000473}, + {0x000475, 0x000475}, + {0x000477, 0x000477}, + {0x000479, 0x000479}, + {0x00047B, 0x00047B}, + {0x00047D, 0x00047D}, + {0x00047F, 0x00047F}, + {0x000481, 0x000481}, + {0x00048B, 0x00048B}, + {0x00048D, 0x00048D}, + {0x00048F, 0x00048F}, + {0x000491, 0x000491}, + {0x000493, 0x000493}, + {0x000495, 0x000495}, + {0x000497, 0x000497}, + {0x000499, 0x000499}, + {0x00049B, 0x00049B}, + {0x00049D, 0x00049D}, + {0x00049F, 0x00049F}, + {0x0004A1, 0x0004A1}, + {0x0004A3, 0x0004A3}, + {0x0004A5, 0x0004A5}, + {0x0004A7, 0x0004A7}, + {0x0004A9, 0x0004A9}, + {0x0004AB, 0x0004AB}, + {0x0004AD, 0x0004AD}, + {0x0004AF, 0x0004AF}, + {0x0004B1, 0x0004B1}, + {0x0004B3, 0x0004B3}, + {0x0004B5, 0x0004B5}, + {0x0004B7, 0x0004B7}, + {0x0004B9, 0x0004B9}, + {0x0004BB, 0x0004BB}, + {0x0004BD, 0x0004BD}, + {0x0004BF, 0x0004BF}, + {0x0004C2, 0x0004C2}, + {0x0004C4, 0x0004C4}, + {0x0004C6, 0x0004C6}, + {0x0004C8, 0x0004C8}, + {0x0004CA, 0x0004CA}, + {0x0004CC, 0x0004CC}, + {0x0004CE, 0x0004CF}, + {0x0004D1, 0x0004D1}, + {0x0004D3, 0x0004D3}, + {0x0004D5, 0x0004D5}, + {0x0004D7, 0x0004D7}, + {0x0004D9, 0x0004D9}, + {0x0004DB, 0x0004DB}, + {0x0004DD, 0x0004DD}, + {0x0004DF, 0x0004DF}, + {0x0004E1, 0x0004E1}, + {0x0004E3, 0x0004E3}, + {0x0004E5, 0x0004E5}, + {0x0004E7, 0x0004E7}, + {0x0004E9, 0x0004E9}, + {0x0004EB, 0x0004EB}, + {0x0004ED, 0x0004ED}, + {0x0004EF, 0x0004EF}, + {0x0004F1, 0x0004F1}, + {0x0004F3, 0x0004F3}, + {0x0004F5, 0x0004F5}, + {0x0004F7, 0x0004F7}, + {0x0004F9, 0x0004F9}, + {0x0004FB, 0x0004FB}, + {0x0004FD, 0x0004FD}, + {0x0004FF, 0x0004FF}, + {0x000501, 0x000501}, + {0x000503, 0x000503}, + {0x000505, 0x000505}, + {0x000507, 0x000507}, + {0x000509, 0x000509}, + {0x00050B, 0x00050B}, + {0x00050D, 0x00050D}, + {0x00050F, 0x00050F}, + {0x000511, 0x000511}, + {0x000513, 0x000513}, + {0x000515, 0x000515}, + {0x000517, 0x000517}, + {0x000519, 0x000519}, + {0x00051B, 0x00051B}, + {0x00051D, 0x00051D}, + {0x00051F, 0x00051F}, + {0x000521, 0x000521}, + {0x000523, 0x000523}, + {0x000525, 0x000525}, + {0x000527, 0x000527}, + {0x000529, 0x000529}, + {0x00052B, 0x00052B}, + {0x00052D, 0x00052D}, + {0x00052F, 0x00052F}, + {0x000560, 0x000588}, + {0x0010D0, 0x0010FA}, + {0x0010FC, 0x0010FF}, + {0x0013F8, 0x0013FD}, + {0x001C80, 0x001C88}, + {0x001D00, 0x001DBF}, + {0x001E01, 0x001E01}, + {0x001E03, 0x001E03}, + {0x001E05, 0x001E05}, + {0x001E07, 0x001E07}, + {0x001E09, 0x001E09}, + {0x001E0B, 0x001E0B}, + {0x001E0D, 0x001E0D}, + {0x001E0F, 0x001E0F}, + {0x001E11, 0x001E11}, + {0x001E13, 0x001E13}, + {0x001E15, 0x001E15}, + {0x001E17, 0x001E17}, + {0x001E19, 0x001E19}, + {0x001E1B, 0x001E1B}, + {0x001E1D, 0x001E1D}, + {0x001E1F, 0x001E1F}, + {0x001E21, 0x001E21}, + {0x001E23, 0x001E23}, + {0x001E25, 0x001E25}, + {0x001E27, 0x001E27}, + {0x001E29, 0x001E29}, + {0x001E2B, 0x001E2B}, + {0x001E2D, 0x001E2D}, + {0x001E2F, 0x001E2F}, + {0x001E31, 0x001E31}, + {0x001E33, 0x001E33}, + {0x001E35, 0x001E35}, + {0x001E37, 0x001E37}, + {0x001E39, 0x001E39}, + {0x001E3B, 0x001E3B}, + {0x001E3D, 0x001E3D}, + {0x001E3F, 0x001E3F}, + {0x001E41, 0x001E41}, + {0x001E43, 0x001E43}, + {0x001E45, 0x001E45}, + {0x001E47, 0x001E47}, + {0x001E49, 0x001E49}, + {0x001E4B, 0x001E4B}, + {0x001E4D, 0x001E4D}, + {0x001E4F, 0x001E4F}, + {0x001E51, 0x001E51}, + {0x001E53, 0x001E53}, + {0x001E55, 0x001E55}, + {0x001E57, 0x001E57}, + {0x001E59, 0x001E59}, + {0x001E5B, 0x001E5B}, + {0x001E5D, 0x001E5D}, + {0x001E5F, 0x001E5F}, + {0x001E61, 0x001E61}, + {0x001E63, 0x001E63}, + {0x001E65, 0x001E65}, + {0x001E67, 0x001E67}, + {0x001E69, 0x001E69}, + {0x001E6B, 0x001E6B}, + {0x001E6D, 0x001E6D}, + {0x001E6F, 0x001E6F}, + {0x001E71, 0x001E71}, + {0x001E73, 0x001E73}, + {0x001E75, 0x001E75}, + {0x001E77, 0x001E77}, + {0x001E79, 0x001E79}, + {0x001E7B, 0x001E7B}, + {0x001E7D, 0x001E7D}, + {0x001E7F, 0x001E7F}, + {0x001E81, 0x001E81}, + {0x001E83, 0x001E83}, + {0x001E85, 0x001E85}, + {0x001E87, 0x001E87}, + {0x001E89, 0x001E89}, + {0x001E8B, 0x001E8B}, + {0x001E8D, 0x001E8D}, + {0x001E8F, 0x001E8F}, + {0x001E91, 0x001E91}, + {0x001E93, 0x001E93}, + {0x001E95, 0x001E9D}, + {0x001E9F, 0x001E9F}, + {0x001EA1, 0x001EA1}, + {0x001EA3, 0x001EA3}, + {0x001EA5, 0x001EA5}, + {0x001EA7, 0x001EA7}, + {0x001EA9, 0x001EA9}, + {0x001EAB, 0x001EAB}, + {0x001EAD, 0x001EAD}, + {0x001EAF, 0x001EAF}, + {0x001EB1, 0x001EB1}, + {0x001EB3, 0x001EB3}, + {0x001EB5, 0x001EB5}, + {0x001EB7, 0x001EB7}, + {0x001EB9, 0x001EB9}, + {0x001EBB, 0x001EBB}, + {0x001EBD, 0x001EBD}, + {0x001EBF, 0x001EBF}, + {0x001EC1, 0x001EC1}, + {0x001EC3, 0x001EC3}, + {0x001EC5, 0x001EC5}, + {0x001EC7, 0x001EC7}, + {0x001EC9, 0x001EC9}, + {0x001ECB, 0x001ECB}, + {0x001ECD, 0x001ECD}, + {0x001ECF, 0x001ECF}, + {0x001ED1, 0x001ED1}, + {0x001ED3, 0x001ED3}, + {0x001ED5, 0x001ED5}, + {0x001ED7, 0x001ED7}, + {0x001ED9, 0x001ED9}, + {0x001EDB, 0x001EDB}, + {0x001EDD, 0x001EDD}, + {0x001EDF, 0x001EDF}, + {0x001EE1, 0x001EE1}, + {0x001EE3, 0x001EE3}, + {0x001EE5, 0x001EE5}, + {0x001EE7, 0x001EE7}, + {0x001EE9, 0x001EE9}, + {0x001EEB, 0x001EEB}, + {0x001EED, 0x001EED}, + {0x001EEF, 0x001EEF}, + {0x001EF1, 0x001EF1}, + {0x001EF3, 0x001EF3}, + {0x001EF5, 0x001EF5}, + {0x001EF7, 0x001EF7}, + {0x001EF9, 0x001EF9}, + {0x001EFB, 0x001EFB}, + {0x001EFD, 0x001EFD}, + {0x001EFF, 0x001F07}, + {0x001F10, 0x001F15}, + {0x001F20, 0x001F27}, + {0x001F30, 0x001F37}, + {0x001F40, 0x001F45}, + {0x001F50, 0x001F57}, + {0x001F60, 0x001F67}, + {0x001F70, 0x001F7D}, + {0x001F80, 0x001F87}, + {0x001F90, 0x001F97}, + {0x001FA0, 0x001FA7}, + {0x001FB0, 0x001FB4}, + {0x001FB6, 0x001FB7}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FC7}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FD7}, + {0x001FE0, 0x001FE7}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FF7}, + {0x002071, 0x002071}, + {0x00207F, 0x00207F}, + {0x002090, 0x00209C}, + {0x00210A, 0x00210A}, + {0x00210E, 0x00210F}, + {0x002113, 0x002113}, + {0x00212F, 0x00212F}, + {0x002134, 0x002134}, + {0x002139, 0x002139}, + {0x00213C, 0x00213D}, + {0x002146, 0x002149}, + {0x00214E, 0x00214E}, + {0x002170, 0x00217F}, + {0x002184, 0x002184}, + {0x0024D0, 0x0024E9}, + {0x002C30, 0x002C5F}, + {0x002C61, 0x002C61}, + {0x002C65, 0x002C66}, + {0x002C68, 0x002C68}, + {0x002C6A, 0x002C6A}, + {0x002C6C, 0x002C6C}, + {0x002C71, 0x002C71}, + {0x002C73, 0x002C74}, + {0x002C76, 0x002C7D}, + {0x002C81, 0x002C81}, + {0x002C83, 0x002C83}, + {0x002C85, 0x002C85}, + {0x002C87, 0x002C87}, + {0x002C89, 0x002C89}, + {0x002C8B, 0x002C8B}, + {0x002C8D, 0x002C8D}, + {0x002C8F, 0x002C8F}, + {0x002C91, 0x002C91}, + {0x002C93, 0x002C93}, + {0x002C95, 0x002C95}, + {0x002C97, 0x002C97}, + {0x002C99, 0x002C99}, + {0x002C9B, 0x002C9B}, + {0x002C9D, 0x002C9D}, + {0x002C9F, 0x002C9F}, + {0x002CA1, 0x002CA1}, + {0x002CA3, 0x002CA3}, + {0x002CA5, 0x002CA5}, + {0x002CA7, 0x002CA7}, + {0x002CA9, 0x002CA9}, + {0x002CAB, 0x002CAB}, + {0x002CAD, 0x002CAD}, + {0x002CAF, 0x002CAF}, + {0x002CB1, 0x002CB1}, + {0x002CB3, 0x002CB3}, + {0x002CB5, 0x002CB5}, + {0x002CB7, 0x002CB7}, + {0x002CB9, 0x002CB9}, + {0x002CBB, 0x002CBB}, + {0x002CBD, 0x002CBD}, + {0x002CBF, 0x002CBF}, + {0x002CC1, 0x002CC1}, + {0x002CC3, 0x002CC3}, + {0x002CC5, 0x002CC5}, + {0x002CC7, 0x002CC7}, + {0x002CC9, 0x002CC9}, + {0x002CCB, 0x002CCB}, + {0x002CCD, 0x002CCD}, + {0x002CCF, 0x002CCF}, + {0x002CD1, 0x002CD1}, + {0x002CD3, 0x002CD3}, + {0x002CD5, 0x002CD5}, + {0x002CD7, 0x002CD7}, + {0x002CD9, 0x002CD9}, + {0x002CDB, 0x002CDB}, + {0x002CDD, 0x002CDD}, + {0x002CDF, 0x002CDF}, + {0x002CE1, 0x002CE1}, + {0x002CE3, 0x002CE4}, + {0x002CEC, 0x002CEC}, + {0x002CEE, 0x002CEE}, + {0x002CF3, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x00A641, 0x00A641}, + {0x00A643, 0x00A643}, + {0x00A645, 0x00A645}, + {0x00A647, 0x00A647}, + {0x00A649, 0x00A649}, + {0x00A64B, 0x00A64B}, + {0x00A64D, 0x00A64D}, + {0x00A64F, 0x00A64F}, + {0x00A651, 0x00A651}, + {0x00A653, 0x00A653}, + {0x00A655, 0x00A655}, + {0x00A657, 0x00A657}, + {0x00A659, 0x00A659}, + {0x00A65B, 0x00A65B}, + {0x00A65D, 0x00A65D}, + {0x00A65F, 0x00A65F}, + {0x00A661, 0x00A661}, + {0x00A663, 0x00A663}, + {0x00A665, 0x00A665}, + {0x00A667, 0x00A667}, + {0x00A669, 0x00A669}, + {0x00A66B, 0x00A66B}, + {0x00A66D, 0x00A66D}, + {0x00A681, 0x00A681}, + {0x00A683, 0x00A683}, + {0x00A685, 0x00A685}, + {0x00A687, 0x00A687}, + {0x00A689, 0x00A689}, + {0x00A68B, 0x00A68B}, + {0x00A68D, 0x00A68D}, + {0x00A68F, 0x00A68F}, + {0x00A691, 0x00A691}, + {0x00A693, 0x00A693}, + {0x00A695, 0x00A695}, + {0x00A697, 0x00A697}, + {0x00A699, 0x00A699}, + {0x00A69B, 0x00A69D}, + {0x00A723, 0x00A723}, + {0x00A725, 0x00A725}, + {0x00A727, 0x00A727}, + {0x00A729, 0x00A729}, + {0x00A72B, 0x00A72B}, + {0x00A72D, 0x00A72D}, + {0x00A72F, 0x00A731}, + {0x00A733, 0x00A733}, + {0x00A735, 0x00A735}, + {0x00A737, 0x00A737}, + {0x00A739, 0x00A739}, + {0x00A73B, 0x00A73B}, + {0x00A73D, 0x00A73D}, + {0x00A73F, 0x00A73F}, + {0x00A741, 0x00A741}, + {0x00A743, 0x00A743}, + {0x00A745, 0x00A745}, + {0x00A747, 0x00A747}, + {0x00A749, 0x00A749}, + {0x00A74B, 0x00A74B}, + {0x00A74D, 0x00A74D}, + {0x00A74F, 0x00A74F}, + {0x00A751, 0x00A751}, + {0x00A753, 0x00A753}, + {0x00A755, 0x00A755}, + {0x00A757, 0x00A757}, + {0x00A759, 0x00A759}, + {0x00A75B, 0x00A75B}, + {0x00A75D, 0x00A75D}, + {0x00A75F, 0x00A75F}, + {0x00A761, 0x00A761}, + {0x00A763, 0x00A763}, + {0x00A765, 0x00A765}, + {0x00A767, 0x00A767}, + {0x00A769, 0x00A769}, + {0x00A76B, 0x00A76B}, + {0x00A76D, 0x00A76D}, + {0x00A76F, 0x00A778}, + {0x00A77A, 0x00A77A}, + {0x00A77C, 0x00A77C}, + {0x00A77F, 0x00A77F}, + {0x00A781, 0x00A781}, + {0x00A783, 0x00A783}, + {0x00A785, 0x00A785}, + {0x00A787, 0x00A787}, + {0x00A78C, 0x00A78C}, + {0x00A78E, 0x00A78E}, + {0x00A791, 0x00A791}, + {0x00A793, 0x00A795}, + {0x00A797, 0x00A797}, + {0x00A799, 0x00A799}, + {0x00A79B, 0x00A79B}, + {0x00A79D, 0x00A79D}, + {0x00A79F, 0x00A79F}, + {0x00A7A1, 0x00A7A1}, + {0x00A7A3, 0x00A7A3}, + {0x00A7A5, 0x00A7A5}, + {0x00A7A7, 0x00A7A7}, + {0x00A7A9, 0x00A7A9}, + {0x00A7AF, 0x00A7AF}, + {0x00A7B5, 0x00A7B5}, + {0x00A7B7, 0x00A7B7}, + {0x00A7B9, 0x00A7B9}, + {0x00A7BB, 0x00A7BB}, + {0x00A7BD, 0x00A7BD}, + {0x00A7BF, 0x00A7BF}, + {0x00A7C1, 0x00A7C1}, + {0x00A7C3, 0x00A7C3}, + {0x00A7C8, 0x00A7C8}, + {0x00A7CA, 0x00A7CA}, + {0x00A7D1, 0x00A7D1}, + {0x00A7D3, 0x00A7D3}, + {0x00A7D5, 0x00A7D5}, + {0x00A7D7, 0x00A7D7}, + {0x00A7D9, 0x00A7D9}, + {0x00A7F2, 0x00A7F4}, + {0x00A7F6, 0x00A7F6}, + {0x00A7F8, 0x00A7FA}, + {0x00AB30, 0x00AB5A}, + {0x00AB5C, 0x00AB69}, + {0x00AB70, 0x00ABBF}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FF41, 0x00FF5A}, + {0x010428, 0x01044F}, + {0x0104D8, 0x0104FB}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010780, 0x010780}, + {0x010783, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010CC0, 0x010CF2}, + {0x0118C0, 0x0118DF}, + {0x016E60, 0x016E7F}, + {0x01D41A, 0x01D433}, + {0x01D44E, 0x01D454}, + {0x01D456, 0x01D467}, + {0x01D482, 0x01D49B}, + {0x01D4B6, 0x01D4B9}, + {0x01D4BB, 0x01D4BB}, + {0x01D4BD, 0x01D4C3}, + {0x01D4C5, 0x01D4CF}, + {0x01D4EA, 0x01D503}, + {0x01D51E, 0x01D537}, + {0x01D552, 0x01D56B}, + {0x01D586, 0x01D59F}, + {0x01D5BA, 0x01D5D3}, + {0x01D5EE, 0x01D607}, + {0x01D622, 0x01D63B}, + {0x01D656, 0x01D66F}, + {0x01D68A, 0x01D6A5}, + {0x01D6C2, 0x01D6DA}, + {0x01D6DC, 0x01D6E1}, + {0x01D6FC, 0x01D714}, + {0x01D716, 0x01D71B}, + {0x01D736, 0x01D74E}, + {0x01D750, 0x01D755}, + {0x01D770, 0x01D788}, + {0x01D78A, 0x01D78F}, + {0x01D7AA, 0x01D7C2}, + {0x01D7C4, 0x01D7C9}, + {0x01D7CB, 0x01D7CB}, + {0x01DF00, 0x01DF09}, + {0x01DF0B, 0x01DF1E}, + {0x01DF25, 0x01DF2A}, + {0x01E030, 0x01E06D}, + {0x01E922, 0x01E943}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_lowercase(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_math.c b/vendor/librune/lib/rtype/rune_has_prop_math.c new file mode 100644 index 0000000..54858ba --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_math.c @@ -0,0 +1,168 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x80000000800000000210000000000050000000400000007000080000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x00002B, 0x00002B}, + {0x00003C, 0x00003E}, + {0x00005E, 0x00005E}, + {0x00007C, 0x00007C}, + {0x00007E, 0x00007E}, + {0x0000AC, 0x0000AC}, + {0x0000B1, 0x0000B1}, + {0x0000D7, 0x0000D7}, + {0x0000F7, 0x0000F7}, + {0x0003D0, 0x0003D2}, + {0x0003D5, 0x0003D5}, + {0x0003F0, 0x0003F1}, + {0x0003F4, 0x0003F6}, + {0x000606, 0x000608}, + {0x002016, 0x002016}, + {0x002032, 0x002034}, + {0x002040, 0x002040}, + {0x002044, 0x002044}, + {0x002052, 0x002052}, + {0x002061, 0x002064}, + {0x00207A, 0x00207E}, + {0x00208A, 0x00208E}, + {0x0020D0, 0x0020DC}, + {0x0020E1, 0x0020E1}, + {0x0020E5, 0x0020E6}, + {0x0020EB, 0x0020EF}, + {0x002102, 0x002102}, + {0x002107, 0x002107}, + {0x00210A, 0x002113}, + {0x002115, 0x002115}, + {0x002118, 0x00211D}, + {0x002124, 0x002124}, + {0x002128, 0x002129}, + {0x00212C, 0x00212D}, + {0x00212F, 0x002131}, + {0x002133, 0x002138}, + {0x00213C, 0x002149}, + {0x00214B, 0x00214B}, + {0x002190, 0x0021A7}, + {0x0021A9, 0x0021AE}, + {0x0021B0, 0x0021B1}, + {0x0021B6, 0x0021B7}, + {0x0021BC, 0x0021DB}, + {0x0021DD, 0x0021DD}, + {0x0021E4, 0x0021E5}, + {0x0021F4, 0x0022FF}, + {0x002308, 0x00230B}, + {0x002320, 0x002321}, + {0x00237C, 0x00237C}, + {0x00239B, 0x0023B5}, + {0x0023B7, 0x0023B7}, + {0x0023D0, 0x0023D0}, + {0x0023DC, 0x0023E2}, + {0x0025A0, 0x0025A1}, + {0x0025AE, 0x0025B7}, + {0x0025BC, 0x0025C1}, + {0x0025C6, 0x0025C7}, + {0x0025CA, 0x0025CB}, + {0x0025CF, 0x0025D3}, + {0x0025E2, 0x0025E2}, + {0x0025E4, 0x0025E4}, + {0x0025E7, 0x0025EC}, + {0x0025F8, 0x0025FF}, + {0x002605, 0x002606}, + {0x002640, 0x002640}, + {0x002642, 0x002642}, + {0x002660, 0x002663}, + {0x00266D, 0x00266F}, + {0x0027C0, 0x0027FF}, + {0x002900, 0x002AFF}, + {0x002B30, 0x002B44}, + {0x002B47, 0x002B4C}, + {0x00FB29, 0x00FB29}, + {0x00FE61, 0x00FE66}, + {0x00FE68, 0x00FE68}, + {0x00FF0B, 0x00FF0B}, + {0x00FF1C, 0x00FF1E}, + {0x00FF3C, 0x00FF3C}, + {0x00FF3E, 0x00FF3E}, + {0x00FF5C, 0x00FF5C}, + {0x00FF5E, 0x00FF5E}, + {0x00FFE2, 0x00FFE2}, + {0x00FFE9, 0x00FFEC}, + {0x01D400, 0x01D454}, + {0x01D456, 0x01D49C}, + {0x01D49E, 0x01D49F}, + {0x01D4A2, 0x01D4A2}, + {0x01D4A5, 0x01D4A6}, + {0x01D4A9, 0x01D4AC}, + {0x01D4AE, 0x01D4B9}, + {0x01D4BB, 0x01D4BB}, + {0x01D4BD, 0x01D4C3}, + {0x01D4C5, 0x01D505}, + {0x01D507, 0x01D50A}, + {0x01D50D, 0x01D514}, + {0x01D516, 0x01D51C}, + {0x01D51E, 0x01D539}, + {0x01D53B, 0x01D53E}, + {0x01D540, 0x01D544}, + {0x01D546, 0x01D546}, + {0x01D54A, 0x01D550}, + {0x01D552, 0x01D6A5}, + {0x01D6A8, 0x01D7CB}, + {0x01D7CE, 0x01D7FF}, + {0x01EE00, 0x01EE03}, + {0x01EE05, 0x01EE1F}, + {0x01EE21, 0x01EE22}, + {0x01EE24, 0x01EE24}, + {0x01EE27, 0x01EE27}, + {0x01EE29, 0x01EE32}, + {0x01EE34, 0x01EE37}, + {0x01EE39, 0x01EE39}, + {0x01EE3B, 0x01EE3B}, + {0x01EE42, 0x01EE42}, + {0x01EE47, 0x01EE47}, + {0x01EE49, 0x01EE49}, + {0x01EE4B, 0x01EE4B}, + {0x01EE4D, 0x01EE4F}, + {0x01EE51, 0x01EE52}, + {0x01EE54, 0x01EE54}, + {0x01EE57, 0x01EE57}, + {0x01EE59, 0x01EE59}, + {0x01EE5B, 0x01EE5B}, + {0x01EE5D, 0x01EE5D}, + {0x01EE5F, 0x01EE5F}, + {0x01EE61, 0x01EE62}, + {0x01EE64, 0x01EE64}, + {0x01EE67, 0x01EE6A}, + {0x01EE6C, 0x01EE72}, + {0x01EE74, 0x01EE77}, + {0x01EE79, 0x01EE7C}, + {0x01EE7E, 0x01EE7E}, + {0x01EE80, 0x01EE89}, + {0x01EE8B, 0x01EE9B}, + {0x01EEA1, 0x01EEA3}, + {0x01EEA5, 0x01EEA9}, + {0x01EEAB, 0x01EEBB}, + {0x01EEF0, 0x01EEF1}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_math(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_noncharacter_code_point.c b/vendor/librune/lib/rtype/rune_has_prop_noncharacter_code_point.c new file mode 100644 index 0000000..64fe613 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_noncharacter_code_point.c @@ -0,0 +1,47 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x00FDD0, 0x00FDEF}, + {0x00FFFE, 0x00FFFF}, + {0x01FFFE, 0x01FFFF}, + {0x02FFFE, 0x02FFFF}, + {0x03FFFE, 0x03FFFF}, + {0x04FFFE, 0x04FFFF}, + {0x05FFFE, 0x05FFFF}, + {0x06FFFE, 0x06FFFF}, + {0x07FFFE, 0x07FFFF}, + {0x08FFFE, 0x08FFFF}, + {0x09FFFE, 0x09FFFF}, + {0x0AFFFE, 0x0AFFFF}, + {0x0BFFFE, 0x0BFFFF}, + {0x0CFFFE, 0x0CFFFF}, + {0x0DFFFE, 0x0DFFFF}, + {0x0EFFFE, 0x0EFFFF}, + {0x0FFFFE, 0x0FFFFF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_noncharacter_code_point(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_pattern_syntax.c b/vendor/librune/lib/rtype/rune_has_prop_pattern_syntax.c new file mode 100644 index 0000000..bb25abd --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_pattern_syntax.c @@ -0,0 +1,58 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x8000000080000088435AFE000000007800000178000001FC00FFFE00000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000021, 0x00002F}, + {0x00003A, 0x000040}, + {0x00005B, 0x00005E}, + {0x000060, 0x000060}, + {0x00007B, 0x00007E}, + {0x0000A1, 0x0000A7}, + {0x0000A9, 0x0000A9}, + {0x0000AB, 0x0000AC}, + {0x0000AE, 0x0000AE}, + {0x0000B0, 0x0000B1}, + {0x0000B6, 0x0000B6}, + {0x0000BB, 0x0000BB}, + {0x0000BF, 0x0000BF}, + {0x0000D7, 0x0000D7}, + {0x0000F7, 0x0000F7}, + {0x002010, 0x002027}, + {0x002030, 0x00203E}, + {0x002041, 0x002053}, + {0x002055, 0x00205E}, + {0x002190, 0x00245F}, + {0x002500, 0x002775}, + {0x002794, 0x002BFF}, + {0x002E00, 0x002E7F}, + {0x003001, 0x003003}, + {0x003008, 0x003020}, + {0x003030, 0x003030}, + {0x00FD3E, 0x00FD3F}, + {0x00FE45, 0x00FE46}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_pattern_syntax(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_pattern_white_space.c b/vendor/librune/lib/rtype/rune_has_prop_pattern_white_space.c new file mode 100644 index 0000000..aa76d28 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_pattern_white_space.c @@ -0,0 +1,35 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x2000000000000000000000000100003E00uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000009, 0x00000D}, + {0x000020, 0x000020}, + {0x000085, 0x000085}, + {0x00200E, 0x00200F}, + {0x002028, 0x002029}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_pattern_white_space(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_prepended_concatenation_mark.c b/vendor/librune/lib/rtype/rune_has_prop_prepended_concatenation_mark.c new file mode 100644 index 0000000..ee5e1d5 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_prepended_concatenation_mark.c @@ -0,0 +1,37 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000600, 0x000605}, + {0x0006DD, 0x0006DD}, + {0x00070F, 0x00070F}, + {0x000890, 0x000891}, + {0x0008E2, 0x0008E2}, + {0x0110BD, 0x0110BD}, + {0x0110CD, 0x0110CD}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_prepended_concatenation_mark(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_quotation_mark.c b/vendor/librune/lib/rtype/rune_has_prop_quotation_mark.c new file mode 100644 index 0000000..78c693c --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_quotation_mark.c @@ -0,0 +1,43 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x80008000000000000000000000000000000008400000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000022, 0x000022}, + {0x000027, 0x000027}, + {0x0000AB, 0x0000AB}, + {0x0000BB, 0x0000BB}, + {0x002018, 0x00201F}, + {0x002039, 0x00203A}, + {0x002E42, 0x002E42}, + {0x00300C, 0x00300F}, + {0x00301D, 0x00301F}, + {0x00FE41, 0x00FE44}, + {0x00FF02, 0x00FF02}, + {0x00FF07, 0x00FF07}, + {0x00FF62, 0x00FF63}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_quotation_mark(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_radical.c b/vendor/librune/lib/rtype/rune_has_prop_radical.c new file mode 100644 index 0000000..a6c3587 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_radical.c @@ -0,0 +1,33 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x002E80, 0x002E99}, + {0x002E9B, 0x002EF3}, + {0x002F00, 0x002FD5}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_radical(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_regional_indicator.c b/vendor/librune/lib/rtype/rune_has_prop_regional_indicator.c new file mode 100644 index 0000000..87c6771 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_regional_indicator.c @@ -0,0 +1,31 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x01F1E6, 0x01F1FF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_regional_indicator(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_sentence_terminal.c b/vendor/librune/lib/rtype/rune_has_prop_sentence_terminal.c new file mode 100644 index 0000000..0e359fa --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_sentence_terminal.c @@ -0,0 +1,111 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x8000400200000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000021, 0x000021}, + {0x00002E, 0x00002E}, + {0x00003F, 0x00003F}, + {0x000589, 0x000589}, + {0x00061D, 0x00061F}, + {0x0006D4, 0x0006D4}, + {0x000700, 0x000702}, + {0x0007F9, 0x0007F9}, + {0x000837, 0x000837}, + {0x000839, 0x000839}, + {0x00083D, 0x00083E}, + {0x000964, 0x000965}, + {0x00104A, 0x00104B}, + {0x001362, 0x001362}, + {0x001367, 0x001368}, + {0x00166E, 0x00166E}, + {0x001735, 0x001736}, + {0x0017D4, 0x0017D5}, + {0x001803, 0x001803}, + {0x001809, 0x001809}, + {0x001944, 0x001945}, + {0x001AA8, 0x001AAB}, + {0x001B5A, 0x001B5B}, + {0x001B5E, 0x001B5F}, + {0x001B7D, 0x001B7E}, + {0x001C3B, 0x001C3C}, + {0x001C7E, 0x001C7F}, + {0x00203C, 0x00203D}, + {0x002047, 0x002049}, + {0x002E2E, 0x002E2E}, + {0x002E3C, 0x002E3C}, + {0x002E53, 0x002E54}, + {0x003002, 0x003002}, + {0x00A4FF, 0x00A4FF}, + {0x00A60E, 0x00A60F}, + {0x00A6F3, 0x00A6F3}, + {0x00A6F7, 0x00A6F7}, + {0x00A876, 0x00A877}, + {0x00A8CE, 0x00A8CF}, + {0x00A92F, 0x00A92F}, + {0x00A9C8, 0x00A9C9}, + {0x00AA5D, 0x00AA5F}, + {0x00AAF0, 0x00AAF1}, + {0x00ABEB, 0x00ABEB}, + {0x00FE52, 0x00FE52}, + {0x00FE56, 0x00FE57}, + {0x00FF01, 0x00FF01}, + {0x00FF0E, 0x00FF0E}, + {0x00FF1F, 0x00FF1F}, + {0x00FF61, 0x00FF61}, + {0x010A56, 0x010A57}, + {0x010F55, 0x010F59}, + {0x010F86, 0x010F89}, + {0x011047, 0x011048}, + {0x0110BE, 0x0110C1}, + {0x011141, 0x011143}, + {0x0111C5, 0x0111C6}, + {0x0111CD, 0x0111CD}, + {0x0111DE, 0x0111DF}, + {0x011238, 0x011239}, + {0x01123B, 0x01123C}, + {0x0112A9, 0x0112A9}, + {0x01144B, 0x01144C}, + {0x0115C2, 0x0115C3}, + {0x0115C9, 0x0115D7}, + {0x011641, 0x011642}, + {0x01173C, 0x01173E}, + {0x011944, 0x011944}, + {0x011946, 0x011946}, + {0x011A42, 0x011A43}, + {0x011A9B, 0x011A9C}, + {0x011C41, 0x011C42}, + {0x011EF7, 0x011EF8}, + {0x011F43, 0x011F44}, + {0x016A6E, 0x016A6F}, + {0x016AF5, 0x016AF5}, + {0x016B37, 0x016B38}, + {0x016B44, 0x016B44}, + {0x016E98, 0x016E98}, + {0x01BC9F, 0x01BC9F}, + {0x01DA88, 0x01DA88}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_sentence_terminal(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_soft_dotted.c b/vendor/librune/lib/rtype/rune_has_prop_soft_dotted.c new file mode 100644 index 0000000..0d522d1 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_soft_dotted.c @@ -0,0 +1,64 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x600000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000069, 0x00006A}, + {0x00012F, 0x00012F}, + {0x000249, 0x000249}, + {0x000268, 0x000268}, + {0x00029D, 0x00029D}, + {0x0002B2, 0x0002B2}, + {0x0003F3, 0x0003F3}, + {0x000456, 0x000456}, + {0x000458, 0x000458}, + {0x001D62, 0x001D62}, + {0x001D96, 0x001D96}, + {0x001DA4, 0x001DA4}, + {0x001DA8, 0x001DA8}, + {0x001E2D, 0x001E2D}, + {0x001ECB, 0x001ECB}, + {0x002071, 0x002071}, + {0x002148, 0x002149}, + {0x002C7C, 0x002C7C}, + {0x01D422, 0x01D423}, + {0x01D456, 0x01D457}, + {0x01D48A, 0x01D48B}, + {0x01D4BE, 0x01D4BF}, + {0x01D4F2, 0x01D4F3}, + {0x01D526, 0x01D527}, + {0x01D55A, 0x01D55B}, + {0x01D58E, 0x01D58F}, + {0x01D5C2, 0x01D5C3}, + {0x01D5F6, 0x01D5F7}, + {0x01D62A, 0x01D62B}, + {0x01D65E, 0x01D65F}, + {0x01D692, 0x01D693}, + {0x01DF1A, 0x01DF1A}, + {0x01E04C, 0x01E04D}, + {0x01E068, 0x01E068}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_soft_dotted(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_terminal_punctuation.c b/vendor/librune/lib/rtype/rune_has_prop_terminal_punctuation.c new file mode 100644 index 0000000..9e73405 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_terminal_punctuation.c @@ -0,0 +1,138 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x8C00500200000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000021, 0x000021}, + {0x00002C, 0x00002C}, + {0x00002E, 0x00002E}, + {0x00003A, 0x00003B}, + {0x00003F, 0x00003F}, + {0x00037E, 0x00037E}, + {0x000387, 0x000387}, + {0x000589, 0x000589}, + {0x0005C3, 0x0005C3}, + {0x00060C, 0x00060C}, + {0x00061B, 0x00061B}, + {0x00061D, 0x00061F}, + {0x0006D4, 0x0006D4}, + {0x000700, 0x00070A}, + {0x00070C, 0x00070C}, + {0x0007F8, 0x0007F9}, + {0x000830, 0x00083E}, + {0x00085E, 0x00085E}, + {0x000964, 0x000965}, + {0x000E5A, 0x000E5B}, + {0x000F08, 0x000F08}, + {0x000F0D, 0x000F12}, + {0x00104A, 0x00104B}, + {0x001361, 0x001368}, + {0x00166E, 0x00166E}, + {0x0016EB, 0x0016ED}, + {0x001735, 0x001736}, + {0x0017D4, 0x0017D6}, + {0x0017DA, 0x0017DA}, + {0x001802, 0x001805}, + {0x001808, 0x001809}, + {0x001944, 0x001945}, + {0x001AA8, 0x001AAB}, + {0x001B5A, 0x001B5B}, + {0x001B5D, 0x001B5F}, + {0x001B7D, 0x001B7E}, + {0x001C3B, 0x001C3F}, + {0x001C7E, 0x001C7F}, + {0x00203C, 0x00203D}, + {0x002047, 0x002049}, + {0x002E2E, 0x002E2E}, + {0x002E3C, 0x002E3C}, + {0x002E41, 0x002E41}, + {0x002E4C, 0x002E4C}, + {0x002E4E, 0x002E4F}, + {0x002E53, 0x002E54}, + {0x003001, 0x003002}, + {0x00A4FE, 0x00A4FF}, + {0x00A60D, 0x00A60F}, + {0x00A6F3, 0x00A6F7}, + {0x00A876, 0x00A877}, + {0x00A8CE, 0x00A8CF}, + {0x00A92F, 0x00A92F}, + {0x00A9C7, 0x00A9C9}, + {0x00AA5D, 0x00AA5F}, + {0x00AADF, 0x00AADF}, + {0x00AAF0, 0x00AAF1}, + {0x00ABEB, 0x00ABEB}, + {0x00FE50, 0x00FE52}, + {0x00FE54, 0x00FE57}, + {0x00FF01, 0x00FF01}, + {0x00FF0C, 0x00FF0C}, + {0x00FF0E, 0x00FF0E}, + {0x00FF1A, 0x00FF1B}, + {0x00FF1F, 0x00FF1F}, + {0x00FF61, 0x00FF61}, + {0x00FF64, 0x00FF64}, + {0x01039F, 0x01039F}, + {0x0103D0, 0x0103D0}, + {0x010857, 0x010857}, + {0x01091F, 0x01091F}, + {0x010A56, 0x010A57}, + {0x010AF0, 0x010AF5}, + {0x010B3A, 0x010B3F}, + {0x010B99, 0x010B9C}, + {0x010F55, 0x010F59}, + {0x010F86, 0x010F89}, + {0x011047, 0x01104D}, + {0x0110BE, 0x0110C1}, + {0x011141, 0x011143}, + {0x0111C5, 0x0111C6}, + {0x0111CD, 0x0111CD}, + {0x0111DE, 0x0111DF}, + {0x011238, 0x01123C}, + {0x0112A9, 0x0112A9}, + {0x01144B, 0x01144D}, + {0x01145A, 0x01145B}, + {0x0115C2, 0x0115C5}, + {0x0115C9, 0x0115D7}, + {0x011641, 0x011642}, + {0x01173C, 0x01173E}, + {0x011944, 0x011944}, + {0x011946, 0x011946}, + {0x011A42, 0x011A43}, + {0x011A9B, 0x011A9C}, + {0x011AA1, 0x011AA2}, + {0x011C41, 0x011C43}, + {0x011C71, 0x011C71}, + {0x011EF7, 0x011EF8}, + {0x011F43, 0x011F44}, + {0x012470, 0x012474}, + {0x016A6E, 0x016A6F}, + {0x016AF5, 0x016AF5}, + {0x016B37, 0x016B39}, + {0x016B44, 0x016B44}, + {0x016E97, 0x016E98}, + {0x01BC9F, 0x01BC9F}, + {0x01DA87, 0x01DA8A}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_terminal_punctuation(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_unified_ideograph.c b/vendor/librune/lib/rtype/rune_has_prop_unified_ideograph.c new file mode 100644 index 0000000..b7bc92c --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_unified_ideograph.c @@ -0,0 +1,47 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x003400, 0x004DBF}, + {0x004E00, 0x009FFF}, + {0x00FA0E, 0x00FA0F}, + {0x00FA11, 0x00FA11}, + {0x00FA13, 0x00FA14}, + {0x00FA1F, 0x00FA1F}, + {0x00FA21, 0x00FA21}, + {0x00FA23, 0x00FA24}, + {0x00FA27, 0x00FA29}, + {0x020000, 0x02A6DF}, + {0x02A700, 0x02B739}, + {0x02B740, 0x02B81D}, + {0x02B820, 0x02CEA1}, + {0x02CEB0, 0x02EBE0}, + {0x02EBF0, 0x02EE5D}, + {0x030000, 0x03134A}, + {0x031350, 0x0323AF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_unified_ideograph(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_uppercase.c b/vendor/librune/lib/rtype/rune_has_prop_uppercase.c new file mode 100644 index 0000000..c828733 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_uppercase.c @@ -0,0 +1,681 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x7F7FFFFF00000000000000000000000007FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000041, 0x00005A}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000DE}, + {0x000100, 0x000100}, + {0x000102, 0x000102}, + {0x000104, 0x000104}, + {0x000106, 0x000106}, + {0x000108, 0x000108}, + {0x00010A, 0x00010A}, + {0x00010C, 0x00010C}, + {0x00010E, 0x00010E}, + {0x000110, 0x000110}, + {0x000112, 0x000112}, + {0x000114, 0x000114}, + {0x000116, 0x000116}, + {0x000118, 0x000118}, + {0x00011A, 0x00011A}, + {0x00011C, 0x00011C}, + {0x00011E, 0x00011E}, + {0x000120, 0x000120}, + {0x000122, 0x000122}, + {0x000124, 0x000124}, + {0x000126, 0x000126}, + {0x000128, 0x000128}, + {0x00012A, 0x00012A}, + {0x00012C, 0x00012C}, + {0x00012E, 0x00012E}, + {0x000130, 0x000130}, + {0x000132, 0x000132}, + {0x000134, 0x000134}, + {0x000136, 0x000136}, + {0x000139, 0x000139}, + {0x00013B, 0x00013B}, + {0x00013D, 0x00013D}, + {0x00013F, 0x00013F}, + {0x000141, 0x000141}, + {0x000143, 0x000143}, + {0x000145, 0x000145}, + {0x000147, 0x000147}, + {0x00014A, 0x00014A}, + {0x00014C, 0x00014C}, + {0x00014E, 0x00014E}, + {0x000150, 0x000150}, + {0x000152, 0x000152}, + {0x000154, 0x000154}, + {0x000156, 0x000156}, + {0x000158, 0x000158}, + {0x00015A, 0x00015A}, + {0x00015C, 0x00015C}, + {0x00015E, 0x00015E}, + {0x000160, 0x000160}, + {0x000162, 0x000162}, + {0x000164, 0x000164}, + {0x000166, 0x000166}, + {0x000168, 0x000168}, + {0x00016A, 0x00016A}, + {0x00016C, 0x00016C}, + {0x00016E, 0x00016E}, + {0x000170, 0x000170}, + {0x000172, 0x000172}, + {0x000174, 0x000174}, + {0x000176, 0x000176}, + {0x000178, 0x000179}, + {0x00017B, 0x00017B}, + {0x00017D, 0x00017D}, + {0x000181, 0x000182}, + {0x000184, 0x000184}, + {0x000186, 0x000187}, + {0x000189, 0x00018B}, + {0x00018E, 0x000191}, + {0x000193, 0x000194}, + {0x000196, 0x000198}, + {0x00019C, 0x00019D}, + {0x00019F, 0x0001A0}, + {0x0001A2, 0x0001A2}, + {0x0001A4, 0x0001A4}, + {0x0001A6, 0x0001A7}, + {0x0001A9, 0x0001A9}, + {0x0001AC, 0x0001AC}, + {0x0001AE, 0x0001AF}, + {0x0001B1, 0x0001B3}, + {0x0001B5, 0x0001B5}, + {0x0001B7, 0x0001B8}, + {0x0001BC, 0x0001BC}, + {0x0001C4, 0x0001C4}, + {0x0001C7, 0x0001C7}, + {0x0001CA, 0x0001CA}, + {0x0001CD, 0x0001CD}, + {0x0001CF, 0x0001CF}, + {0x0001D1, 0x0001D1}, + {0x0001D3, 0x0001D3}, + {0x0001D5, 0x0001D5}, + {0x0001D7, 0x0001D7}, + {0x0001D9, 0x0001D9}, + {0x0001DB, 0x0001DB}, + {0x0001DE, 0x0001DE}, + {0x0001E0, 0x0001E0}, + {0x0001E2, 0x0001E2}, + {0x0001E4, 0x0001E4}, + {0x0001E6, 0x0001E6}, + {0x0001E8, 0x0001E8}, + {0x0001EA, 0x0001EA}, + {0x0001EC, 0x0001EC}, + {0x0001EE, 0x0001EE}, + {0x0001F1, 0x0001F1}, + {0x0001F4, 0x0001F4}, + {0x0001F6, 0x0001F8}, + {0x0001FA, 0x0001FA}, + {0x0001FC, 0x0001FC}, + {0x0001FE, 0x0001FE}, + {0x000200, 0x000200}, + {0x000202, 0x000202}, + {0x000204, 0x000204}, + {0x000206, 0x000206}, + {0x000208, 0x000208}, + {0x00020A, 0x00020A}, + {0x00020C, 0x00020C}, + {0x00020E, 0x00020E}, + {0x000210, 0x000210}, + {0x000212, 0x000212}, + {0x000214, 0x000214}, + {0x000216, 0x000216}, + {0x000218, 0x000218}, + {0x00021A, 0x00021A}, + {0x00021C, 0x00021C}, + {0x00021E, 0x00021E}, + {0x000220, 0x000220}, + {0x000222, 0x000222}, + {0x000224, 0x000224}, + {0x000226, 0x000226}, + {0x000228, 0x000228}, + {0x00022A, 0x00022A}, + {0x00022C, 0x00022C}, + {0x00022E, 0x00022E}, + {0x000230, 0x000230}, + {0x000232, 0x000232}, + {0x00023A, 0x00023B}, + {0x00023D, 0x00023E}, + {0x000241, 0x000241}, + {0x000243, 0x000246}, + {0x000248, 0x000248}, + {0x00024A, 0x00024A}, + {0x00024C, 0x00024C}, + {0x00024E, 0x00024E}, + {0x000370, 0x000370}, + {0x000372, 0x000372}, + {0x000376, 0x000376}, + {0x00037F, 0x00037F}, + {0x000386, 0x000386}, + {0x000388, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x00038F}, + {0x000391, 0x0003A1}, + {0x0003A3, 0x0003AB}, + {0x0003CF, 0x0003CF}, + {0x0003D2, 0x0003D4}, + {0x0003D8, 0x0003D8}, + {0x0003DA, 0x0003DA}, + {0x0003DC, 0x0003DC}, + {0x0003DE, 0x0003DE}, + {0x0003E0, 0x0003E0}, + {0x0003E2, 0x0003E2}, + {0x0003E4, 0x0003E4}, + {0x0003E6, 0x0003E6}, + {0x0003E8, 0x0003E8}, + {0x0003EA, 0x0003EA}, + {0x0003EC, 0x0003EC}, + {0x0003EE, 0x0003EE}, + {0x0003F4, 0x0003F4}, + {0x0003F7, 0x0003F7}, + {0x0003F9, 0x0003FA}, + {0x0003FD, 0x00042F}, + {0x000460, 0x000460}, + {0x000462, 0x000462}, + {0x000464, 0x000464}, + {0x000466, 0x000466}, + {0x000468, 0x000468}, + {0x00046A, 0x00046A}, + {0x00046C, 0x00046C}, + {0x00046E, 0x00046E}, + {0x000470, 0x000470}, + {0x000472, 0x000472}, + {0x000474, 0x000474}, + {0x000476, 0x000476}, + {0x000478, 0x000478}, + {0x00047A, 0x00047A}, + {0x00047C, 0x00047C}, + {0x00047E, 0x00047E}, + {0x000480, 0x000480}, + {0x00048A, 0x00048A}, + {0x00048C, 0x00048C}, + {0x00048E, 0x00048E}, + {0x000490, 0x000490}, + {0x000492, 0x000492}, + {0x000494, 0x000494}, + {0x000496, 0x000496}, + {0x000498, 0x000498}, + {0x00049A, 0x00049A}, + {0x00049C, 0x00049C}, + {0x00049E, 0x00049E}, + {0x0004A0, 0x0004A0}, + {0x0004A2, 0x0004A2}, + {0x0004A4, 0x0004A4}, + {0x0004A6, 0x0004A6}, + {0x0004A8, 0x0004A8}, + {0x0004AA, 0x0004AA}, + {0x0004AC, 0x0004AC}, + {0x0004AE, 0x0004AE}, + {0x0004B0, 0x0004B0}, + {0x0004B2, 0x0004B2}, + {0x0004B4, 0x0004B4}, + {0x0004B6, 0x0004B6}, + {0x0004B8, 0x0004B8}, + {0x0004BA, 0x0004BA}, + {0x0004BC, 0x0004BC}, + {0x0004BE, 0x0004BE}, + {0x0004C0, 0x0004C1}, + {0x0004C3, 0x0004C3}, + {0x0004C5, 0x0004C5}, + {0x0004C7, 0x0004C7}, + {0x0004C9, 0x0004C9}, + {0x0004CB, 0x0004CB}, + {0x0004CD, 0x0004CD}, + {0x0004D0, 0x0004D0}, + {0x0004D2, 0x0004D2}, + {0x0004D4, 0x0004D4}, + {0x0004D6, 0x0004D6}, + {0x0004D8, 0x0004D8}, + {0x0004DA, 0x0004DA}, + {0x0004DC, 0x0004DC}, + {0x0004DE, 0x0004DE}, + {0x0004E0, 0x0004E0}, + {0x0004E2, 0x0004E2}, + {0x0004E4, 0x0004E4}, + {0x0004E6, 0x0004E6}, + {0x0004E8, 0x0004E8}, + {0x0004EA, 0x0004EA}, + {0x0004EC, 0x0004EC}, + {0x0004EE, 0x0004EE}, + {0x0004F0, 0x0004F0}, + {0x0004F2, 0x0004F2}, + {0x0004F4, 0x0004F4}, + {0x0004F6, 0x0004F6}, + {0x0004F8, 0x0004F8}, + {0x0004FA, 0x0004FA}, + {0x0004FC, 0x0004FC}, + {0x0004FE, 0x0004FE}, + {0x000500, 0x000500}, + {0x000502, 0x000502}, + {0x000504, 0x000504}, + {0x000506, 0x000506}, + {0x000508, 0x000508}, + {0x00050A, 0x00050A}, + {0x00050C, 0x00050C}, + {0x00050E, 0x00050E}, + {0x000510, 0x000510}, + {0x000512, 0x000512}, + {0x000514, 0x000514}, + {0x000516, 0x000516}, + {0x000518, 0x000518}, + {0x00051A, 0x00051A}, + {0x00051C, 0x00051C}, + {0x00051E, 0x00051E}, + {0x000520, 0x000520}, + {0x000522, 0x000522}, + {0x000524, 0x000524}, + {0x000526, 0x000526}, + {0x000528, 0x000528}, + {0x00052A, 0x00052A}, + {0x00052C, 0x00052C}, + {0x00052E, 0x00052E}, + {0x000531, 0x000556}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0013A0, 0x0013F5}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001E00, 0x001E00}, + {0x001E02, 0x001E02}, + {0x001E04, 0x001E04}, + {0x001E06, 0x001E06}, + {0x001E08, 0x001E08}, + {0x001E0A, 0x001E0A}, + {0x001E0C, 0x001E0C}, + {0x001E0E, 0x001E0E}, + {0x001E10, 0x001E10}, + {0x001E12, 0x001E12}, + {0x001E14, 0x001E14}, + {0x001E16, 0x001E16}, + {0x001E18, 0x001E18}, + {0x001E1A, 0x001E1A}, + {0x001E1C, 0x001E1C}, + {0x001E1E, 0x001E1E}, + {0x001E20, 0x001E20}, + {0x001E22, 0x001E22}, + {0x001E24, 0x001E24}, + {0x001E26, 0x001E26}, + {0x001E28, 0x001E28}, + {0x001E2A, 0x001E2A}, + {0x001E2C, 0x001E2C}, + {0x001E2E, 0x001E2E}, + {0x001E30, 0x001E30}, + {0x001E32, 0x001E32}, + {0x001E34, 0x001E34}, + {0x001E36, 0x001E36}, + {0x001E38, 0x001E38}, + {0x001E3A, 0x001E3A}, + {0x001E3C, 0x001E3C}, + {0x001E3E, 0x001E3E}, + {0x001E40, 0x001E40}, + {0x001E42, 0x001E42}, + {0x001E44, 0x001E44}, + {0x001E46, 0x001E46}, + {0x001E48, 0x001E48}, + {0x001E4A, 0x001E4A}, + {0x001E4C, 0x001E4C}, + {0x001E4E, 0x001E4E}, + {0x001E50, 0x001E50}, + {0x001E52, 0x001E52}, + {0x001E54, 0x001E54}, + {0x001E56, 0x001E56}, + {0x001E58, 0x001E58}, + {0x001E5A, 0x001E5A}, + {0x001E5C, 0x001E5C}, + {0x001E5E, 0x001E5E}, + {0x001E60, 0x001E60}, + {0x001E62, 0x001E62}, + {0x001E64, 0x001E64}, + {0x001E66, 0x001E66}, + {0x001E68, 0x001E68}, + {0x001E6A, 0x001E6A}, + {0x001E6C, 0x001E6C}, + {0x001E6E, 0x001E6E}, + {0x001E70, 0x001E70}, + {0x001E72, 0x001E72}, + {0x001E74, 0x001E74}, + {0x001E76, 0x001E76}, + {0x001E78, 0x001E78}, + {0x001E7A, 0x001E7A}, + {0x001E7C, 0x001E7C}, + {0x001E7E, 0x001E7E}, + {0x001E80, 0x001E80}, + {0x001E82, 0x001E82}, + {0x001E84, 0x001E84}, + {0x001E86, 0x001E86}, + {0x001E88, 0x001E88}, + {0x001E8A, 0x001E8A}, + {0x001E8C, 0x001E8C}, + {0x001E8E, 0x001E8E}, + {0x001E90, 0x001E90}, + {0x001E92, 0x001E92}, + {0x001E94, 0x001E94}, + {0x001E9E, 0x001E9E}, + {0x001EA0, 0x001EA0}, + {0x001EA2, 0x001EA2}, + {0x001EA4, 0x001EA4}, + {0x001EA6, 0x001EA6}, + {0x001EA8, 0x001EA8}, + {0x001EAA, 0x001EAA}, + {0x001EAC, 0x001EAC}, + {0x001EAE, 0x001EAE}, + {0x001EB0, 0x001EB0}, + {0x001EB2, 0x001EB2}, + {0x001EB4, 0x001EB4}, + {0x001EB6, 0x001EB6}, + {0x001EB8, 0x001EB8}, + {0x001EBA, 0x001EBA}, + {0x001EBC, 0x001EBC}, + {0x001EBE, 0x001EBE}, + {0x001EC0, 0x001EC0}, + {0x001EC2, 0x001EC2}, + {0x001EC4, 0x001EC4}, + {0x001EC6, 0x001EC6}, + {0x001EC8, 0x001EC8}, + {0x001ECA, 0x001ECA}, + {0x001ECC, 0x001ECC}, + {0x001ECE, 0x001ECE}, + {0x001ED0, 0x001ED0}, + {0x001ED2, 0x001ED2}, + {0x001ED4, 0x001ED4}, + {0x001ED6, 0x001ED6}, + {0x001ED8, 0x001ED8}, + {0x001EDA, 0x001EDA}, + {0x001EDC, 0x001EDC}, + {0x001EDE, 0x001EDE}, + {0x001EE0, 0x001EE0}, + {0x001EE2, 0x001EE2}, + {0x001EE4, 0x001EE4}, + {0x001EE6, 0x001EE6}, + {0x001EE8, 0x001EE8}, + {0x001EEA, 0x001EEA}, + {0x001EEC, 0x001EEC}, + {0x001EEE, 0x001EEE}, + {0x001EF0, 0x001EF0}, + {0x001EF2, 0x001EF2}, + {0x001EF4, 0x001EF4}, + {0x001EF6, 0x001EF6}, + {0x001EF8, 0x001EF8}, + {0x001EFA, 0x001EFA}, + {0x001EFC, 0x001EFC}, + {0x001EFE, 0x001EFE}, + {0x001F08, 0x001F0F}, + {0x001F18, 0x001F1D}, + {0x001F28, 0x001F2F}, + {0x001F38, 0x001F3F}, + {0x001F48, 0x001F4D}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F5F}, + {0x001F68, 0x001F6F}, + {0x001FB8, 0x001FBB}, + {0x001FC8, 0x001FCB}, + {0x001FD8, 0x001FDB}, + {0x001FE8, 0x001FEC}, + {0x001FF8, 0x001FFB}, + {0x002102, 0x002102}, + {0x002107, 0x002107}, + {0x00210B, 0x00210D}, + {0x002110, 0x002112}, + {0x002115, 0x002115}, + {0x002119, 0x00211D}, + {0x002124, 0x002124}, + {0x002126, 0x002126}, + {0x002128, 0x002128}, + {0x00212A, 0x00212D}, + {0x002130, 0x002133}, + {0x00213E, 0x00213F}, + {0x002145, 0x002145}, + {0x002160, 0x00216F}, + {0x002183, 0x002183}, + {0x0024B6, 0x0024CF}, + {0x002C00, 0x002C2F}, + {0x002C60, 0x002C60}, + {0x002C62, 0x002C64}, + {0x002C67, 0x002C67}, + {0x002C69, 0x002C69}, + {0x002C6B, 0x002C6B}, + {0x002C6D, 0x002C70}, + {0x002C72, 0x002C72}, + {0x002C75, 0x002C75}, + {0x002C7E, 0x002C80}, + {0x002C82, 0x002C82}, + {0x002C84, 0x002C84}, + {0x002C86, 0x002C86}, + {0x002C88, 0x002C88}, + {0x002C8A, 0x002C8A}, + {0x002C8C, 0x002C8C}, + {0x002C8E, 0x002C8E}, + {0x002C90, 0x002C90}, + {0x002C92, 0x002C92}, + {0x002C94, 0x002C94}, + {0x002C96, 0x002C96}, + {0x002C98, 0x002C98}, + {0x002C9A, 0x002C9A}, + {0x002C9C, 0x002C9C}, + {0x002C9E, 0x002C9E}, + {0x002CA0, 0x002CA0}, + {0x002CA2, 0x002CA2}, + {0x002CA4, 0x002CA4}, + {0x002CA6, 0x002CA6}, + {0x002CA8, 0x002CA8}, + {0x002CAA, 0x002CAA}, + {0x002CAC, 0x002CAC}, + {0x002CAE, 0x002CAE}, + {0x002CB0, 0x002CB0}, + {0x002CB2, 0x002CB2}, + {0x002CB4, 0x002CB4}, + {0x002CB6, 0x002CB6}, + {0x002CB8, 0x002CB8}, + {0x002CBA, 0x002CBA}, + {0x002CBC, 0x002CBC}, + {0x002CBE, 0x002CBE}, + {0x002CC0, 0x002CC0}, + {0x002CC2, 0x002CC2}, + {0x002CC4, 0x002CC4}, + {0x002CC6, 0x002CC6}, + {0x002CC8, 0x002CC8}, + {0x002CCA, 0x002CCA}, + {0x002CCC, 0x002CCC}, + {0x002CCE, 0x002CCE}, + {0x002CD0, 0x002CD0}, + {0x002CD2, 0x002CD2}, + {0x002CD4, 0x002CD4}, + {0x002CD6, 0x002CD6}, + {0x002CD8, 0x002CD8}, + {0x002CDA, 0x002CDA}, + {0x002CDC, 0x002CDC}, + {0x002CDE, 0x002CDE}, + {0x002CE0, 0x002CE0}, + {0x002CE2, 0x002CE2}, + {0x002CEB, 0x002CEB}, + {0x002CED, 0x002CED}, + {0x002CF2, 0x002CF2}, + {0x00A640, 0x00A640}, + {0x00A642, 0x00A642}, + {0x00A644, 0x00A644}, + {0x00A646, 0x00A646}, + {0x00A648, 0x00A648}, + {0x00A64A, 0x00A64A}, + {0x00A64C, 0x00A64C}, + {0x00A64E, 0x00A64E}, + {0x00A650, 0x00A650}, + {0x00A652, 0x00A652}, + {0x00A654, 0x00A654}, + {0x00A656, 0x00A656}, + {0x00A658, 0x00A658}, + {0x00A65A, 0x00A65A}, + {0x00A65C, 0x00A65C}, + {0x00A65E, 0x00A65E}, + {0x00A660, 0x00A660}, + {0x00A662, 0x00A662}, + {0x00A664, 0x00A664}, + {0x00A666, 0x00A666}, + {0x00A668, 0x00A668}, + {0x00A66A, 0x00A66A}, + {0x00A66C, 0x00A66C}, + {0x00A680, 0x00A680}, + {0x00A682, 0x00A682}, + {0x00A684, 0x00A684}, + {0x00A686, 0x00A686}, + {0x00A688, 0x00A688}, + {0x00A68A, 0x00A68A}, + {0x00A68C, 0x00A68C}, + {0x00A68E, 0x00A68E}, + {0x00A690, 0x00A690}, + {0x00A692, 0x00A692}, + {0x00A694, 0x00A694}, + {0x00A696, 0x00A696}, + {0x00A698, 0x00A698}, + {0x00A69A, 0x00A69A}, + {0x00A722, 0x00A722}, + {0x00A724, 0x00A724}, + {0x00A726, 0x00A726}, + {0x00A728, 0x00A728}, + {0x00A72A, 0x00A72A}, + {0x00A72C, 0x00A72C}, + {0x00A72E, 0x00A72E}, + {0x00A732, 0x00A732}, + {0x00A734, 0x00A734}, + {0x00A736, 0x00A736}, + {0x00A738, 0x00A738}, + {0x00A73A, 0x00A73A}, + {0x00A73C, 0x00A73C}, + {0x00A73E, 0x00A73E}, + {0x00A740, 0x00A740}, + {0x00A742, 0x00A742}, + {0x00A744, 0x00A744}, + {0x00A746, 0x00A746}, + {0x00A748, 0x00A748}, + {0x00A74A, 0x00A74A}, + {0x00A74C, 0x00A74C}, + {0x00A74E, 0x00A74E}, + {0x00A750, 0x00A750}, + {0x00A752, 0x00A752}, + {0x00A754, 0x00A754}, + {0x00A756, 0x00A756}, + {0x00A758, 0x00A758}, + {0x00A75A, 0x00A75A}, + {0x00A75C, 0x00A75C}, + {0x00A75E, 0x00A75E}, + {0x00A760, 0x00A760}, + {0x00A762, 0x00A762}, + {0x00A764, 0x00A764}, + {0x00A766, 0x00A766}, + {0x00A768, 0x00A768}, + {0x00A76A, 0x00A76A}, + {0x00A76C, 0x00A76C}, + {0x00A76E, 0x00A76E}, + {0x00A779, 0x00A779}, + {0x00A77B, 0x00A77B}, + {0x00A77D, 0x00A77E}, + {0x00A780, 0x00A780}, + {0x00A782, 0x00A782}, + {0x00A784, 0x00A784}, + {0x00A786, 0x00A786}, + {0x00A78B, 0x00A78B}, + {0x00A78D, 0x00A78D}, + {0x00A790, 0x00A790}, + {0x00A792, 0x00A792}, + {0x00A796, 0x00A796}, + {0x00A798, 0x00A798}, + {0x00A79A, 0x00A79A}, + {0x00A79C, 0x00A79C}, + {0x00A79E, 0x00A79E}, + {0x00A7A0, 0x00A7A0}, + {0x00A7A2, 0x00A7A2}, + {0x00A7A4, 0x00A7A4}, + {0x00A7A6, 0x00A7A6}, + {0x00A7A8, 0x00A7A8}, + {0x00A7AA, 0x00A7AE}, + {0x00A7B0, 0x00A7B4}, + {0x00A7B6, 0x00A7B6}, + {0x00A7B8, 0x00A7B8}, + {0x00A7BA, 0x00A7BA}, + {0x00A7BC, 0x00A7BC}, + {0x00A7BE, 0x00A7BE}, + {0x00A7C0, 0x00A7C0}, + {0x00A7C2, 0x00A7C2}, + {0x00A7C4, 0x00A7C7}, + {0x00A7C9, 0x00A7C9}, + {0x00A7D0, 0x00A7D0}, + {0x00A7D6, 0x00A7D6}, + {0x00A7D8, 0x00A7D8}, + {0x00A7F5, 0x00A7F5}, + {0x00FF21, 0x00FF3A}, + {0x010400, 0x010427}, + {0x0104B0, 0x0104D3}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010C80, 0x010CB2}, + {0x0118A0, 0x0118BF}, + {0x016E40, 0x016E5F}, + {0x01D400, 0x01D419}, + {0x01D434, 0x01D44D}, + {0x01D468, 0x01D481}, + {0x01D49C, 0x01D49C}, + {0x01D49E, 0x01D49F}, + {0x01D4A2, 0x01D4A2}, + {0x01D4A5, 0x01D4A6}, + {0x01D4A9, 0x01D4AC}, + {0x01D4AE, 0x01D4B5}, + {0x01D4D0, 0x01D4E9}, + {0x01D504, 0x01D505}, + {0x01D507, 0x01D50A}, + {0x01D50D, 0x01D514}, + {0x01D516, 0x01D51C}, + {0x01D538, 0x01D539}, + {0x01D53B, 0x01D53E}, + {0x01D540, 0x01D544}, + {0x01D546, 0x01D546}, + {0x01D54A, 0x01D550}, + {0x01D56C, 0x01D585}, + {0x01D5A0, 0x01D5B9}, + {0x01D5D4, 0x01D5ED}, + {0x01D608, 0x01D621}, + {0x01D63C, 0x01D655}, + {0x01D670, 0x01D689}, + {0x01D6A8, 0x01D6C0}, + {0x01D6E2, 0x01D6FA}, + {0x01D71C, 0x01D734}, + {0x01D756, 0x01D76E}, + {0x01D790, 0x01D7A8}, + {0x01D7CA, 0x01D7CA}, + {0x01E900, 0x01E921}, + {0x01F130, 0x01F149}, + {0x01F150, 0x01F169}, + {0x01F170, 0x01F189}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_uppercase(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_variation_selector.c b/vendor/librune/lib/rtype/rune_has_prop_variation_selector.c new file mode 100644 index 0000000..fefa023 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_variation_selector.c @@ -0,0 +1,34 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x00180B, 0x00180D}, + {0x00180F, 0x00180F}, + {0x00FE00, 0x00FE0F}, + {0x0E0100, 0x0E01EF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_variation_selector(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_white_space.c b/vendor/librune/lib/rtype/rune_has_prop_white_space.c new file mode 100644 index 0000000..07f9c08 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_white_space.c @@ -0,0 +1,40 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x10000002000000000000000000000000100003E00uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000009, 0x00000D}, + {0x000020, 0x000020}, + {0x000085, 0x000085}, + {0x0000A0, 0x0000A0}, + {0x001680, 0x001680}, + {0x002000, 0x00200A}, + {0x002028, 0x002029}, + {0x00202F, 0x00202F}, + {0x00205F, 0x00205F}, + {0x003000, 0x003000}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_white_space(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_xid_continue.c b/vendor/librune/lib/rtype/rune_has_prop_xid_continue.c new file mode 100644 index 0000000..7f71bbf --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_xid_continue.c @@ -0,0 +1,806 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF04A004000000000007FFFFFE87FFFFFE03FF000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000030, 0x000039}, + {0x000041, 0x00005A}, + {0x00005F, 0x00005F}, + {0x000061, 0x00007A}, + {0x0000AA, 0x0000AA}, + {0x0000B5, 0x0000B5}, + {0x0000B7, 0x0000B7}, + {0x0000BA, 0x0000BA}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000F6}, + {0x0000F8, 0x0002C1}, + {0x0002C6, 0x0002D1}, + {0x0002E0, 0x0002E4}, + {0x0002EC, 0x0002EC}, + {0x0002EE, 0x0002EE}, + {0x000300, 0x000374}, + {0x000376, 0x000377}, + {0x00037B, 0x00037D}, + {0x00037F, 0x00037F}, + {0x000386, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x0003A1}, + {0x0003A3, 0x0003F5}, + {0x0003F7, 0x000481}, + {0x000483, 0x000487}, + {0x00048A, 0x00052F}, + {0x000531, 0x000556}, + {0x000559, 0x000559}, + {0x000560, 0x000588}, + {0x000591, 0x0005BD}, + {0x0005BF, 0x0005BF}, + {0x0005C1, 0x0005C2}, + {0x0005C4, 0x0005C5}, + {0x0005C7, 0x0005C7}, + {0x0005D0, 0x0005EA}, + {0x0005EF, 0x0005F2}, + {0x000610, 0x00061A}, + {0x000620, 0x000669}, + {0x00066E, 0x0006D3}, + {0x0006D5, 0x0006DC}, + {0x0006DF, 0x0006E8}, + {0x0006EA, 0x0006FC}, + {0x0006FF, 0x0006FF}, + {0x000710, 0x00074A}, + {0x00074D, 0x0007B1}, + {0x0007C0, 0x0007F5}, + {0x0007FA, 0x0007FA}, + {0x0007FD, 0x0007FD}, + {0x000800, 0x00082D}, + {0x000840, 0x00085B}, + {0x000860, 0x00086A}, + {0x000870, 0x000887}, + {0x000889, 0x00088E}, + {0x000898, 0x0008E1}, + {0x0008E3, 0x000963}, + {0x000966, 0x00096F}, + {0x000971, 0x000983}, + {0x000985, 0x00098C}, + {0x00098F, 0x000990}, + {0x000993, 0x0009A8}, + {0x0009AA, 0x0009B0}, + {0x0009B2, 0x0009B2}, + {0x0009B6, 0x0009B9}, + {0x0009BC, 0x0009C4}, + {0x0009C7, 0x0009C8}, + {0x0009CB, 0x0009CE}, + {0x0009D7, 0x0009D7}, + {0x0009DC, 0x0009DD}, + {0x0009DF, 0x0009E3}, + {0x0009E6, 0x0009F1}, + {0x0009FC, 0x0009FC}, + {0x0009FE, 0x0009FE}, + {0x000A01, 0x000A03}, + {0x000A05, 0x000A0A}, + {0x000A0F, 0x000A10}, + {0x000A13, 0x000A28}, + {0x000A2A, 0x000A30}, + {0x000A32, 0x000A33}, + {0x000A35, 0x000A36}, + {0x000A38, 0x000A39}, + {0x000A3C, 0x000A3C}, + {0x000A3E, 0x000A42}, + {0x000A47, 0x000A48}, + {0x000A4B, 0x000A4D}, + {0x000A51, 0x000A51}, + {0x000A59, 0x000A5C}, + {0x000A5E, 0x000A5E}, + {0x000A66, 0x000A75}, + {0x000A81, 0x000A83}, + {0x000A85, 0x000A8D}, + {0x000A8F, 0x000A91}, + {0x000A93, 0x000AA8}, + {0x000AAA, 0x000AB0}, + {0x000AB2, 0x000AB3}, + {0x000AB5, 0x000AB9}, + {0x000ABC, 0x000AC5}, + {0x000AC7, 0x000AC9}, + {0x000ACB, 0x000ACD}, + {0x000AD0, 0x000AD0}, + {0x000AE0, 0x000AE3}, + {0x000AE6, 0x000AEF}, + {0x000AF9, 0x000AFF}, + {0x000B01, 0x000B03}, + {0x000B05, 0x000B0C}, + {0x000B0F, 0x000B10}, + {0x000B13, 0x000B28}, + {0x000B2A, 0x000B30}, + {0x000B32, 0x000B33}, + {0x000B35, 0x000B39}, + {0x000B3C, 0x000B44}, + {0x000B47, 0x000B48}, + {0x000B4B, 0x000B4D}, + {0x000B55, 0x000B57}, + {0x000B5C, 0x000B5D}, + {0x000B5F, 0x000B63}, + {0x000B66, 0x000B6F}, + {0x000B71, 0x000B71}, + {0x000B82, 0x000B83}, + {0x000B85, 0x000B8A}, + {0x000B8E, 0x000B90}, + {0x000B92, 0x000B95}, + {0x000B99, 0x000B9A}, + {0x000B9C, 0x000B9C}, + {0x000B9E, 0x000B9F}, + {0x000BA3, 0x000BA4}, + {0x000BA8, 0x000BAA}, + {0x000BAE, 0x000BB9}, + {0x000BBE, 0x000BC2}, + {0x000BC6, 0x000BC8}, + {0x000BCA, 0x000BCD}, + {0x000BD0, 0x000BD0}, + {0x000BD7, 0x000BD7}, + {0x000BE6, 0x000BEF}, + {0x000C00, 0x000C0C}, + {0x000C0E, 0x000C10}, + {0x000C12, 0x000C28}, + {0x000C2A, 0x000C39}, + {0x000C3C, 0x000C44}, + {0x000C46, 0x000C48}, + {0x000C4A, 0x000C4D}, + {0x000C55, 0x000C56}, + {0x000C58, 0x000C5A}, + {0x000C5D, 0x000C5D}, + {0x000C60, 0x000C63}, + {0x000C66, 0x000C6F}, + {0x000C80, 0x000C83}, + {0x000C85, 0x000C8C}, + {0x000C8E, 0x000C90}, + {0x000C92, 0x000CA8}, + {0x000CAA, 0x000CB3}, + {0x000CB5, 0x000CB9}, + {0x000CBC, 0x000CC4}, + {0x000CC6, 0x000CC8}, + {0x000CCA, 0x000CCD}, + {0x000CD5, 0x000CD6}, + {0x000CDD, 0x000CDE}, + {0x000CE0, 0x000CE3}, + {0x000CE6, 0x000CEF}, + {0x000CF1, 0x000CF3}, + {0x000D00, 0x000D0C}, + {0x000D0E, 0x000D10}, + {0x000D12, 0x000D44}, + {0x000D46, 0x000D48}, + {0x000D4A, 0x000D4E}, + {0x000D54, 0x000D57}, + {0x000D5F, 0x000D63}, + {0x000D66, 0x000D6F}, + {0x000D7A, 0x000D7F}, + {0x000D81, 0x000D83}, + {0x000D85, 0x000D96}, + {0x000D9A, 0x000DB1}, + {0x000DB3, 0x000DBB}, + {0x000DBD, 0x000DBD}, + {0x000DC0, 0x000DC6}, + {0x000DCA, 0x000DCA}, + {0x000DCF, 0x000DD4}, + {0x000DD6, 0x000DD6}, + {0x000DD8, 0x000DDF}, + {0x000DE6, 0x000DEF}, + {0x000DF2, 0x000DF3}, + {0x000E01, 0x000E3A}, + {0x000E40, 0x000E4E}, + {0x000E50, 0x000E59}, + {0x000E81, 0x000E82}, + {0x000E84, 0x000E84}, + {0x000E86, 0x000E8A}, + {0x000E8C, 0x000EA3}, + {0x000EA5, 0x000EA5}, + {0x000EA7, 0x000EBD}, + {0x000EC0, 0x000EC4}, + {0x000EC6, 0x000EC6}, + {0x000EC8, 0x000ECE}, + {0x000ED0, 0x000ED9}, + {0x000EDC, 0x000EDF}, + {0x000F00, 0x000F00}, + {0x000F18, 0x000F19}, + {0x000F20, 0x000F29}, + {0x000F35, 0x000F35}, + {0x000F37, 0x000F37}, + {0x000F39, 0x000F39}, + {0x000F3E, 0x000F47}, + {0x000F49, 0x000F6C}, + {0x000F71, 0x000F84}, + {0x000F86, 0x000F97}, + {0x000F99, 0x000FBC}, + {0x000FC6, 0x000FC6}, + {0x001000, 0x001049}, + {0x001050, 0x00109D}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0010D0, 0x0010FA}, + {0x0010FC, 0x001248}, + {0x00124A, 0x00124D}, + {0x001250, 0x001256}, + {0x001258, 0x001258}, + {0x00125A, 0x00125D}, + {0x001260, 0x001288}, + {0x00128A, 0x00128D}, + {0x001290, 0x0012B0}, + {0x0012B2, 0x0012B5}, + {0x0012B8, 0x0012BE}, + {0x0012C0, 0x0012C0}, + {0x0012C2, 0x0012C5}, + {0x0012C8, 0x0012D6}, + {0x0012D8, 0x001310}, + {0x001312, 0x001315}, + {0x001318, 0x00135A}, + {0x00135D, 0x00135F}, + {0x001369, 0x001371}, + {0x001380, 0x00138F}, + {0x0013A0, 0x0013F5}, + {0x0013F8, 0x0013FD}, + {0x001401, 0x00166C}, + {0x00166F, 0x00167F}, + {0x001681, 0x00169A}, + {0x0016A0, 0x0016EA}, + {0x0016EE, 0x0016F8}, + {0x001700, 0x001715}, + {0x00171F, 0x001734}, + {0x001740, 0x001753}, + {0x001760, 0x00176C}, + {0x00176E, 0x001770}, + {0x001772, 0x001773}, + {0x001780, 0x0017D3}, + {0x0017D7, 0x0017D7}, + {0x0017DC, 0x0017DD}, + {0x0017E0, 0x0017E9}, + {0x00180B, 0x00180D}, + {0x00180F, 0x001819}, + {0x001820, 0x001878}, + {0x001880, 0x0018AA}, + {0x0018B0, 0x0018F5}, + {0x001900, 0x00191E}, + {0x001920, 0x00192B}, + {0x001930, 0x00193B}, + {0x001946, 0x00196D}, + {0x001970, 0x001974}, + {0x001980, 0x0019AB}, + {0x0019B0, 0x0019C9}, + {0x0019D0, 0x0019DA}, + {0x001A00, 0x001A1B}, + {0x001A20, 0x001A5E}, + {0x001A60, 0x001A7C}, + {0x001A7F, 0x001A89}, + {0x001A90, 0x001A99}, + {0x001AA7, 0x001AA7}, + {0x001AB0, 0x001ABD}, + {0x001ABF, 0x001ACE}, + {0x001B00, 0x001B4C}, + {0x001B50, 0x001B59}, + {0x001B6B, 0x001B73}, + {0x001B80, 0x001BF3}, + {0x001C00, 0x001C37}, + {0x001C40, 0x001C49}, + {0x001C4D, 0x001C7D}, + {0x001C80, 0x001C88}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001CD0, 0x001CD2}, + {0x001CD4, 0x001CFA}, + {0x001D00, 0x001F15}, + {0x001F18, 0x001F1D}, + {0x001F20, 0x001F45}, + {0x001F48, 0x001F4D}, + {0x001F50, 0x001F57}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F7D}, + {0x001F80, 0x001FB4}, + {0x001FB6, 0x001FBC}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FCC}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FDB}, + {0x001FE0, 0x001FEC}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FFC}, + {0x00200C, 0x00200D}, + {0x00203F, 0x002040}, + {0x002054, 0x002054}, + {0x002071, 0x002071}, + {0x00207F, 0x00207F}, + {0x002090, 0x00209C}, + {0x0020D0, 0x0020DC}, + {0x0020E1, 0x0020E1}, + {0x0020E5, 0x0020F0}, + {0x002102, 0x002102}, + {0x002107, 0x002107}, + {0x00210A, 0x002113}, + {0x002115, 0x002115}, + {0x002118, 0x00211D}, + {0x002124, 0x002124}, + {0x002126, 0x002126}, + {0x002128, 0x002128}, + {0x00212A, 0x002139}, + {0x00213C, 0x00213F}, + {0x002145, 0x002149}, + {0x00214E, 0x00214E}, + {0x002160, 0x002188}, + {0x002C00, 0x002CE4}, + {0x002CEB, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x002D30, 0x002D67}, + {0x002D6F, 0x002D6F}, + {0x002D7F, 0x002D96}, + {0x002DA0, 0x002DA6}, + {0x002DA8, 0x002DAE}, + {0x002DB0, 0x002DB6}, + {0x002DB8, 0x002DBE}, + {0x002DC0, 0x002DC6}, + {0x002DC8, 0x002DCE}, + {0x002DD0, 0x002DD6}, + {0x002DD8, 0x002DDE}, + {0x002DE0, 0x002DFF}, + {0x003005, 0x003007}, + {0x003021, 0x00302F}, + {0x003031, 0x003035}, + {0x003038, 0x00303C}, + {0x003041, 0x003096}, + {0x003099, 0x00309A}, + {0x00309D, 0x00309F}, + {0x0030A1, 0x0030FF}, + {0x003105, 0x00312F}, + {0x003131, 0x00318E}, + {0x0031A0, 0x0031BF}, + {0x0031F0, 0x0031FF}, + {0x003400, 0x004DBF}, + {0x004E00, 0x00A48C}, + {0x00A4D0, 0x00A4FD}, + {0x00A500, 0x00A60C}, + {0x00A610, 0x00A62B}, + {0x00A640, 0x00A66F}, + {0x00A674, 0x00A67D}, + {0x00A67F, 0x00A6F1}, + {0x00A717, 0x00A71F}, + {0x00A722, 0x00A788}, + {0x00A78B, 0x00A7CA}, + {0x00A7D0, 0x00A7D1}, + {0x00A7D3, 0x00A7D3}, + {0x00A7D5, 0x00A7D9}, + {0x00A7F2, 0x00A827}, + {0x00A82C, 0x00A82C}, + {0x00A840, 0x00A873}, + {0x00A880, 0x00A8C5}, + {0x00A8D0, 0x00A8D9}, + {0x00A8E0, 0x00A8F7}, + {0x00A8FB, 0x00A8FB}, + {0x00A8FD, 0x00A92D}, + {0x00A930, 0x00A953}, + {0x00A960, 0x00A97C}, + {0x00A980, 0x00A9C0}, + {0x00A9CF, 0x00A9D9}, + {0x00A9E0, 0x00A9FE}, + {0x00AA00, 0x00AA36}, + {0x00AA40, 0x00AA4D}, + {0x00AA50, 0x00AA59}, + {0x00AA60, 0x00AA76}, + {0x00AA7A, 0x00AAC2}, + {0x00AADB, 0x00AADD}, + {0x00AAE0, 0x00AAEF}, + {0x00AAF2, 0x00AAF6}, + {0x00AB01, 0x00AB06}, + {0x00AB09, 0x00AB0E}, + {0x00AB11, 0x00AB16}, + {0x00AB20, 0x00AB26}, + {0x00AB28, 0x00AB2E}, + {0x00AB30, 0x00AB5A}, + {0x00AB5C, 0x00AB69}, + {0x00AB70, 0x00ABEA}, + {0x00ABEC, 0x00ABED}, + {0x00ABF0, 0x00ABF9}, + {0x00AC00, 0x00D7A3}, + {0x00D7B0, 0x00D7C6}, + {0x00D7CB, 0x00D7FB}, + {0x00F900, 0x00FA6D}, + {0x00FA70, 0x00FAD9}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FB1D, 0x00FB28}, + {0x00FB2A, 0x00FB36}, + {0x00FB38, 0x00FB3C}, + {0x00FB3E, 0x00FB3E}, + {0x00FB40, 0x00FB41}, + {0x00FB43, 0x00FB44}, + {0x00FB46, 0x00FBB1}, + {0x00FBD3, 0x00FC5D}, + {0x00FC64, 0x00FD3D}, + {0x00FD50, 0x00FD8F}, + {0x00FD92, 0x00FDC7}, + {0x00FDF0, 0x00FDF9}, + {0x00FE00, 0x00FE0F}, + {0x00FE20, 0x00FE2F}, + {0x00FE33, 0x00FE34}, + {0x00FE4D, 0x00FE4F}, + {0x00FE71, 0x00FE71}, + {0x00FE73, 0x00FE73}, + {0x00FE77, 0x00FE77}, + {0x00FE79, 0x00FE79}, + {0x00FE7B, 0x00FE7B}, + {0x00FE7D, 0x00FE7D}, + {0x00FE7F, 0x00FEFC}, + {0x00FF10, 0x00FF19}, + {0x00FF21, 0x00FF3A}, + {0x00FF3F, 0x00FF3F}, + {0x00FF41, 0x00FF5A}, + {0x00FF65, 0x00FFBE}, + {0x00FFC2, 0x00FFC7}, + {0x00FFCA, 0x00FFCF}, + {0x00FFD2, 0x00FFD7}, + {0x00FFDA, 0x00FFDC}, + {0x010000, 0x01000B}, + {0x01000D, 0x010026}, + {0x010028, 0x01003A}, + {0x01003C, 0x01003D}, + {0x01003F, 0x01004D}, + {0x010050, 0x01005D}, + {0x010080, 0x0100FA}, + {0x010140, 0x010174}, + {0x0101FD, 0x0101FD}, + {0x010280, 0x01029C}, + {0x0102A0, 0x0102D0}, + {0x0102E0, 0x0102E0}, + {0x010300, 0x01031F}, + {0x01032D, 0x01034A}, + {0x010350, 0x01037A}, + {0x010380, 0x01039D}, + {0x0103A0, 0x0103C3}, + {0x0103C8, 0x0103CF}, + {0x0103D1, 0x0103D5}, + {0x010400, 0x01049D}, + {0x0104A0, 0x0104A9}, + {0x0104B0, 0x0104D3}, + {0x0104D8, 0x0104FB}, + {0x010500, 0x010527}, + {0x010530, 0x010563}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010600, 0x010736}, + {0x010740, 0x010755}, + {0x010760, 0x010767}, + {0x010780, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010800, 0x010805}, + {0x010808, 0x010808}, + {0x01080A, 0x010835}, + {0x010837, 0x010838}, + {0x01083C, 0x01083C}, + {0x01083F, 0x010855}, + {0x010860, 0x010876}, + {0x010880, 0x01089E}, + {0x0108E0, 0x0108F2}, + {0x0108F4, 0x0108F5}, + {0x010900, 0x010915}, + {0x010920, 0x010939}, + {0x010980, 0x0109B7}, + {0x0109BE, 0x0109BF}, + {0x010A00, 0x010A03}, + {0x010A05, 0x010A06}, + {0x010A0C, 0x010A13}, + {0x010A15, 0x010A17}, + {0x010A19, 0x010A35}, + {0x010A38, 0x010A3A}, + {0x010A3F, 0x010A3F}, + {0x010A60, 0x010A7C}, + {0x010A80, 0x010A9C}, + {0x010AC0, 0x010AC7}, + {0x010AC9, 0x010AE6}, + {0x010B00, 0x010B35}, + {0x010B40, 0x010B55}, + {0x010B60, 0x010B72}, + {0x010B80, 0x010B91}, + {0x010C00, 0x010C48}, + {0x010C80, 0x010CB2}, + {0x010CC0, 0x010CF2}, + {0x010D00, 0x010D27}, + {0x010D30, 0x010D39}, + {0x010E80, 0x010EA9}, + {0x010EAB, 0x010EAC}, + {0x010EB0, 0x010EB1}, + {0x010EFD, 0x010F1C}, + {0x010F27, 0x010F27}, + {0x010F30, 0x010F50}, + {0x010F70, 0x010F85}, + {0x010FB0, 0x010FC4}, + {0x010FE0, 0x010FF6}, + {0x011000, 0x011046}, + {0x011066, 0x011075}, + {0x01107F, 0x0110BA}, + {0x0110C2, 0x0110C2}, + {0x0110D0, 0x0110E8}, + {0x0110F0, 0x0110F9}, + {0x011100, 0x011134}, + {0x011136, 0x01113F}, + {0x011144, 0x011147}, + {0x011150, 0x011173}, + {0x011176, 0x011176}, + {0x011180, 0x0111C4}, + {0x0111C9, 0x0111CC}, + {0x0111CE, 0x0111DA}, + {0x0111DC, 0x0111DC}, + {0x011200, 0x011211}, + {0x011213, 0x011237}, + {0x01123E, 0x011241}, + {0x011280, 0x011286}, + {0x011288, 0x011288}, + {0x01128A, 0x01128D}, + {0x01128F, 0x01129D}, + {0x01129F, 0x0112A8}, + {0x0112B0, 0x0112EA}, + {0x0112F0, 0x0112F9}, + {0x011300, 0x011303}, + {0x011305, 0x01130C}, + {0x01130F, 0x011310}, + {0x011313, 0x011328}, + {0x01132A, 0x011330}, + {0x011332, 0x011333}, + {0x011335, 0x011339}, + {0x01133B, 0x011344}, + {0x011347, 0x011348}, + {0x01134B, 0x01134D}, + {0x011350, 0x011350}, + {0x011357, 0x011357}, + {0x01135D, 0x011363}, + {0x011366, 0x01136C}, + {0x011370, 0x011374}, + {0x011400, 0x01144A}, + {0x011450, 0x011459}, + {0x01145E, 0x011461}, + {0x011480, 0x0114C5}, + {0x0114C7, 0x0114C7}, + {0x0114D0, 0x0114D9}, + {0x011580, 0x0115B5}, + {0x0115B8, 0x0115C0}, + {0x0115D8, 0x0115DD}, + {0x011600, 0x011640}, + {0x011644, 0x011644}, + {0x011650, 0x011659}, + {0x011680, 0x0116B8}, + {0x0116C0, 0x0116C9}, + {0x011700, 0x01171A}, + {0x01171D, 0x01172B}, + {0x011730, 0x011739}, + {0x011740, 0x011746}, + {0x011800, 0x01183A}, + {0x0118A0, 0x0118E9}, + {0x0118FF, 0x011906}, + {0x011909, 0x011909}, + {0x01190C, 0x011913}, + {0x011915, 0x011916}, + {0x011918, 0x011935}, + {0x011937, 0x011938}, + {0x01193B, 0x011943}, + {0x011950, 0x011959}, + {0x0119A0, 0x0119A7}, + {0x0119AA, 0x0119D7}, + {0x0119DA, 0x0119E1}, + {0x0119E3, 0x0119E4}, + {0x011A00, 0x011A3E}, + {0x011A47, 0x011A47}, + {0x011A50, 0x011A99}, + {0x011A9D, 0x011A9D}, + {0x011AB0, 0x011AF8}, + {0x011C00, 0x011C08}, + {0x011C0A, 0x011C36}, + {0x011C38, 0x011C40}, + {0x011C50, 0x011C59}, + {0x011C72, 0x011C8F}, + {0x011C92, 0x011CA7}, + {0x011CA9, 0x011CB6}, + {0x011D00, 0x011D06}, + {0x011D08, 0x011D09}, + {0x011D0B, 0x011D36}, + {0x011D3A, 0x011D3A}, + {0x011D3C, 0x011D3D}, + {0x011D3F, 0x011D47}, + {0x011D50, 0x011D59}, + {0x011D60, 0x011D65}, + {0x011D67, 0x011D68}, + {0x011D6A, 0x011D8E}, + {0x011D90, 0x011D91}, + {0x011D93, 0x011D98}, + {0x011DA0, 0x011DA9}, + {0x011EE0, 0x011EF6}, + {0x011F00, 0x011F10}, + {0x011F12, 0x011F3A}, + {0x011F3E, 0x011F42}, + {0x011F50, 0x011F59}, + {0x011FB0, 0x011FB0}, + {0x012000, 0x012399}, + {0x012400, 0x01246E}, + {0x012480, 0x012543}, + {0x012F90, 0x012FF0}, + {0x013000, 0x01342F}, + {0x013440, 0x013455}, + {0x014400, 0x014646}, + {0x016800, 0x016A38}, + {0x016A40, 0x016A5E}, + {0x016A60, 0x016A69}, + {0x016A70, 0x016ABE}, + {0x016AC0, 0x016AC9}, + {0x016AD0, 0x016AED}, + {0x016AF0, 0x016AF4}, + {0x016B00, 0x016B36}, + {0x016B40, 0x016B43}, + {0x016B50, 0x016B59}, + {0x016B63, 0x016B77}, + {0x016B7D, 0x016B8F}, + {0x016E40, 0x016E7F}, + {0x016F00, 0x016F4A}, + {0x016F4F, 0x016F87}, + {0x016F8F, 0x016F9F}, + {0x016FE0, 0x016FE1}, + {0x016FE3, 0x016FE4}, + {0x016FF0, 0x016FF1}, + {0x017000, 0x0187F7}, + {0x018800, 0x018CD5}, + {0x018D00, 0x018D08}, + {0x01AFF0, 0x01AFF3}, + {0x01AFF5, 0x01AFFB}, + {0x01AFFD, 0x01AFFE}, + {0x01B000, 0x01B122}, + {0x01B132, 0x01B132}, + {0x01B150, 0x01B152}, + {0x01B155, 0x01B155}, + {0x01B164, 0x01B167}, + {0x01B170, 0x01B2FB}, + {0x01BC00, 0x01BC6A}, + {0x01BC70, 0x01BC7C}, + {0x01BC80, 0x01BC88}, + {0x01BC90, 0x01BC99}, + {0x01BC9D, 0x01BC9E}, + {0x01CF00, 0x01CF2D}, + {0x01CF30, 0x01CF46}, + {0x01D165, 0x01D169}, + {0x01D16D, 0x01D172}, + {0x01D17B, 0x01D182}, + {0x01D185, 0x01D18B}, + {0x01D1AA, 0x01D1AD}, + {0x01D242, 0x01D244}, + {0x01D400, 0x01D454}, + {0x01D456, 0x01D49C}, + {0x01D49E, 0x01D49F}, + {0x01D4A2, 0x01D4A2}, + {0x01D4A5, 0x01D4A6}, + {0x01D4A9, 0x01D4AC}, + {0x01D4AE, 0x01D4B9}, + {0x01D4BB, 0x01D4BB}, + {0x01D4BD, 0x01D4C3}, + {0x01D4C5, 0x01D505}, + {0x01D507, 0x01D50A}, + {0x01D50D, 0x01D514}, + {0x01D516, 0x01D51C}, + {0x01D51E, 0x01D539}, + {0x01D53B, 0x01D53E}, + {0x01D540, 0x01D544}, + {0x01D546, 0x01D546}, + {0x01D54A, 0x01D550}, + {0x01D552, 0x01D6A5}, + {0x01D6A8, 0x01D6C0}, + {0x01D6C2, 0x01D6DA}, + {0x01D6DC, 0x01D6FA}, + {0x01D6FC, 0x01D714}, + {0x01D716, 0x01D734}, + {0x01D736, 0x01D74E}, + {0x01D750, 0x01D76E}, + {0x01D770, 0x01D788}, + {0x01D78A, 0x01D7A8}, + {0x01D7AA, 0x01D7C2}, + {0x01D7C4, 0x01D7CB}, + {0x01D7CE, 0x01D7FF}, + {0x01DA00, 0x01DA36}, + {0x01DA3B, 0x01DA6C}, + {0x01DA75, 0x01DA75}, + {0x01DA84, 0x01DA84}, + {0x01DA9B, 0x01DA9F}, + {0x01DAA1, 0x01DAAF}, + {0x01DF00, 0x01DF1E}, + {0x01DF25, 0x01DF2A}, + {0x01E000, 0x01E006}, + {0x01E008, 0x01E018}, + {0x01E01B, 0x01E021}, + {0x01E023, 0x01E024}, + {0x01E026, 0x01E02A}, + {0x01E030, 0x01E06D}, + {0x01E08F, 0x01E08F}, + {0x01E100, 0x01E12C}, + {0x01E130, 0x01E13D}, + {0x01E140, 0x01E149}, + {0x01E14E, 0x01E14E}, + {0x01E290, 0x01E2AE}, + {0x01E2C0, 0x01E2F9}, + {0x01E4D0, 0x01E4F9}, + {0x01E7E0, 0x01E7E6}, + {0x01E7E8, 0x01E7EB}, + {0x01E7ED, 0x01E7EE}, + {0x01E7F0, 0x01E7FE}, + {0x01E800, 0x01E8C4}, + {0x01E8D0, 0x01E8D6}, + {0x01E900, 0x01E94B}, + {0x01E950, 0x01E959}, + {0x01EE00, 0x01EE03}, + {0x01EE05, 0x01EE1F}, + {0x01EE21, 0x01EE22}, + {0x01EE24, 0x01EE24}, + {0x01EE27, 0x01EE27}, + {0x01EE29, 0x01EE32}, + {0x01EE34, 0x01EE37}, + {0x01EE39, 0x01EE39}, + {0x01EE3B, 0x01EE3B}, + {0x01EE42, 0x01EE42}, + {0x01EE47, 0x01EE47}, + {0x01EE49, 0x01EE49}, + {0x01EE4B, 0x01EE4B}, + {0x01EE4D, 0x01EE4F}, + {0x01EE51, 0x01EE52}, + {0x01EE54, 0x01EE54}, + {0x01EE57, 0x01EE57}, + {0x01EE59, 0x01EE59}, + {0x01EE5B, 0x01EE5B}, + {0x01EE5D, 0x01EE5D}, + {0x01EE5F, 0x01EE5F}, + {0x01EE61, 0x01EE62}, + {0x01EE64, 0x01EE64}, + {0x01EE67, 0x01EE6A}, + {0x01EE6C, 0x01EE72}, + {0x01EE74, 0x01EE77}, + {0x01EE79, 0x01EE7C}, + {0x01EE7E, 0x01EE7E}, + {0x01EE80, 0x01EE89}, + {0x01EE8B, 0x01EE9B}, + {0x01EEA1, 0x01EEA3}, + {0x01EEA5, 0x01EEA9}, + {0x01EEAB, 0x01EEBB}, + {0x01FBF0, 0x01FBF9}, + {0x020000, 0x02A6DF}, + {0x02A700, 0x02B739}, + {0x02B740, 0x02B81D}, + {0x02B820, 0x02CEA1}, + {0x02CEB0, 0x02EBE0}, + {0x02EBF0, 0x02EE5D}, + {0x02F800, 0x02FA1D}, + {0x030000, 0x03134A}, + {0x031350, 0x0323AF}, + {0x0E0100, 0x0E01EF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_xid_continue(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rune_has_prop_xid_start.c b/vendor/librune/lib/rtype/rune_has_prop_xid_start.c new file mode 100644 index 0000000..d2c9e98 --- /dev/null +++ b/vendor/librune/lib/rtype/rune_has_prop_xid_start.c @@ -0,0 +1,697 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" + +#include "internal/common.h" + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {0x000041, 0x00005A}, + {0x000061, 0x00007A}, + {0x0000AA, 0x0000AA}, + {0x0000B5, 0x0000B5}, + {0x0000BA, 0x0000BA}, + {0x0000C0, 0x0000D6}, + {0x0000D8, 0x0000F6}, + {0x0000F8, 0x0002C1}, + {0x0002C6, 0x0002D1}, + {0x0002E0, 0x0002E4}, + {0x0002EC, 0x0002EC}, + {0x0002EE, 0x0002EE}, + {0x000370, 0x000374}, + {0x000376, 0x000377}, + {0x00037B, 0x00037D}, + {0x00037F, 0x00037F}, + {0x000386, 0x000386}, + {0x000388, 0x00038A}, + {0x00038C, 0x00038C}, + {0x00038E, 0x0003A1}, + {0x0003A3, 0x0003F5}, + {0x0003F7, 0x000481}, + {0x00048A, 0x00052F}, + {0x000531, 0x000556}, + {0x000559, 0x000559}, + {0x000560, 0x000588}, + {0x0005D0, 0x0005EA}, + {0x0005EF, 0x0005F2}, + {0x000620, 0x00064A}, + {0x00066E, 0x00066F}, + {0x000671, 0x0006D3}, + {0x0006D5, 0x0006D5}, + {0x0006E5, 0x0006E6}, + {0x0006EE, 0x0006EF}, + {0x0006FA, 0x0006FC}, + {0x0006FF, 0x0006FF}, + {0x000710, 0x000710}, + {0x000712, 0x00072F}, + {0x00074D, 0x0007A5}, + {0x0007B1, 0x0007B1}, + {0x0007CA, 0x0007EA}, + {0x0007F4, 0x0007F5}, + {0x0007FA, 0x0007FA}, + {0x000800, 0x000815}, + {0x00081A, 0x00081A}, + {0x000824, 0x000824}, + {0x000828, 0x000828}, + {0x000840, 0x000858}, + {0x000860, 0x00086A}, + {0x000870, 0x000887}, + {0x000889, 0x00088E}, + {0x0008A0, 0x0008C9}, + {0x000904, 0x000939}, + {0x00093D, 0x00093D}, + {0x000950, 0x000950}, + {0x000958, 0x000961}, + {0x000971, 0x000980}, + {0x000985, 0x00098C}, + {0x00098F, 0x000990}, + {0x000993, 0x0009A8}, + {0x0009AA, 0x0009B0}, + {0x0009B2, 0x0009B2}, + {0x0009B6, 0x0009B9}, + {0x0009BD, 0x0009BD}, + {0x0009CE, 0x0009CE}, + {0x0009DC, 0x0009DD}, + {0x0009DF, 0x0009E1}, + {0x0009F0, 0x0009F1}, + {0x0009FC, 0x0009FC}, + {0x000A05, 0x000A0A}, + {0x000A0F, 0x000A10}, + {0x000A13, 0x000A28}, + {0x000A2A, 0x000A30}, + {0x000A32, 0x000A33}, + {0x000A35, 0x000A36}, + {0x000A38, 0x000A39}, + {0x000A59, 0x000A5C}, + {0x000A5E, 0x000A5E}, + {0x000A72, 0x000A74}, + {0x000A85, 0x000A8D}, + {0x000A8F, 0x000A91}, + {0x000A93, 0x000AA8}, + {0x000AAA, 0x000AB0}, + {0x000AB2, 0x000AB3}, + {0x000AB5, 0x000AB9}, + {0x000ABD, 0x000ABD}, + {0x000AD0, 0x000AD0}, + {0x000AE0, 0x000AE1}, + {0x000AF9, 0x000AF9}, + {0x000B05, 0x000B0C}, + {0x000B0F, 0x000B10}, + {0x000B13, 0x000B28}, + {0x000B2A, 0x000B30}, + {0x000B32, 0x000B33}, + {0x000B35, 0x000B39}, + {0x000B3D, 0x000B3D}, + {0x000B5C, 0x000B5D}, + {0x000B5F, 0x000B61}, + {0x000B71, 0x000B71}, + {0x000B83, 0x000B83}, + {0x000B85, 0x000B8A}, + {0x000B8E, 0x000B90}, + {0x000B92, 0x000B95}, + {0x000B99, 0x000B9A}, + {0x000B9C, 0x000B9C}, + {0x000B9E, 0x000B9F}, + {0x000BA3, 0x000BA4}, + {0x000BA8, 0x000BAA}, + {0x000BAE, 0x000BB9}, + {0x000BD0, 0x000BD0}, + {0x000C05, 0x000C0C}, + {0x000C0E, 0x000C10}, + {0x000C12, 0x000C28}, + {0x000C2A, 0x000C39}, + {0x000C3D, 0x000C3D}, + {0x000C58, 0x000C5A}, + {0x000C5D, 0x000C5D}, + {0x000C60, 0x000C61}, + {0x000C80, 0x000C80}, + {0x000C85, 0x000C8C}, + {0x000C8E, 0x000C90}, + {0x000C92, 0x000CA8}, + {0x000CAA, 0x000CB3}, + {0x000CB5, 0x000CB9}, + {0x000CBD, 0x000CBD}, + {0x000CDD, 0x000CDE}, + {0x000CE0, 0x000CE1}, + {0x000CF1, 0x000CF2}, + {0x000D04, 0x000D0C}, + {0x000D0E, 0x000D10}, + {0x000D12, 0x000D3A}, + {0x000D3D, 0x000D3D}, + {0x000D4E, 0x000D4E}, + {0x000D54, 0x000D56}, + {0x000D5F, 0x000D61}, + {0x000D7A, 0x000D7F}, + {0x000D85, 0x000D96}, + {0x000D9A, 0x000DB1}, + {0x000DB3, 0x000DBB}, + {0x000DBD, 0x000DBD}, + {0x000DC0, 0x000DC6}, + {0x000E01, 0x000E30}, + {0x000E32, 0x000E32}, + {0x000E40, 0x000E46}, + {0x000E81, 0x000E82}, + {0x000E84, 0x000E84}, + {0x000E86, 0x000E8A}, + {0x000E8C, 0x000EA3}, + {0x000EA5, 0x000EA5}, + {0x000EA7, 0x000EB0}, + {0x000EB2, 0x000EB2}, + {0x000EBD, 0x000EBD}, + {0x000EC0, 0x000EC4}, + {0x000EC6, 0x000EC6}, + {0x000EDC, 0x000EDF}, + {0x000F00, 0x000F00}, + {0x000F40, 0x000F47}, + {0x000F49, 0x000F6C}, + {0x000F88, 0x000F8C}, + {0x001000, 0x00102A}, + {0x00103F, 0x00103F}, + {0x001050, 0x001055}, + {0x00105A, 0x00105D}, + {0x001061, 0x001061}, + {0x001065, 0x001066}, + {0x00106E, 0x001070}, + {0x001075, 0x001081}, + {0x00108E, 0x00108E}, + {0x0010A0, 0x0010C5}, + {0x0010C7, 0x0010C7}, + {0x0010CD, 0x0010CD}, + {0x0010D0, 0x0010FA}, + {0x0010FC, 0x001248}, + {0x00124A, 0x00124D}, + {0x001250, 0x001256}, + {0x001258, 0x001258}, + {0x00125A, 0x00125D}, + {0x001260, 0x001288}, + {0x00128A, 0x00128D}, + {0x001290, 0x0012B0}, + {0x0012B2, 0x0012B5}, + {0x0012B8, 0x0012BE}, + {0x0012C0, 0x0012C0}, + {0x0012C2, 0x0012C5}, + {0x0012C8, 0x0012D6}, + {0x0012D8, 0x001310}, + {0x001312, 0x001315}, + {0x001318, 0x00135A}, + {0x001380, 0x00138F}, + {0x0013A0, 0x0013F5}, + {0x0013F8, 0x0013FD}, + {0x001401, 0x00166C}, + {0x00166F, 0x00167F}, + {0x001681, 0x00169A}, + {0x0016A0, 0x0016EA}, + {0x0016EE, 0x0016F8}, + {0x001700, 0x001711}, + {0x00171F, 0x001731}, + {0x001740, 0x001751}, + {0x001760, 0x00176C}, + {0x00176E, 0x001770}, + {0x001780, 0x0017B3}, + {0x0017D7, 0x0017D7}, + {0x0017DC, 0x0017DC}, + {0x001820, 0x001878}, + {0x001880, 0x0018A8}, + {0x0018AA, 0x0018AA}, + {0x0018B0, 0x0018F5}, + {0x001900, 0x00191E}, + {0x001950, 0x00196D}, + {0x001970, 0x001974}, + {0x001980, 0x0019AB}, + {0x0019B0, 0x0019C9}, + {0x001A00, 0x001A16}, + {0x001A20, 0x001A54}, + {0x001AA7, 0x001AA7}, + {0x001B05, 0x001B33}, + {0x001B45, 0x001B4C}, + {0x001B83, 0x001BA0}, + {0x001BAE, 0x001BAF}, + {0x001BBA, 0x001BE5}, + {0x001C00, 0x001C23}, + {0x001C4D, 0x001C4F}, + {0x001C5A, 0x001C7D}, + {0x001C80, 0x001C88}, + {0x001C90, 0x001CBA}, + {0x001CBD, 0x001CBF}, + {0x001CE9, 0x001CEC}, + {0x001CEE, 0x001CF3}, + {0x001CF5, 0x001CF6}, + {0x001CFA, 0x001CFA}, + {0x001D00, 0x001DBF}, + {0x001E00, 0x001F15}, + {0x001F18, 0x001F1D}, + {0x001F20, 0x001F45}, + {0x001F48, 0x001F4D}, + {0x001F50, 0x001F57}, + {0x001F59, 0x001F59}, + {0x001F5B, 0x001F5B}, + {0x001F5D, 0x001F5D}, + {0x001F5F, 0x001F7D}, + {0x001F80, 0x001FB4}, + {0x001FB6, 0x001FBC}, + {0x001FBE, 0x001FBE}, + {0x001FC2, 0x001FC4}, + {0x001FC6, 0x001FCC}, + {0x001FD0, 0x001FD3}, + {0x001FD6, 0x001FDB}, + {0x001FE0, 0x001FEC}, + {0x001FF2, 0x001FF4}, + {0x001FF6, 0x001FFC}, + {0x002071, 0x002071}, + {0x00207F, 0x00207F}, + {0x002090, 0x00209C}, + {0x002102, 0x002102}, + {0x002107, 0x002107}, + {0x00210A, 0x002113}, + {0x002115, 0x002115}, + {0x002118, 0x00211D}, + {0x002124, 0x002124}, + {0x002126, 0x002126}, + {0x002128, 0x002128}, + {0x00212A, 0x002139}, + {0x00213C, 0x00213F}, + {0x002145, 0x002149}, + {0x00214E, 0x00214E}, + {0x002160, 0x002188}, + {0x002C00, 0x002CE4}, + {0x002CEB, 0x002CEE}, + {0x002CF2, 0x002CF3}, + {0x002D00, 0x002D25}, + {0x002D27, 0x002D27}, + {0x002D2D, 0x002D2D}, + {0x002D30, 0x002D67}, + {0x002D6F, 0x002D6F}, + {0x002D80, 0x002D96}, + {0x002DA0, 0x002DA6}, + {0x002DA8, 0x002DAE}, + {0x002DB0, 0x002DB6}, + {0x002DB8, 0x002DBE}, + {0x002DC0, 0x002DC6}, + {0x002DC8, 0x002DCE}, + {0x002DD0, 0x002DD6}, + {0x002DD8, 0x002DDE}, + {0x003005, 0x003007}, + {0x003021, 0x003029}, + {0x003031, 0x003035}, + {0x003038, 0x00303C}, + {0x003041, 0x003096}, + {0x00309D, 0x00309F}, + {0x0030A1, 0x0030FA}, + {0x0030FC, 0x0030FF}, + {0x003105, 0x00312F}, + {0x003131, 0x00318E}, + {0x0031A0, 0x0031BF}, + {0x0031F0, 0x0031FF}, + {0x003400, 0x004DBF}, + {0x004E00, 0x00A48C}, + {0x00A4D0, 0x00A4FD}, + {0x00A500, 0x00A60C}, + {0x00A610, 0x00A61F}, + {0x00A62A, 0x00A62B}, + {0x00A640, 0x00A66E}, + {0x00A67F, 0x00A69D}, + {0x00A6A0, 0x00A6EF}, + {0x00A717, 0x00A71F}, + {0x00A722, 0x00A788}, + {0x00A78B, 0x00A7CA}, + {0x00A7D0, 0x00A7D1}, + {0x00A7D3, 0x00A7D3}, + {0x00A7D5, 0x00A7D9}, + {0x00A7F2, 0x00A801}, + {0x00A803, 0x00A805}, + {0x00A807, 0x00A80A}, + {0x00A80C, 0x00A822}, + {0x00A840, 0x00A873}, + {0x00A882, 0x00A8B3}, + {0x00A8F2, 0x00A8F7}, + {0x00A8FB, 0x00A8FB}, + {0x00A8FD, 0x00A8FE}, + {0x00A90A, 0x00A925}, + {0x00A930, 0x00A946}, + {0x00A960, 0x00A97C}, + {0x00A984, 0x00A9B2}, + {0x00A9CF, 0x00A9CF}, + {0x00A9E0, 0x00A9E4}, + {0x00A9E6, 0x00A9EF}, + {0x00A9FA, 0x00A9FE}, + {0x00AA00, 0x00AA28}, + {0x00AA40, 0x00AA42}, + {0x00AA44, 0x00AA4B}, + {0x00AA60, 0x00AA76}, + {0x00AA7A, 0x00AA7A}, + {0x00AA7E, 0x00AAAF}, + {0x00AAB1, 0x00AAB1}, + {0x00AAB5, 0x00AAB6}, + {0x00AAB9, 0x00AABD}, + {0x00AAC0, 0x00AAC0}, + {0x00AAC2, 0x00AAC2}, + {0x00AADB, 0x00AADD}, + {0x00AAE0, 0x00AAEA}, + {0x00AAF2, 0x00AAF4}, + {0x00AB01, 0x00AB06}, + {0x00AB09, 0x00AB0E}, + {0x00AB11, 0x00AB16}, + {0x00AB20, 0x00AB26}, + {0x00AB28, 0x00AB2E}, + {0x00AB30, 0x00AB5A}, + {0x00AB5C, 0x00AB69}, + {0x00AB70, 0x00ABE2}, + {0x00AC00, 0x00D7A3}, + {0x00D7B0, 0x00D7C6}, + {0x00D7CB, 0x00D7FB}, + {0x00F900, 0x00FA6D}, + {0x00FA70, 0x00FAD9}, + {0x00FB00, 0x00FB06}, + {0x00FB13, 0x00FB17}, + {0x00FB1D, 0x00FB1D}, + {0x00FB1F, 0x00FB28}, + {0x00FB2A, 0x00FB36}, + {0x00FB38, 0x00FB3C}, + {0x00FB3E, 0x00FB3E}, + {0x00FB40, 0x00FB41}, + {0x00FB43, 0x00FB44}, + {0x00FB46, 0x00FBB1}, + {0x00FBD3, 0x00FC5D}, + {0x00FC64, 0x00FD3D}, + {0x00FD50, 0x00FD8F}, + {0x00FD92, 0x00FDC7}, + {0x00FDF0, 0x00FDF9}, + {0x00FE71, 0x00FE71}, + {0x00FE73, 0x00FE73}, + {0x00FE77, 0x00FE77}, + {0x00FE79, 0x00FE79}, + {0x00FE7B, 0x00FE7B}, + {0x00FE7D, 0x00FE7D}, + {0x00FE7F, 0x00FEFC}, + {0x00FF21, 0x00FF3A}, + {0x00FF41, 0x00FF5A}, + {0x00FF66, 0x00FF9D}, + {0x00FFA0, 0x00FFBE}, + {0x00FFC2, 0x00FFC7}, + {0x00FFCA, 0x00FFCF}, + {0x00FFD2, 0x00FFD7}, + {0x00FFDA, 0x00FFDC}, + {0x010000, 0x01000B}, + {0x01000D, 0x010026}, + {0x010028, 0x01003A}, + {0x01003C, 0x01003D}, + {0x01003F, 0x01004D}, + {0x010050, 0x01005D}, + {0x010080, 0x0100FA}, + {0x010140, 0x010174}, + {0x010280, 0x01029C}, + {0x0102A0, 0x0102D0}, + {0x010300, 0x01031F}, + {0x01032D, 0x01034A}, + {0x010350, 0x010375}, + {0x010380, 0x01039D}, + {0x0103A0, 0x0103C3}, + {0x0103C8, 0x0103CF}, + {0x0103D1, 0x0103D5}, + {0x010400, 0x01049D}, + {0x0104B0, 0x0104D3}, + {0x0104D8, 0x0104FB}, + {0x010500, 0x010527}, + {0x010530, 0x010563}, + {0x010570, 0x01057A}, + {0x01057C, 0x01058A}, + {0x01058C, 0x010592}, + {0x010594, 0x010595}, + {0x010597, 0x0105A1}, + {0x0105A3, 0x0105B1}, + {0x0105B3, 0x0105B9}, + {0x0105BB, 0x0105BC}, + {0x010600, 0x010736}, + {0x010740, 0x010755}, + {0x010760, 0x010767}, + {0x010780, 0x010785}, + {0x010787, 0x0107B0}, + {0x0107B2, 0x0107BA}, + {0x010800, 0x010805}, + {0x010808, 0x010808}, + {0x01080A, 0x010835}, + {0x010837, 0x010838}, + {0x01083C, 0x01083C}, + {0x01083F, 0x010855}, + {0x010860, 0x010876}, + {0x010880, 0x01089E}, + {0x0108E0, 0x0108F2}, + {0x0108F4, 0x0108F5}, + {0x010900, 0x010915}, + {0x010920, 0x010939}, + {0x010980, 0x0109B7}, + {0x0109BE, 0x0109BF}, + {0x010A00, 0x010A00}, + {0x010A10, 0x010A13}, + {0x010A15, 0x010A17}, + {0x010A19, 0x010A35}, + {0x010A60, 0x010A7C}, + {0x010A80, 0x010A9C}, + {0x010AC0, 0x010AC7}, + {0x010AC9, 0x010AE4}, + {0x010B00, 0x010B35}, + {0x010B40, 0x010B55}, + {0x010B60, 0x010B72}, + {0x010B80, 0x010B91}, + {0x010C00, 0x010C48}, + {0x010C80, 0x010CB2}, + {0x010CC0, 0x010CF2}, + {0x010D00, 0x010D23}, + {0x010E80, 0x010EA9}, + {0x010EB0, 0x010EB1}, + {0x010F00, 0x010F1C}, + {0x010F27, 0x010F27}, + {0x010F30, 0x010F45}, + {0x010F70, 0x010F81}, + {0x010FB0, 0x010FC4}, + {0x010FE0, 0x010FF6}, + {0x011003, 0x011037}, + {0x011071, 0x011072}, + {0x011075, 0x011075}, + {0x011083, 0x0110AF}, + {0x0110D0, 0x0110E8}, + {0x011103, 0x011126}, + {0x011144, 0x011144}, + {0x011147, 0x011147}, + {0x011150, 0x011172}, + {0x011176, 0x011176}, + {0x011183, 0x0111B2}, + {0x0111C1, 0x0111C4}, + {0x0111DA, 0x0111DA}, + {0x0111DC, 0x0111DC}, + {0x011200, 0x011211}, + {0x011213, 0x01122B}, + {0x01123F, 0x011240}, + {0x011280, 0x011286}, + {0x011288, 0x011288}, + {0x01128A, 0x01128D}, + {0x01128F, 0x01129D}, + {0x01129F, 0x0112A8}, + {0x0112B0, 0x0112DE}, + {0x011305, 0x01130C}, + {0x01130F, 0x011310}, + {0x011313, 0x011328}, + {0x01132A, 0x011330}, + {0x011332, 0x011333}, + {0x011335, 0x011339}, + {0x01133D, 0x01133D}, + {0x011350, 0x011350}, + {0x01135D, 0x011361}, + {0x011400, 0x011434}, + {0x011447, 0x01144A}, + {0x01145F, 0x011461}, + {0x011480, 0x0114AF}, + {0x0114C4, 0x0114C5}, + {0x0114C7, 0x0114C7}, + {0x011580, 0x0115AE}, + {0x0115D8, 0x0115DB}, + {0x011600, 0x01162F}, + {0x011644, 0x011644}, + {0x011680, 0x0116AA}, + {0x0116B8, 0x0116B8}, + {0x011700, 0x01171A}, + {0x011740, 0x011746}, + {0x011800, 0x01182B}, + {0x0118A0, 0x0118DF}, + {0x0118FF, 0x011906}, + {0x011909, 0x011909}, + {0x01190C, 0x011913}, + {0x011915, 0x011916}, + {0x011918, 0x01192F}, + {0x01193F, 0x01193F}, + {0x011941, 0x011941}, + {0x0119A0, 0x0119A7}, + {0x0119AA, 0x0119D0}, + {0x0119E1, 0x0119E1}, + {0x0119E3, 0x0119E3}, + {0x011A00, 0x011A00}, + {0x011A0B, 0x011A32}, + {0x011A3A, 0x011A3A}, + {0x011A50, 0x011A50}, + {0x011A5C, 0x011A89}, + {0x011A9D, 0x011A9D}, + {0x011AB0, 0x011AF8}, + {0x011C00, 0x011C08}, + {0x011C0A, 0x011C2E}, + {0x011C40, 0x011C40}, + {0x011C72, 0x011C8F}, + {0x011D00, 0x011D06}, + {0x011D08, 0x011D09}, + {0x011D0B, 0x011D30}, + {0x011D46, 0x011D46}, + {0x011D60, 0x011D65}, + {0x011D67, 0x011D68}, + {0x011D6A, 0x011D89}, + {0x011D98, 0x011D98}, + {0x011EE0, 0x011EF2}, + {0x011F02, 0x011F02}, + {0x011F04, 0x011F10}, + {0x011F12, 0x011F33}, + {0x011FB0, 0x011FB0}, + {0x012000, 0x012399}, + {0x012400, 0x01246E}, + {0x012480, 0x012543}, + {0x012F90, 0x012FF0}, + {0x013000, 0x01342F}, + {0x013441, 0x013446}, + {0x014400, 0x014646}, + {0x016800, 0x016A38}, + {0x016A40, 0x016A5E}, + {0x016A70, 0x016ABE}, + {0x016AD0, 0x016AED}, + {0x016B00, 0x016B2F}, + {0x016B40, 0x016B43}, + {0x016B63, 0x016B77}, + {0x016B7D, 0x016B8F}, + {0x016E40, 0x016E7F}, + {0x016F00, 0x016F4A}, + {0x016F50, 0x016F50}, + {0x016F93, 0x016F9F}, + {0x016FE0, 0x016FE1}, + {0x016FE3, 0x016FE3}, + {0x017000, 0x0187F7}, + {0x018800, 0x018CD5}, + {0x018D00, 0x018D08}, + {0x01AFF0, 0x01AFF3}, + {0x01AFF5, 0x01AFFB}, + {0x01AFFD, 0x01AFFE}, + {0x01B000, 0x01B122}, + {0x01B132, 0x01B132}, + {0x01B150, 0x01B152}, + {0x01B155, 0x01B155}, + {0x01B164, 0x01B167}, + {0x01B170, 0x01B2FB}, + {0x01BC00, 0x01BC6A}, + {0x01BC70, 0x01BC7C}, + {0x01BC80, 0x01BC88}, + {0x01BC90, 0x01BC99}, + {0x01D400, 0x01D454}, + {0x01D456, 0x01D49C}, + {0x01D49E, 0x01D49F}, + {0x01D4A2, 0x01D4A2}, + {0x01D4A5, 0x01D4A6}, + {0x01D4A9, 0x01D4AC}, + {0x01D4AE, 0x01D4B9}, + {0x01D4BB, 0x01D4BB}, + {0x01D4BD, 0x01D4C3}, + {0x01D4C5, 0x01D505}, + {0x01D507, 0x01D50A}, + {0x01D50D, 0x01D514}, + {0x01D516, 0x01D51C}, + {0x01D51E, 0x01D539}, + {0x01D53B, 0x01D53E}, + {0x01D540, 0x01D544}, + {0x01D546, 0x01D546}, + {0x01D54A, 0x01D550}, + {0x01D552, 0x01D6A5}, + {0x01D6A8, 0x01D6C0}, + {0x01D6C2, 0x01D6DA}, + {0x01D6DC, 0x01D6FA}, + {0x01D6FC, 0x01D714}, + {0x01D716, 0x01D734}, + {0x01D736, 0x01D74E}, + {0x01D750, 0x01D76E}, + {0x01D770, 0x01D788}, + {0x01D78A, 0x01D7A8}, + {0x01D7AA, 0x01D7C2}, + {0x01D7C4, 0x01D7CB}, + {0x01DF00, 0x01DF1E}, + {0x01DF25, 0x01DF2A}, + {0x01E030, 0x01E06D}, + {0x01E100, 0x01E12C}, + {0x01E137, 0x01E13D}, + {0x01E14E, 0x01E14E}, + {0x01E290, 0x01E2AD}, + {0x01E2C0, 0x01E2EB}, + {0x01E4D0, 0x01E4EB}, + {0x01E7E0, 0x01E7E6}, + {0x01E7E8, 0x01E7EB}, + {0x01E7ED, 0x01E7EE}, + {0x01E7F0, 0x01E7FE}, + {0x01E800, 0x01E8C4}, + {0x01E900, 0x01E943}, + {0x01E94B, 0x01E94B}, + {0x01EE00, 0x01EE03}, + {0x01EE05, 0x01EE1F}, + {0x01EE21, 0x01EE22}, + {0x01EE24, 0x01EE24}, + {0x01EE27, 0x01EE27}, + {0x01EE29, 0x01EE32}, + {0x01EE34, 0x01EE37}, + {0x01EE39, 0x01EE39}, + {0x01EE3B, 0x01EE3B}, + {0x01EE42, 0x01EE42}, + {0x01EE47, 0x01EE47}, + {0x01EE49, 0x01EE49}, + {0x01EE4B, 0x01EE4B}, + {0x01EE4D, 0x01EE4F}, + {0x01EE51, 0x01EE52}, + {0x01EE54, 0x01EE54}, + {0x01EE57, 0x01EE57}, + {0x01EE59, 0x01EE59}, + {0x01EE5B, 0x01EE5B}, + {0x01EE5D, 0x01EE5D}, + {0x01EE5F, 0x01EE5F}, + {0x01EE61, 0x01EE62}, + {0x01EE64, 0x01EE64}, + {0x01EE67, 0x01EE6A}, + {0x01EE6C, 0x01EE72}, + {0x01EE74, 0x01EE77}, + {0x01EE79, 0x01EE7C}, + {0x01EE7E, 0x01EE7E}, + {0x01EE80, 0x01EE89}, + {0x01EE8B, 0x01EE9B}, + {0x01EEA1, 0x01EEA3}, + {0x01EEA5, 0x01EEA9}, + {0x01EEAB, 0x01EEBB}, + {0x020000, 0x02A6DF}, + {0x02A700, 0x02B739}, + {0x02B740, 0x02B81D}, + {0x02B820, 0x02CEA1}, + {0x02CEB0, 0x02EBE0}, + {0x02EBF0, 0x02EE5D}, + {0x02F800, 0x02FA1D}, + {0x030000, 0x03134A}, + {0x031350, 0x0323AF}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rune_has_prop_xid_start(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & ch) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/runeis.c b/vendor/librune/lib/rtype/runeis.c index 180432e..5284cd9 100644 --- a/vendor/librune/lib/rtype/runeis.c +++ b/vendor/librune/lib/rtype/runeis.c @@ -1,31 +1,16 @@ -#include <stddef.h> - #include "rtype.h" -#include "internal/common.h" -#include "internal/rtype_lookup.h" +#include "internal/rtype/cat.h" + +#define DEFAULT UC_CN +#define HAS_VALUE 1 +#define LATIN1_TABLE rtype_cat_lat1_tbl +#define TABLE rtype_cat_tbl +#define TYPE enum unicat +#include "internal/rtype/lookup-func.h" bool -runeis(rune ch, unicat c) +runeis(rune ch, enum unicat c) { - ptrdiff_t lo, hi; - - if (ch <= LATIN1_MAX) - return rtype_lat1_tbl[ch] & c; - - lo = 0; - hi = lengthof(rtype_cat_tbl) - 1; - - while (lo <= hi) { - ptrdiff_t i = (lo + hi) / 2; - - if (ch < rtype_cat_tbl[i].lo) - hi = i - 1; - else if (ch > rtype_cat_tbl[i].hi) - lo = i + 1; - else - return c & rtype_cat_tbl[i].cat; - } - - return false; + return lookup(ch) & c; } diff --git a/vendor/librune/make.c b/vendor/librune/make.c index d818f09..32513e1 100644 --- a/vendor/librune/make.c +++ b/vendor/librune/make.c @@ -1,6 +1,8 @@ +#define _GNU_SOURCE #include <errno.h> #include <glob.h> #include <libgen.h> +#include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -30,10 +32,12 @@ #define streq(a, b) (!strcmp(a, b)) +#define flagset(o) (flags & (1 << ((o) - 'a'))) + static void work(void *); static int globerr(const char *, int); -static bool lflag, rflag; +static uint32_t flags; int main(int argc, char **argv) @@ -43,17 +47,13 @@ main(int argc, char **argv) cbsinit(argc, argv); rebuild(); - while ((opt = getopt(argc, argv, "lr")) != -1) { + while ((opt = getopt(argc, argv, "flr")) != -1) { switch (opt) { - case 'l': - lflag = true; - break; - case 'r': - rflag = true; - break; - default: - fprintf(stderr, "Usage: %s [-lr]\n", *argv); + case '?': + fprintf(stderr, "Usage: %s [-flr]\n", *argv); exit(EXIT_FAILURE); + default: + flags |= 1 << (opt - 'a'); } } @@ -93,7 +93,9 @@ main(int argc, char **argv) for (size_t i = 0; i < g.gl_pathc; i++) g.gl_pathv[i][strlen(g.gl_pathv[i]) - 1] = 'o'; - if (foutdatedv("librune.a", (const char **)g.gl_pathv, g.gl_pathc)) { + if (flagset('f') + || foutdatedv("librune.a", (const char **)g.gl_pathv, g.gl_pathc)) + { cmdadd(&c, "ar", "rcs", "librune.a"); cmdaddv(&c, g.gl_pathv, g.gl_pathc); cmdprc(c); @@ -116,14 +118,14 @@ work(void *p) die("strdup"); dst[strlen(dst) - 1] = 'o'; - if (foutdated(dst, src)) { + if (flagset('f') || foutdated(dst, src)) { env_or_default(&sv, "CC", CC); - if (rflag) + if (flagset('r')) env_or_default(&sv, "CFLAGS", CFLAGS_RLS); else env_or_default(&sv, "CFLAGS", CFLAGS_DBG); cmdaddv(&c, sv.buf, sv.len); - if (lflag) + if (flagset('l')) cmdadd(&c, "-flto"); cmdadd(&c, "-Iinclude", "-fPIC", "-o", dst, "-c", src); cmdprc(c); diff --git a/vendor/librune/test/tests b/vendor/librune/test/tests index e728773..5affe3a 100755 --- a/vendor/librune/test/tests +++ b/vendor/librune/test/tests @@ -13,7 +13,8 @@ readonly src=../data/GraphemeBreakTest.txt set -e cd "${0%/*}" -find ../lib -name '*.c' -exec cc -I../include -o gbrk gbrk.c {} + +find ../lib -name '*.c' -exec \ + cc -std=c2x -Wno-attributes -I../include -o gbrk gbrk.c {} + trap 'rm -f gbrk' EXIT n=$( |