diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2024-01-29 00:42:05 +0100 | 
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2024-01-29 00:42:05 +0100 | 
| commit | b8f4479a17e1add06e1532a00ae913cc0f4e9567 (patch) | |
| tree | c724d7e1cb053b35cefd87d02109abac846fe0a5 /vendor | |
| parent | 3d9a150f522278f8ab37e299f9aa187931ea2d56 (diff) | |
Bump librune
Diffstat (limited to 'vendor')
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=$( |