From 2f9bc7fe61d39658a24a15526b7b88bbd184961b Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sun, 6 Feb 2022 20:21:16 +0100 Subject: [PATCH] Update unicode tables to Unicode 14.0.0; initial charsets immutable * libguile/srfi-14.i.c: Update from Unicode 14.0.0. * libguile/unidata_to_charset.pl (compute): Write arrays as static const data, to avoid polluting the namespace and to avoid adding these to the GC root set. * libguile/srfi-14.c (SCM_CODEPOINT_F_IMMUTABLE): New flag. (scm_charset_is_immutable): New internal predicate. (SCM_VALIDATE_MUTABLE_CHARSET): New internal validator. (cs_full_ranges, cs_full_ranges_len): Re-express as separate ranges and len, because the ranges pointer in scm_t_char_set is mutable. (scm_char_set_unfold_x, scm_list_to_char_set_x) (scm_string_to_char_set_x, scm_char_set_filter_x) (scm_i_ucs_range_to_char_set, scm_char_set_adjoin_x) (scm_char_set_delete_x, scm_char_set_complement_x) (scm_char_set_unfold_x, scm_char_set_intersection_x) (scm_char_set_difference_x, scm_char_set_xor_x): Require mutable charsets. (define_charset): Add immutable flag. (scm_init_srfi_14): Adapt initial charset definitions. --- libguile/srfi-14.c | 117 +- libguile/srfi-14.i.c | 15051 +++++++++++-------------------- libguile/unidata_to_charset.pl | 9 +- 3 files changed, 5183 insertions(+), 9994 deletions(-) diff --git a/libguile/srfi-14.c b/libguile/srfi-14.c index bbddb0598..9ae5f2497 100644 --- a/libguile/srfi-14.c +++ b/libguile/srfi-14.c @@ -1,4 +1,4 @@ -/* Copyright 2001,2004,2006-2007,2009,2011,2018-2019 +/* Copyright 2001,2004,2006-2007,2009,2011,2018-2019,2022 Free Software Foundation, Inc. This file is part of Guile. @@ -46,17 +46,27 @@ /* Include the pre-computed standard charset data. */ #include "srfi-14.i.c" -scm_t_char_range cs_full_ranges[] = { - {0x0000, SCM_CODEPOINT_SURROGATE_START - 1} - , +static const scm_t_bits SCM_CHARSET_F_IMMUTABLE = 1 << 16; + +static inline int +scm_charset_is_immutable (SCM charset) +{ + return SCM_SMOB_DATA_0 (charset) & SCM_CHARSET_F_IMMUTABLE; +} + +#define SCM_VALIDATE_MUTABLE_CHARSET(pos, x) \ + do { \ + SCM_ASSERT_TYPE (SCM_CHARSETP (x) && !scm_charset_is_immutable (x), \ + x, pos, FUNC_NAME, "mutable charset"); \ + } while (0) + +static const scm_t_char_range cs_full_ranges[] = { + {0x0000, SCM_CODEPOINT_SURROGATE_START - 1}, {SCM_CODEPOINT_SURROGATE_END + 1, SCM_CODEPOINT_MAX} }; +static const size_t cs_full_len = 2; -scm_t_char_set cs_full = { - 2, - cs_full_ranges -}; - +#define SCM_CHARSET_DATA(charset) ((scm_t_char_set *) SCM_SMOB_DATA (charset)) #define SCM_CHARSET_DATA(charset) ((scm_t_char_set *) SCM_SMOB_DATA (charset)) @@ -997,7 +1007,7 @@ SCM_DEFINE (scm_char_set_unfold_x, "char-set-unfold!", 5, 0, 0, SCM_VALIDATE_PROC (1, p); SCM_VALIDATE_PROC (2, f); SCM_VALIDATE_PROC (3, g); - SCM_VALIDATE_SMOB (5, base_cs, charset); + SCM_VALIDATE_MUTABLE_CHARSET (5, base_cs); tmp = scm_call_1 (p, seed); while (scm_is_false (tmp)) @@ -1172,7 +1182,7 @@ SCM_DEFINE (scm_list_to_char_set_x, "list->char-set!", 2, 0, 0, #define FUNC_NAME s_scm_list_to_char_set_x { SCM_VALIDATE_LIST (1, list); - SCM_VALIDATE_SMOB (2, base_cs, charset); + SCM_VALIDATE_MUTABLE_CHARSET (2, base_cs); while (!scm_is_null (list)) { SCM chr = SCM_CAR (list); @@ -1228,7 +1238,7 @@ SCM_DEFINE (scm_string_to_char_set_x, "string->char-set!", 2, 0, 0, size_t k = 0, len; SCM_VALIDATE_STRING (1, str); - SCM_VALIDATE_SMOB (2, base_cs, charset); + SCM_VALIDATE_MUTABLE_CHARSET (2, base_cs); len = scm_i_string_length (str); while (k < len) { @@ -1294,7 +1304,7 @@ SCM_DEFINE (scm_char_set_filter_x, "char-set-filter!", 3, 0, 0, SCM_VALIDATE_PROC (1, pred); SCM_VALIDATE_SMOB (2, cs, charset); - SCM_VALIDATE_SMOB (3, base_cs, charset); + SCM_VALIDATE_MUTABLE_CHARSET (3, base_cs); p = SCM_CHARSET_DATA (cs); if (p->len == 0) return base_cs; @@ -1343,11 +1353,16 @@ scm_i_ucs_range_to_char_set (const char *FUNC_NAME, SCM lower, SCM upper, cs = make_char_set (FUNC_NAME); else { - SCM_VALIDATE_SMOB (3, base_cs, charset); if (reuse) - cs = base_cs; + { + SCM_VALIDATE_MUTABLE_CHARSET (3, base_cs); + cs = base_cs; + } else - cs = scm_char_set_copy (base_cs); + { + SCM_VALIDATE_SMOB (3, base_cs, charset); + cs = scm_char_set_copy (base_cs); + } } if ((clower >= SCM_CODEPOINT_SURROGATE_START && clower <= SCM_CODEPOINT_SURROGATE_END) @@ -1678,7 +1693,7 @@ SCM_DEFINE (scm_char_set_adjoin_x, "char-set-adjoin!", 1, 0, 1, "be a character set.") #define FUNC_NAME s_scm_char_set_adjoin_x { - SCM_VALIDATE_SMOB (1, cs, charset); + SCM_VALIDATE_MUTABLE_CHARSET (1, cs); SCM_VALIDATE_REST_ARGUMENT (rest); while (!scm_is_null (rest)) @@ -1702,7 +1717,7 @@ SCM_DEFINE (scm_char_set_delete_x, "char-set-delete!", 1, 0, 1, "must be a character set.") #define FUNC_NAME s_scm_char_set_delete_x { - SCM_VALIDATE_SMOB (1, cs, charset); + SCM_VALIDATE_MUTABLE_CHARSET (1, cs); SCM_VALIDATE_REST_ARGUMENT (rest); while (!scm_is_null (rest)) @@ -1913,7 +1928,7 @@ SCM_DEFINE (scm_char_set_complement_x, "char-set-complement!", 1, 0, 0, (SCM cs), "Return the complement of the character set @var{cs}.") #define FUNC_NAME s_scm_char_set_complement_x { - SCM_VALIDATE_SMOB (1, cs, charset); + SCM_VALIDATE_MUTABLE_CHARSET (1, cs); cs = scm_char_set_complement (cs); return cs; } @@ -1925,7 +1940,7 @@ SCM_DEFINE (scm_char_set_union_x, "char-set-union!", 1, 0, 1, "Return the union of all argument character sets.") #define FUNC_NAME s_scm_char_set_union_x { - SCM_VALIDATE_SMOB (1, cs1, charset); + SCM_VALIDATE_MUTABLE_CHARSET (1, cs1); SCM_VALIDATE_REST_ARGUMENT (rest); cs1 = scm_char_set_union (scm_cons (cs1, rest)); @@ -1939,7 +1954,7 @@ SCM_DEFINE (scm_char_set_intersection_x, "char-set-intersection!", 1, 0, 1, "Return the intersection of all argument character sets.") #define FUNC_NAME s_scm_char_set_intersection_x { - SCM_VALIDATE_SMOB (1, cs1, charset); + SCM_VALIDATE_MUTABLE_CHARSET (1, cs1); SCM_VALIDATE_REST_ARGUMENT (rest); cs1 = scm_char_set_intersection (scm_cons (cs1, rest)); @@ -1953,7 +1968,7 @@ SCM_DEFINE (scm_char_set_difference_x, "char-set-difference!", 1, 0, 1, "Return the difference of all argument character sets.") #define FUNC_NAME s_scm_char_set_difference_x { - SCM_VALIDATE_SMOB (1, cs1, charset); + SCM_VALIDATE_MUTABLE_CHARSET (1, cs1); SCM_VALIDATE_REST_ARGUMENT (rest); cs1 = scm_char_set_difference (cs1, rest); @@ -1967,6 +1982,7 @@ SCM_DEFINE (scm_char_set_xor_x, "char-set-xor!", 1, 0, 1, "Return the exclusive-or of all argument character sets.") #define FUNC_NAME s_scm_char_set_xor_x { + SCM_VALIDATE_MUTABLE_CHARSET (1, cs1); /* a side-effecting variant should presumably give consistent results: (define a (char-set #\a)) (char-set-xor a a a) -> char set #\a @@ -2022,11 +2038,16 @@ SCM scm_char_set_full; /* Create an empty character set and return it after binding it to NAME. */ static inline SCM -define_charset (const char *name, const scm_t_char_set *p) +define_charset (const char *name, size_t len, const scm_t_char_range *ranges) { SCM cs; - SCM_NEWSMOB (cs, scm_tc16_charset, p); + scm_t_char_set *p = scm_gc_malloc_pointerless (sizeof (scm_t_char_set), + "charset"); + p->len = len; + /* Strip const qualifier but add immutable flag on SCM. */ + p->ranges = (scm_t_char_range *) ranges; + SCM_NEWSMOB (cs, scm_tc16_charset | SCM_CHARSET_F_IMMUTABLE, p); scm_c_define (name, cs); return cs; } @@ -2087,6 +2108,9 @@ SCM_DEFINE (scm_sys_char_set_dump, "%char-set-dump", 1, 0, 0, (SCM charset), +#define DEFINE_CHARSET(name, stem) \ + define_charset ("char-set:" name, cs_##stem##_len, cs_##stem##_ranges) + void scm_init_srfi_14 (void) { @@ -2096,32 +2120,25 @@ scm_init_srfi_14 (void) scm_tc16_charset_cursor = scm_make_smob_type ("char-set-cursor", 0); scm_set_smob_print (scm_tc16_charset_cursor, charset_cursor_print); - scm_char_set_upper_case = - define_charset ("char-set:upper-case", &cs_upper_case); - scm_char_set_lower_case = - define_charset ("char-set:lower-case", &cs_lower_case); - scm_char_set_title_case = - define_charset ("char-set:title-case", &cs_title_case); - scm_char_set_letter = define_charset ("char-set:letter", &cs_letter); - scm_char_set_digit = define_charset ("char-set:digit", &cs_digit); - scm_char_set_letter_and_digit = - define_charset ("char-set:letter+digit", &cs_letter_plus_digit); - scm_char_set_graphic = define_charset ("char-set:graphic", &cs_graphic); - scm_char_set_printing = define_charset ("char-set:printing", &cs_printing); - scm_char_set_whitespace = - define_charset ("char-set:whitespace", &cs_whitespace); - scm_char_set_iso_control = - define_charset ("char-set:iso-control", &cs_iso_control); - scm_char_set_punctuation = - define_charset ("char-set:punctuation", &cs_punctuation); - scm_char_set_symbol = define_charset ("char-set:symbol", &cs_symbol); - scm_char_set_hex_digit = - define_charset ("char-set:hex-digit", &cs_hex_digit); - scm_char_set_blank = define_charset ("char-set:blank", &cs_blank); - scm_char_set_ascii = define_charset ("char-set:ascii", &cs_ascii); - scm_char_set_empty = define_charset ("char-set:empty", &cs_empty); - scm_char_set_designated = define_charset ("char-set:designated", &cs_designated); - scm_char_set_full = define_charset ("char-set:full", &cs_full); + scm_char_set_upper_case = DEFINE_CHARSET ("upper-case", upper_case); + scm_char_set_lower_case = DEFINE_CHARSET ("lower-case", lower_case); + scm_char_set_title_case = DEFINE_CHARSET ("title-case", title_case); + scm_char_set_letter = DEFINE_CHARSET ("letter", letter); + scm_char_set_digit = DEFINE_CHARSET ("digit", digit); + scm_char_set_letter_and_digit = DEFINE_CHARSET ("letter+digit", + letter_plus_digit); + scm_char_set_graphic = DEFINE_CHARSET ("graphic", graphic); + scm_char_set_printing = DEFINE_CHARSET ("printing", printing); + scm_char_set_whitespace = DEFINE_CHARSET ("whitespace", whitespace); + scm_char_set_iso_control = DEFINE_CHARSET ("iso-control", iso_control); + scm_char_set_punctuation = DEFINE_CHARSET ("punctuation", punctuation); + scm_char_set_symbol = DEFINE_CHARSET ("symbol", symbol); + scm_char_set_hex_digit = DEFINE_CHARSET ("hex-digit", hex_digit); + scm_char_set_blank = DEFINE_CHARSET ("blank", blank); + scm_char_set_ascii = DEFINE_CHARSET ("ascii", ascii); + scm_char_set_empty = DEFINE_CHARSET ("empty", empty); + scm_char_set_designated = DEFINE_CHARSET ("designated", designated); + scm_char_set_full = DEFINE_CHARSET ("full", full); #include "srfi-14.x" } diff --git a/libguile/srfi-14.i.c b/libguile/srfi-14.i.c index 6e5aec899..071241eea 100644 --- a/libguile/srfi-14.i.c +++ b/libguile/srfi-14.i.c @@ -6,10006 +6,5181 @@ http://unicode.org/Public/UNIDATA/UnicodeData.txt with the unidata_to_charset.pl script. */ -scm_t_char_range cs_lower_case_ranges[] = { - {0x0061, 0x007a} - , - {0x00b5, 0x00b5} - , - {0x00df, 0x00f6} - , - {0x00f8, 0x00ff} - , - {0x0101, 0x0101} - , - {0x0103, 0x0103} - , - {0x0105, 0x0105} - , - {0x0107, 0x0107} - , - {0x0109, 0x0109} - , - {0x010b, 0x010b} - , - {0x010d, 0x010d} - , - {0x010f, 0x010f} - , - {0x0111, 0x0111} - , - {0x0113, 0x0113} - , - {0x0115, 0x0115} - , - {0x0117, 0x0117} - , - {0x0119, 0x0119} - , - {0x011b, 0x011b} - , - {0x011d, 0x011d} - , - {0x011f, 0x011f} - , - {0x0121, 0x0121} - , - {0x0123, 0x0123} - , - {0x0125, 0x0125} - , - {0x0127, 0x0127} - , - {0x0129, 0x0129} - , - {0x012b, 0x012b} - , - {0x012d, 0x012d} - , - {0x012f, 0x012f} - , - {0x0131, 0x0131} - , - {0x0133, 0x0133} - , - {0x0135, 0x0135} - , - {0x0137, 0x0138} - , - {0x013a, 0x013a} - , - {0x013c, 0x013c} - , - {0x013e, 0x013e} - , - {0x0140, 0x0140} - , - {0x0142, 0x0142} - , - {0x0144, 0x0144} - , - {0x0146, 0x0146} - , - {0x0148, 0x0149} - , - {0x014b, 0x014b} - , - {0x014d, 0x014d} - , - {0x014f, 0x014f} - , - {0x0151, 0x0151} - , - {0x0153, 0x0153} - , - {0x0155, 0x0155} - , - {0x0157, 0x0157} - , - {0x0159, 0x0159} - , - {0x015b, 0x015b} - , - {0x015d, 0x015d} - , - {0x015f, 0x015f} - , - {0x0161, 0x0161} - , - {0x0163, 0x0163} - , - {0x0165, 0x0165} - , - {0x0167, 0x0167} - , - {0x0169, 0x0169} - , - {0x016b, 0x016b} - , - {0x016d, 0x016d} - , - {0x016f, 0x016f} - , - {0x0171, 0x0171} - , - {0x0173, 0x0173} - , - {0x0175, 0x0175} - , - {0x0177, 0x0177} - , - {0x017a, 0x017a} - , - {0x017c, 0x017c} - , - {0x017e, 0x0180} - , - {0x0183, 0x0183} - , - {0x0185, 0x0185} - , - {0x0188, 0x0188} - , - {0x018c, 0x018d} - , - {0x0192, 0x0192} - , - {0x0195, 0x0195} - , - {0x0199, 0x019b} - , - {0x019e, 0x019e} - , - {0x01a1, 0x01a1} - , - {0x01a3, 0x01a3} - , - {0x01a5, 0x01a5} - , - {0x01a8, 0x01a8} - , - {0x01ab, 0x01ab} - , - {0x01ad, 0x01ad} - , - {0x01b0, 0x01b0} - , - {0x01b4, 0x01b4} - , - {0x01b6, 0x01b6} - , - {0x01b9, 0x01ba} - , - {0x01bd, 0x01bd} - , - {0x01bf, 0x01bf} - , - {0x01c6, 0x01c6} - , - {0x01c9, 0x01c9} - , - {0x01cc, 0x01cc} - , - {0x01ce, 0x01ce} - , - {0x01d0, 0x01d0} - , - {0x01d2, 0x01d2} - , - {0x01d4, 0x01d4} - , - {0x01d6, 0x01d6} - , - {0x01d8, 0x01d8} - , - {0x01da, 0x01da} - , - {0x01dc, 0x01dd} - , - {0x01df, 0x01df} - , - {0x01e1, 0x01e1} - , - {0x01e3, 0x01e3} - , - {0x01e5, 0x01e5} - , - {0x01e7, 0x01e7} - , - {0x01e9, 0x01e9} - , - {0x01eb, 0x01eb} - , - {0x01ed, 0x01ed} - , - {0x01ef, 0x01f0} - , - {0x01f3, 0x01f3} - , - {0x01f5, 0x01f5} - , - {0x01f9, 0x01f9} - , - {0x01fb, 0x01fb} - , - {0x01fd, 0x01fd} - , - {0x01ff, 0x01ff} - , - {0x0201, 0x0201} - , - {0x0203, 0x0203} - , - {0x0205, 0x0205} - , - {0x0207, 0x0207} - , - {0x0209, 0x0209} - , - {0x020b, 0x020b} - , - {0x020d, 0x020d} - , - {0x020f, 0x020f} - , - {0x0211, 0x0211} - , - {0x0213, 0x0213} - , - {0x0215, 0x0215} - , - {0x0217, 0x0217} - , - {0x0219, 0x0219} - , - {0x021b, 0x021b} - , - {0x021d, 0x021d} - , - {0x021f, 0x021f} - , - {0x0221, 0x0221} - , - {0x0223, 0x0223} - , - {0x0225, 0x0225} - , - {0x0227, 0x0227} - , - {0x0229, 0x0229} - , - {0x022b, 0x022b} - , - {0x022d, 0x022d} - , - {0x022f, 0x022f} - , - {0x0231, 0x0231} - , - {0x0233, 0x0239} - , - {0x023c, 0x023c} - , - {0x023f, 0x0240} - , - {0x0242, 0x0242} - , - {0x0247, 0x0247} - , - {0x0249, 0x0249} - , - {0x024b, 0x024b} - , - {0x024d, 0x024d} - , - {0x024f, 0x0261} - , - {0x0263, 0x0273} - , - {0x0275, 0x0275} - , - {0x0277, 0x0280} - , - {0x0282, 0x028e} - , - {0x0290, 0x0293} - , - {0x029a, 0x029a} - , - {0x029d, 0x029e} - , - {0x02a0, 0x02a0} - , - {0x02a3, 0x02ab} - , - {0x02ae, 0x02af} - , - {0x0345, 0x0345} - , - {0x0363, 0x036f} - , - {0x0371, 0x0371} - , - {0x0373, 0x0373} - , - {0x0377, 0x0377} - , - {0x037b, 0x037d} - , - {0x0390, 0x0390} - , - {0x03ac, 0x03ce} - , - {0x03d0, 0x03d1} - , - {0x03d5, 0x03d7} - , - {0x03d9, 0x03d9} - , - {0x03db, 0x03db} - , - {0x03dd, 0x03dd} - , - {0x03df, 0x03df} - , - {0x03e1, 0x03e1} - , - {0x03e3, 0x03e3} - , - {0x03e5, 0x03e5} - , - {0x03e7, 0x03e7} - , - {0x03e9, 0x03e9} - , - {0x03eb, 0x03eb} - , - {0x03ed, 0x03ed} - , - {0x03ef, 0x03f3} - , - {0x03f5, 0x03f5} - , - {0x03f8, 0x03f8} - , - {0x03fb, 0x03fb} - , - {0x0430, 0x045f} - , - {0x0461, 0x0461} - , - {0x0463, 0x0463} - , - {0x0465, 0x0465} - , - {0x0467, 0x0467} - , - {0x0469, 0x0469} - , - {0x046b, 0x046b} - , - {0x046d, 0x046d} - , - {0x046f, 0x046f} - , - {0x0471, 0x0471} - , - {0x0473, 0x0473} - , - {0x0475, 0x0475} - , - {0x0477, 0x0477} - , - {0x0479, 0x0479} - , - {0x047b, 0x047b} - , - {0x047d, 0x047d} - , - {0x047f, 0x047f} - , - {0x0481, 0x0481} - , - {0x048b, 0x048b} - , - {0x048d, 0x048d} - , - {0x048f, 0x048f} - , - {0x0491, 0x0491} - , - {0x0493, 0x0493} - , - {0x0495, 0x0495} - , - {0x0497, 0x0497} - , - {0x0499, 0x0499} - , - {0x049b, 0x049b} - , - {0x049d, 0x049d} - , - {0x049f, 0x049f} - , - {0x04a1, 0x04a1} - , - {0x04a3, 0x04a3} - , - {0x04a5, 0x04a5} - , - {0x04a7, 0x04a7} - , - {0x04a9, 0x04a9} - , - {0x04ab, 0x04ab} - , - {0x04ad, 0x04ad} - , - {0x04af, 0x04af} - , - {0x04b1, 0x04b1} - , - {0x04b3, 0x04b3} - , - {0x04b5, 0x04b5} - , - {0x04b7, 0x04b7} - , - {0x04b9, 0x04b9} - , - {0x04bb, 0x04bb} - , - {0x04bd, 0x04bd} - , - {0x04bf, 0x04bf} - , - {0x04c2, 0x04c2} - , - {0x04c4, 0x04c4} - , - {0x04c6, 0x04c6} - , - {0x04c8, 0x04c8} - , - {0x04ca, 0x04ca} - , - {0x04cc, 0x04cc} - , - {0x04ce, 0x04cf} - , - {0x04d1, 0x04d1} - , - {0x04d3, 0x04d3} - , - {0x04d5, 0x04d5} - , - {0x04d7, 0x04d7} - , - {0x04d9, 0x04d9} - , - {0x04db, 0x04db} - , - {0x04dd, 0x04dd} - , - {0x04df, 0x04df} - , - {0x04e1, 0x04e1} - , - {0x04e3, 0x04e3} - , - {0x04e5, 0x04e5} - , - {0x04e7, 0x04e7} - , - {0x04e9, 0x04e9} - , - {0x04eb, 0x04eb} - , - {0x04ed, 0x04ed} - , - {0x04ef, 0x04ef} - , - {0x04f1, 0x04f1} - , - {0x04f3, 0x04f3} - , - {0x04f5, 0x04f5} - , - {0x04f7, 0x04f7} - , - {0x04f9, 0x04f9} - , - {0x04fb, 0x04fb} - , - {0x04fd, 0x04fd} - , - {0x04ff, 0x04ff} - , - {0x0501, 0x0501} - , - {0x0503, 0x0503} - , - {0x0505, 0x0505} - , - {0x0507, 0x0507} - , - {0x0509, 0x0509} - , - {0x050b, 0x050b} - , - {0x050d, 0x050d} - , - {0x050f, 0x050f} - , - {0x0511, 0x0511} - , - {0x0513, 0x0513} - , - {0x0515, 0x0515} - , - {0x0517, 0x0517} - , - {0x0519, 0x0519} - , - {0x051b, 0x051b} - , - {0x051d, 0x051d} - , - {0x051f, 0x051f} - , - {0x0521, 0x0521} - , - {0x0523, 0x0523} - , - {0x0525, 0x0525} - , - {0x0527, 0x0527} - , - {0x0529, 0x0529} - , - {0x052b, 0x052b} - , - {0x052d, 0x052d} - , - {0x052f, 0x052f} - , - {0x0560, 0x0588} - , - {0x10d0, 0x10fa} - , - {0x10fd, 0x10ff} - , - {0x13f8, 0x13fd} - , - {0x1930, 0x1938} - , - {0x1abf, 0x1ac0} - , - {0x1c80, 0x1c88} - , - {0x1d02, 0x1d02} - , - {0x1d08, 0x1d09} - , - {0x1d11, 0x1d14} - , - {0x1d16, 0x1d17} - , - {0x1d1d, 0x1d1f} - , - {0x1d62, 0x1d77} - , - {0x1d79, 0x1d7a} - , - {0x1d7c, 0x1d7d} - , - {0x1d7f, 0x1d9a} - , - {0x1dca, 0x1dca} - , - {0x1dd3, 0x1dda} - , - {0x1ddc, 0x1ddd} - , - {0x1de0, 0x1de0} - , - {0x1de3, 0x1df4} - , - {0x1e01, 0x1e01} - , - {0x1e03, 0x1e03} - , - {0x1e05, 0x1e05} - , - {0x1e07, 0x1e07} - , - {0x1e09, 0x1e09} - , - {0x1e0b, 0x1e0b} - , - {0x1e0d, 0x1e0d} - , - {0x1e0f, 0x1e0f} - , - {0x1e11, 0x1e11} - , - {0x1e13, 0x1e13} - , - {0x1e15, 0x1e15} - , - {0x1e17, 0x1e17} - , - {0x1e19, 0x1e19} - , - {0x1e1b, 0x1e1b} - , - {0x1e1d, 0x1e1d} - , - {0x1e1f, 0x1e1f} - , - {0x1e21, 0x1e21} - , - {0x1e23, 0x1e23} - , - {0x1e25, 0x1e25} - , - {0x1e27, 0x1e27} - , - {0x1e29, 0x1e29} - , - {0x1e2b, 0x1e2b} - , - {0x1e2d, 0x1e2d} - , - {0x1e2f, 0x1e2f} - , - {0x1e31, 0x1e31} - , - {0x1e33, 0x1e33} - , - {0x1e35, 0x1e35} - , - {0x1e37, 0x1e37} - , - {0x1e39, 0x1e39} - , - {0x1e3b, 0x1e3b} - , - {0x1e3d, 0x1e3d} - , - {0x1e3f, 0x1e3f} - , - {0x1e41, 0x1e41} - , - {0x1e43, 0x1e43} - , - {0x1e45, 0x1e45} - , - {0x1e47, 0x1e47} - , - {0x1e49, 0x1e49} - , - {0x1e4b, 0x1e4b} - , - {0x1e4d, 0x1e4d} - , - {0x1e4f, 0x1e4f} - , - {0x1e51, 0x1e51} - , - {0x1e53, 0x1e53} - , - {0x1e55, 0x1e55} - , - {0x1e57, 0x1e57} - , - {0x1e59, 0x1e59} - , - {0x1e5b, 0x1e5b} - , - {0x1e5d, 0x1e5d} - , - {0x1e5f, 0x1e5f} - , - {0x1e61, 0x1e61} - , - {0x1e63, 0x1e63} - , - {0x1e65, 0x1e65} - , - {0x1e67, 0x1e67} - , - {0x1e69, 0x1e69} - , - {0x1e6b, 0x1e6b} - , - {0x1e6d, 0x1e6d} - , - {0x1e6f, 0x1e6f} - , - {0x1e71, 0x1e71} - , - {0x1e73, 0x1e73} - , - {0x1e75, 0x1e75} - , - {0x1e77, 0x1e77} - , - {0x1e79, 0x1e79} - , - {0x1e7b, 0x1e7b} - , - {0x1e7d, 0x1e7d} - , - {0x1e7f, 0x1e7f} - , - {0x1e81, 0x1e81} - , - {0x1e83, 0x1e83} - , - {0x1e85, 0x1e85} - , - {0x1e87, 0x1e87} - , - {0x1e89, 0x1e89} - , - {0x1e8b, 0x1e8b} - , - {0x1e8d, 0x1e8d} - , - {0x1e8f, 0x1e8f} - , - {0x1e91, 0x1e91} - , - {0x1e93, 0x1e93} - , - {0x1e95, 0x1e9d} - , - {0x1e9f, 0x1e9f} - , - {0x1ea1, 0x1ea1} - , - {0x1ea3, 0x1ea3} - , - {0x1ea5, 0x1ea5} - , - {0x1ea7, 0x1ea7} - , - {0x1ea9, 0x1ea9} - , - {0x1eab, 0x1eab} - , - {0x1ead, 0x1ead} - , - {0x1eaf, 0x1eaf} - , - {0x1eb1, 0x1eb1} - , - {0x1eb3, 0x1eb3} - , - {0x1eb5, 0x1eb5} - , - {0x1eb7, 0x1eb7} - , - {0x1eb9, 0x1eb9} - , - {0x1ebb, 0x1ebb} - , - {0x1ebd, 0x1ebd} - , - {0x1ebf, 0x1ebf} - , - {0x1ec1, 0x1ec1} - , - {0x1ec3, 0x1ec3} - , - {0x1ec5, 0x1ec5} - , - {0x1ec7, 0x1ec7} - , - {0x1ec9, 0x1ec9} - , - {0x1ecb, 0x1ecb} - , - {0x1ecd, 0x1ecd} - , - {0x1ecf, 0x1ecf} - , - {0x1ed1, 0x1ed1} - , - {0x1ed3, 0x1ed3} - , - {0x1ed5, 0x1ed5} - , - {0x1ed7, 0x1ed7} - , - {0x1ed9, 0x1ed9} - , - {0x1edb, 0x1edb} - , - {0x1edd, 0x1edd} - , - {0x1edf, 0x1edf} - , - {0x1ee1, 0x1ee1} - , - {0x1ee3, 0x1ee3} - , - {0x1ee5, 0x1ee5} - , - {0x1ee7, 0x1ee7} - , - {0x1ee9, 0x1ee9} - , - {0x1eeb, 0x1eeb} - , - {0x1eed, 0x1eed} - , - {0x1eef, 0x1eef} - , - {0x1ef1, 0x1ef1} - , - {0x1ef3, 0x1ef3} - , - {0x1ef5, 0x1ef5} - , - {0x1ef7, 0x1ef7} - , - {0x1ef9, 0x1ef9} - , - {0x1efb, 0x1efb} - , - {0x1efd, 0x1efd} - , - {0x1eff, 0x1f07} - , - {0x1f10, 0x1f15} - , - {0x1f20, 0x1f27} - , - {0x1f30, 0x1f37} - , - {0x1f40, 0x1f45} - , - {0x1f50, 0x1f57} - , - {0x1f60, 0x1f67} - , - {0x1f70, 0x1f7d} - , - {0x1f80, 0x1f87} - , - {0x1f90, 0x1f97} - , - {0x1fa0, 0x1fa7} - , - {0x1fb0, 0x1fb4} - , - {0x1fb6, 0x1fb7} - , - {0x1fbe, 0x1fbe} - , - {0x1fc2, 0x1fc4} - , - {0x1fc6, 0x1fc7} - , - {0x1fd0, 0x1fd3} - , - {0x1fd6, 0x1fd7} - , - {0x1fe0, 0x1fe7} - , - {0x1ff2, 0x1ff4} - , - {0x1ff6, 0x1ff7} - , - {0xa641, 0xa641} - , - {0xa643, 0xa643} - , - {0xa645, 0xa645} - , - {0xa647, 0xa647} - , - {0xa649, 0xa649} - , - {0xa64b, 0xa64b} - , - {0xa64d, 0xa64d} - , - {0xa64f, 0xa64f} - , - {0xa651, 0xa651} - , - {0xa653, 0xa653} - , - {0xa655, 0xa655} - , - {0xa657, 0xa657} - , - {0xa659, 0xa659} - , - {0xa65b, 0xa65b} - , - {0xa65d, 0xa65d} - , - {0xa65f, 0xa65f} - , - {0xa661, 0xa661} - , - {0xa663, 0xa663} - , - {0xa665, 0xa665} - , - {0xa667, 0xa667} - , - {0xa669, 0xa669} - , - {0xa66b, 0xa66b} - , - {0xa66d, 0xa66d} - , - {0xa681, 0xa681} - , - {0xa683, 0xa683} - , - {0xa685, 0xa685} - , - {0xa687, 0xa687} - , - {0xa689, 0xa689} - , - {0xa68b, 0xa68b} - , - {0xa68d, 0xa68d} - , - {0xa68f, 0xa68f} - , - {0xa691, 0xa691} - , - {0xa693, 0xa693} - , - {0xa695, 0xa695} - , - {0xa697, 0xa697} - , - {0xa699, 0xa699} - , - {0xa69b, 0xa69b} - , - {0xa723, 0xa723} - , - {0xa725, 0xa725} - , - {0xa727, 0xa727} - , - {0xa729, 0xa729} - , - {0xa72b, 0xa72b} - , - {0xa72d, 0xa72d} - , - {0xa72f, 0xa72f} - , - {0xa733, 0xa733} - , - {0xa735, 0xa735} - , - {0xa737, 0xa737} - , - {0xa739, 0xa739} - , - {0xa73b, 0xa73b} - , - {0xa73d, 0xa73d} - , - {0xa73f, 0xa73f} - , - {0xa741, 0xa741} - , - {0xa743, 0xa743} - , - {0xa745, 0xa745} - , - {0xa747, 0xa747} - , - {0xa749, 0xa749} - , - {0xa74b, 0xa74b} - , - {0xa74d, 0xa74d} - , - {0xa74f, 0xa74f} - , - {0xa751, 0xa751} - , - {0xa753, 0xa753} - , - {0xa755, 0xa755} - , - {0xa757, 0xa757} - , - {0xa759, 0xa759} - , - {0xa75b, 0xa75b} - , - {0xa75d, 0xa75d} - , - {0xa75f, 0xa75f} - , - {0xa761, 0xa761} - , - {0xa763, 0xa763} - , - {0xa765, 0xa765} - , - {0xa767, 0xa767} - , - {0xa769, 0xa769} - , - {0xa76b, 0xa76b} - , - {0xa76d, 0xa76d} - , - {0xa76f, 0xa76f} - , - {0xa771, 0xa775} - , - {0xa777, 0xa778} - , - {0xa77a, 0xa77a} - , - {0xa77c, 0xa77c} - , - {0xa77f, 0xa77f} - , - {0xa781, 0xa781} - , - {0xa783, 0xa783} - , - {0xa785, 0xa785} - , - {0xa787, 0xa787} - , - {0xa78c, 0xa78c} - , - {0xa78e, 0xa78e} - , - {0xa791, 0xa791} - , - {0xa793, 0xa795} - , - {0xa797, 0xa797} - , - {0xa799, 0xa799} - , - {0xa79b, 0xa79b} - , - {0xa79d, 0xa79d} - , - {0xa79f, 0xa79f} - , - {0xa7a1, 0xa7a1} - , - {0xa7a3, 0xa7a3} - , - {0xa7a5, 0xa7a5} - , - {0xa7a7, 0xa7a7} - , - {0xa7a9, 0xa7a9} - , - {0xa7b5, 0xa7b5} - , - {0xa7b7, 0xa7b7} - , - {0xa7b9, 0xa7b9} - , - {0xa7bb, 0xa7bb} - , - {0xa7bd, 0xa7bd} - , - {0xa7bf, 0xa7bf} - , - {0xa7c3, 0xa7c3} - , - {0xa7c8, 0xa7c8} - , - {0xa7ca, 0xa7ca} - , - {0xa7f6, 0xa7f6} - , - {0xa7f9, 0xa7f9} - , - {0xab30, 0xab45} - , - {0xab47, 0xab5a} - , - {0xab60, 0xab64} - , - {0xab66, 0xab68} - , - {0xab70, 0xabbf} - , - {0xfb00, 0xfb06} - , - {0xfb13, 0xfb17} - , - {0xff41, 0xff5a} - , - {0x10428, 0x1044f} - , - {0x104d8, 0x104fb} - , - {0x10cc0, 0x10cf2} - , - {0x118c0, 0x118df} - , - {0x16e60, 0x16e7f} - , - {0x1e922, 0x1e943} - , - {0x1f1a5, 0x1f1a5} - , - {0x1f521, 0x1f521} - , +static const scm_t_char_range cs_lower_case_ranges[] = { + {0x0061, 0x007a}, + {0x00b5, 0x00b5}, + {0x00df, 0x00f6}, + {0x00f8, 0x00ff}, + {0x0101, 0x0101}, + {0x0103, 0x0103}, + {0x0105, 0x0105}, + {0x0107, 0x0107}, + {0x0109, 0x0109}, + {0x010b, 0x010b}, + {0x010d, 0x010d}, + {0x010f, 0x010f}, + {0x0111, 0x0111}, + {0x0113, 0x0113}, + {0x0115, 0x0115}, + {0x0117, 0x0117}, + {0x0119, 0x0119}, + {0x011b, 0x011b}, + {0x011d, 0x011d}, + {0x011f, 0x011f}, + {0x0121, 0x0121}, + {0x0123, 0x0123}, + {0x0125, 0x0125}, + {0x0127, 0x0127}, + {0x0129, 0x0129}, + {0x012b, 0x012b}, + {0x012d, 0x012d}, + {0x012f, 0x012f}, + {0x0131, 0x0131}, + {0x0133, 0x0133}, + {0x0135, 0x0135}, + {0x0137, 0x0138}, + {0x013a, 0x013a}, + {0x013c, 0x013c}, + {0x013e, 0x013e}, + {0x0140, 0x0140}, + {0x0142, 0x0142}, + {0x0144, 0x0144}, + {0x0146, 0x0146}, + {0x0148, 0x0149}, + {0x014b, 0x014b}, + {0x014d, 0x014d}, + {0x014f, 0x014f}, + {0x0151, 0x0151}, + {0x0153, 0x0153}, + {0x0155, 0x0155}, + {0x0157, 0x0157}, + {0x0159, 0x0159}, + {0x015b, 0x015b}, + {0x015d, 0x015d}, + {0x015f, 0x015f}, + {0x0161, 0x0161}, + {0x0163, 0x0163}, + {0x0165, 0x0165}, + {0x0167, 0x0167}, + {0x0169, 0x0169}, + {0x016b, 0x016b}, + {0x016d, 0x016d}, + {0x016f, 0x016f}, + {0x0171, 0x0171}, + {0x0173, 0x0173}, + {0x0175, 0x0175}, + {0x0177, 0x0177}, + {0x017a, 0x017a}, + {0x017c, 0x017c}, + {0x017e, 0x0180}, + {0x0183, 0x0183}, + {0x0185, 0x0185}, + {0x0188, 0x0188}, + {0x018c, 0x018d}, + {0x0192, 0x0192}, + {0x0195, 0x0195}, + {0x0199, 0x019b}, + {0x019e, 0x019e}, + {0x01a1, 0x01a1}, + {0x01a3, 0x01a3}, + {0x01a5, 0x01a5}, + {0x01a8, 0x01a8}, + {0x01ab, 0x01ab}, + {0x01ad, 0x01ad}, + {0x01b0, 0x01b0}, + {0x01b4, 0x01b4}, + {0x01b6, 0x01b6}, + {0x01b9, 0x01ba}, + {0x01bd, 0x01bd}, + {0x01bf, 0x01bf}, + {0x01c6, 0x01c6}, + {0x01c9, 0x01c9}, + {0x01cc, 0x01cc}, + {0x01ce, 0x01ce}, + {0x01d0, 0x01d0}, + {0x01d2, 0x01d2}, + {0x01d4, 0x01d4}, + {0x01d6, 0x01d6}, + {0x01d8, 0x01d8}, + {0x01da, 0x01da}, + {0x01dc, 0x01dd}, + {0x01df, 0x01df}, + {0x01e1, 0x01e1}, + {0x01e3, 0x01e3}, + {0x01e5, 0x01e5}, + {0x01e7, 0x01e7}, + {0x01e9, 0x01e9}, + {0x01eb, 0x01eb}, + {0x01ed, 0x01ed}, + {0x01ef, 0x01f0}, + {0x01f3, 0x01f3}, + {0x01f5, 0x01f5}, + {0x01f9, 0x01f9}, + {0x01fb, 0x01fb}, + {0x01fd, 0x01fd}, + {0x01ff, 0x01ff}, + {0x0201, 0x0201}, + {0x0203, 0x0203}, + {0x0205, 0x0205}, + {0x0207, 0x0207}, + {0x0209, 0x0209}, + {0x020b, 0x020b}, + {0x020d, 0x020d}, + {0x020f, 0x020f}, + {0x0211, 0x0211}, + {0x0213, 0x0213}, + {0x0215, 0x0215}, + {0x0217, 0x0217}, + {0x0219, 0x0219}, + {0x021b, 0x021b}, + {0x021d, 0x021d}, + {0x021f, 0x021f}, + {0x0221, 0x0221}, + {0x0223, 0x0223}, + {0x0225, 0x0225}, + {0x0227, 0x0227}, + {0x0229, 0x0229}, + {0x022b, 0x022b}, + {0x022d, 0x022d}, + {0x022f, 0x022f}, + {0x0231, 0x0231}, + {0x0233, 0x0239}, + {0x023c, 0x023c}, + {0x023f, 0x0240}, + {0x0242, 0x0242}, + {0x0247, 0x0247}, + {0x0249, 0x0249}, + {0x024b, 0x024b}, + {0x024d, 0x024d}, + {0x024f, 0x0261}, + {0x0263, 0x0273}, + {0x0275, 0x0275}, + {0x0277, 0x0280}, + {0x0282, 0x028e}, + {0x0290, 0x0293}, + {0x029a, 0x029a}, + {0x029d, 0x029e}, + {0x02a0, 0x02a0}, + {0x02a3, 0x02ab}, + {0x02ae, 0x02af}, + {0x0345, 0x0345}, + {0x0363, 0x036f}, + {0x0371, 0x0371}, + {0x0373, 0x0373}, + {0x0377, 0x0377}, + {0x037b, 0x037d}, + {0x0390, 0x0390}, + {0x03ac, 0x03ce}, + {0x03d0, 0x03d1}, + {0x03d5, 0x03d7}, + {0x03d9, 0x03d9}, + {0x03db, 0x03db}, + {0x03dd, 0x03dd}, + {0x03df, 0x03df}, + {0x03e1, 0x03e1}, + {0x03e3, 0x03e3}, + {0x03e5, 0x03e5}, + {0x03e7, 0x03e7}, + {0x03e9, 0x03e9}, + {0x03eb, 0x03eb}, + {0x03ed, 0x03ed}, + {0x03ef, 0x03f3}, + {0x03f5, 0x03f5}, + {0x03f8, 0x03f8}, + {0x03fb, 0x03fb}, + {0x0430, 0x045f}, + {0x0461, 0x0461}, + {0x0463, 0x0463}, + {0x0465, 0x0465}, + {0x0467, 0x0467}, + {0x0469, 0x0469}, + {0x046b, 0x046b}, + {0x046d, 0x046d}, + {0x046f, 0x046f}, + {0x0471, 0x0471}, + {0x0473, 0x0473}, + {0x0475, 0x0475}, + {0x0477, 0x0477}, + {0x0479, 0x0479}, + {0x047b, 0x047b}, + {0x047d, 0x047d}, + {0x047f, 0x047f}, + {0x0481, 0x0481}, + {0x048b, 0x048b}, + {0x048d, 0x048d}, + {0x048f, 0x048f}, + {0x0491, 0x0491}, + {0x0493, 0x0493}, + {0x0495, 0x0495}, + {0x0497, 0x0497}, + {0x0499, 0x0499}, + {0x049b, 0x049b}, + {0x049d, 0x049d}, + {0x049f, 0x049f}, + {0x04a1, 0x04a1}, + {0x04a3, 0x04a3}, + {0x04a5, 0x04a5}, + {0x04a7, 0x04a7}, + {0x04a9, 0x04a9}, + {0x04ab, 0x04ab}, + {0x04ad, 0x04ad}, + {0x04af, 0x04af}, + {0x04b1, 0x04b1}, + {0x04b3, 0x04b3}, + {0x04b5, 0x04b5}, + {0x04b7, 0x04b7}, + {0x04b9, 0x04b9}, + {0x04bb, 0x04bb}, + {0x04bd, 0x04bd}, + {0x04bf, 0x04bf}, + {0x04c2, 0x04c2}, + {0x04c4, 0x04c4}, + {0x04c6, 0x04c6}, + {0x04c8, 0x04c8}, + {0x04ca, 0x04ca}, + {0x04cc, 0x04cc}, + {0x04ce, 0x04cf}, + {0x04d1, 0x04d1}, + {0x04d3, 0x04d3}, + {0x04d5, 0x04d5}, + {0x04d7, 0x04d7}, + {0x04d9, 0x04d9}, + {0x04db, 0x04db}, + {0x04dd, 0x04dd}, + {0x04df, 0x04df}, + {0x04e1, 0x04e1}, + {0x04e3, 0x04e3}, + {0x04e5, 0x04e5}, + {0x04e7, 0x04e7}, + {0x04e9, 0x04e9}, + {0x04eb, 0x04eb}, + {0x04ed, 0x04ed}, + {0x04ef, 0x04ef}, + {0x04f1, 0x04f1}, + {0x04f3, 0x04f3}, + {0x04f5, 0x04f5}, + {0x04f7, 0x04f7}, + {0x04f9, 0x04f9}, + {0x04fb, 0x04fb}, + {0x04fd, 0x04fd}, + {0x04ff, 0x04ff}, + {0x0501, 0x0501}, + {0x0503, 0x0503}, + {0x0505, 0x0505}, + {0x0507, 0x0507}, + {0x0509, 0x0509}, + {0x050b, 0x050b}, + {0x050d, 0x050d}, + {0x050f, 0x050f}, + {0x0511, 0x0511}, + {0x0513, 0x0513}, + {0x0515, 0x0515}, + {0x0517, 0x0517}, + {0x0519, 0x0519}, + {0x051b, 0x051b}, + {0x051d, 0x051d}, + {0x051f, 0x051f}, + {0x0521, 0x0521}, + {0x0523, 0x0523}, + {0x0525, 0x0525}, + {0x0527, 0x0527}, + {0x0529, 0x0529}, + {0x052b, 0x052b}, + {0x052d, 0x052d}, + {0x052f, 0x052f}, + {0x0560, 0x0588}, + {0x10d0, 0x10fa}, + {0x10fd, 0x10ff}, + {0x13f8, 0x13fd}, + {0x1930, 0x1938}, + {0x1abf, 0x1ac0}, + {0x1acc, 0x1ace}, + {0x1c80, 0x1c88}, + {0x1d02, 0x1d02}, + {0x1d08, 0x1d09}, + {0x1d11, 0x1d14}, + {0x1d16, 0x1d17}, + {0x1d1d, 0x1d1f}, + {0x1d62, 0x1d77}, + {0x1d79, 0x1d7a}, + {0x1d7c, 0x1d7d}, + {0x1d7f, 0x1d9a}, + {0x1dca, 0x1dca}, + {0x1dd3, 0x1dda}, + {0x1ddc, 0x1ddd}, + {0x1de0, 0x1de0}, + {0x1de3, 0x1df4}, + {0x1e01, 0x1e01}, + {0x1e03, 0x1e03}, + {0x1e05, 0x1e05}, + {0x1e07, 0x1e07}, + {0x1e09, 0x1e09}, + {0x1e0b, 0x1e0b}, + {0x1e0d, 0x1e0d}, + {0x1e0f, 0x1e0f}, + {0x1e11, 0x1e11}, + {0x1e13, 0x1e13}, + {0x1e15, 0x1e15}, + {0x1e17, 0x1e17}, + {0x1e19, 0x1e19}, + {0x1e1b, 0x1e1b}, + {0x1e1d, 0x1e1d}, + {0x1e1f, 0x1e1f}, + {0x1e21, 0x1e21}, + {0x1e23, 0x1e23}, + {0x1e25, 0x1e25}, + {0x1e27, 0x1e27}, + {0x1e29, 0x1e29}, + {0x1e2b, 0x1e2b}, + {0x1e2d, 0x1e2d}, + {0x1e2f, 0x1e2f}, + {0x1e31, 0x1e31}, + {0x1e33, 0x1e33}, + {0x1e35, 0x1e35}, + {0x1e37, 0x1e37}, + {0x1e39, 0x1e39}, + {0x1e3b, 0x1e3b}, + {0x1e3d, 0x1e3d}, + {0x1e3f, 0x1e3f}, + {0x1e41, 0x1e41}, + {0x1e43, 0x1e43}, + {0x1e45, 0x1e45}, + {0x1e47, 0x1e47}, + {0x1e49, 0x1e49}, + {0x1e4b, 0x1e4b}, + {0x1e4d, 0x1e4d}, + {0x1e4f, 0x1e4f}, + {0x1e51, 0x1e51}, + {0x1e53, 0x1e53}, + {0x1e55, 0x1e55}, + {0x1e57, 0x1e57}, + {0x1e59, 0x1e59}, + {0x1e5b, 0x1e5b}, + {0x1e5d, 0x1e5d}, + {0x1e5f, 0x1e5f}, + {0x1e61, 0x1e61}, + {0x1e63, 0x1e63}, + {0x1e65, 0x1e65}, + {0x1e67, 0x1e67}, + {0x1e69, 0x1e69}, + {0x1e6b, 0x1e6b}, + {0x1e6d, 0x1e6d}, + {0x1e6f, 0x1e6f}, + {0x1e71, 0x1e71}, + {0x1e73, 0x1e73}, + {0x1e75, 0x1e75}, + {0x1e77, 0x1e77}, + {0x1e79, 0x1e79}, + {0x1e7b, 0x1e7b}, + {0x1e7d, 0x1e7d}, + {0x1e7f, 0x1e7f}, + {0x1e81, 0x1e81}, + {0x1e83, 0x1e83}, + {0x1e85, 0x1e85}, + {0x1e87, 0x1e87}, + {0x1e89, 0x1e89}, + {0x1e8b, 0x1e8b}, + {0x1e8d, 0x1e8d}, + {0x1e8f, 0x1e8f}, + {0x1e91, 0x1e91}, + {0x1e93, 0x1e93}, + {0x1e95, 0x1e9d}, + {0x1e9f, 0x1e9f}, + {0x1ea1, 0x1ea1}, + {0x1ea3, 0x1ea3}, + {0x1ea5, 0x1ea5}, + {0x1ea7, 0x1ea7}, + {0x1ea9, 0x1ea9}, + {0x1eab, 0x1eab}, + {0x1ead, 0x1ead}, + {0x1eaf, 0x1eaf}, + {0x1eb1, 0x1eb1}, + {0x1eb3, 0x1eb3}, + {0x1eb5, 0x1eb5}, + {0x1eb7, 0x1eb7}, + {0x1eb9, 0x1eb9}, + {0x1ebb, 0x1ebb}, + {0x1ebd, 0x1ebd}, + {0x1ebf, 0x1ebf}, + {0x1ec1, 0x1ec1}, + {0x1ec3, 0x1ec3}, + {0x1ec5, 0x1ec5}, + {0x1ec7, 0x1ec7}, + {0x1ec9, 0x1ec9}, + {0x1ecb, 0x1ecb}, + {0x1ecd, 0x1ecd}, + {0x1ecf, 0x1ecf}, + {0x1ed1, 0x1ed1}, + {0x1ed3, 0x1ed3}, + {0x1ed5, 0x1ed5}, + {0x1ed7, 0x1ed7}, + {0x1ed9, 0x1ed9}, + {0x1edb, 0x1edb}, + {0x1edd, 0x1edd}, + {0x1edf, 0x1edf}, + {0x1ee1, 0x1ee1}, + {0x1ee3, 0x1ee3}, + {0x1ee5, 0x1ee5}, + {0x1ee7, 0x1ee7}, + {0x1ee9, 0x1ee9}, + {0x1eeb, 0x1eeb}, + {0x1eed, 0x1eed}, + {0x1eef, 0x1eef}, + {0x1ef1, 0x1ef1}, + {0x1ef3, 0x1ef3}, + {0x1ef5, 0x1ef5}, + {0x1ef7, 0x1ef7}, + {0x1ef9, 0x1ef9}, + {0x1efb, 0x1efb}, + {0x1efd, 0x1efd}, + {0x1eff, 0x1f07}, + {0x1f10, 0x1f15}, + {0x1f20, 0x1f27}, + {0x1f30, 0x1f37}, + {0x1f40, 0x1f45}, + {0x1f50, 0x1f57}, + {0x1f60, 0x1f67}, + {0x1f70, 0x1f7d}, + {0x1f80, 0x1f87}, + {0x1f90, 0x1f97}, + {0x1fa0, 0x1fa7}, + {0x1fb0, 0x1fb4}, + {0x1fb6, 0x1fb7}, + {0x1fbe, 0x1fbe}, + {0x1fc2, 0x1fc4}, + {0x1fc6, 0x1fc7}, + {0x1fd0, 0x1fd3}, + {0x1fd6, 0x1fd7}, + {0x1fe0, 0x1fe7}, + {0x1ff2, 0x1ff4}, + {0x1ff6, 0x1ff7}, + {0xa641, 0xa641}, + {0xa643, 0xa643}, + {0xa645, 0xa645}, + {0xa647, 0xa647}, + {0xa649, 0xa649}, + {0xa64b, 0xa64b}, + {0xa64d, 0xa64d}, + {0xa64f, 0xa64f}, + {0xa651, 0xa651}, + {0xa653, 0xa653}, + {0xa655, 0xa655}, + {0xa657, 0xa657}, + {0xa659, 0xa659}, + {0xa65b, 0xa65b}, + {0xa65d, 0xa65d}, + {0xa65f, 0xa65f}, + {0xa661, 0xa661}, + {0xa663, 0xa663}, + {0xa665, 0xa665}, + {0xa667, 0xa667}, + {0xa669, 0xa669}, + {0xa66b, 0xa66b}, + {0xa66d, 0xa66d}, + {0xa681, 0xa681}, + {0xa683, 0xa683}, + {0xa685, 0xa685}, + {0xa687, 0xa687}, + {0xa689, 0xa689}, + {0xa68b, 0xa68b}, + {0xa68d, 0xa68d}, + {0xa68f, 0xa68f}, + {0xa691, 0xa691}, + {0xa693, 0xa693}, + {0xa695, 0xa695}, + {0xa697, 0xa697}, + {0xa699, 0xa699}, + {0xa69b, 0xa69b}, + {0xa723, 0xa723}, + {0xa725, 0xa725}, + {0xa727, 0xa727}, + {0xa729, 0xa729}, + {0xa72b, 0xa72b}, + {0xa72d, 0xa72d}, + {0xa72f, 0xa72f}, + {0xa733, 0xa733}, + {0xa735, 0xa735}, + {0xa737, 0xa737}, + {0xa739, 0xa739}, + {0xa73b, 0xa73b}, + {0xa73d, 0xa73d}, + {0xa73f, 0xa73f}, + {0xa741, 0xa741}, + {0xa743, 0xa743}, + {0xa745, 0xa745}, + {0xa747, 0xa747}, + {0xa749, 0xa749}, + {0xa74b, 0xa74b}, + {0xa74d, 0xa74d}, + {0xa74f, 0xa74f}, + {0xa751, 0xa751}, + {0xa753, 0xa753}, + {0xa755, 0xa755}, + {0xa757, 0xa757}, + {0xa759, 0xa759}, + {0xa75b, 0xa75b}, + {0xa75d, 0xa75d}, + {0xa75f, 0xa75f}, + {0xa761, 0xa761}, + {0xa763, 0xa763}, + {0xa765, 0xa765}, + {0xa767, 0xa767}, + {0xa769, 0xa769}, + {0xa76b, 0xa76b}, + {0xa76d, 0xa76d}, + {0xa76f, 0xa76f}, + {0xa771, 0xa775}, + {0xa777, 0xa778}, + {0xa77a, 0xa77a}, + {0xa77c, 0xa77c}, + {0xa77f, 0xa77f}, + {0xa781, 0xa781}, + {0xa783, 0xa783}, + {0xa785, 0xa785}, + {0xa787, 0xa787}, + {0xa78c, 0xa78c}, + {0xa78e, 0xa78e}, + {0xa791, 0xa791}, + {0xa793, 0xa795}, + {0xa797, 0xa797}, + {0xa799, 0xa799}, + {0xa79b, 0xa79b}, + {0xa79d, 0xa79d}, + {0xa79f, 0xa79f}, + {0xa7a1, 0xa7a1}, + {0xa7a3, 0xa7a3}, + {0xa7a5, 0xa7a5}, + {0xa7a7, 0xa7a7}, + {0xa7a9, 0xa7a9}, + {0xa7b5, 0xa7b5}, + {0xa7b7, 0xa7b7}, + {0xa7b9, 0xa7b9}, + {0xa7bb, 0xa7bb}, + {0xa7bd, 0xa7bd}, + {0xa7bf, 0xa7bf}, + {0xa7c1, 0xa7c1}, + {0xa7c3, 0xa7c3}, + {0xa7c8, 0xa7c8}, + {0xa7ca, 0xa7ca}, + {0xa7d1, 0xa7d1}, + {0xa7d3, 0xa7d3}, + {0xa7d5, 0xa7d5}, + {0xa7d7, 0xa7d7}, + {0xa7d9, 0xa7d9}, + {0xa7f6, 0xa7f6}, + {0xa7f9, 0xa7f9}, + {0xab30, 0xab45}, + {0xab47, 0xab5a}, + {0xab60, 0xab64}, + {0xab66, 0xab68}, + {0xab70, 0xabbf}, + {0xfb00, 0xfb06}, + {0xfb13, 0xfb17}, + {0xff41, 0xff5a}, + {0x10428, 0x1044f}, + {0x104d8, 0x104fb}, + {0x10597, 0x105a1}, + {0x105a3, 0x105b1}, + {0x105b3, 0x105b9}, + {0x105bb, 0x105bc}, + {0x10cc0, 0x10cf2}, + {0x118c0, 0x118df}, + {0x16e60, 0x16e7f}, + {0x1df00, 0x1df01}, + {0x1df03, 0x1df03}, + {0x1df05, 0x1df09}, + {0x1df0b, 0x1df0d}, + {0x1df11, 0x1df1e}, + {0x1e922, 0x1e943}, + {0x1f1a5, 0x1f1a5}, + {0x1f521, 0x1f521}, {0xe0061, 0xe007a} }; -scm_t_char_set cs_lower_case = { - 572, - cs_lower_case_ranges -}; +static const size_t cs_lower_case_len = 588; -scm_t_char_range cs_upper_case_ranges[] = { - {0x0041, 0x005a} - , - {0x00c0, 0x00d6} - , - {0x00d8, 0x00de} - , - {0x0100, 0x0100} - , - {0x0102, 0x0102} - , - {0x0104, 0x0104} - , - {0x0106, 0x0106} - , - {0x0108, 0x0108} - , - {0x010a, 0x010a} - , - {0x010c, 0x010c} - , - {0x010e, 0x010e} - , - {0x0110, 0x0110} - , - {0x0112, 0x0112} - , - {0x0114, 0x0114} - , - {0x0116, 0x0116} - , - {0x0118, 0x0118} - , - {0x011a, 0x011a} - , - {0x011c, 0x011c} - , - {0x011e, 0x011e} - , - {0x0120, 0x0120} - , - {0x0122, 0x0122} - , - {0x0124, 0x0124} - , - {0x0126, 0x0126} - , - {0x0128, 0x0128} - , - {0x012a, 0x012a} - , - {0x012c, 0x012c} - , - {0x012e, 0x012e} - , - {0x0130, 0x0130} - , - {0x0132, 0x0132} - , - {0x0134, 0x0134} - , - {0x0136, 0x0136} - , - {0x0139, 0x0139} - , - {0x013b, 0x013b} - , - {0x013d, 0x013d} - , - {0x013f, 0x013f} - , - {0x0141, 0x0141} - , - {0x0143, 0x0143} - , - {0x0145, 0x0145} - , - {0x0147, 0x0147} - , - {0x014a, 0x014a} - , - {0x014c, 0x014c} - , - {0x014e, 0x014e} - , - {0x0150, 0x0150} - , - {0x0152, 0x0152} - , - {0x0154, 0x0154} - , - {0x0156, 0x0156} - , - {0x0158, 0x0158} - , - {0x015a, 0x015a} - , - {0x015c, 0x015c} - , - {0x015e, 0x015e} - , - {0x0160, 0x0160} - , - {0x0162, 0x0162} - , - {0x0164, 0x0164} - , - {0x0166, 0x0166} - , - {0x0168, 0x0168} - , - {0x016a, 0x016a} - , - {0x016c, 0x016c} - , - {0x016e, 0x016e} - , - {0x0170, 0x0170} - , - {0x0172, 0x0172} - , - {0x0174, 0x0174} - , - {0x0176, 0x0176} - , - {0x0178, 0x0179} - , - {0x017b, 0x017b} - , - {0x017d, 0x017d} - , - {0x0181, 0x0182} - , - {0x0184, 0x0184} - , - {0x0186, 0x0187} - , - {0x0189, 0x018b} - , - {0x018e, 0x0191} - , - {0x0193, 0x0194} - , - {0x0196, 0x0198} - , - {0x019c, 0x019d} - , - {0x019f, 0x01a0} - , - {0x01a2, 0x01a2} - , - {0x01a4, 0x01a4} - , - {0x01a6, 0x01a7} - , - {0x01a9, 0x01a9} - , - {0x01ac, 0x01ac} - , - {0x01ae, 0x01af} - , - {0x01b1, 0x01b3} - , - {0x01b5, 0x01b5} - , - {0x01b7, 0x01b8} - , - {0x01bc, 0x01bc} - , - {0x01c4, 0x01c4} - , - {0x01c7, 0x01c7} - , - {0x01ca, 0x01ca} - , - {0x01cd, 0x01cd} - , - {0x01cf, 0x01cf} - , - {0x01d1, 0x01d1} - , - {0x01d3, 0x01d3} - , - {0x01d5, 0x01d5} - , - {0x01d7, 0x01d7} - , - {0x01d9, 0x01d9} - , - {0x01db, 0x01db} - , - {0x01de, 0x01de} - , - {0x01e0, 0x01e0} - , - {0x01e2, 0x01e2} - , - {0x01e4, 0x01e4} - , - {0x01e6, 0x01e6} - , - {0x01e8, 0x01e8} - , - {0x01ea, 0x01ea} - , - {0x01ec, 0x01ec} - , - {0x01ee, 0x01ee} - , - {0x01f1, 0x01f1} - , - {0x01f4, 0x01f4} - , - {0x01f6, 0x01f8} - , - {0x01fa, 0x01fa} - , - {0x01fc, 0x01fc} - , - {0x01fe, 0x01fe} - , - {0x0200, 0x0200} - , - {0x0202, 0x0202} - , - {0x0204, 0x0204} - , - {0x0206, 0x0206} - , - {0x0208, 0x0208} - , - {0x020a, 0x020a} - , - {0x020c, 0x020c} - , - {0x020e, 0x020e} - , - {0x0210, 0x0210} - , - {0x0212, 0x0212} - , - {0x0214, 0x0214} - , - {0x0216, 0x0216} - , - {0x0218, 0x0218} - , - {0x021a, 0x021a} - , - {0x021c, 0x021c} - , - {0x021e, 0x021e} - , - {0x0220, 0x0220} - , - {0x0222, 0x0222} - , - {0x0224, 0x0224} - , - {0x0226, 0x0226} - , - {0x0228, 0x0228} - , - {0x022a, 0x022a} - , - {0x022c, 0x022c} - , - {0x022e, 0x022e} - , - {0x0230, 0x0230} - , - {0x0232, 0x0232} - , - {0x023a, 0x023b} - , - {0x023d, 0x023e} - , - {0x0241, 0x0241} - , - {0x0243, 0x0246} - , - {0x0248, 0x0248} - , - {0x024a, 0x024a} - , - {0x024c, 0x024c} - , - {0x024e, 0x024e} - , - {0x0370, 0x0370} - , - {0x0372, 0x0372} - , - {0x0376, 0x0376} - , - {0x037f, 0x037f} - , - {0x0386, 0x0386} - , - {0x0388, 0x038a} - , - {0x038c, 0x038c} - , - {0x038e, 0x038f} - , - {0x0391, 0x03a1} - , - {0x03a3, 0x03ab} - , - {0x03cf, 0x03cf} - , - {0x03d8, 0x03d8} - , - {0x03da, 0x03da} - , - {0x03dc, 0x03dc} - , - {0x03de, 0x03de} - , - {0x03e0, 0x03e0} - , - {0x03e2, 0x03e2} - , - {0x03e4, 0x03e4} - , - {0x03e6, 0x03e6} - , - {0x03e8, 0x03e8} - , - {0x03ea, 0x03ea} - , - {0x03ec, 0x03ec} - , - {0x03ee, 0x03ee} - , - {0x03f4, 0x03f4} - , - {0x03f7, 0x03f7} - , - {0x03f9, 0x03fa} - , - {0x03fd, 0x042f} - , - {0x0460, 0x0460} - , - {0x0462, 0x0462} - , - {0x0464, 0x0464} - , - {0x0466, 0x0466} - , - {0x0468, 0x0468} - , - {0x046a, 0x046a} - , - {0x046c, 0x046c} - , - {0x046e, 0x046e} - , - {0x0470, 0x0470} - , - {0x0472, 0x0472} - , - {0x0474, 0x0474} - , - {0x0476, 0x0476} - , - {0x0478, 0x0478} - , - {0x047a, 0x047a} - , - {0x047c, 0x047c} - , - {0x047e, 0x047e} - , - {0x0480, 0x0480} - , - {0x048a, 0x048a} - , - {0x048c, 0x048c} - , - {0x048e, 0x048e} - , - {0x0490, 0x0490} - , - {0x0492, 0x0492} - , - {0x0494, 0x0494} - , - {0x0496, 0x0496} - , - {0x0498, 0x0498} - , - {0x049a, 0x049a} - , - {0x049c, 0x049c} - , - {0x049e, 0x049e} - , - {0x04a0, 0x04a0} - , - {0x04a2, 0x04a2} - , - {0x04a4, 0x04a4} - , - {0x04a6, 0x04a6} - , - {0x04a8, 0x04a8} - , - {0x04aa, 0x04aa} - , - {0x04ac, 0x04ac} - , - {0x04ae, 0x04ae} - , - {0x04b0, 0x04b0} - , - {0x04b2, 0x04b2} - , - {0x04b4, 0x04b4} - , - {0x04b6, 0x04b6} - , - {0x04b8, 0x04b8} - , - {0x04ba, 0x04ba} - , - {0x04bc, 0x04bc} - , - {0x04be, 0x04be} - , - {0x04c0, 0x04c1} - , - {0x04c3, 0x04c3} - , - {0x04c5, 0x04c5} - , - {0x04c7, 0x04c7} - , - {0x04c9, 0x04c9} - , - {0x04cb, 0x04cb} - , - {0x04cd, 0x04cd} - , - {0x04d0, 0x04d0} - , - {0x04d2, 0x04d2} - , - {0x04d4, 0x04d4} - , - {0x04d6, 0x04d6} - , - {0x04d8, 0x04d8} - , - {0x04da, 0x04da} - , - {0x04dc, 0x04dc} - , - {0x04de, 0x04de} - , - {0x04e0, 0x04e0} - , - {0x04e2, 0x04e2} - , - {0x04e4, 0x04e4} - , - {0x04e6, 0x04e6} - , - {0x04e8, 0x04e8} - , - {0x04ea, 0x04ea} - , - {0x04ec, 0x04ec} - , - {0x04ee, 0x04ee} - , - {0x04f0, 0x04f0} - , - {0x04f2, 0x04f2} - , - {0x04f4, 0x04f4} - , - {0x04f6, 0x04f6} - , - {0x04f8, 0x04f8} - , - {0x04fa, 0x04fa} - , - {0x04fc, 0x04fc} - , - {0x04fe, 0x04fe} - , - {0x0500, 0x0500} - , - {0x0502, 0x0502} - , - {0x0504, 0x0504} - , - {0x0506, 0x0506} - , - {0x0508, 0x0508} - , - {0x050a, 0x050a} - , - {0x050c, 0x050c} - , - {0x050e, 0x050e} - , - {0x0510, 0x0510} - , - {0x0512, 0x0512} - , - {0x0514, 0x0514} - , - {0x0516, 0x0516} - , - {0x0518, 0x0518} - , - {0x051a, 0x051a} - , - {0x051c, 0x051c} - , - {0x051e, 0x051e} - , - {0x0520, 0x0520} - , - {0x0522, 0x0522} - , - {0x0524, 0x0524} - , - {0x0526, 0x0526} - , - {0x0528, 0x0528} - , - {0x052a, 0x052a} - , - {0x052c, 0x052c} - , - {0x052e, 0x052e} - , - {0x0531, 0x0556} - , - {0x10a0, 0x10c5} - , - {0x10c7, 0x10c7} - , - {0x10cd, 0x10cd} - , - {0x13a0, 0x13f5} - , - {0x1c90, 0x1cba} - , - {0x1cbd, 0x1cbf} - , - {0x1d7b, 0x1d7b} - , - {0x1d7e, 0x1d7e} - , - {0x1e00, 0x1e00} - , - {0x1e02, 0x1e02} - , - {0x1e04, 0x1e04} - , - {0x1e06, 0x1e06} - , - {0x1e08, 0x1e08} - , - {0x1e0a, 0x1e0a} - , - {0x1e0c, 0x1e0c} - , - {0x1e0e, 0x1e0e} - , - {0x1e10, 0x1e10} - , - {0x1e12, 0x1e12} - , - {0x1e14, 0x1e14} - , - {0x1e16, 0x1e16} - , - {0x1e18, 0x1e18} - , - {0x1e1a, 0x1e1a} - , - {0x1e1c, 0x1e1c} - , - {0x1e1e, 0x1e1e} - , - {0x1e20, 0x1e20} - , - {0x1e22, 0x1e22} - , - {0x1e24, 0x1e24} - , - {0x1e26, 0x1e26} - , - {0x1e28, 0x1e28} - , - {0x1e2a, 0x1e2a} - , - {0x1e2c, 0x1e2c} - , - {0x1e2e, 0x1e2e} - , - {0x1e30, 0x1e30} - , - {0x1e32, 0x1e32} - , - {0x1e34, 0x1e34} - , - {0x1e36, 0x1e36} - , - {0x1e38, 0x1e38} - , - {0x1e3a, 0x1e3a} - , - {0x1e3c, 0x1e3c} - , - {0x1e3e, 0x1e3e} - , - {0x1e40, 0x1e40} - , - {0x1e42, 0x1e42} - , - {0x1e44, 0x1e44} - , - {0x1e46, 0x1e46} - , - {0x1e48, 0x1e48} - , - {0x1e4a, 0x1e4a} - , - {0x1e4c, 0x1e4c} - , - {0x1e4e, 0x1e4e} - , - {0x1e50, 0x1e50} - , - {0x1e52, 0x1e52} - , - {0x1e54, 0x1e54} - , - {0x1e56, 0x1e56} - , - {0x1e58, 0x1e58} - , - {0x1e5a, 0x1e5a} - , - {0x1e5c, 0x1e5c} - , - {0x1e5e, 0x1e5e} - , - {0x1e60, 0x1e60} - , - {0x1e62, 0x1e62} - , - {0x1e64, 0x1e64} - , - {0x1e66, 0x1e66} - , - {0x1e68, 0x1e68} - , - {0x1e6a, 0x1e6a} - , - {0x1e6c, 0x1e6c} - , - {0x1e6e, 0x1e6e} - , - {0x1e70, 0x1e70} - , - {0x1e72, 0x1e72} - , - {0x1e74, 0x1e74} - , - {0x1e76, 0x1e76} - , - {0x1e78, 0x1e78} - , - {0x1e7a, 0x1e7a} - , - {0x1e7c, 0x1e7c} - , - {0x1e7e, 0x1e7e} - , - {0x1e80, 0x1e80} - , - {0x1e82, 0x1e82} - , - {0x1e84, 0x1e84} - , - {0x1e86, 0x1e86} - , - {0x1e88, 0x1e88} - , - {0x1e8a, 0x1e8a} - , - {0x1e8c, 0x1e8c} - , - {0x1e8e, 0x1e8e} - , - {0x1e90, 0x1e90} - , - {0x1e92, 0x1e92} - , - {0x1e94, 0x1e94} - , - {0x1e9e, 0x1e9e} - , - {0x1ea0, 0x1ea0} - , - {0x1ea2, 0x1ea2} - , - {0x1ea4, 0x1ea4} - , - {0x1ea6, 0x1ea6} - , - {0x1ea8, 0x1ea8} - , - {0x1eaa, 0x1eaa} - , - {0x1eac, 0x1eac} - , - {0x1eae, 0x1eae} - , - {0x1eb0, 0x1eb0} - , - {0x1eb2, 0x1eb2} - , - {0x1eb4, 0x1eb4} - , - {0x1eb6, 0x1eb6} - , - {0x1eb8, 0x1eb8} - , - {0x1eba, 0x1eba} - , - {0x1ebc, 0x1ebc} - , - {0x1ebe, 0x1ebe} - , - {0x1ec0, 0x1ec0} - , - {0x1ec2, 0x1ec2} - , - {0x1ec4, 0x1ec4} - , - {0x1ec6, 0x1ec6} - , - {0x1ec8, 0x1ec8} - , - {0x1eca, 0x1eca} - , - {0x1ecc, 0x1ecc} - , - {0x1ece, 0x1ece} - , - {0x1ed0, 0x1ed0} - , - {0x1ed2, 0x1ed2} - , - {0x1ed4, 0x1ed4} - , - {0x1ed6, 0x1ed6} - , - {0x1ed8, 0x1ed8} - , - {0x1eda, 0x1eda} - , - {0x1edc, 0x1edc} - , - {0x1ede, 0x1ede} - , - {0x1ee0, 0x1ee0} - , - {0x1ee2, 0x1ee2} - , - {0x1ee4, 0x1ee4} - , - {0x1ee6, 0x1ee6} - , - {0x1ee8, 0x1ee8} - , - {0x1eea, 0x1eea} - , - {0x1eec, 0x1eec} - , - {0x1eee, 0x1eee} - , - {0x1ef0, 0x1ef0} - , - {0x1ef2, 0x1ef2} - , - {0x1ef4, 0x1ef4} - , - {0x1ef6, 0x1ef6} - , - {0x1ef8, 0x1ef8} - , - {0x1efa, 0x1efa} - , - {0x1efc, 0x1efc} - , - {0x1efe, 0x1efe} - , - {0x1f08, 0x1f0f} - , - {0x1f18, 0x1f1d} - , - {0x1f28, 0x1f2f} - , - {0x1f38, 0x1f3f} - , - {0x1f48, 0x1f4d} - , - {0x1f59, 0x1f59} - , - {0x1f5b, 0x1f5b} - , - {0x1f5d, 0x1f5d} - , - {0x1f5f, 0x1f5f} - , - {0x1f68, 0x1f6f} - , - {0x1f88, 0x1f8f} - , - {0x1f98, 0x1f9f} - , - {0x1fa8, 0x1faf} - , - {0x1fb8, 0x1fbc} - , - {0x1fc8, 0x1fcc} - , - {0x1fd8, 0x1fdb} - , - {0x1fe8, 0x1fec} - , - {0x1ff8, 0x1ffc} - , - {0xa640, 0xa640} - , - {0xa642, 0xa642} - , - {0xa644, 0xa644} - , - {0xa646, 0xa646} - , - {0xa648, 0xa648} - , - {0xa64a, 0xa64a} - , - {0xa64c, 0xa64c} - , - {0xa64e, 0xa64e} - , - {0xa650, 0xa650} - , - {0xa652, 0xa652} - , - {0xa654, 0xa654} - , - {0xa656, 0xa656} - , - {0xa658, 0xa658} - , - {0xa65a, 0xa65a} - , - {0xa65c, 0xa65c} - , - {0xa65e, 0xa65e} - , - {0xa660, 0xa660} - , - {0xa662, 0xa662} - , - {0xa664, 0xa664} - , - {0xa666, 0xa666} - , - {0xa668, 0xa668} - , - {0xa66a, 0xa66a} - , - {0xa66c, 0xa66c} - , - {0xa680, 0xa680} - , - {0xa682, 0xa682} - , - {0xa684, 0xa684} - , - {0xa686, 0xa686} - , - {0xa688, 0xa688} - , - {0xa68a, 0xa68a} - , - {0xa68c, 0xa68c} - , - {0xa68e, 0xa68e} - , - {0xa690, 0xa690} - , - {0xa692, 0xa692} - , - {0xa694, 0xa694} - , - {0xa696, 0xa696} - , - {0xa698, 0xa698} - , - {0xa69a, 0xa69a} - , - {0xa722, 0xa722} - , - {0xa724, 0xa724} - , - {0xa726, 0xa726} - , - {0xa728, 0xa728} - , - {0xa72a, 0xa72a} - , - {0xa72c, 0xa72c} - , - {0xa72e, 0xa72e} - , - {0xa732, 0xa732} - , - {0xa734, 0xa734} - , - {0xa736, 0xa736} - , - {0xa738, 0xa738} - , - {0xa73a, 0xa73a} - , - {0xa73c, 0xa73c} - , - {0xa73e, 0xa73e} - , - {0xa740, 0xa740} - , - {0xa742, 0xa742} - , - {0xa744, 0xa744} - , - {0xa746, 0xa746} - , - {0xa748, 0xa748} - , - {0xa74a, 0xa74a} - , - {0xa74c, 0xa74c} - , - {0xa74e, 0xa74e} - , - {0xa750, 0xa750} - , - {0xa752, 0xa752} - , - {0xa754, 0xa754} - , - {0xa756, 0xa756} - , - {0xa758, 0xa758} - , - {0xa75a, 0xa75a} - , - {0xa75c, 0xa75c} - , - {0xa75e, 0xa75e} - , - {0xa760, 0xa760} - , - {0xa762, 0xa762} - , - {0xa764, 0xa764} - , - {0xa766, 0xa766} - , - {0xa768, 0xa768} - , - {0xa76a, 0xa76a} - , - {0xa76c, 0xa76c} - , - {0xa76e, 0xa76e} - , - {0xa779, 0xa779} - , - {0xa77b, 0xa77b} - , - {0xa77d, 0xa77e} - , - {0xa780, 0xa780} - , - {0xa782, 0xa782} - , - {0xa784, 0xa784} - , - {0xa786, 0xa786} - , - {0xa78b, 0xa78b} - , - {0xa78d, 0xa78d} - , - {0xa790, 0xa790} - , - {0xa792, 0xa792} - , - {0xa796, 0xa796} - , - {0xa798, 0xa798} - , - {0xa79a, 0xa79a} - , - {0xa79c, 0xa79c} - , - {0xa79e, 0xa79e} - , - {0xa7a0, 0xa7a0} - , - {0xa7a2, 0xa7a2} - , - {0xa7a4, 0xa7a4} - , - {0xa7a6, 0xa7a6} - , - {0xa7a8, 0xa7a8} - , - {0xa7aa, 0xa7ae} - , - {0xa7b0, 0xa7b4} - , - {0xa7b6, 0xa7b6} - , - {0xa7b8, 0xa7b8} - , - {0xa7ba, 0xa7ba} - , - {0xa7bc, 0xa7bc} - , - {0xa7be, 0xa7be} - , - {0xa7c2, 0xa7c2} - , - {0xa7c4, 0xa7c7} - , - {0xa7c9, 0xa7c9} - , - {0xa7f5, 0xa7f5} - , - {0xff21, 0xff3a} - , - {0x10400, 0x10427} - , - {0x104b0, 0x104d3} - , - {0x10c80, 0x10cb2} - , - {0x118a0, 0x118bf} - , - {0x16e40, 0x16e5f} - , - {0x1e900, 0x1e921} - , - {0x1f110, 0x1f12c} - , - {0x1f130, 0x1f149} - , - {0x1f150, 0x1f169} - , - {0x1f170, 0x1f18a} - , - {0x1f520, 0x1f520} - , +static const scm_t_char_range cs_upper_case_ranges[] = { + {0x0041, 0x005a}, + {0x00c0, 0x00d6}, + {0x00d8, 0x00de}, + {0x0100, 0x0100}, + {0x0102, 0x0102}, + {0x0104, 0x0104}, + {0x0106, 0x0106}, + {0x0108, 0x0108}, + {0x010a, 0x010a}, + {0x010c, 0x010c}, + {0x010e, 0x010e}, + {0x0110, 0x0110}, + {0x0112, 0x0112}, + {0x0114, 0x0114}, + {0x0116, 0x0116}, + {0x0118, 0x0118}, + {0x011a, 0x011a}, + {0x011c, 0x011c}, + {0x011e, 0x011e}, + {0x0120, 0x0120}, + {0x0122, 0x0122}, + {0x0124, 0x0124}, + {0x0126, 0x0126}, + {0x0128, 0x0128}, + {0x012a, 0x012a}, + {0x012c, 0x012c}, + {0x012e, 0x012e}, + {0x0130, 0x0130}, + {0x0132, 0x0132}, + {0x0134, 0x0134}, + {0x0136, 0x0136}, + {0x0139, 0x0139}, + {0x013b, 0x013b}, + {0x013d, 0x013d}, + {0x013f, 0x013f}, + {0x0141, 0x0141}, + {0x0143, 0x0143}, + {0x0145, 0x0145}, + {0x0147, 0x0147}, + {0x014a, 0x014a}, + {0x014c, 0x014c}, + {0x014e, 0x014e}, + {0x0150, 0x0150}, + {0x0152, 0x0152}, + {0x0154, 0x0154}, + {0x0156, 0x0156}, + {0x0158, 0x0158}, + {0x015a, 0x015a}, + {0x015c, 0x015c}, + {0x015e, 0x015e}, + {0x0160, 0x0160}, + {0x0162, 0x0162}, + {0x0164, 0x0164}, + {0x0166, 0x0166}, + {0x0168, 0x0168}, + {0x016a, 0x016a}, + {0x016c, 0x016c}, + {0x016e, 0x016e}, + {0x0170, 0x0170}, + {0x0172, 0x0172}, + {0x0174, 0x0174}, + {0x0176, 0x0176}, + {0x0178, 0x0179}, + {0x017b, 0x017b}, + {0x017d, 0x017d}, + {0x0181, 0x0182}, + {0x0184, 0x0184}, + {0x0186, 0x0187}, + {0x0189, 0x018b}, + {0x018e, 0x0191}, + {0x0193, 0x0194}, + {0x0196, 0x0198}, + {0x019c, 0x019d}, + {0x019f, 0x01a0}, + {0x01a2, 0x01a2}, + {0x01a4, 0x01a4}, + {0x01a6, 0x01a7}, + {0x01a9, 0x01a9}, + {0x01ac, 0x01ac}, + {0x01ae, 0x01af}, + {0x01b1, 0x01b3}, + {0x01b5, 0x01b5}, + {0x01b7, 0x01b8}, + {0x01bc, 0x01bc}, + {0x01c4, 0x01c4}, + {0x01c7, 0x01c7}, + {0x01ca, 0x01ca}, + {0x01cd, 0x01cd}, + {0x01cf, 0x01cf}, + {0x01d1, 0x01d1}, + {0x01d3, 0x01d3}, + {0x01d5, 0x01d5}, + {0x01d7, 0x01d7}, + {0x01d9, 0x01d9}, + {0x01db, 0x01db}, + {0x01de, 0x01de}, + {0x01e0, 0x01e0}, + {0x01e2, 0x01e2}, + {0x01e4, 0x01e4}, + {0x01e6, 0x01e6}, + {0x01e8, 0x01e8}, + {0x01ea, 0x01ea}, + {0x01ec, 0x01ec}, + {0x01ee, 0x01ee}, + {0x01f1, 0x01f1}, + {0x01f4, 0x01f4}, + {0x01f6, 0x01f8}, + {0x01fa, 0x01fa}, + {0x01fc, 0x01fc}, + {0x01fe, 0x01fe}, + {0x0200, 0x0200}, + {0x0202, 0x0202}, + {0x0204, 0x0204}, + {0x0206, 0x0206}, + {0x0208, 0x0208}, + {0x020a, 0x020a}, + {0x020c, 0x020c}, + {0x020e, 0x020e}, + {0x0210, 0x0210}, + {0x0212, 0x0212}, + {0x0214, 0x0214}, + {0x0216, 0x0216}, + {0x0218, 0x0218}, + {0x021a, 0x021a}, + {0x021c, 0x021c}, + {0x021e, 0x021e}, + {0x0220, 0x0220}, + {0x0222, 0x0222}, + {0x0224, 0x0224}, + {0x0226, 0x0226}, + {0x0228, 0x0228}, + {0x022a, 0x022a}, + {0x022c, 0x022c}, + {0x022e, 0x022e}, + {0x0230, 0x0230}, + {0x0232, 0x0232}, + {0x023a, 0x023b}, + {0x023d, 0x023e}, + {0x0241, 0x0241}, + {0x0243, 0x0246}, + {0x0248, 0x0248}, + {0x024a, 0x024a}, + {0x024c, 0x024c}, + {0x024e, 0x024e}, + {0x0370, 0x0370}, + {0x0372, 0x0372}, + {0x0376, 0x0376}, + {0x037f, 0x037f}, + {0x0386, 0x0386}, + {0x0388, 0x038a}, + {0x038c, 0x038c}, + {0x038e, 0x038f}, + {0x0391, 0x03a1}, + {0x03a3, 0x03ab}, + {0x03cf, 0x03cf}, + {0x03d8, 0x03d8}, + {0x03da, 0x03da}, + {0x03dc, 0x03dc}, + {0x03de, 0x03de}, + {0x03e0, 0x03e0}, + {0x03e2, 0x03e2}, + {0x03e4, 0x03e4}, + {0x03e6, 0x03e6}, + {0x03e8, 0x03e8}, + {0x03ea, 0x03ea}, + {0x03ec, 0x03ec}, + {0x03ee, 0x03ee}, + {0x03f4, 0x03f4}, + {0x03f7, 0x03f7}, + {0x03f9, 0x03fa}, + {0x03fd, 0x042f}, + {0x0460, 0x0460}, + {0x0462, 0x0462}, + {0x0464, 0x0464}, + {0x0466, 0x0466}, + {0x0468, 0x0468}, + {0x046a, 0x046a}, + {0x046c, 0x046c}, + {0x046e, 0x046e}, + {0x0470, 0x0470}, + {0x0472, 0x0472}, + {0x0474, 0x0474}, + {0x0476, 0x0476}, + {0x0478, 0x0478}, + {0x047a, 0x047a}, + {0x047c, 0x047c}, + {0x047e, 0x047e}, + {0x0480, 0x0480}, + {0x048a, 0x048a}, + {0x048c, 0x048c}, + {0x048e, 0x048e}, + {0x0490, 0x0490}, + {0x0492, 0x0492}, + {0x0494, 0x0494}, + {0x0496, 0x0496}, + {0x0498, 0x0498}, + {0x049a, 0x049a}, + {0x049c, 0x049c}, + {0x049e, 0x049e}, + {0x04a0, 0x04a0}, + {0x04a2, 0x04a2}, + {0x04a4, 0x04a4}, + {0x04a6, 0x04a6}, + {0x04a8, 0x04a8}, + {0x04aa, 0x04aa}, + {0x04ac, 0x04ac}, + {0x04ae, 0x04ae}, + {0x04b0, 0x04b0}, + {0x04b2, 0x04b2}, + {0x04b4, 0x04b4}, + {0x04b6, 0x04b6}, + {0x04b8, 0x04b8}, + {0x04ba, 0x04ba}, + {0x04bc, 0x04bc}, + {0x04be, 0x04be}, + {0x04c0, 0x04c1}, + {0x04c3, 0x04c3}, + {0x04c5, 0x04c5}, + {0x04c7, 0x04c7}, + {0x04c9, 0x04c9}, + {0x04cb, 0x04cb}, + {0x04cd, 0x04cd}, + {0x04d0, 0x04d0}, + {0x04d2, 0x04d2}, + {0x04d4, 0x04d4}, + {0x04d6, 0x04d6}, + {0x04d8, 0x04d8}, + {0x04da, 0x04da}, + {0x04dc, 0x04dc}, + {0x04de, 0x04de}, + {0x04e0, 0x04e0}, + {0x04e2, 0x04e2}, + {0x04e4, 0x04e4}, + {0x04e6, 0x04e6}, + {0x04e8, 0x04e8}, + {0x04ea, 0x04ea}, + {0x04ec, 0x04ec}, + {0x04ee, 0x04ee}, + {0x04f0, 0x04f0}, + {0x04f2, 0x04f2}, + {0x04f4, 0x04f4}, + {0x04f6, 0x04f6}, + {0x04f8, 0x04f8}, + {0x04fa, 0x04fa}, + {0x04fc, 0x04fc}, + {0x04fe, 0x04fe}, + {0x0500, 0x0500}, + {0x0502, 0x0502}, + {0x0504, 0x0504}, + {0x0506, 0x0506}, + {0x0508, 0x0508}, + {0x050a, 0x050a}, + {0x050c, 0x050c}, + {0x050e, 0x050e}, + {0x0510, 0x0510}, + {0x0512, 0x0512}, + {0x0514, 0x0514}, + {0x0516, 0x0516}, + {0x0518, 0x0518}, + {0x051a, 0x051a}, + {0x051c, 0x051c}, + {0x051e, 0x051e}, + {0x0520, 0x0520}, + {0x0522, 0x0522}, + {0x0524, 0x0524}, + {0x0526, 0x0526}, + {0x0528, 0x0528}, + {0x052a, 0x052a}, + {0x052c, 0x052c}, + {0x052e, 0x052e}, + {0x0531, 0x0556}, + {0x10a0, 0x10c5}, + {0x10c7, 0x10c7}, + {0x10cd, 0x10cd}, + {0x13a0, 0x13f5}, + {0x1c90, 0x1cba}, + {0x1cbd, 0x1cbf}, + {0x1d7b, 0x1d7b}, + {0x1d7e, 0x1d7e}, + {0x1e00, 0x1e00}, + {0x1e02, 0x1e02}, + {0x1e04, 0x1e04}, + {0x1e06, 0x1e06}, + {0x1e08, 0x1e08}, + {0x1e0a, 0x1e0a}, + {0x1e0c, 0x1e0c}, + {0x1e0e, 0x1e0e}, + {0x1e10, 0x1e10}, + {0x1e12, 0x1e12}, + {0x1e14, 0x1e14}, + {0x1e16, 0x1e16}, + {0x1e18, 0x1e18}, + {0x1e1a, 0x1e1a}, + {0x1e1c, 0x1e1c}, + {0x1e1e, 0x1e1e}, + {0x1e20, 0x1e20}, + {0x1e22, 0x1e22}, + {0x1e24, 0x1e24}, + {0x1e26, 0x1e26}, + {0x1e28, 0x1e28}, + {0x1e2a, 0x1e2a}, + {0x1e2c, 0x1e2c}, + {0x1e2e, 0x1e2e}, + {0x1e30, 0x1e30}, + {0x1e32, 0x1e32}, + {0x1e34, 0x1e34}, + {0x1e36, 0x1e36}, + {0x1e38, 0x1e38}, + {0x1e3a, 0x1e3a}, + {0x1e3c, 0x1e3c}, + {0x1e3e, 0x1e3e}, + {0x1e40, 0x1e40}, + {0x1e42, 0x1e42}, + {0x1e44, 0x1e44}, + {0x1e46, 0x1e46}, + {0x1e48, 0x1e48}, + {0x1e4a, 0x1e4a}, + {0x1e4c, 0x1e4c}, + {0x1e4e, 0x1e4e}, + {0x1e50, 0x1e50}, + {0x1e52, 0x1e52}, + {0x1e54, 0x1e54}, + {0x1e56, 0x1e56}, + {0x1e58, 0x1e58}, + {0x1e5a, 0x1e5a}, + {0x1e5c, 0x1e5c}, + {0x1e5e, 0x1e5e}, + {0x1e60, 0x1e60}, + {0x1e62, 0x1e62}, + {0x1e64, 0x1e64}, + {0x1e66, 0x1e66}, + {0x1e68, 0x1e68}, + {0x1e6a, 0x1e6a}, + {0x1e6c, 0x1e6c}, + {0x1e6e, 0x1e6e}, + {0x1e70, 0x1e70}, + {0x1e72, 0x1e72}, + {0x1e74, 0x1e74}, + {0x1e76, 0x1e76}, + {0x1e78, 0x1e78}, + {0x1e7a, 0x1e7a}, + {0x1e7c, 0x1e7c}, + {0x1e7e, 0x1e7e}, + {0x1e80, 0x1e80}, + {0x1e82, 0x1e82}, + {0x1e84, 0x1e84}, + {0x1e86, 0x1e86}, + {0x1e88, 0x1e88}, + {0x1e8a, 0x1e8a}, + {0x1e8c, 0x1e8c}, + {0x1e8e, 0x1e8e}, + {0x1e90, 0x1e90}, + {0x1e92, 0x1e92}, + {0x1e94, 0x1e94}, + {0x1e9e, 0x1e9e}, + {0x1ea0, 0x1ea0}, + {0x1ea2, 0x1ea2}, + {0x1ea4, 0x1ea4}, + {0x1ea6, 0x1ea6}, + {0x1ea8, 0x1ea8}, + {0x1eaa, 0x1eaa}, + {0x1eac, 0x1eac}, + {0x1eae, 0x1eae}, + {0x1eb0, 0x1eb0}, + {0x1eb2, 0x1eb2}, + {0x1eb4, 0x1eb4}, + {0x1eb6, 0x1eb6}, + {0x1eb8, 0x1eb8}, + {0x1eba, 0x1eba}, + {0x1ebc, 0x1ebc}, + {0x1ebe, 0x1ebe}, + {0x1ec0, 0x1ec0}, + {0x1ec2, 0x1ec2}, + {0x1ec4, 0x1ec4}, + {0x1ec6, 0x1ec6}, + {0x1ec8, 0x1ec8}, + {0x1eca, 0x1eca}, + {0x1ecc, 0x1ecc}, + {0x1ece, 0x1ece}, + {0x1ed0, 0x1ed0}, + {0x1ed2, 0x1ed2}, + {0x1ed4, 0x1ed4}, + {0x1ed6, 0x1ed6}, + {0x1ed8, 0x1ed8}, + {0x1eda, 0x1eda}, + {0x1edc, 0x1edc}, + {0x1ede, 0x1ede}, + {0x1ee0, 0x1ee0}, + {0x1ee2, 0x1ee2}, + {0x1ee4, 0x1ee4}, + {0x1ee6, 0x1ee6}, + {0x1ee8, 0x1ee8}, + {0x1eea, 0x1eea}, + {0x1eec, 0x1eec}, + {0x1eee, 0x1eee}, + {0x1ef0, 0x1ef0}, + {0x1ef2, 0x1ef2}, + {0x1ef4, 0x1ef4}, + {0x1ef6, 0x1ef6}, + {0x1ef8, 0x1ef8}, + {0x1efa, 0x1efa}, + {0x1efc, 0x1efc}, + {0x1efe, 0x1efe}, + {0x1f08, 0x1f0f}, + {0x1f18, 0x1f1d}, + {0x1f28, 0x1f2f}, + {0x1f38, 0x1f3f}, + {0x1f48, 0x1f4d}, + {0x1f59, 0x1f59}, + {0x1f5b, 0x1f5b}, + {0x1f5d, 0x1f5d}, + {0x1f5f, 0x1f5f}, + {0x1f68, 0x1f6f}, + {0x1f88, 0x1f8f}, + {0x1f98, 0x1f9f}, + {0x1fa8, 0x1faf}, + {0x1fb8, 0x1fbc}, + {0x1fc8, 0x1fcc}, + {0x1fd8, 0x1fdb}, + {0x1fe8, 0x1fec}, + {0x1ff8, 0x1ffc}, + {0xa640, 0xa640}, + {0xa642, 0xa642}, + {0xa644, 0xa644}, + {0xa646, 0xa646}, + {0xa648, 0xa648}, + {0xa64a, 0xa64a}, + {0xa64c, 0xa64c}, + {0xa64e, 0xa64e}, + {0xa650, 0xa650}, + {0xa652, 0xa652}, + {0xa654, 0xa654}, + {0xa656, 0xa656}, + {0xa658, 0xa658}, + {0xa65a, 0xa65a}, + {0xa65c, 0xa65c}, + {0xa65e, 0xa65e}, + {0xa660, 0xa660}, + {0xa662, 0xa662}, + {0xa664, 0xa664}, + {0xa666, 0xa666}, + {0xa668, 0xa668}, + {0xa66a, 0xa66a}, + {0xa66c, 0xa66c}, + {0xa680, 0xa680}, + {0xa682, 0xa682}, + {0xa684, 0xa684}, + {0xa686, 0xa686}, + {0xa688, 0xa688}, + {0xa68a, 0xa68a}, + {0xa68c, 0xa68c}, + {0xa68e, 0xa68e}, + {0xa690, 0xa690}, + {0xa692, 0xa692}, + {0xa694, 0xa694}, + {0xa696, 0xa696}, + {0xa698, 0xa698}, + {0xa69a, 0xa69a}, + {0xa722, 0xa722}, + {0xa724, 0xa724}, + {0xa726, 0xa726}, + {0xa728, 0xa728}, + {0xa72a, 0xa72a}, + {0xa72c, 0xa72c}, + {0xa72e, 0xa72e}, + {0xa732, 0xa732}, + {0xa734, 0xa734}, + {0xa736, 0xa736}, + {0xa738, 0xa738}, + {0xa73a, 0xa73a}, + {0xa73c, 0xa73c}, + {0xa73e, 0xa73e}, + {0xa740, 0xa740}, + {0xa742, 0xa742}, + {0xa744, 0xa744}, + {0xa746, 0xa746}, + {0xa748, 0xa748}, + {0xa74a, 0xa74a}, + {0xa74c, 0xa74c}, + {0xa74e, 0xa74e}, + {0xa750, 0xa750}, + {0xa752, 0xa752}, + {0xa754, 0xa754}, + {0xa756, 0xa756}, + {0xa758, 0xa758}, + {0xa75a, 0xa75a}, + {0xa75c, 0xa75c}, + {0xa75e, 0xa75e}, + {0xa760, 0xa760}, + {0xa762, 0xa762}, + {0xa764, 0xa764}, + {0xa766, 0xa766}, + {0xa768, 0xa768}, + {0xa76a, 0xa76a}, + {0xa76c, 0xa76c}, + {0xa76e, 0xa76e}, + {0xa779, 0xa779}, + {0xa77b, 0xa77b}, + {0xa77d, 0xa77e}, + {0xa780, 0xa780}, + {0xa782, 0xa782}, + {0xa784, 0xa784}, + {0xa786, 0xa786}, + {0xa78b, 0xa78b}, + {0xa78d, 0xa78d}, + {0xa790, 0xa790}, + {0xa792, 0xa792}, + {0xa796, 0xa796}, + {0xa798, 0xa798}, + {0xa79a, 0xa79a}, + {0xa79c, 0xa79c}, + {0xa79e, 0xa79e}, + {0xa7a0, 0xa7a0}, + {0xa7a2, 0xa7a2}, + {0xa7a4, 0xa7a4}, + {0xa7a6, 0xa7a6}, + {0xa7a8, 0xa7a8}, + {0xa7aa, 0xa7ae}, + {0xa7b0, 0xa7b4}, + {0xa7b6, 0xa7b6}, + {0xa7b8, 0xa7b8}, + {0xa7ba, 0xa7ba}, + {0xa7bc, 0xa7bc}, + {0xa7be, 0xa7be}, + {0xa7c0, 0xa7c0}, + {0xa7c2, 0xa7c2}, + {0xa7c4, 0xa7c7}, + {0xa7c9, 0xa7c9}, + {0xa7d0, 0xa7d0}, + {0xa7d6, 0xa7d6}, + {0xa7d8, 0xa7d8}, + {0xa7f5, 0xa7f5}, + {0xff21, 0xff3a}, + {0x10400, 0x10427}, + {0x104b0, 0x104d3}, + {0x10570, 0x1057a}, + {0x1057c, 0x1058a}, + {0x1058c, 0x10592}, + {0x10594, 0x10595}, + {0x10c80, 0x10cb2}, + {0x118a0, 0x118bf}, + {0x16e40, 0x16e5f}, + {0x1e900, 0x1e921}, + {0x1f110, 0x1f12c}, + {0x1f130, 0x1f149}, + {0x1f150, 0x1f169}, + {0x1f170, 0x1f18a}, + {0x1f520, 0x1f520}, {0xe0041, 0xe005a} }; -scm_t_char_set cs_upper_case = { - 541, - cs_upper_case_ranges -}; +static const size_t cs_upper_case_len = 549; -scm_t_char_range cs_title_case_ranges[] = { - {0x01c5, 0x01c5} - , - {0x01c8, 0x01c8} - , - {0x01cb, 0x01cb} - , - {0x01f2, 0x01f2} - , - {0x1f88, 0x1f8f} - , - {0x1f98, 0x1f9f} - , - {0x1fa8, 0x1faf} - , - {0x1fbc, 0x1fbc} - , - {0x1fcc, 0x1fcc} - , +static const scm_t_char_range cs_title_case_ranges[] = { + {0x01c5, 0x01c5}, + {0x01c8, 0x01c8}, + {0x01cb, 0x01cb}, + {0x01f2, 0x01f2}, + {0x1f88, 0x1f8f}, + {0x1f98, 0x1f9f}, + {0x1fa8, 0x1faf}, + {0x1fbc, 0x1fbc}, + {0x1fcc, 0x1fcc}, {0x1ffc, 0x1ffc} }; -scm_t_char_set cs_title_case = { - 10, - cs_title_case_ranges -}; +static const size_t cs_title_case_len = 10; -scm_t_char_range cs_letter_ranges[] = { - {0x0041, 0x005a} - , - {0x0061, 0x007a} - , - {0x00aa, 0x00aa} - , - {0x00b5, 0x00b5} - , - {0x00ba, 0x00ba} - , - {0x00c0, 0x00d6} - , - {0x00d8, 0x00f6} - , - {0x00f8, 0x02c1} - , - {0x02c6, 0x02d1} - , - {0x02e0, 0x02e4} - , - {0x02ec, 0x02ec} - , - {0x02ee, 0x02ee} - , - {0x0370, 0x0374} - , - {0x0376, 0x0377} - , - {0x037a, 0x037d} - , - {0x037f, 0x037f} - , - {0x0386, 0x0386} - , - {0x0388, 0x038a} - , - {0x038c, 0x038c} - , - {0x038e, 0x03a1} - , - {0x03a3, 0x03f5} - , - {0x03f7, 0x0481} - , - {0x048a, 0x052f} - , - {0x0531, 0x0556} - , - {0x0559, 0x0559} - , - {0x0560, 0x0588} - , - {0x05d0, 0x05ea} - , - {0x05ef, 0x05f2} - , - {0x0620, 0x064a} - , - {0x066e, 0x066f} - , - {0x0671, 0x06d3} - , - {0x06d5, 0x06d5} - , - {0x06e5, 0x06e6} - , - {0x06ee, 0x06ef} - , - {0x06fa, 0x06fc} - , - {0x06ff, 0x06ff} - , - {0x0710, 0x0710} - , - {0x0712, 0x072f} - , - {0x074d, 0x07a5} - , - {0x07b1, 0x07b1} - , - {0x07ca, 0x07ea} - , - {0x07f4, 0x07f5} - , - {0x07fa, 0x07fa} - , - {0x0800, 0x0815} - , - {0x081a, 0x081a} - , - {0x0824, 0x0824} - , - {0x0828, 0x0828} - , - {0x0840, 0x0858} - , - {0x0860, 0x086a} - , - {0x08a0, 0x08b4} - , - {0x08b6, 0x08c7} - , - {0x0904, 0x0939} - , - {0x093d, 0x093d} - , - {0x0950, 0x0950} - , - {0x0958, 0x0961} - , - {0x0971, 0x0980} - , - {0x0985, 0x098c} - , - {0x098f, 0x0990} - , - {0x0993, 0x09a8} - , - {0x09aa, 0x09b0} - , - {0x09b2, 0x09b2} - , - {0x09b6, 0x09b9} - , - {0x09bd, 0x09bd} - , - {0x09ce, 0x09ce} - , - {0x09dc, 0x09dd} - , - {0x09df, 0x09e1} - , - {0x09f0, 0x09f1} - , - {0x09fc, 0x09fc} - , - {0x0a05, 0x0a0a} - , - {0x0a0f, 0x0a10} - , - {0x0a13, 0x0a28} - , - {0x0a2a, 0x0a30} - , - {0x0a32, 0x0a33} - , - {0x0a35, 0x0a36} - , - {0x0a38, 0x0a39} - , - {0x0a59, 0x0a5c} - , - {0x0a5e, 0x0a5e} - , - {0x0a72, 0x0a74} - , - {0x0a85, 0x0a8d} - , - {0x0a8f, 0x0a91} - , - {0x0a93, 0x0aa8} - , - {0x0aaa, 0x0ab0} - , - {0x0ab2, 0x0ab3} - , - {0x0ab5, 0x0ab9} - , - {0x0abd, 0x0abd} - , - {0x0ad0, 0x0ad0} - , - {0x0ae0, 0x0ae1} - , - {0x0af9, 0x0af9} - , - {0x0b05, 0x0b0c} - , - {0x0b0f, 0x0b10} - , - {0x0b13, 0x0b28} - , - {0x0b2a, 0x0b30} - , - {0x0b32, 0x0b33} - , - {0x0b35, 0x0b39} - , - {0x0b3d, 0x0b3d} - , - {0x0b5c, 0x0b5d} - , - {0x0b5f, 0x0b61} - , - {0x0b71, 0x0b71} - , - {0x0b83, 0x0b83} - , - {0x0b85, 0x0b8a} - , - {0x0b8e, 0x0b90} - , - {0x0b92, 0x0b95} - , - {0x0b99, 0x0b9a} - , - {0x0b9c, 0x0b9c} - , - {0x0b9e, 0x0b9f} - , - {0x0ba3, 0x0ba4} - , - {0x0ba8, 0x0baa} - , - {0x0bae, 0x0bb9} - , - {0x0bd0, 0x0bd0} - , - {0x0c05, 0x0c0c} - , - {0x0c0e, 0x0c10} - , - {0x0c12, 0x0c28} - , - {0x0c2a, 0x0c39} - , - {0x0c3d, 0x0c3d} - , - {0x0c58, 0x0c5a} - , - {0x0c60, 0x0c61} - , - {0x0c80, 0x0c80} - , - {0x0c85, 0x0c8c} - , - {0x0c8e, 0x0c90} - , - {0x0c92, 0x0ca8} - , - {0x0caa, 0x0cb3} - , - {0x0cb5, 0x0cb9} - , - {0x0cbd, 0x0cbd} - , - {0x0cde, 0x0cde} - , - {0x0ce0, 0x0ce1} - , - {0x0cf1, 0x0cf2} - , - {0x0d04, 0x0d0c} - , - {0x0d0e, 0x0d10} - , - {0x0d12, 0x0d3a} - , - {0x0d3d, 0x0d3d} - , - {0x0d4e, 0x0d4e} - , - {0x0d54, 0x0d56} - , - {0x0d5f, 0x0d61} - , - {0x0d7a, 0x0d7f} - , - {0x0d85, 0x0d96} - , - {0x0d9a, 0x0db1} - , - {0x0db3, 0x0dbb} - , - {0x0dbd, 0x0dbd} - , - {0x0dc0, 0x0dc6} - , - {0x0e01, 0x0e30} - , - {0x0e32, 0x0e33} - , - {0x0e40, 0x0e46} - , - {0x0e81, 0x0e82} - , - {0x0e84, 0x0e84} - , - {0x0e86, 0x0e8a} - , - {0x0e8c, 0x0ea3} - , - {0x0ea5, 0x0ea5} - , - {0x0ea7, 0x0eb0} - , - {0x0eb2, 0x0eb3} - , - {0x0ebd, 0x0ebd} - , - {0x0ec0, 0x0ec4} - , - {0x0ec6, 0x0ec6} - , - {0x0edc, 0x0edf} - , - {0x0f00, 0x0f00} - , - {0x0f40, 0x0f47} - , - {0x0f49, 0x0f6c} - , - {0x0f88, 0x0f8c} - , - {0x1000, 0x102a} - , - {0x103f, 0x103f} - , - {0x1050, 0x1055} - , - {0x105a, 0x105d} - , - {0x1061, 0x1061} - , - {0x1065, 0x1066} - , - {0x106e, 0x1070} - , - {0x1075, 0x1081} - , - {0x108e, 0x108e} - , - {0x10a0, 0x10c5} - , - {0x10c7, 0x10c7} - , - {0x10cd, 0x10cd} - , - {0x10d0, 0x10fa} - , - {0x10fc, 0x1248} - , - {0x124a, 0x124d} - , - {0x1250, 0x1256} - , - {0x1258, 0x1258} - , - {0x125a, 0x125d} - , - {0x1260, 0x1288} - , - {0x128a, 0x128d} - , - {0x1290, 0x12b0} - , - {0x12b2, 0x12b5} - , - {0x12b8, 0x12be} - , - {0x12c0, 0x12c0} - , - {0x12c2, 0x12c5} - , - {0x12c8, 0x12d6} - , - {0x12d8, 0x1310} - , - {0x1312, 0x1315} - , - {0x1318, 0x135a} - , - {0x1380, 0x138f} - , - {0x13a0, 0x13f5} - , - {0x13f8, 0x13fd} - , - {0x1401, 0x166c} - , - {0x166f, 0x167f} - , - {0x1681, 0x169a} - , - {0x16a0, 0x16ea} - , - {0x16f1, 0x16f8} - , - {0x1700, 0x170c} - , - {0x170e, 0x1711} - , - {0x1720, 0x1731} - , - {0x1740, 0x1751} - , - {0x1760, 0x176c} - , - {0x176e, 0x1770} - , - {0x1780, 0x17b3} - , - {0x17d7, 0x17d7} - , - {0x17dc, 0x17dc} - , - {0x1820, 0x1878} - , - {0x1880, 0x1884} - , - {0x1887, 0x18a8} - , - {0x18aa, 0x18aa} - , - {0x18b0, 0x18f5} - , - {0x1900, 0x191e} - , - {0x1950, 0x196d} - , - {0x1970, 0x1974} - , - {0x1980, 0x19ab} - , - {0x19b0, 0x19c9} - , - {0x1a00, 0x1a16} - , - {0x1a20, 0x1a54} - , - {0x1aa7, 0x1aa7} - , - {0x1b05, 0x1b33} - , - {0x1b45, 0x1b4b} - , - {0x1b83, 0x1ba0} - , - {0x1bae, 0x1baf} - , - {0x1bba, 0x1be5} - , - {0x1c00, 0x1c23} - , - {0x1c4d, 0x1c4f} - , - {0x1c5a, 0x1c7d} - , - {0x1c80, 0x1c88} - , - {0x1c90, 0x1cba} - , - {0x1cbd, 0x1cbf} - , - {0x1ce9, 0x1cec} - , - {0x1cee, 0x1cf3} - , - {0x1cf5, 0x1cf6} - , - {0x1cfa, 0x1cfa} - , - {0x1d00, 0x1dbf} - , - {0x1e00, 0x1f15} - , - {0x1f18, 0x1f1d} - , - {0x1f20, 0x1f45} - , - {0x1f48, 0x1f4d} - , - {0x1f50, 0x1f57} - , - {0x1f59, 0x1f59} - , - {0x1f5b, 0x1f5b} - , - {0x1f5d, 0x1f5d} - , - {0x1f5f, 0x1f7d} - , - {0x1f80, 0x1fb4} - , - {0x1fb6, 0x1fbc} - , - {0x1fbe, 0x1fbe} - , - {0x1fc2, 0x1fc4} - , - {0x1fc6, 0x1fcc} - , - {0x1fd0, 0x1fd3} - , - {0x1fd6, 0x1fdb} - , - {0x1fe0, 0x1fec} - , - {0x1ff2, 0x1ff4} - , - {0x1ff6, 0x1ffc} - , - {0x2071, 0x2071} - , - {0x207f, 0x207f} - , - {0x2090, 0x209c} - , - {0x2102, 0x2102} - , - {0x2107, 0x2107} - , - {0x210a, 0x2113} - , - {0x2115, 0x2115} - , - {0x2119, 0x211d} - , - {0x2124, 0x2124} - , - {0x2126, 0x2126} - , - {0x2128, 0x2128} - , - {0x212a, 0x212d} - , - {0x212f, 0x2139} - , - {0x213c, 0x213f} - , - {0x2145, 0x2149} - , - {0x214e, 0x214e} - , - {0x2183, 0x2184} - , - {0x2c00, 0x2c2e} - , - {0x2c30, 0x2c5e} - , - {0x2c60, 0x2ce4} - , - {0x2ceb, 0x2cee} - , - {0x2cf2, 0x2cf3} - , - {0x2d00, 0x2d25} - , - {0x2d27, 0x2d27} - , - {0x2d2d, 0x2d2d} - , - {0x2d30, 0x2d67} - , - {0x2d6f, 0x2d6f} - , - {0x2d80, 0x2d96} - , - {0x2da0, 0x2da6} - , - {0x2da8, 0x2dae} - , - {0x2db0, 0x2db6} - , - {0x2db8, 0x2dbe} - , - {0x2dc0, 0x2dc6} - , - {0x2dc8, 0x2dce} - , - {0x2dd0, 0x2dd6} - , - {0x2dd8, 0x2dde} - , - {0x2e2f, 0x2e2f} - , - {0x3005, 0x3006} - , - {0x3031, 0x3035} - , - {0x303b, 0x303c} - , - {0x3041, 0x3096} - , - {0x309d, 0x309f} - , - {0x30a1, 0x30fa} - , - {0x30fc, 0x30ff} - , - {0x3105, 0x312f} - , - {0x3131, 0x318e} - , - {0x31a0, 0x31bf} - , - {0x31f0, 0x31ff} - , - {0x3400, 0x4dbf} - , - {0x4e00, 0x9ffc} - , - {0xa000, 0xa48c} - , - {0xa4d0, 0xa4fd} - , - {0xa500, 0xa60c} - , - {0xa610, 0xa61f} - , - {0xa62a, 0xa62b} - , - {0xa640, 0xa66e} - , - {0xa67f, 0xa69d} - , - {0xa6a0, 0xa6e5} - , - {0xa717, 0xa71f} - , - {0xa722, 0xa788} - , - {0xa78b, 0xa7bf} - , - {0xa7c2, 0xa7ca} - , - {0xa7f5, 0xa801} - , - {0xa803, 0xa805} - , - {0xa807, 0xa80a} - , - {0xa80c, 0xa822} - , - {0xa840, 0xa873} - , - {0xa882, 0xa8b3} - , - {0xa8f2, 0xa8f7} - , - {0xa8fb, 0xa8fb} - , - {0xa8fd, 0xa8fe} - , - {0xa90a, 0xa925} - , - {0xa930, 0xa946} - , - {0xa960, 0xa97c} - , - {0xa984, 0xa9b2} - , - {0xa9cf, 0xa9cf} - , - {0xa9e0, 0xa9e4} - , - {0xa9e6, 0xa9ef} - , - {0xa9fa, 0xa9fe} - , - {0xaa00, 0xaa28} - , - {0xaa40, 0xaa42} - , - {0xaa44, 0xaa4b} - , - {0xaa60, 0xaa76} - , - {0xaa7a, 0xaa7a} - , - {0xaa7e, 0xaaaf} - , - {0xaab1, 0xaab1} - , - {0xaab5, 0xaab6} - , - {0xaab9, 0xaabd} - , - {0xaac0, 0xaac0} - , - {0xaac2, 0xaac2} - , - {0xaadb, 0xaadd} - , - {0xaae0, 0xaaea} - , - {0xaaf2, 0xaaf4} - , - {0xab01, 0xab06} - , - {0xab09, 0xab0e} - , - {0xab11, 0xab16} - , - {0xab20, 0xab26} - , - {0xab28, 0xab2e} - , - {0xab30, 0xab5a} - , - {0xab5c, 0xab69} - , - {0xab70, 0xabe2} - , - {0xac00, 0xd7a3} - , - {0xd7b0, 0xd7c6} - , - {0xd7cb, 0xd7fb} - , - {0xf900, 0xfa6d} - , - {0xfa70, 0xfad9} - , - {0xfb00, 0xfb06} - , - {0xfb13, 0xfb17} - , - {0xfb1d, 0xfb1d} - , - {0xfb1f, 0xfb28} - , - {0xfb2a, 0xfb36} - , - {0xfb38, 0xfb3c} - , - {0xfb3e, 0xfb3e} - , - {0xfb40, 0xfb41} - , - {0xfb43, 0xfb44} - , - {0xfb46, 0xfbb1} - , - {0xfbd3, 0xfd3d} - , - {0xfd50, 0xfd8f} - , - {0xfd92, 0xfdc7} - , - {0xfdf0, 0xfdfb} - , - {0xfe70, 0xfe74} - , - {0xfe76, 0xfefc} - , - {0xff21, 0xff3a} - , - {0xff41, 0xff5a} - , - {0xff66, 0xffbe} - , - {0xffc2, 0xffc7} - , - {0xffca, 0xffcf} - , - {0xffd2, 0xffd7} - , - {0xffda, 0xffdc} - , - {0x10000, 0x1000b} - , - {0x1000d, 0x10026} - , - {0x10028, 0x1003a} - , - {0x1003c, 0x1003d} - , - {0x1003f, 0x1004d} - , - {0x10050, 0x1005d} - , - {0x10080, 0x100fa} - , - {0x10280, 0x1029c} - , - {0x102a0, 0x102d0} - , - {0x10300, 0x1031f} - , - {0x1032d, 0x10340} - , - {0x10342, 0x10349} - , - {0x10350, 0x10375} - , - {0x10380, 0x1039d} - , - {0x103a0, 0x103c3} - , - {0x103c8, 0x103cf} - , - {0x10400, 0x1049d} - , - {0x104b0, 0x104d3} - , - {0x104d8, 0x104fb} - , - {0x10500, 0x10527} - , - {0x10530, 0x10563} - , - {0x10600, 0x10736} - , - {0x10740, 0x10755} - , - {0x10760, 0x10767} - , - {0x10800, 0x10805} - , - {0x10808, 0x10808} - , - {0x1080a, 0x10835} - , - {0x10837, 0x10838} - , - {0x1083c, 0x1083c} - , - {0x1083f, 0x10855} - , - {0x10860, 0x10876} - , - {0x10880, 0x1089e} - , - {0x108e0, 0x108f2} - , - {0x108f4, 0x108f5} - , - {0x10900, 0x10915} - , - {0x10920, 0x10939} - , - {0x10980, 0x109b7} - , - {0x109be, 0x109bf} - , - {0x10a00, 0x10a00} - , - {0x10a10, 0x10a13} - , - {0x10a15, 0x10a17} - , - {0x10a19, 0x10a35} - , - {0x10a60, 0x10a7c} - , - {0x10a80, 0x10a9c} - , - {0x10ac0, 0x10ac7} - , - {0x10ac9, 0x10ae4} - , - {0x10b00, 0x10b35} - , - {0x10b40, 0x10b55} - , - {0x10b60, 0x10b72} - , - {0x10b80, 0x10b91} - , - {0x10c00, 0x10c48} - , - {0x10c80, 0x10cb2} - , - {0x10cc0, 0x10cf2} - , - {0x10d00, 0x10d23} - , - {0x10e80, 0x10ea9} - , - {0x10eb0, 0x10eb1} - , - {0x10f00, 0x10f1c} - , - {0x10f27, 0x10f27} - , - {0x10f30, 0x10f45} - , - {0x10fb0, 0x10fc4} - , - {0x10fe0, 0x10ff6} - , - {0x11003, 0x11037} - , - {0x11083, 0x110af} - , - {0x110d0, 0x110e8} - , - {0x11103, 0x11126} - , - {0x11144, 0x11144} - , - {0x11147, 0x11147} - , - {0x11150, 0x11172} - , - {0x11176, 0x11176} - , - {0x11183, 0x111b2} - , - {0x111c1, 0x111c4} - , - {0x111da, 0x111da} - , - {0x111dc, 0x111dc} - , - {0x11200, 0x11211} - , - {0x11213, 0x1122b} - , - {0x11280, 0x11286} - , - {0x11288, 0x11288} - , - {0x1128a, 0x1128d} - , - {0x1128f, 0x1129d} - , - {0x1129f, 0x112a8} - , - {0x112b0, 0x112de} - , - {0x11305, 0x1130c} - , - {0x1130f, 0x11310} - , - {0x11313, 0x11328} - , - {0x1132a, 0x11330} - , - {0x11332, 0x11333} - , - {0x11335, 0x11339} - , - {0x1133d, 0x1133d} - , - {0x11350, 0x11350} - , - {0x1135d, 0x11361} - , - {0x11400, 0x11434} - , - {0x11447, 0x1144a} - , - {0x1145f, 0x11461} - , - {0x11480, 0x114af} - , - {0x114c4, 0x114c5} - , - {0x114c7, 0x114c7} - , - {0x11580, 0x115ae} - , - {0x115d8, 0x115db} - , - {0x11600, 0x1162f} - , - {0x11644, 0x11644} - , - {0x11680, 0x116aa} - , - {0x116b8, 0x116b8} - , - {0x11700, 0x1171a} - , - {0x11800, 0x1182b} - , - {0x118a0, 0x118df} - , - {0x118ff, 0x11906} - , - {0x11909, 0x11909} - , - {0x1190c, 0x11913} - , - {0x11915, 0x11916} - , - {0x11918, 0x1192f} - , - {0x1193f, 0x1193f} - , - {0x11941, 0x11941} - , - {0x119a0, 0x119a7} - , - {0x119aa, 0x119d0} - , - {0x119e1, 0x119e1} - , - {0x119e3, 0x119e3} - , - {0x11a00, 0x11a00} - , - {0x11a0b, 0x11a32} - , - {0x11a3a, 0x11a3a} - , - {0x11a50, 0x11a50} - , - {0x11a5c, 0x11a89} - , - {0x11a9d, 0x11a9d} - , - {0x11ac0, 0x11af8} - , - {0x11c00, 0x11c08} - , - {0x11c0a, 0x11c2e} - , - {0x11c40, 0x11c40} - , - {0x11c72, 0x11c8f} - , - {0x11d00, 0x11d06} - , - {0x11d08, 0x11d09} - , - {0x11d0b, 0x11d30} - , - {0x11d46, 0x11d46} - , - {0x11d60, 0x11d65} - , - {0x11d67, 0x11d68} - , - {0x11d6a, 0x11d89} - , - {0x11d98, 0x11d98} - , - {0x11ee0, 0x11ef2} - , - {0x11fb0, 0x11fb0} - , - {0x12000, 0x12399} - , - {0x12480, 0x12543} - , - {0x13000, 0x1342e} - , - {0x14400, 0x14646} - , - {0x16800, 0x16a38} - , - {0x16a40, 0x16a5e} - , - {0x16ad0, 0x16aed} - , - {0x16b00, 0x16b2f} - , - {0x16b40, 0x16b43} - , - {0x16b63, 0x16b77} - , - {0x16b7d, 0x16b8f} - , - {0x16e40, 0x16e7f} - , - {0x16f00, 0x16f4a} - , - {0x16f50, 0x16f50} - , - {0x16f93, 0x16f9f} - , - {0x16fe0, 0x16fe1} - , - {0x16fe3, 0x16fe3} - , - {0x17000, 0x187f7} - , - {0x18800, 0x18cd5} - , - {0x18d00, 0x18d08} - , - {0x1b000, 0x1b11e} - , - {0x1b150, 0x1b152} - , - {0x1b164, 0x1b167} - , - {0x1b170, 0x1b2fb} - , - {0x1bc00, 0x1bc6a} - , - {0x1bc70, 0x1bc7c} - , - {0x1bc80, 0x1bc88} - , - {0x1bc90, 0x1bc99} - , - {0x1d400, 0x1d454} - , - {0x1d456, 0x1d49c} - , - {0x1d49e, 0x1d49f} - , - {0x1d4a2, 0x1d4a2} - , - {0x1d4a5, 0x1d4a6} - , - {0x1d4a9, 0x1d4ac} - , - {0x1d4ae, 0x1d4b9} - , - {0x1d4bb, 0x1d4bb} - , - {0x1d4bd, 0x1d4c3} - , - {0x1d4c5, 0x1d505} - , - {0x1d507, 0x1d50a} - , - {0x1d50d, 0x1d514} - , - {0x1d516, 0x1d51c} - , - {0x1d51e, 0x1d539} - , - {0x1d53b, 0x1d53e} - , - {0x1d540, 0x1d544} - , - {0x1d546, 0x1d546} - , - {0x1d54a, 0x1d550} - , - {0x1d552, 0x1d6a5} - , - {0x1d6a8, 0x1d6c0} - , - {0x1d6c2, 0x1d6da} - , - {0x1d6dc, 0x1d6fa} - , - {0x1d6fc, 0x1d714} - , - {0x1d716, 0x1d734} - , - {0x1d736, 0x1d74e} - , - {0x1d750, 0x1d76e} - , - {0x1d770, 0x1d788} - , - {0x1d78a, 0x1d7a8} - , - {0x1d7aa, 0x1d7c2} - , - {0x1d7c4, 0x1d7cb} - , - {0x1e100, 0x1e12c} - , - {0x1e137, 0x1e13d} - , - {0x1e14e, 0x1e14e} - , - {0x1e2c0, 0x1e2eb} - , - {0x1e800, 0x1e8c4} - , - {0x1e900, 0x1e943} - , - {0x1e94b, 0x1e94b} - , - {0x1ee00, 0x1ee03} - , - {0x1ee05, 0x1ee1f} - , - {0x1ee21, 0x1ee22} - , - {0x1ee24, 0x1ee24} - , - {0x1ee27, 0x1ee27} - , - {0x1ee29, 0x1ee32} - , - {0x1ee34, 0x1ee37} - , - {0x1ee39, 0x1ee39} - , - {0x1ee3b, 0x1ee3b} - , - {0x1ee42, 0x1ee42} - , - {0x1ee47, 0x1ee47} - , - {0x1ee49, 0x1ee49} - , - {0x1ee4b, 0x1ee4b} - , - {0x1ee4d, 0x1ee4f} - , - {0x1ee51, 0x1ee52} - , - {0x1ee54, 0x1ee54} - , - {0x1ee57, 0x1ee57} - , - {0x1ee59, 0x1ee59} - , - {0x1ee5b, 0x1ee5b} - , - {0x1ee5d, 0x1ee5d} - , - {0x1ee5f, 0x1ee5f} - , - {0x1ee61, 0x1ee62} - , - {0x1ee64, 0x1ee64} - , - {0x1ee67, 0x1ee6a} - , - {0x1ee6c, 0x1ee72} - , - {0x1ee74, 0x1ee77} - , - {0x1ee79, 0x1ee7c} - , - {0x1ee7e, 0x1ee7e} - , - {0x1ee80, 0x1ee89} - , - {0x1ee8b, 0x1ee9b} - , - {0x1eea1, 0x1eea3} - , - {0x1eea5, 0x1eea9} - , - {0x1eeab, 0x1eebb} - , - {0x20000, 0x2a6dd} - , - {0x2a700, 0x2b734} - , - {0x2b740, 0x2b81d} - , - {0x2b820, 0x2cea1} - , - {0x2ceb0, 0x2ebe0} - , - {0x2f800, 0x2fa1d} - , +static const scm_t_char_range cs_letter_ranges[] = { + {0x0041, 0x005a}, + {0x0061, 0x007a}, + {0x00aa, 0x00aa}, + {0x00b5, 0x00b5}, + {0x00ba, 0x00ba}, + {0x00c0, 0x00d6}, + {0x00d8, 0x00f6}, + {0x00f8, 0x02c1}, + {0x02c6, 0x02d1}, + {0x02e0, 0x02e4}, + {0x02ec, 0x02ec}, + {0x02ee, 0x02ee}, + {0x0370, 0x0374}, + {0x0376, 0x0377}, + {0x037a, 0x037d}, + {0x037f, 0x037f}, + {0x0386, 0x0386}, + {0x0388, 0x038a}, + {0x038c, 0x038c}, + {0x038e, 0x03a1}, + {0x03a3, 0x03f5}, + {0x03f7, 0x0481}, + {0x048a, 0x052f}, + {0x0531, 0x0556}, + {0x0559, 0x0559}, + {0x0560, 0x0588}, + {0x05d0, 0x05ea}, + {0x05ef, 0x05f2}, + {0x0620, 0x064a}, + {0x066e, 0x066f}, + {0x0671, 0x06d3}, + {0x06d5, 0x06d5}, + {0x06e5, 0x06e6}, + {0x06ee, 0x06ef}, + {0x06fa, 0x06fc}, + {0x06ff, 0x06ff}, + {0x0710, 0x0710}, + {0x0712, 0x072f}, + {0x074d, 0x07a5}, + {0x07b1, 0x07b1}, + {0x07ca, 0x07ea}, + {0x07f4, 0x07f5}, + {0x07fa, 0x07fa}, + {0x0800, 0x0815}, + {0x081a, 0x081a}, + {0x0824, 0x0824}, + {0x0828, 0x0828}, + {0x0840, 0x0858}, + {0x0860, 0x086a}, + {0x0870, 0x0887}, + {0x0889, 0x088e}, + {0x08a0, 0x08c9}, + {0x0904, 0x0939}, + {0x093d, 0x093d}, + {0x0950, 0x0950}, + {0x0958, 0x0961}, + {0x0971, 0x0980}, + {0x0985, 0x098c}, + {0x098f, 0x0990}, + {0x0993, 0x09a8}, + {0x09aa, 0x09b0}, + {0x09b2, 0x09b2}, + {0x09b6, 0x09b9}, + {0x09bd, 0x09bd}, + {0x09ce, 0x09ce}, + {0x09dc, 0x09dd}, + {0x09df, 0x09e1}, + {0x09f0, 0x09f1}, + {0x09fc, 0x09fc}, + {0x0a05, 0x0a0a}, + {0x0a0f, 0x0a10}, + {0x0a13, 0x0a28}, + {0x0a2a, 0x0a30}, + {0x0a32, 0x0a33}, + {0x0a35, 0x0a36}, + {0x0a38, 0x0a39}, + {0x0a59, 0x0a5c}, + {0x0a5e, 0x0a5e}, + {0x0a72, 0x0a74}, + {0x0a85, 0x0a8d}, + {0x0a8f, 0x0a91}, + {0x0a93, 0x0aa8}, + {0x0aaa, 0x0ab0}, + {0x0ab2, 0x0ab3}, + {0x0ab5, 0x0ab9}, + {0x0abd, 0x0abd}, + {0x0ad0, 0x0ad0}, + {0x0ae0, 0x0ae1}, + {0x0af9, 0x0af9}, + {0x0b05, 0x0b0c}, + {0x0b0f, 0x0b10}, + {0x0b13, 0x0b28}, + {0x0b2a, 0x0b30}, + {0x0b32, 0x0b33}, + {0x0b35, 0x0b39}, + {0x0b3d, 0x0b3d}, + {0x0b5c, 0x0b5d}, + {0x0b5f, 0x0b61}, + {0x0b71, 0x0b71}, + {0x0b83, 0x0b83}, + {0x0b85, 0x0b8a}, + {0x0b8e, 0x0b90}, + {0x0b92, 0x0b95}, + {0x0b99, 0x0b9a}, + {0x0b9c, 0x0b9c}, + {0x0b9e, 0x0b9f}, + {0x0ba3, 0x0ba4}, + {0x0ba8, 0x0baa}, + {0x0bae, 0x0bb9}, + {0x0bd0, 0x0bd0}, + {0x0c05, 0x0c0c}, + {0x0c0e, 0x0c10}, + {0x0c12, 0x0c28}, + {0x0c2a, 0x0c39}, + {0x0c3d, 0x0c3d}, + {0x0c58, 0x0c5a}, + {0x0c5d, 0x0c5d}, + {0x0c60, 0x0c61}, + {0x0c80, 0x0c80}, + {0x0c85, 0x0c8c}, + {0x0c8e, 0x0c90}, + {0x0c92, 0x0ca8}, + {0x0caa, 0x0cb3}, + {0x0cb5, 0x0cb9}, + {0x0cbd, 0x0cbd}, + {0x0cdd, 0x0cde}, + {0x0ce0, 0x0ce1}, + {0x0cf1, 0x0cf2}, + {0x0d04, 0x0d0c}, + {0x0d0e, 0x0d10}, + {0x0d12, 0x0d3a}, + {0x0d3d, 0x0d3d}, + {0x0d4e, 0x0d4e}, + {0x0d54, 0x0d56}, + {0x0d5f, 0x0d61}, + {0x0d7a, 0x0d7f}, + {0x0d85, 0x0d96}, + {0x0d9a, 0x0db1}, + {0x0db3, 0x0dbb}, + {0x0dbd, 0x0dbd}, + {0x0dc0, 0x0dc6}, + {0x0e01, 0x0e30}, + {0x0e32, 0x0e33}, + {0x0e40, 0x0e46}, + {0x0e81, 0x0e82}, + {0x0e84, 0x0e84}, + {0x0e86, 0x0e8a}, + {0x0e8c, 0x0ea3}, + {0x0ea5, 0x0ea5}, + {0x0ea7, 0x0eb0}, + {0x0eb2, 0x0eb3}, + {0x0ebd, 0x0ebd}, + {0x0ec0, 0x0ec4}, + {0x0ec6, 0x0ec6}, + {0x0edc, 0x0edf}, + {0x0f00, 0x0f00}, + {0x0f40, 0x0f47}, + {0x0f49, 0x0f6c}, + {0x0f88, 0x0f8c}, + {0x1000, 0x102a}, + {0x103f, 0x103f}, + {0x1050, 0x1055}, + {0x105a, 0x105d}, + {0x1061, 0x1061}, + {0x1065, 0x1066}, + {0x106e, 0x1070}, + {0x1075, 0x1081}, + {0x108e, 0x108e}, + {0x10a0, 0x10c5}, + {0x10c7, 0x10c7}, + {0x10cd, 0x10cd}, + {0x10d0, 0x10fa}, + {0x10fc, 0x1248}, + {0x124a, 0x124d}, + {0x1250, 0x1256}, + {0x1258, 0x1258}, + {0x125a, 0x125d}, + {0x1260, 0x1288}, + {0x128a, 0x128d}, + {0x1290, 0x12b0}, + {0x12b2, 0x12b5}, + {0x12b8, 0x12be}, + {0x12c0, 0x12c0}, + {0x12c2, 0x12c5}, + {0x12c8, 0x12d6}, + {0x12d8, 0x1310}, + {0x1312, 0x1315}, + {0x1318, 0x135a}, + {0x1380, 0x138f}, + {0x13a0, 0x13f5}, + {0x13f8, 0x13fd}, + {0x1401, 0x166c}, + {0x166f, 0x167f}, + {0x1681, 0x169a}, + {0x16a0, 0x16ea}, + {0x16f1, 0x16f8}, + {0x1700, 0x1711}, + {0x171f, 0x1731}, + {0x1740, 0x1751}, + {0x1760, 0x176c}, + {0x176e, 0x1770}, + {0x1780, 0x17b3}, + {0x17d7, 0x17d7}, + {0x17dc, 0x17dc}, + {0x1820, 0x1878}, + {0x1880, 0x1884}, + {0x1887, 0x18a8}, + {0x18aa, 0x18aa}, + {0x18b0, 0x18f5}, + {0x1900, 0x191e}, + {0x1950, 0x196d}, + {0x1970, 0x1974}, + {0x1980, 0x19ab}, + {0x19b0, 0x19c9}, + {0x1a00, 0x1a16}, + {0x1a20, 0x1a54}, + {0x1aa7, 0x1aa7}, + {0x1b05, 0x1b33}, + {0x1b45, 0x1b4c}, + {0x1b83, 0x1ba0}, + {0x1bae, 0x1baf}, + {0x1bba, 0x1be5}, + {0x1c00, 0x1c23}, + {0x1c4d, 0x1c4f}, + {0x1c5a, 0x1c7d}, + {0x1c80, 0x1c88}, + {0x1c90, 0x1cba}, + {0x1cbd, 0x1cbf}, + {0x1ce9, 0x1cec}, + {0x1cee, 0x1cf3}, + {0x1cf5, 0x1cf6}, + {0x1cfa, 0x1cfa}, + {0x1d00, 0x1dbf}, + {0x1e00, 0x1f15}, + {0x1f18, 0x1f1d}, + {0x1f20, 0x1f45}, + {0x1f48, 0x1f4d}, + {0x1f50, 0x1f57}, + {0x1f59, 0x1f59}, + {0x1f5b, 0x1f5b}, + {0x1f5d, 0x1f5d}, + {0x1f5f, 0x1f7d}, + {0x1f80, 0x1fb4}, + {0x1fb6, 0x1fbc}, + {0x1fbe, 0x1fbe}, + {0x1fc2, 0x1fc4}, + {0x1fc6, 0x1fcc}, + {0x1fd0, 0x1fd3}, + {0x1fd6, 0x1fdb}, + {0x1fe0, 0x1fec}, + {0x1ff2, 0x1ff4}, + {0x1ff6, 0x1ffc}, + {0x2071, 0x2071}, + {0x207f, 0x207f}, + {0x2090, 0x209c}, + {0x2102, 0x2102}, + {0x2107, 0x2107}, + {0x210a, 0x2113}, + {0x2115, 0x2115}, + {0x2119, 0x211d}, + {0x2124, 0x2124}, + {0x2126, 0x2126}, + {0x2128, 0x2128}, + {0x212a, 0x212d}, + {0x212f, 0x2139}, + {0x213c, 0x213f}, + {0x2145, 0x2149}, + {0x214e, 0x214e}, + {0x2183, 0x2184}, + {0x2c00, 0x2ce4}, + {0x2ceb, 0x2cee}, + {0x2cf2, 0x2cf3}, + {0x2d00, 0x2d25}, + {0x2d27, 0x2d27}, + {0x2d2d, 0x2d2d}, + {0x2d30, 0x2d67}, + {0x2d6f, 0x2d6f}, + {0x2d80, 0x2d96}, + {0x2da0, 0x2da6}, + {0x2da8, 0x2dae}, + {0x2db0, 0x2db6}, + {0x2db8, 0x2dbe}, + {0x2dc0, 0x2dc6}, + {0x2dc8, 0x2dce}, + {0x2dd0, 0x2dd6}, + {0x2dd8, 0x2dde}, + {0x2e2f, 0x2e2f}, + {0x3005, 0x3006}, + {0x3031, 0x3035}, + {0x303b, 0x303c}, + {0x3041, 0x3096}, + {0x309d, 0x309f}, + {0x30a1, 0x30fa}, + {0x30fc, 0x30ff}, + {0x3105, 0x312f}, + {0x3131, 0x318e}, + {0x31a0, 0x31bf}, + {0x31f0, 0x31ff}, + {0x3400, 0x4dbf}, + {0x4e00, 0xa48c}, + {0xa4d0, 0xa4fd}, + {0xa500, 0xa60c}, + {0xa610, 0xa61f}, + {0xa62a, 0xa62b}, + {0xa640, 0xa66e}, + {0xa67f, 0xa69d}, + {0xa6a0, 0xa6e5}, + {0xa717, 0xa71f}, + {0xa722, 0xa788}, + {0xa78b, 0xa7ca}, + {0xa7d0, 0xa7d1}, + {0xa7d3, 0xa7d3}, + {0xa7d5, 0xa7d9}, + {0xa7f2, 0xa801}, + {0xa803, 0xa805}, + {0xa807, 0xa80a}, + {0xa80c, 0xa822}, + {0xa840, 0xa873}, + {0xa882, 0xa8b3}, + {0xa8f2, 0xa8f7}, + {0xa8fb, 0xa8fb}, + {0xa8fd, 0xa8fe}, + {0xa90a, 0xa925}, + {0xa930, 0xa946}, + {0xa960, 0xa97c}, + {0xa984, 0xa9b2}, + {0xa9cf, 0xa9cf}, + {0xa9e0, 0xa9e4}, + {0xa9e6, 0xa9ef}, + {0xa9fa, 0xa9fe}, + {0xaa00, 0xaa28}, + {0xaa40, 0xaa42}, + {0xaa44, 0xaa4b}, + {0xaa60, 0xaa76}, + {0xaa7a, 0xaa7a}, + {0xaa7e, 0xaaaf}, + {0xaab1, 0xaab1}, + {0xaab5, 0xaab6}, + {0xaab9, 0xaabd}, + {0xaac0, 0xaac0}, + {0xaac2, 0xaac2}, + {0xaadb, 0xaadd}, + {0xaae0, 0xaaea}, + {0xaaf2, 0xaaf4}, + {0xab01, 0xab06}, + {0xab09, 0xab0e}, + {0xab11, 0xab16}, + {0xab20, 0xab26}, + {0xab28, 0xab2e}, + {0xab30, 0xab5a}, + {0xab5c, 0xab69}, + {0xab70, 0xabe2}, + {0xac00, 0xd7a3}, + {0xd7b0, 0xd7c6}, + {0xd7cb, 0xd7fb}, + {0xf900, 0xfa6d}, + {0xfa70, 0xfad9}, + {0xfb00, 0xfb06}, + {0xfb13, 0xfb17}, + {0xfb1d, 0xfb1d}, + {0xfb1f, 0xfb28}, + {0xfb2a, 0xfb36}, + {0xfb38, 0xfb3c}, + {0xfb3e, 0xfb3e}, + {0xfb40, 0xfb41}, + {0xfb43, 0xfb44}, + {0xfb46, 0xfbb1}, + {0xfbd3, 0xfd3d}, + {0xfd50, 0xfd8f}, + {0xfd92, 0xfdc7}, + {0xfdf0, 0xfdfb}, + {0xfe70, 0xfe74}, + {0xfe76, 0xfefc}, + {0xff21, 0xff3a}, + {0xff41, 0xff5a}, + {0xff66, 0xffbe}, + {0xffc2, 0xffc7}, + {0xffca, 0xffcf}, + {0xffd2, 0xffd7}, + {0xffda, 0xffdc}, + {0x10000, 0x1000b}, + {0x1000d, 0x10026}, + {0x10028, 0x1003a}, + {0x1003c, 0x1003d}, + {0x1003f, 0x1004d}, + {0x10050, 0x1005d}, + {0x10080, 0x100fa}, + {0x10280, 0x1029c}, + {0x102a0, 0x102d0}, + {0x10300, 0x1031f}, + {0x1032d, 0x10340}, + {0x10342, 0x10349}, + {0x10350, 0x10375}, + {0x10380, 0x1039d}, + {0x103a0, 0x103c3}, + {0x103c8, 0x103cf}, + {0x10400, 0x1049d}, + {0x104b0, 0x104d3}, + {0x104d8, 0x104fb}, + {0x10500, 0x10527}, + {0x10530, 0x10563}, + {0x10570, 0x1057a}, + {0x1057c, 0x1058a}, + {0x1058c, 0x10592}, + {0x10594, 0x10595}, + {0x10597, 0x105a1}, + {0x105a3, 0x105b1}, + {0x105b3, 0x105b9}, + {0x105bb, 0x105bc}, + {0x10600, 0x10736}, + {0x10740, 0x10755}, + {0x10760, 0x10767}, + {0x10780, 0x10785}, + {0x10787, 0x107b0}, + {0x107b2, 0x107ba}, + {0x10800, 0x10805}, + {0x10808, 0x10808}, + {0x1080a, 0x10835}, + {0x10837, 0x10838}, + {0x1083c, 0x1083c}, + {0x1083f, 0x10855}, + {0x10860, 0x10876}, + {0x10880, 0x1089e}, + {0x108e0, 0x108f2}, + {0x108f4, 0x108f5}, + {0x10900, 0x10915}, + {0x10920, 0x10939}, + {0x10980, 0x109b7}, + {0x109be, 0x109bf}, + {0x10a00, 0x10a00}, + {0x10a10, 0x10a13}, + {0x10a15, 0x10a17}, + {0x10a19, 0x10a35}, + {0x10a60, 0x10a7c}, + {0x10a80, 0x10a9c}, + {0x10ac0, 0x10ac7}, + {0x10ac9, 0x10ae4}, + {0x10b00, 0x10b35}, + {0x10b40, 0x10b55}, + {0x10b60, 0x10b72}, + {0x10b80, 0x10b91}, + {0x10c00, 0x10c48}, + {0x10c80, 0x10cb2}, + {0x10cc0, 0x10cf2}, + {0x10d00, 0x10d23}, + {0x10e80, 0x10ea9}, + {0x10eb0, 0x10eb1}, + {0x10f00, 0x10f1c}, + {0x10f27, 0x10f27}, + {0x10f30, 0x10f45}, + {0x10f70, 0x10f81}, + {0x10fb0, 0x10fc4}, + {0x10fe0, 0x10ff6}, + {0x11003, 0x11037}, + {0x11071, 0x11072}, + {0x11075, 0x11075}, + {0x11083, 0x110af}, + {0x110d0, 0x110e8}, + {0x11103, 0x11126}, + {0x11144, 0x11144}, + {0x11147, 0x11147}, + {0x11150, 0x11172}, + {0x11176, 0x11176}, + {0x11183, 0x111b2}, + {0x111c1, 0x111c4}, + {0x111da, 0x111da}, + {0x111dc, 0x111dc}, + {0x11200, 0x11211}, + {0x11213, 0x1122b}, + {0x11280, 0x11286}, + {0x11288, 0x11288}, + {0x1128a, 0x1128d}, + {0x1128f, 0x1129d}, + {0x1129f, 0x112a8}, + {0x112b0, 0x112de}, + {0x11305, 0x1130c}, + {0x1130f, 0x11310}, + {0x11313, 0x11328}, + {0x1132a, 0x11330}, + {0x11332, 0x11333}, + {0x11335, 0x11339}, + {0x1133d, 0x1133d}, + {0x11350, 0x11350}, + {0x1135d, 0x11361}, + {0x11400, 0x11434}, + {0x11447, 0x1144a}, + {0x1145f, 0x11461}, + {0x11480, 0x114af}, + {0x114c4, 0x114c5}, + {0x114c7, 0x114c7}, + {0x11580, 0x115ae}, + {0x115d8, 0x115db}, + {0x11600, 0x1162f}, + {0x11644, 0x11644}, + {0x11680, 0x116aa}, + {0x116b8, 0x116b8}, + {0x11700, 0x1171a}, + {0x11740, 0x11746}, + {0x11800, 0x1182b}, + {0x118a0, 0x118df}, + {0x118ff, 0x11906}, + {0x11909, 0x11909}, + {0x1190c, 0x11913}, + {0x11915, 0x11916}, + {0x11918, 0x1192f}, + {0x1193f, 0x1193f}, + {0x11941, 0x11941}, + {0x119a0, 0x119a7}, + {0x119aa, 0x119d0}, + {0x119e1, 0x119e1}, + {0x119e3, 0x119e3}, + {0x11a00, 0x11a00}, + {0x11a0b, 0x11a32}, + {0x11a3a, 0x11a3a}, + {0x11a50, 0x11a50}, + {0x11a5c, 0x11a89}, + {0x11a9d, 0x11a9d}, + {0x11ab0, 0x11af8}, + {0x11c00, 0x11c08}, + {0x11c0a, 0x11c2e}, + {0x11c40, 0x11c40}, + {0x11c72, 0x11c8f}, + {0x11d00, 0x11d06}, + {0x11d08, 0x11d09}, + {0x11d0b, 0x11d30}, + {0x11d46, 0x11d46}, + {0x11d60, 0x11d65}, + {0x11d67, 0x11d68}, + {0x11d6a, 0x11d89}, + {0x11d98, 0x11d98}, + {0x11ee0, 0x11ef2}, + {0x11fb0, 0x11fb0}, + {0x12000, 0x12399}, + {0x12480, 0x12543}, + {0x12f90, 0x12ff0}, + {0x13000, 0x1342e}, + {0x14400, 0x14646}, + {0x16800, 0x16a38}, + {0x16a40, 0x16a5e}, + {0x16a70, 0x16abe}, + {0x16ad0, 0x16aed}, + {0x16b00, 0x16b2f}, + {0x16b40, 0x16b43}, + {0x16b63, 0x16b77}, + {0x16b7d, 0x16b8f}, + {0x16e40, 0x16e7f}, + {0x16f00, 0x16f4a}, + {0x16f50, 0x16f50}, + {0x16f93, 0x16f9f}, + {0x16fe0, 0x16fe1}, + {0x16fe3, 0x16fe3}, + {0x17000, 0x187f7}, + {0x18800, 0x18cd5}, + {0x18d00, 0x18d08}, + {0x1aff0, 0x1aff3}, + {0x1aff5, 0x1affb}, + {0x1affd, 0x1affe}, + {0x1b000, 0x1b122}, + {0x1b150, 0x1b152}, + {0x1b164, 0x1b167}, + {0x1b170, 0x1b2fb}, + {0x1bc00, 0x1bc6a}, + {0x1bc70, 0x1bc7c}, + {0x1bc80, 0x1bc88}, + {0x1bc90, 0x1bc99}, + {0x1d400, 0x1d454}, + {0x1d456, 0x1d49c}, + {0x1d49e, 0x1d49f}, + {0x1d4a2, 0x1d4a2}, + {0x1d4a5, 0x1d4a6}, + {0x1d4a9, 0x1d4ac}, + {0x1d4ae, 0x1d4b9}, + {0x1d4bb, 0x1d4bb}, + {0x1d4bd, 0x1d4c3}, + {0x1d4c5, 0x1d505}, + {0x1d507, 0x1d50a}, + {0x1d50d, 0x1d514}, + {0x1d516, 0x1d51c}, + {0x1d51e, 0x1d539}, + {0x1d53b, 0x1d53e}, + {0x1d540, 0x1d544}, + {0x1d546, 0x1d546}, + {0x1d54a, 0x1d550}, + {0x1d552, 0x1d6a5}, + {0x1d6a8, 0x1d6c0}, + {0x1d6c2, 0x1d6da}, + {0x1d6dc, 0x1d6fa}, + {0x1d6fc, 0x1d714}, + {0x1d716, 0x1d734}, + {0x1d736, 0x1d74e}, + {0x1d750, 0x1d76e}, + {0x1d770, 0x1d788}, + {0x1d78a, 0x1d7a8}, + {0x1d7aa, 0x1d7c2}, + {0x1d7c4, 0x1d7cb}, + {0x1df00, 0x1df1e}, + {0x1e100, 0x1e12c}, + {0x1e137, 0x1e13d}, + {0x1e14e, 0x1e14e}, + {0x1e290, 0x1e2ad}, + {0x1e2c0, 0x1e2eb}, + {0x1e7e0, 0x1e7e6}, + {0x1e7e8, 0x1e7eb}, + {0x1e7ed, 0x1e7ee}, + {0x1e7f0, 0x1e7fe}, + {0x1e800, 0x1e8c4}, + {0x1e900, 0x1e943}, + {0x1e94b, 0x1e94b}, + {0x1ee00, 0x1ee03}, + {0x1ee05, 0x1ee1f}, + {0x1ee21, 0x1ee22}, + {0x1ee24, 0x1ee24}, + {0x1ee27, 0x1ee27}, + {0x1ee29, 0x1ee32}, + {0x1ee34, 0x1ee37}, + {0x1ee39, 0x1ee39}, + {0x1ee3b, 0x1ee3b}, + {0x1ee42, 0x1ee42}, + {0x1ee47, 0x1ee47}, + {0x1ee49, 0x1ee49}, + {0x1ee4b, 0x1ee4b}, + {0x1ee4d, 0x1ee4f}, + {0x1ee51, 0x1ee52}, + {0x1ee54, 0x1ee54}, + {0x1ee57, 0x1ee57}, + {0x1ee59, 0x1ee59}, + {0x1ee5b, 0x1ee5b}, + {0x1ee5d, 0x1ee5d}, + {0x1ee5f, 0x1ee5f}, + {0x1ee61, 0x1ee62}, + {0x1ee64, 0x1ee64}, + {0x1ee67, 0x1ee6a}, + {0x1ee6c, 0x1ee72}, + {0x1ee74, 0x1ee77}, + {0x1ee79, 0x1ee7c}, + {0x1ee7e, 0x1ee7e}, + {0x1ee80, 0x1ee89}, + {0x1ee8b, 0x1ee9b}, + {0x1eea1, 0x1eea3}, + {0x1eea5, 0x1eea9}, + {0x1eeab, 0x1eebb}, + {0x20000, 0x2a6df}, + {0x2a700, 0x2b738}, + {0x2b740, 0x2b81d}, + {0x2b820, 0x2cea1}, + {0x2ceb0, 0x2ebe0}, + {0x2f800, 0x2fa1d}, {0x30000, 0x3134a} }; -scm_t_char_set cs_letter = { - 622, - cs_letter_ranges -}; +static const size_t cs_letter_len = 648; -scm_t_char_range cs_digit_ranges[] = { - {0x0030, 0x0039} - , - {0x0660, 0x0669} - , - {0x06f0, 0x06f9} - , - {0x07c0, 0x07c9} - , - {0x0966, 0x096f} - , - {0x09e6, 0x09ef} - , - {0x0a66, 0x0a6f} - , - {0x0ae6, 0x0aef} - , - {0x0b66, 0x0b6f} - , - {0x0be6, 0x0bef} - , - {0x0c66, 0x0c6f} - , - {0x0ce6, 0x0cef} - , - {0x0d66, 0x0d6f} - , - {0x0de6, 0x0def} - , - {0x0e50, 0x0e59} - , - {0x0ed0, 0x0ed9} - , - {0x0f20, 0x0f29} - , - {0x1040, 0x1049} - , - {0x1090, 0x1099} - , - {0x17e0, 0x17e9} - , - {0x1810, 0x1819} - , - {0x1946, 0x194f} - , - {0x19d0, 0x19d9} - , - {0x1a80, 0x1a89} - , - {0x1a90, 0x1a99} - , - {0x1b50, 0x1b59} - , - {0x1bb0, 0x1bb9} - , - {0x1c40, 0x1c49} - , - {0x1c50, 0x1c59} - , - {0xa620, 0xa629} - , - {0xa8d0, 0xa8d9} - , - {0xa900, 0xa909} - , - {0xa9d0, 0xa9d9} - , - {0xa9f0, 0xa9f9} - , - {0xaa50, 0xaa59} - , - {0xabf0, 0xabf9} - , - {0xff10, 0xff19} - , - {0x104a0, 0x104a9} - , - {0x10d30, 0x10d39} - , - {0x11066, 0x1106f} - , - {0x110f0, 0x110f9} - , - {0x11136, 0x1113f} - , - {0x111d0, 0x111d9} - , - {0x112f0, 0x112f9} - , - {0x11450, 0x11459} - , - {0x114d0, 0x114d9} - , - {0x11650, 0x11659} - , - {0x116c0, 0x116c9} - , - {0x11730, 0x11739} - , - {0x118e0, 0x118e9} - , - {0x11950, 0x11959} - , - {0x11c50, 0x11c59} - , - {0x11d50, 0x11d59} - , - {0x11da0, 0x11da9} - , - {0x16a60, 0x16a69} - , - {0x16b50, 0x16b59} - , - {0x1d7ce, 0x1d7ff} - , - {0x1e140, 0x1e149} - , - {0x1e2f0, 0x1e2f9} - , - {0x1e950, 0x1e959} - , +static const scm_t_char_range cs_digit_ranges[] = { + {0x0030, 0x0039}, + {0x0660, 0x0669}, + {0x06f0, 0x06f9}, + {0x07c0, 0x07c9}, + {0x0966, 0x096f}, + {0x09e6, 0x09ef}, + {0x0a66, 0x0a6f}, + {0x0ae6, 0x0aef}, + {0x0b66, 0x0b6f}, + {0x0be6, 0x0bef}, + {0x0c66, 0x0c6f}, + {0x0ce6, 0x0cef}, + {0x0d66, 0x0d6f}, + {0x0de6, 0x0def}, + {0x0e50, 0x0e59}, + {0x0ed0, 0x0ed9}, + {0x0f20, 0x0f29}, + {0x1040, 0x1049}, + {0x1090, 0x1099}, + {0x17e0, 0x17e9}, + {0x1810, 0x1819}, + {0x1946, 0x194f}, + {0x19d0, 0x19d9}, + {0x1a80, 0x1a89}, + {0x1a90, 0x1a99}, + {0x1b50, 0x1b59}, + {0x1bb0, 0x1bb9}, + {0x1c40, 0x1c49}, + {0x1c50, 0x1c59}, + {0xa620, 0xa629}, + {0xa8d0, 0xa8d9}, + {0xa900, 0xa909}, + {0xa9d0, 0xa9d9}, + {0xa9f0, 0xa9f9}, + {0xaa50, 0xaa59}, + {0xabf0, 0xabf9}, + {0xff10, 0xff19}, + {0x104a0, 0x104a9}, + {0x10d30, 0x10d39}, + {0x11066, 0x1106f}, + {0x110f0, 0x110f9}, + {0x11136, 0x1113f}, + {0x111d0, 0x111d9}, + {0x112f0, 0x112f9}, + {0x11450, 0x11459}, + {0x114d0, 0x114d9}, + {0x11650, 0x11659}, + {0x116c0, 0x116c9}, + {0x11730, 0x11739}, + {0x118e0, 0x118e9}, + {0x11950, 0x11959}, + {0x11c50, 0x11c59}, + {0x11d50, 0x11d59}, + {0x11da0, 0x11da9}, + {0x16a60, 0x16a69}, + {0x16ac0, 0x16ac9}, + {0x16b50, 0x16b59}, + {0x1d7ce, 0x1d7ff}, + {0x1e140, 0x1e149}, + {0x1e2f0, 0x1e2f9}, + {0x1e950, 0x1e959}, {0x1fbf0, 0x1fbf9} }; -scm_t_char_set cs_digit = { - 61, - cs_digit_ranges -}; +static const size_t cs_digit_len = 62; -scm_t_char_range cs_hex_digit_ranges[] = { - {0x0030, 0x0039} - , - {0x0041, 0x0046} - , +static const scm_t_char_range cs_hex_digit_ranges[] = { + {0x0030, 0x0039}, + {0x0041, 0x0046}, {0x0061, 0x0066} }; -scm_t_char_set cs_hex_digit = { - 3, - cs_hex_digit_ranges -}; +static const size_t cs_hex_digit_len = 3; -scm_t_char_range cs_letter_plus_digit_ranges[] = { - {0x0030, 0x0039} - , - {0x0041, 0x005a} - , - {0x0061, 0x007a} - , - {0x00aa, 0x00aa} - , - {0x00b5, 0x00b5} - , - {0x00ba, 0x00ba} - , - {0x00c0, 0x00d6} - , - {0x00d8, 0x00f6} - , - {0x00f8, 0x02c1} - , - {0x02c6, 0x02d1} - , - {0x02e0, 0x02e4} - , - {0x02ec, 0x02ec} - , - {0x02ee, 0x02ee} - , - {0x0370, 0x0374} - , - {0x0376, 0x0377} - , - {0x037a, 0x037d} - , - {0x037f, 0x037f} - , - {0x0386, 0x0386} - , - {0x0388, 0x038a} - , - {0x038c, 0x038c} - , - {0x038e, 0x03a1} - , - {0x03a3, 0x03f5} - , - {0x03f7, 0x0481} - , - {0x048a, 0x052f} - , - {0x0531, 0x0556} - , - {0x0559, 0x0559} - , - {0x0560, 0x0588} - , - {0x05d0, 0x05ea} - , - {0x05ef, 0x05f2} - , - {0x0620, 0x064a} - , - {0x0660, 0x0669} - , - {0x066e, 0x066f} - , - {0x0671, 0x06d3} - , - {0x06d5, 0x06d5} - , - {0x06e5, 0x06e6} - , - {0x06ee, 0x06fc} - , - {0x06ff, 0x06ff} - , - {0x0710, 0x0710} - , - {0x0712, 0x072f} - , - {0x074d, 0x07a5} - , - {0x07b1, 0x07b1} - , - {0x07c0, 0x07ea} - , - {0x07f4, 0x07f5} - , - {0x07fa, 0x07fa} - , - {0x0800, 0x0815} - , - {0x081a, 0x081a} - , - {0x0824, 0x0824} - , - {0x0828, 0x0828} - , - {0x0840, 0x0858} - , - {0x0860, 0x086a} - , - {0x08a0, 0x08b4} - , - {0x08b6, 0x08c7} - , - {0x0904, 0x0939} - , - {0x093d, 0x093d} - , - {0x0950, 0x0950} - , - {0x0958, 0x0961} - , - {0x0966, 0x096f} - , - {0x0971, 0x0980} - , - {0x0985, 0x098c} - , - {0x098f, 0x0990} - , - {0x0993, 0x09a8} - , - {0x09aa, 0x09b0} - , - {0x09b2, 0x09b2} - , - {0x09b6, 0x09b9} - , - {0x09bd, 0x09bd} - , - {0x09ce, 0x09ce} - , - {0x09dc, 0x09dd} - , - {0x09df, 0x09e1} - , - {0x09e6, 0x09f1} - , - {0x09fc, 0x09fc} - , - {0x0a05, 0x0a0a} - , - {0x0a0f, 0x0a10} - , - {0x0a13, 0x0a28} - , - {0x0a2a, 0x0a30} - , - {0x0a32, 0x0a33} - , - {0x0a35, 0x0a36} - , - {0x0a38, 0x0a39} - , - {0x0a59, 0x0a5c} - , - {0x0a5e, 0x0a5e} - , - {0x0a66, 0x0a6f} - , - {0x0a72, 0x0a74} - , - {0x0a85, 0x0a8d} - , - {0x0a8f, 0x0a91} - , - {0x0a93, 0x0aa8} - , - {0x0aaa, 0x0ab0} - , - {0x0ab2, 0x0ab3} - , - {0x0ab5, 0x0ab9} - , - {0x0abd, 0x0abd} - , - {0x0ad0, 0x0ad0} - , - {0x0ae0, 0x0ae1} - , - {0x0ae6, 0x0aef} - , - {0x0af9, 0x0af9} - , - {0x0b05, 0x0b0c} - , - {0x0b0f, 0x0b10} - , - {0x0b13, 0x0b28} - , - {0x0b2a, 0x0b30} - , - {0x0b32, 0x0b33} - , - {0x0b35, 0x0b39} - , - {0x0b3d, 0x0b3d} - , - {0x0b5c, 0x0b5d} - , - {0x0b5f, 0x0b61} - , - {0x0b66, 0x0b6f} - , - {0x0b71, 0x0b71} - , - {0x0b83, 0x0b83} - , - {0x0b85, 0x0b8a} - , - {0x0b8e, 0x0b90} - , - {0x0b92, 0x0b95} - , - {0x0b99, 0x0b9a} - , - {0x0b9c, 0x0b9c} - , - {0x0b9e, 0x0b9f} - , - {0x0ba3, 0x0ba4} - , - {0x0ba8, 0x0baa} - , - {0x0bae, 0x0bb9} - , - {0x0bd0, 0x0bd0} - , - {0x0be6, 0x0bef} - , - {0x0c05, 0x0c0c} - , - {0x0c0e, 0x0c10} - , - {0x0c12, 0x0c28} - , - {0x0c2a, 0x0c39} - , - {0x0c3d, 0x0c3d} - , - {0x0c58, 0x0c5a} - , - {0x0c60, 0x0c61} - , - {0x0c66, 0x0c6f} - , - {0x0c80, 0x0c80} - , - {0x0c85, 0x0c8c} - , - {0x0c8e, 0x0c90} - , - {0x0c92, 0x0ca8} - , - {0x0caa, 0x0cb3} - , - {0x0cb5, 0x0cb9} - , - {0x0cbd, 0x0cbd} - , - {0x0cde, 0x0cde} - , - {0x0ce0, 0x0ce1} - , - {0x0ce6, 0x0cef} - , - {0x0cf1, 0x0cf2} - , - {0x0d04, 0x0d0c} - , - {0x0d0e, 0x0d10} - , - {0x0d12, 0x0d3a} - , - {0x0d3d, 0x0d3d} - , - {0x0d4e, 0x0d4e} - , - {0x0d54, 0x0d56} - , - {0x0d5f, 0x0d61} - , - {0x0d66, 0x0d6f} - , - {0x0d7a, 0x0d7f} - , - {0x0d85, 0x0d96} - , - {0x0d9a, 0x0db1} - , - {0x0db3, 0x0dbb} - , - {0x0dbd, 0x0dbd} - , - {0x0dc0, 0x0dc6} - , - {0x0de6, 0x0def} - , - {0x0e01, 0x0e30} - , - {0x0e32, 0x0e33} - , - {0x0e40, 0x0e46} - , - {0x0e50, 0x0e59} - , - {0x0e81, 0x0e82} - , - {0x0e84, 0x0e84} - , - {0x0e86, 0x0e8a} - , - {0x0e8c, 0x0ea3} - , - {0x0ea5, 0x0ea5} - , - {0x0ea7, 0x0eb0} - , - {0x0eb2, 0x0eb3} - , - {0x0ebd, 0x0ebd} - , - {0x0ec0, 0x0ec4} - , - {0x0ec6, 0x0ec6} - , - {0x0ed0, 0x0ed9} - , - {0x0edc, 0x0edf} - , - {0x0f00, 0x0f00} - , - {0x0f20, 0x0f29} - , - {0x0f40, 0x0f47} - , - {0x0f49, 0x0f6c} - , - {0x0f88, 0x0f8c} - , - {0x1000, 0x102a} - , - {0x103f, 0x1049} - , - {0x1050, 0x1055} - , - {0x105a, 0x105d} - , - {0x1061, 0x1061} - , - {0x1065, 0x1066} - , - {0x106e, 0x1070} - , - {0x1075, 0x1081} - , - {0x108e, 0x108e} - , - {0x1090, 0x1099} - , - {0x10a0, 0x10c5} - , - {0x10c7, 0x10c7} - , - {0x10cd, 0x10cd} - , - {0x10d0, 0x10fa} - , - {0x10fc, 0x1248} - , - {0x124a, 0x124d} - , - {0x1250, 0x1256} - , - {0x1258, 0x1258} - , - {0x125a, 0x125d} - , - {0x1260, 0x1288} - , - {0x128a, 0x128d} - , - {0x1290, 0x12b0} - , - {0x12b2, 0x12b5} - , - {0x12b8, 0x12be} - , - {0x12c0, 0x12c0} - , - {0x12c2, 0x12c5} - , - {0x12c8, 0x12d6} - , - {0x12d8, 0x1310} - , - {0x1312, 0x1315} - , - {0x1318, 0x135a} - , - {0x1380, 0x138f} - , - {0x13a0, 0x13f5} - , - {0x13f8, 0x13fd} - , - {0x1401, 0x166c} - , - {0x166f, 0x167f} - , - {0x1681, 0x169a} - , - {0x16a0, 0x16ea} - , - {0x16f1, 0x16f8} - , - {0x1700, 0x170c} - , - {0x170e, 0x1711} - , - {0x1720, 0x1731} - , - {0x1740, 0x1751} - , - {0x1760, 0x176c} - , - {0x176e, 0x1770} - , - {0x1780, 0x17b3} - , - {0x17d7, 0x17d7} - , - {0x17dc, 0x17dc} - , - {0x17e0, 0x17e9} - , - {0x1810, 0x1819} - , - {0x1820, 0x1878} - , - {0x1880, 0x1884} - , - {0x1887, 0x18a8} - , - {0x18aa, 0x18aa} - , - {0x18b0, 0x18f5} - , - {0x1900, 0x191e} - , - {0x1946, 0x196d} - , - {0x1970, 0x1974} - , - {0x1980, 0x19ab} - , - {0x19b0, 0x19c9} - , - {0x19d0, 0x19d9} - , - {0x1a00, 0x1a16} - , - {0x1a20, 0x1a54} - , - {0x1a80, 0x1a89} - , - {0x1a90, 0x1a99} - , - {0x1aa7, 0x1aa7} - , - {0x1b05, 0x1b33} - , - {0x1b45, 0x1b4b} - , - {0x1b50, 0x1b59} - , - {0x1b83, 0x1ba0} - , - {0x1bae, 0x1be5} - , - {0x1c00, 0x1c23} - , - {0x1c40, 0x1c49} - , - {0x1c4d, 0x1c7d} - , - {0x1c80, 0x1c88} - , - {0x1c90, 0x1cba} - , - {0x1cbd, 0x1cbf} - , - {0x1ce9, 0x1cec} - , - {0x1cee, 0x1cf3} - , - {0x1cf5, 0x1cf6} - , - {0x1cfa, 0x1cfa} - , - {0x1d00, 0x1dbf} - , - {0x1e00, 0x1f15} - , - {0x1f18, 0x1f1d} - , - {0x1f20, 0x1f45} - , - {0x1f48, 0x1f4d} - , - {0x1f50, 0x1f57} - , - {0x1f59, 0x1f59} - , - {0x1f5b, 0x1f5b} - , - {0x1f5d, 0x1f5d} - , - {0x1f5f, 0x1f7d} - , - {0x1f80, 0x1fb4} - , - {0x1fb6, 0x1fbc} - , - {0x1fbe, 0x1fbe} - , - {0x1fc2, 0x1fc4} - , - {0x1fc6, 0x1fcc} - , - {0x1fd0, 0x1fd3} - , - {0x1fd6, 0x1fdb} - , - {0x1fe0, 0x1fec} - , - {0x1ff2, 0x1ff4} - , - {0x1ff6, 0x1ffc} - , - {0x2071, 0x2071} - , - {0x207f, 0x207f} - , - {0x2090, 0x209c} - , - {0x2102, 0x2102} - , - {0x2107, 0x2107} - , - {0x210a, 0x2113} - , - {0x2115, 0x2115} - , - {0x2119, 0x211d} - , - {0x2124, 0x2124} - , - {0x2126, 0x2126} - , - {0x2128, 0x2128} - , - {0x212a, 0x212d} - , - {0x212f, 0x2139} - , - {0x213c, 0x213f} - , - {0x2145, 0x2149} - , - {0x214e, 0x214e} - , - {0x2183, 0x2184} - , - {0x2c00, 0x2c2e} - , - {0x2c30, 0x2c5e} - , - {0x2c60, 0x2ce4} - , - {0x2ceb, 0x2cee} - , - {0x2cf2, 0x2cf3} - , - {0x2d00, 0x2d25} - , - {0x2d27, 0x2d27} - , - {0x2d2d, 0x2d2d} - , - {0x2d30, 0x2d67} - , - {0x2d6f, 0x2d6f} - , - {0x2d80, 0x2d96} - , - {0x2da0, 0x2da6} - , - {0x2da8, 0x2dae} - , - {0x2db0, 0x2db6} - , - {0x2db8, 0x2dbe} - , - {0x2dc0, 0x2dc6} - , - {0x2dc8, 0x2dce} - , - {0x2dd0, 0x2dd6} - , - {0x2dd8, 0x2dde} - , - {0x2e2f, 0x2e2f} - , - {0x3005, 0x3006} - , - {0x3031, 0x3035} - , - {0x303b, 0x303c} - , - {0x3041, 0x3096} - , - {0x309d, 0x309f} - , - {0x30a1, 0x30fa} - , - {0x30fc, 0x30ff} - , - {0x3105, 0x312f} - , - {0x3131, 0x318e} - , - {0x31a0, 0x31bf} - , - {0x31f0, 0x31ff} - , - {0x3400, 0x4dbf} - , - {0x4e00, 0x9ffc} - , - {0xa000, 0xa48c} - , - {0xa4d0, 0xa4fd} - , - {0xa500, 0xa60c} - , - {0xa610, 0xa62b} - , - {0xa640, 0xa66e} - , - {0xa67f, 0xa69d} - , - {0xa6a0, 0xa6e5} - , - {0xa717, 0xa71f} - , - {0xa722, 0xa788} - , - {0xa78b, 0xa7bf} - , - {0xa7c2, 0xa7ca} - , - {0xa7f5, 0xa801} - , - {0xa803, 0xa805} - , - {0xa807, 0xa80a} - , - {0xa80c, 0xa822} - , - {0xa840, 0xa873} - , - {0xa882, 0xa8b3} - , - {0xa8d0, 0xa8d9} - , - {0xa8f2, 0xa8f7} - , - {0xa8fb, 0xa8fb} - , - {0xa8fd, 0xa8fe} - , - {0xa900, 0xa925} - , - {0xa930, 0xa946} - , - {0xa960, 0xa97c} - , - {0xa984, 0xa9b2} - , - {0xa9cf, 0xa9d9} - , - {0xa9e0, 0xa9e4} - , - {0xa9e6, 0xa9fe} - , - {0xaa00, 0xaa28} - , - {0xaa40, 0xaa42} - , - {0xaa44, 0xaa4b} - , - {0xaa50, 0xaa59} - , - {0xaa60, 0xaa76} - , - {0xaa7a, 0xaa7a} - , - {0xaa7e, 0xaaaf} - , - {0xaab1, 0xaab1} - , - {0xaab5, 0xaab6} - , - {0xaab9, 0xaabd} - , - {0xaac0, 0xaac0} - , - {0xaac2, 0xaac2} - , - {0xaadb, 0xaadd} - , - {0xaae0, 0xaaea} - , - {0xaaf2, 0xaaf4} - , - {0xab01, 0xab06} - , - {0xab09, 0xab0e} - , - {0xab11, 0xab16} - , - {0xab20, 0xab26} - , - {0xab28, 0xab2e} - , - {0xab30, 0xab5a} - , - {0xab5c, 0xab69} - , - {0xab70, 0xabe2} - , - {0xabf0, 0xabf9} - , - {0xac00, 0xd7a3} - , - {0xd7b0, 0xd7c6} - , - {0xd7cb, 0xd7fb} - , - {0xf900, 0xfa6d} - , - {0xfa70, 0xfad9} - , - {0xfb00, 0xfb06} - , - {0xfb13, 0xfb17} - , - {0xfb1d, 0xfb1d} - , - {0xfb1f, 0xfb28} - , - {0xfb2a, 0xfb36} - , - {0xfb38, 0xfb3c} - , - {0xfb3e, 0xfb3e} - , - {0xfb40, 0xfb41} - , - {0xfb43, 0xfb44} - , - {0xfb46, 0xfbb1} - , - {0xfbd3, 0xfd3d} - , - {0xfd50, 0xfd8f} - , - {0xfd92, 0xfdc7} - , - {0xfdf0, 0xfdfb} - , - {0xfe70, 0xfe74} - , - {0xfe76, 0xfefc} - , - {0xff10, 0xff19} - , - {0xff21, 0xff3a} - , - {0xff41, 0xff5a} - , - {0xff66, 0xffbe} - , - {0xffc2, 0xffc7} - , - {0xffca, 0xffcf} - , - {0xffd2, 0xffd7} - , - {0xffda, 0xffdc} - , - {0x10000, 0x1000b} - , - {0x1000d, 0x10026} - , - {0x10028, 0x1003a} - , - {0x1003c, 0x1003d} - , - {0x1003f, 0x1004d} - , - {0x10050, 0x1005d} - , - {0x10080, 0x100fa} - , - {0x10280, 0x1029c} - , - {0x102a0, 0x102d0} - , - {0x10300, 0x1031f} - , - {0x1032d, 0x10340} - , - {0x10342, 0x10349} - , - {0x10350, 0x10375} - , - {0x10380, 0x1039d} - , - {0x103a0, 0x103c3} - , - {0x103c8, 0x103cf} - , - {0x10400, 0x1049d} - , - {0x104a0, 0x104a9} - , - {0x104b0, 0x104d3} - , - {0x104d8, 0x104fb} - , - {0x10500, 0x10527} - , - {0x10530, 0x10563} - , - {0x10600, 0x10736} - , - {0x10740, 0x10755} - , - {0x10760, 0x10767} - , - {0x10800, 0x10805} - , - {0x10808, 0x10808} - , - {0x1080a, 0x10835} - , - {0x10837, 0x10838} - , - {0x1083c, 0x1083c} - , - {0x1083f, 0x10855} - , - {0x10860, 0x10876} - , - {0x10880, 0x1089e} - , - {0x108e0, 0x108f2} - , - {0x108f4, 0x108f5} - , - {0x10900, 0x10915} - , - {0x10920, 0x10939} - , - {0x10980, 0x109b7} - , - {0x109be, 0x109bf} - , - {0x10a00, 0x10a00} - , - {0x10a10, 0x10a13} - , - {0x10a15, 0x10a17} - , - {0x10a19, 0x10a35} - , - {0x10a60, 0x10a7c} - , - {0x10a80, 0x10a9c} - , - {0x10ac0, 0x10ac7} - , - {0x10ac9, 0x10ae4} - , - {0x10b00, 0x10b35} - , - {0x10b40, 0x10b55} - , - {0x10b60, 0x10b72} - , - {0x10b80, 0x10b91} - , - {0x10c00, 0x10c48} - , - {0x10c80, 0x10cb2} - , - {0x10cc0, 0x10cf2} - , - {0x10d00, 0x10d23} - , - {0x10d30, 0x10d39} - , - {0x10e80, 0x10ea9} - , - {0x10eb0, 0x10eb1} - , - {0x10f00, 0x10f1c} - , - {0x10f27, 0x10f27} - , - {0x10f30, 0x10f45} - , - {0x10fb0, 0x10fc4} - , - {0x10fe0, 0x10ff6} - , - {0x11003, 0x11037} - , - {0x11066, 0x1106f} - , - {0x11083, 0x110af} - , - {0x110d0, 0x110e8} - , - {0x110f0, 0x110f9} - , - {0x11103, 0x11126} - , - {0x11136, 0x1113f} - , - {0x11144, 0x11144} - , - {0x11147, 0x11147} - , - {0x11150, 0x11172} - , - {0x11176, 0x11176} - , - {0x11183, 0x111b2} - , - {0x111c1, 0x111c4} - , - {0x111d0, 0x111da} - , - {0x111dc, 0x111dc} - , - {0x11200, 0x11211} - , - {0x11213, 0x1122b} - , - {0x11280, 0x11286} - , - {0x11288, 0x11288} - , - {0x1128a, 0x1128d} - , - {0x1128f, 0x1129d} - , - {0x1129f, 0x112a8} - , - {0x112b0, 0x112de} - , - {0x112f0, 0x112f9} - , - {0x11305, 0x1130c} - , - {0x1130f, 0x11310} - , - {0x11313, 0x11328} - , - {0x1132a, 0x11330} - , - {0x11332, 0x11333} - , - {0x11335, 0x11339} - , - {0x1133d, 0x1133d} - , - {0x11350, 0x11350} - , - {0x1135d, 0x11361} - , - {0x11400, 0x11434} - , - {0x11447, 0x1144a} - , - {0x11450, 0x11459} - , - {0x1145f, 0x11461} - , - {0x11480, 0x114af} - , - {0x114c4, 0x114c5} - , - {0x114c7, 0x114c7} - , - {0x114d0, 0x114d9} - , - {0x11580, 0x115ae} - , - {0x115d8, 0x115db} - , - {0x11600, 0x1162f} - , - {0x11644, 0x11644} - , - {0x11650, 0x11659} - , - {0x11680, 0x116aa} - , - {0x116b8, 0x116b8} - , - {0x116c0, 0x116c9} - , - {0x11700, 0x1171a} - , - {0x11730, 0x11739} - , - {0x11800, 0x1182b} - , - {0x118a0, 0x118e9} - , - {0x118ff, 0x11906} - , - {0x11909, 0x11909} - , - {0x1190c, 0x11913} - , - {0x11915, 0x11916} - , - {0x11918, 0x1192f} - , - {0x1193f, 0x1193f} - , - {0x11941, 0x11941} - , - {0x11950, 0x11959} - , - {0x119a0, 0x119a7} - , - {0x119aa, 0x119d0} - , - {0x119e1, 0x119e1} - , - {0x119e3, 0x119e3} - , - {0x11a00, 0x11a00} - , - {0x11a0b, 0x11a32} - , - {0x11a3a, 0x11a3a} - , - {0x11a50, 0x11a50} - , - {0x11a5c, 0x11a89} - , - {0x11a9d, 0x11a9d} - , - {0x11ac0, 0x11af8} - , - {0x11c00, 0x11c08} - , - {0x11c0a, 0x11c2e} - , - {0x11c40, 0x11c40} - , - {0x11c50, 0x11c59} - , - {0x11c72, 0x11c8f} - , - {0x11d00, 0x11d06} - , - {0x11d08, 0x11d09} - , - {0x11d0b, 0x11d30} - , - {0x11d46, 0x11d46} - , - {0x11d50, 0x11d59} - , - {0x11d60, 0x11d65} - , - {0x11d67, 0x11d68} - , - {0x11d6a, 0x11d89} - , - {0x11d98, 0x11d98} - , - {0x11da0, 0x11da9} - , - {0x11ee0, 0x11ef2} - , - {0x11fb0, 0x11fb0} - , - {0x12000, 0x12399} - , - {0x12480, 0x12543} - , - {0x13000, 0x1342e} - , - {0x14400, 0x14646} - , - {0x16800, 0x16a38} - , - {0x16a40, 0x16a5e} - , - {0x16a60, 0x16a69} - , - {0x16ad0, 0x16aed} - , - {0x16b00, 0x16b2f} - , - {0x16b40, 0x16b43} - , - {0x16b50, 0x16b59} - , - {0x16b63, 0x16b77} - , - {0x16b7d, 0x16b8f} - , - {0x16e40, 0x16e7f} - , - {0x16f00, 0x16f4a} - , - {0x16f50, 0x16f50} - , - {0x16f93, 0x16f9f} - , - {0x16fe0, 0x16fe1} - , - {0x16fe3, 0x16fe3} - , - {0x17000, 0x187f7} - , - {0x18800, 0x18cd5} - , - {0x18d00, 0x18d08} - , - {0x1b000, 0x1b11e} - , - {0x1b150, 0x1b152} - , - {0x1b164, 0x1b167} - , - {0x1b170, 0x1b2fb} - , - {0x1bc00, 0x1bc6a} - , - {0x1bc70, 0x1bc7c} - , - {0x1bc80, 0x1bc88} - , - {0x1bc90, 0x1bc99} - , - {0x1d400, 0x1d454} - , - {0x1d456, 0x1d49c} - , - {0x1d49e, 0x1d49f} - , - {0x1d4a2, 0x1d4a2} - , - {0x1d4a5, 0x1d4a6} - , - {0x1d4a9, 0x1d4ac} - , - {0x1d4ae, 0x1d4b9} - , - {0x1d4bb, 0x1d4bb} - , - {0x1d4bd, 0x1d4c3} - , - {0x1d4c5, 0x1d505} - , - {0x1d507, 0x1d50a} - , - {0x1d50d, 0x1d514} - , - {0x1d516, 0x1d51c} - , - {0x1d51e, 0x1d539} - , - {0x1d53b, 0x1d53e} - , - {0x1d540, 0x1d544} - , - {0x1d546, 0x1d546} - , - {0x1d54a, 0x1d550} - , - {0x1d552, 0x1d6a5} - , - {0x1d6a8, 0x1d6c0} - , - {0x1d6c2, 0x1d6da} - , - {0x1d6dc, 0x1d6fa} - , - {0x1d6fc, 0x1d714} - , - {0x1d716, 0x1d734} - , - {0x1d736, 0x1d74e} - , - {0x1d750, 0x1d76e} - , - {0x1d770, 0x1d788} - , - {0x1d78a, 0x1d7a8} - , - {0x1d7aa, 0x1d7c2} - , - {0x1d7c4, 0x1d7cb} - , - {0x1d7ce, 0x1d7ff} - , - {0x1e100, 0x1e12c} - , - {0x1e137, 0x1e13d} - , - {0x1e140, 0x1e149} - , - {0x1e14e, 0x1e14e} - , - {0x1e2c0, 0x1e2eb} - , - {0x1e2f0, 0x1e2f9} - , - {0x1e800, 0x1e8c4} - , - {0x1e900, 0x1e943} - , - {0x1e94b, 0x1e94b} - , - {0x1e950, 0x1e959} - , - {0x1ee00, 0x1ee03} - , - {0x1ee05, 0x1ee1f} - , - {0x1ee21, 0x1ee22} - , - {0x1ee24, 0x1ee24} - , - {0x1ee27, 0x1ee27} - , - {0x1ee29, 0x1ee32} - , - {0x1ee34, 0x1ee37} - , - {0x1ee39, 0x1ee39} - , - {0x1ee3b, 0x1ee3b} - , - {0x1ee42, 0x1ee42} - , - {0x1ee47, 0x1ee47} - , - {0x1ee49, 0x1ee49} - , - {0x1ee4b, 0x1ee4b} - , - {0x1ee4d, 0x1ee4f} - , - {0x1ee51, 0x1ee52} - , - {0x1ee54, 0x1ee54} - , - {0x1ee57, 0x1ee57} - , - {0x1ee59, 0x1ee59} - , - {0x1ee5b, 0x1ee5b} - , - {0x1ee5d, 0x1ee5d} - , - {0x1ee5f, 0x1ee5f} - , - {0x1ee61, 0x1ee62} - , - {0x1ee64, 0x1ee64} - , - {0x1ee67, 0x1ee6a} - , - {0x1ee6c, 0x1ee72} - , - {0x1ee74, 0x1ee77} - , - {0x1ee79, 0x1ee7c} - , - {0x1ee7e, 0x1ee7e} - , - {0x1ee80, 0x1ee89} - , - {0x1ee8b, 0x1ee9b} - , - {0x1eea1, 0x1eea3} - , - {0x1eea5, 0x1eea9} - , - {0x1eeab, 0x1eebb} - , - {0x1fbf0, 0x1fbf9} - , - {0x20000, 0x2a6dd} - , - {0x2a700, 0x2b734} - , - {0x2b740, 0x2b81d} - , - {0x2b820, 0x2cea1} - , - {0x2ceb0, 0x2ebe0} - , - {0x2f800, 0x2fa1d} - , +static const scm_t_char_range cs_letter_plus_digit_ranges[] = { + {0x0030, 0x0039}, + {0x0041, 0x005a}, + {0x0061, 0x007a}, + {0x00aa, 0x00aa}, + {0x00b5, 0x00b5}, + {0x00ba, 0x00ba}, + {0x00c0, 0x00d6}, + {0x00d8, 0x00f6}, + {0x00f8, 0x02c1}, + {0x02c6, 0x02d1}, + {0x02e0, 0x02e4}, + {0x02ec, 0x02ec}, + {0x02ee, 0x02ee}, + {0x0370, 0x0374}, + {0x0376, 0x0377}, + {0x037a, 0x037d}, + {0x037f, 0x037f}, + {0x0386, 0x0386}, + {0x0388, 0x038a}, + {0x038c, 0x038c}, + {0x038e, 0x03a1}, + {0x03a3, 0x03f5}, + {0x03f7, 0x0481}, + {0x048a, 0x052f}, + {0x0531, 0x0556}, + {0x0559, 0x0559}, + {0x0560, 0x0588}, + {0x05d0, 0x05ea}, + {0x05ef, 0x05f2}, + {0x0620, 0x064a}, + {0x0660, 0x0669}, + {0x066e, 0x066f}, + {0x0671, 0x06d3}, + {0x06d5, 0x06d5}, + {0x06e5, 0x06e6}, + {0x06ee, 0x06fc}, + {0x06ff, 0x06ff}, + {0x0710, 0x0710}, + {0x0712, 0x072f}, + {0x074d, 0x07a5}, + {0x07b1, 0x07b1}, + {0x07c0, 0x07ea}, + {0x07f4, 0x07f5}, + {0x07fa, 0x07fa}, + {0x0800, 0x0815}, + {0x081a, 0x081a}, + {0x0824, 0x0824}, + {0x0828, 0x0828}, + {0x0840, 0x0858}, + {0x0860, 0x086a}, + {0x0870, 0x0887}, + {0x0889, 0x088e}, + {0x08a0, 0x08c9}, + {0x0904, 0x0939}, + {0x093d, 0x093d}, + {0x0950, 0x0950}, + {0x0958, 0x0961}, + {0x0966, 0x096f}, + {0x0971, 0x0980}, + {0x0985, 0x098c}, + {0x098f, 0x0990}, + {0x0993, 0x09a8}, + {0x09aa, 0x09b0}, + {0x09b2, 0x09b2}, + {0x09b6, 0x09b9}, + {0x09bd, 0x09bd}, + {0x09ce, 0x09ce}, + {0x09dc, 0x09dd}, + {0x09df, 0x09e1}, + {0x09e6, 0x09f1}, + {0x09fc, 0x09fc}, + {0x0a05, 0x0a0a}, + {0x0a0f, 0x0a10}, + {0x0a13, 0x0a28}, + {0x0a2a, 0x0a30}, + {0x0a32, 0x0a33}, + {0x0a35, 0x0a36}, + {0x0a38, 0x0a39}, + {0x0a59, 0x0a5c}, + {0x0a5e, 0x0a5e}, + {0x0a66, 0x0a6f}, + {0x0a72, 0x0a74}, + {0x0a85, 0x0a8d}, + {0x0a8f, 0x0a91}, + {0x0a93, 0x0aa8}, + {0x0aaa, 0x0ab0}, + {0x0ab2, 0x0ab3}, + {0x0ab5, 0x0ab9}, + {0x0abd, 0x0abd}, + {0x0ad0, 0x0ad0}, + {0x0ae0, 0x0ae1}, + {0x0ae6, 0x0aef}, + {0x0af9, 0x0af9}, + {0x0b05, 0x0b0c}, + {0x0b0f, 0x0b10}, + {0x0b13, 0x0b28}, + {0x0b2a, 0x0b30}, + {0x0b32, 0x0b33}, + {0x0b35, 0x0b39}, + {0x0b3d, 0x0b3d}, + {0x0b5c, 0x0b5d}, + {0x0b5f, 0x0b61}, + {0x0b66, 0x0b6f}, + {0x0b71, 0x0b71}, + {0x0b83, 0x0b83}, + {0x0b85, 0x0b8a}, + {0x0b8e, 0x0b90}, + {0x0b92, 0x0b95}, + {0x0b99, 0x0b9a}, + {0x0b9c, 0x0b9c}, + {0x0b9e, 0x0b9f}, + {0x0ba3, 0x0ba4}, + {0x0ba8, 0x0baa}, + {0x0bae, 0x0bb9}, + {0x0bd0, 0x0bd0}, + {0x0be6, 0x0bef}, + {0x0c05, 0x0c0c}, + {0x0c0e, 0x0c10}, + {0x0c12, 0x0c28}, + {0x0c2a, 0x0c39}, + {0x0c3d, 0x0c3d}, + {0x0c58, 0x0c5a}, + {0x0c5d, 0x0c5d}, + {0x0c60, 0x0c61}, + {0x0c66, 0x0c6f}, + {0x0c80, 0x0c80}, + {0x0c85, 0x0c8c}, + {0x0c8e, 0x0c90}, + {0x0c92, 0x0ca8}, + {0x0caa, 0x0cb3}, + {0x0cb5, 0x0cb9}, + {0x0cbd, 0x0cbd}, + {0x0cdd, 0x0cde}, + {0x0ce0, 0x0ce1}, + {0x0ce6, 0x0cef}, + {0x0cf1, 0x0cf2}, + {0x0d04, 0x0d0c}, + {0x0d0e, 0x0d10}, + {0x0d12, 0x0d3a}, + {0x0d3d, 0x0d3d}, + {0x0d4e, 0x0d4e}, + {0x0d54, 0x0d56}, + {0x0d5f, 0x0d61}, + {0x0d66, 0x0d6f}, + {0x0d7a, 0x0d7f}, + {0x0d85, 0x0d96}, + {0x0d9a, 0x0db1}, + {0x0db3, 0x0dbb}, + {0x0dbd, 0x0dbd}, + {0x0dc0, 0x0dc6}, + {0x0de6, 0x0def}, + {0x0e01, 0x0e30}, + {0x0e32, 0x0e33}, + {0x0e40, 0x0e46}, + {0x0e50, 0x0e59}, + {0x0e81, 0x0e82}, + {0x0e84, 0x0e84}, + {0x0e86, 0x0e8a}, + {0x0e8c, 0x0ea3}, + {0x0ea5, 0x0ea5}, + {0x0ea7, 0x0eb0}, + {0x0eb2, 0x0eb3}, + {0x0ebd, 0x0ebd}, + {0x0ec0, 0x0ec4}, + {0x0ec6, 0x0ec6}, + {0x0ed0, 0x0ed9}, + {0x0edc, 0x0edf}, + {0x0f00, 0x0f00}, + {0x0f20, 0x0f29}, + {0x0f40, 0x0f47}, + {0x0f49, 0x0f6c}, + {0x0f88, 0x0f8c}, + {0x1000, 0x102a}, + {0x103f, 0x1049}, + {0x1050, 0x1055}, + {0x105a, 0x105d}, + {0x1061, 0x1061}, + {0x1065, 0x1066}, + {0x106e, 0x1070}, + {0x1075, 0x1081}, + {0x108e, 0x108e}, + {0x1090, 0x1099}, + {0x10a0, 0x10c5}, + {0x10c7, 0x10c7}, + {0x10cd, 0x10cd}, + {0x10d0, 0x10fa}, + {0x10fc, 0x1248}, + {0x124a, 0x124d}, + {0x1250, 0x1256}, + {0x1258, 0x1258}, + {0x125a, 0x125d}, + {0x1260, 0x1288}, + {0x128a, 0x128d}, + {0x1290, 0x12b0}, + {0x12b2, 0x12b5}, + {0x12b8, 0x12be}, + {0x12c0, 0x12c0}, + {0x12c2, 0x12c5}, + {0x12c8, 0x12d6}, + {0x12d8, 0x1310}, + {0x1312, 0x1315}, + {0x1318, 0x135a}, + {0x1380, 0x138f}, + {0x13a0, 0x13f5}, + {0x13f8, 0x13fd}, + {0x1401, 0x166c}, + {0x166f, 0x167f}, + {0x1681, 0x169a}, + {0x16a0, 0x16ea}, + {0x16f1, 0x16f8}, + {0x1700, 0x1711}, + {0x171f, 0x1731}, + {0x1740, 0x1751}, + {0x1760, 0x176c}, + {0x176e, 0x1770}, + {0x1780, 0x17b3}, + {0x17d7, 0x17d7}, + {0x17dc, 0x17dc}, + {0x17e0, 0x17e9}, + {0x1810, 0x1819}, + {0x1820, 0x1878}, + {0x1880, 0x1884}, + {0x1887, 0x18a8}, + {0x18aa, 0x18aa}, + {0x18b0, 0x18f5}, + {0x1900, 0x191e}, + {0x1946, 0x196d}, + {0x1970, 0x1974}, + {0x1980, 0x19ab}, + {0x19b0, 0x19c9}, + {0x19d0, 0x19d9}, + {0x1a00, 0x1a16}, + {0x1a20, 0x1a54}, + {0x1a80, 0x1a89}, + {0x1a90, 0x1a99}, + {0x1aa7, 0x1aa7}, + {0x1b05, 0x1b33}, + {0x1b45, 0x1b4c}, + {0x1b50, 0x1b59}, + {0x1b83, 0x1ba0}, + {0x1bae, 0x1be5}, + {0x1c00, 0x1c23}, + {0x1c40, 0x1c49}, + {0x1c4d, 0x1c7d}, + {0x1c80, 0x1c88}, + {0x1c90, 0x1cba}, + {0x1cbd, 0x1cbf}, + {0x1ce9, 0x1cec}, + {0x1cee, 0x1cf3}, + {0x1cf5, 0x1cf6}, + {0x1cfa, 0x1cfa}, + {0x1d00, 0x1dbf}, + {0x1e00, 0x1f15}, + {0x1f18, 0x1f1d}, + {0x1f20, 0x1f45}, + {0x1f48, 0x1f4d}, + {0x1f50, 0x1f57}, + {0x1f59, 0x1f59}, + {0x1f5b, 0x1f5b}, + {0x1f5d, 0x1f5d}, + {0x1f5f, 0x1f7d}, + {0x1f80, 0x1fb4}, + {0x1fb6, 0x1fbc}, + {0x1fbe, 0x1fbe}, + {0x1fc2, 0x1fc4}, + {0x1fc6, 0x1fcc}, + {0x1fd0, 0x1fd3}, + {0x1fd6, 0x1fdb}, + {0x1fe0, 0x1fec}, + {0x1ff2, 0x1ff4}, + {0x1ff6, 0x1ffc}, + {0x2071, 0x2071}, + {0x207f, 0x207f}, + {0x2090, 0x209c}, + {0x2102, 0x2102}, + {0x2107, 0x2107}, + {0x210a, 0x2113}, + {0x2115, 0x2115}, + {0x2119, 0x211d}, + {0x2124, 0x2124}, + {0x2126, 0x2126}, + {0x2128, 0x2128}, + {0x212a, 0x212d}, + {0x212f, 0x2139}, + {0x213c, 0x213f}, + {0x2145, 0x2149}, + {0x214e, 0x214e}, + {0x2183, 0x2184}, + {0x2c00, 0x2ce4}, + {0x2ceb, 0x2cee}, + {0x2cf2, 0x2cf3}, + {0x2d00, 0x2d25}, + {0x2d27, 0x2d27}, + {0x2d2d, 0x2d2d}, + {0x2d30, 0x2d67}, + {0x2d6f, 0x2d6f}, + {0x2d80, 0x2d96}, + {0x2da0, 0x2da6}, + {0x2da8, 0x2dae}, + {0x2db0, 0x2db6}, + {0x2db8, 0x2dbe}, + {0x2dc0, 0x2dc6}, + {0x2dc8, 0x2dce}, + {0x2dd0, 0x2dd6}, + {0x2dd8, 0x2dde}, + {0x2e2f, 0x2e2f}, + {0x3005, 0x3006}, + {0x3031, 0x3035}, + {0x303b, 0x303c}, + {0x3041, 0x3096}, + {0x309d, 0x309f}, + {0x30a1, 0x30fa}, + {0x30fc, 0x30ff}, + {0x3105, 0x312f}, + {0x3131, 0x318e}, + {0x31a0, 0x31bf}, + {0x31f0, 0x31ff}, + {0x3400, 0x4dbf}, + {0x4e00, 0xa48c}, + {0xa4d0, 0xa4fd}, + {0xa500, 0xa60c}, + {0xa610, 0xa62b}, + {0xa640, 0xa66e}, + {0xa67f, 0xa69d}, + {0xa6a0, 0xa6e5}, + {0xa717, 0xa71f}, + {0xa722, 0xa788}, + {0xa78b, 0xa7ca}, + {0xa7d0, 0xa7d1}, + {0xa7d3, 0xa7d3}, + {0xa7d5, 0xa7d9}, + {0xa7f2, 0xa801}, + {0xa803, 0xa805}, + {0xa807, 0xa80a}, + {0xa80c, 0xa822}, + {0xa840, 0xa873}, + {0xa882, 0xa8b3}, + {0xa8d0, 0xa8d9}, + {0xa8f2, 0xa8f7}, + {0xa8fb, 0xa8fb}, + {0xa8fd, 0xa8fe}, + {0xa900, 0xa925}, + {0xa930, 0xa946}, + {0xa960, 0xa97c}, + {0xa984, 0xa9b2}, + {0xa9cf, 0xa9d9}, + {0xa9e0, 0xa9e4}, + {0xa9e6, 0xa9fe}, + {0xaa00, 0xaa28}, + {0xaa40, 0xaa42}, + {0xaa44, 0xaa4b}, + {0xaa50, 0xaa59}, + {0xaa60, 0xaa76}, + {0xaa7a, 0xaa7a}, + {0xaa7e, 0xaaaf}, + {0xaab1, 0xaab1}, + {0xaab5, 0xaab6}, + {0xaab9, 0xaabd}, + {0xaac0, 0xaac0}, + {0xaac2, 0xaac2}, + {0xaadb, 0xaadd}, + {0xaae0, 0xaaea}, + {0xaaf2, 0xaaf4}, + {0xab01, 0xab06}, + {0xab09, 0xab0e}, + {0xab11, 0xab16}, + {0xab20, 0xab26}, + {0xab28, 0xab2e}, + {0xab30, 0xab5a}, + {0xab5c, 0xab69}, + {0xab70, 0xabe2}, + {0xabf0, 0xabf9}, + {0xac00, 0xd7a3}, + {0xd7b0, 0xd7c6}, + {0xd7cb, 0xd7fb}, + {0xf900, 0xfa6d}, + {0xfa70, 0xfad9}, + {0xfb00, 0xfb06}, + {0xfb13, 0xfb17}, + {0xfb1d, 0xfb1d}, + {0xfb1f, 0xfb28}, + {0xfb2a, 0xfb36}, + {0xfb38, 0xfb3c}, + {0xfb3e, 0xfb3e}, + {0xfb40, 0xfb41}, + {0xfb43, 0xfb44}, + {0xfb46, 0xfbb1}, + {0xfbd3, 0xfd3d}, + {0xfd50, 0xfd8f}, + {0xfd92, 0xfdc7}, + {0xfdf0, 0xfdfb}, + {0xfe70, 0xfe74}, + {0xfe76, 0xfefc}, + {0xff10, 0xff19}, + {0xff21, 0xff3a}, + {0xff41, 0xff5a}, + {0xff66, 0xffbe}, + {0xffc2, 0xffc7}, + {0xffca, 0xffcf}, + {0xffd2, 0xffd7}, + {0xffda, 0xffdc}, + {0x10000, 0x1000b}, + {0x1000d, 0x10026}, + {0x10028, 0x1003a}, + {0x1003c, 0x1003d}, + {0x1003f, 0x1004d}, + {0x10050, 0x1005d}, + {0x10080, 0x100fa}, + {0x10280, 0x1029c}, + {0x102a0, 0x102d0}, + {0x10300, 0x1031f}, + {0x1032d, 0x10340}, + {0x10342, 0x10349}, + {0x10350, 0x10375}, + {0x10380, 0x1039d}, + {0x103a0, 0x103c3}, + {0x103c8, 0x103cf}, + {0x10400, 0x1049d}, + {0x104a0, 0x104a9}, + {0x104b0, 0x104d3}, + {0x104d8, 0x104fb}, + {0x10500, 0x10527}, + {0x10530, 0x10563}, + {0x10570, 0x1057a}, + {0x1057c, 0x1058a}, + {0x1058c, 0x10592}, + {0x10594, 0x10595}, + {0x10597, 0x105a1}, + {0x105a3, 0x105b1}, + {0x105b3, 0x105b9}, + {0x105bb, 0x105bc}, + {0x10600, 0x10736}, + {0x10740, 0x10755}, + {0x10760, 0x10767}, + {0x10780, 0x10785}, + {0x10787, 0x107b0}, + {0x107b2, 0x107ba}, + {0x10800, 0x10805}, + {0x10808, 0x10808}, + {0x1080a, 0x10835}, + {0x10837, 0x10838}, + {0x1083c, 0x1083c}, + {0x1083f, 0x10855}, + {0x10860, 0x10876}, + {0x10880, 0x1089e}, + {0x108e0, 0x108f2}, + {0x108f4, 0x108f5}, + {0x10900, 0x10915}, + {0x10920, 0x10939}, + {0x10980, 0x109b7}, + {0x109be, 0x109bf}, + {0x10a00, 0x10a00}, + {0x10a10, 0x10a13}, + {0x10a15, 0x10a17}, + {0x10a19, 0x10a35}, + {0x10a60, 0x10a7c}, + {0x10a80, 0x10a9c}, + {0x10ac0, 0x10ac7}, + {0x10ac9, 0x10ae4}, + {0x10b00, 0x10b35}, + {0x10b40, 0x10b55}, + {0x10b60, 0x10b72}, + {0x10b80, 0x10b91}, + {0x10c00, 0x10c48}, + {0x10c80, 0x10cb2}, + {0x10cc0, 0x10cf2}, + {0x10d00, 0x10d23}, + {0x10d30, 0x10d39}, + {0x10e80, 0x10ea9}, + {0x10eb0, 0x10eb1}, + {0x10f00, 0x10f1c}, + {0x10f27, 0x10f27}, + {0x10f30, 0x10f45}, + {0x10f70, 0x10f81}, + {0x10fb0, 0x10fc4}, + {0x10fe0, 0x10ff6}, + {0x11003, 0x11037}, + {0x11066, 0x1106f}, + {0x11071, 0x11072}, + {0x11075, 0x11075}, + {0x11083, 0x110af}, + {0x110d0, 0x110e8}, + {0x110f0, 0x110f9}, + {0x11103, 0x11126}, + {0x11136, 0x1113f}, + {0x11144, 0x11144}, + {0x11147, 0x11147}, + {0x11150, 0x11172}, + {0x11176, 0x11176}, + {0x11183, 0x111b2}, + {0x111c1, 0x111c4}, + {0x111d0, 0x111da}, + {0x111dc, 0x111dc}, + {0x11200, 0x11211}, + {0x11213, 0x1122b}, + {0x11280, 0x11286}, + {0x11288, 0x11288}, + {0x1128a, 0x1128d}, + {0x1128f, 0x1129d}, + {0x1129f, 0x112a8}, + {0x112b0, 0x112de}, + {0x112f0, 0x112f9}, + {0x11305, 0x1130c}, + {0x1130f, 0x11310}, + {0x11313, 0x11328}, + {0x1132a, 0x11330}, + {0x11332, 0x11333}, + {0x11335, 0x11339}, + {0x1133d, 0x1133d}, + {0x11350, 0x11350}, + {0x1135d, 0x11361}, + {0x11400, 0x11434}, + {0x11447, 0x1144a}, + {0x11450, 0x11459}, + {0x1145f, 0x11461}, + {0x11480, 0x114af}, + {0x114c4, 0x114c5}, + {0x114c7, 0x114c7}, + {0x114d0, 0x114d9}, + {0x11580, 0x115ae}, + {0x115d8, 0x115db}, + {0x11600, 0x1162f}, + {0x11644, 0x11644}, + {0x11650, 0x11659}, + {0x11680, 0x116aa}, + {0x116b8, 0x116b8}, + {0x116c0, 0x116c9}, + {0x11700, 0x1171a}, + {0x11730, 0x11739}, + {0x11740, 0x11746}, + {0x11800, 0x1182b}, + {0x118a0, 0x118e9}, + {0x118ff, 0x11906}, + {0x11909, 0x11909}, + {0x1190c, 0x11913}, + {0x11915, 0x11916}, + {0x11918, 0x1192f}, + {0x1193f, 0x1193f}, + {0x11941, 0x11941}, + {0x11950, 0x11959}, + {0x119a0, 0x119a7}, + {0x119aa, 0x119d0}, + {0x119e1, 0x119e1}, + {0x119e3, 0x119e3}, + {0x11a00, 0x11a00}, + {0x11a0b, 0x11a32}, + {0x11a3a, 0x11a3a}, + {0x11a50, 0x11a50}, + {0x11a5c, 0x11a89}, + {0x11a9d, 0x11a9d}, + {0x11ab0, 0x11af8}, + {0x11c00, 0x11c08}, + {0x11c0a, 0x11c2e}, + {0x11c40, 0x11c40}, + {0x11c50, 0x11c59}, + {0x11c72, 0x11c8f}, + {0x11d00, 0x11d06}, + {0x11d08, 0x11d09}, + {0x11d0b, 0x11d30}, + {0x11d46, 0x11d46}, + {0x11d50, 0x11d59}, + {0x11d60, 0x11d65}, + {0x11d67, 0x11d68}, + {0x11d6a, 0x11d89}, + {0x11d98, 0x11d98}, + {0x11da0, 0x11da9}, + {0x11ee0, 0x11ef2}, + {0x11fb0, 0x11fb0}, + {0x12000, 0x12399}, + {0x12480, 0x12543}, + {0x12f90, 0x12ff0}, + {0x13000, 0x1342e}, + {0x14400, 0x14646}, + {0x16800, 0x16a38}, + {0x16a40, 0x16a5e}, + {0x16a60, 0x16a69}, + {0x16a70, 0x16abe}, + {0x16ac0, 0x16ac9}, + {0x16ad0, 0x16aed}, + {0x16b00, 0x16b2f}, + {0x16b40, 0x16b43}, + {0x16b50, 0x16b59}, + {0x16b63, 0x16b77}, + {0x16b7d, 0x16b8f}, + {0x16e40, 0x16e7f}, + {0x16f00, 0x16f4a}, + {0x16f50, 0x16f50}, + {0x16f93, 0x16f9f}, + {0x16fe0, 0x16fe1}, + {0x16fe3, 0x16fe3}, + {0x17000, 0x187f7}, + {0x18800, 0x18cd5}, + {0x18d00, 0x18d08}, + {0x1aff0, 0x1aff3}, + {0x1aff5, 0x1affb}, + {0x1affd, 0x1affe}, + {0x1b000, 0x1b122}, + {0x1b150, 0x1b152}, + {0x1b164, 0x1b167}, + {0x1b170, 0x1b2fb}, + {0x1bc00, 0x1bc6a}, + {0x1bc70, 0x1bc7c}, + {0x1bc80, 0x1bc88}, + {0x1bc90, 0x1bc99}, + {0x1d400, 0x1d454}, + {0x1d456, 0x1d49c}, + {0x1d49e, 0x1d49f}, + {0x1d4a2, 0x1d4a2}, + {0x1d4a5, 0x1d4a6}, + {0x1d4a9, 0x1d4ac}, + {0x1d4ae, 0x1d4b9}, + {0x1d4bb, 0x1d4bb}, + {0x1d4bd, 0x1d4c3}, + {0x1d4c5, 0x1d505}, + {0x1d507, 0x1d50a}, + {0x1d50d, 0x1d514}, + {0x1d516, 0x1d51c}, + {0x1d51e, 0x1d539}, + {0x1d53b, 0x1d53e}, + {0x1d540, 0x1d544}, + {0x1d546, 0x1d546}, + {0x1d54a, 0x1d550}, + {0x1d552, 0x1d6a5}, + {0x1d6a8, 0x1d6c0}, + {0x1d6c2, 0x1d6da}, + {0x1d6dc, 0x1d6fa}, + {0x1d6fc, 0x1d714}, + {0x1d716, 0x1d734}, + {0x1d736, 0x1d74e}, + {0x1d750, 0x1d76e}, + {0x1d770, 0x1d788}, + {0x1d78a, 0x1d7a8}, + {0x1d7aa, 0x1d7c2}, + {0x1d7c4, 0x1d7cb}, + {0x1d7ce, 0x1d7ff}, + {0x1df00, 0x1df1e}, + {0x1e100, 0x1e12c}, + {0x1e137, 0x1e13d}, + {0x1e140, 0x1e149}, + {0x1e14e, 0x1e14e}, + {0x1e290, 0x1e2ad}, + {0x1e2c0, 0x1e2eb}, + {0x1e2f0, 0x1e2f9}, + {0x1e7e0, 0x1e7e6}, + {0x1e7e8, 0x1e7eb}, + {0x1e7ed, 0x1e7ee}, + {0x1e7f0, 0x1e7fe}, + {0x1e800, 0x1e8c4}, + {0x1e900, 0x1e943}, + {0x1e94b, 0x1e94b}, + {0x1e950, 0x1e959}, + {0x1ee00, 0x1ee03}, + {0x1ee05, 0x1ee1f}, + {0x1ee21, 0x1ee22}, + {0x1ee24, 0x1ee24}, + {0x1ee27, 0x1ee27}, + {0x1ee29, 0x1ee32}, + {0x1ee34, 0x1ee37}, + {0x1ee39, 0x1ee39}, + {0x1ee3b, 0x1ee3b}, + {0x1ee42, 0x1ee42}, + {0x1ee47, 0x1ee47}, + {0x1ee49, 0x1ee49}, + {0x1ee4b, 0x1ee4b}, + {0x1ee4d, 0x1ee4f}, + {0x1ee51, 0x1ee52}, + {0x1ee54, 0x1ee54}, + {0x1ee57, 0x1ee57}, + {0x1ee59, 0x1ee59}, + {0x1ee5b, 0x1ee5b}, + {0x1ee5d, 0x1ee5d}, + {0x1ee5f, 0x1ee5f}, + {0x1ee61, 0x1ee62}, + {0x1ee64, 0x1ee64}, + {0x1ee67, 0x1ee6a}, + {0x1ee6c, 0x1ee72}, + {0x1ee74, 0x1ee77}, + {0x1ee79, 0x1ee7c}, + {0x1ee7e, 0x1ee7e}, + {0x1ee80, 0x1ee89}, + {0x1ee8b, 0x1ee9b}, + {0x1eea1, 0x1eea3}, + {0x1eea5, 0x1eea9}, + {0x1eeab, 0x1eebb}, + {0x1fbf0, 0x1fbf9}, + {0x20000, 0x2a6df}, + {0x2a700, 0x2b738}, + {0x2b740, 0x2b81d}, + {0x2b820, 0x2cea1}, + {0x2ceb0, 0x2ebe0}, + {0x2f800, 0x2fa1d}, {0x30000, 0x3134a} }; -scm_t_char_set cs_letter_plus_digit = { - 665, - cs_letter_plus_digit_ranges -}; +static const size_t cs_letter_plus_digit_len = 692; -scm_t_char_range cs_graphic_ranges[] = { - {0x0021, 0x007e} - , - {0x00a1, 0x00ac} - , - {0x00ae, 0x0377} - , - {0x037a, 0x037f} - , - {0x0384, 0x038a} - , - {0x038c, 0x038c} - , - {0x038e, 0x03a1} - , - {0x03a3, 0x052f} - , - {0x0531, 0x0556} - , - {0x0559, 0x058a} - , - {0x058d, 0x058f} - , - {0x0591, 0x05c7} - , - {0x05d0, 0x05ea} - , - {0x05ef, 0x05f4} - , - {0x0606, 0x061b} - , - {0x061e, 0x06dc} - , - {0x06de, 0x070d} - , - {0x0710, 0x074a} - , - {0x074d, 0x07b1} - , - {0x07c0, 0x07fa} - , - {0x07fd, 0x082d} - , - {0x0830, 0x083e} - , - {0x0840, 0x085b} - , - {0x085e, 0x085e} - , - {0x0860, 0x086a} - , - {0x08a0, 0x08b4} - , - {0x08b6, 0x08c7} - , - {0x08d3, 0x08e1} - , - {0x08e3, 0x0983} - , - {0x0985, 0x098c} - , - {0x098f, 0x0990} - , - {0x0993, 0x09a8} - , - {0x09aa, 0x09b0} - , - {0x09b2, 0x09b2} - , - {0x09b6, 0x09b9} - , - {0x09bc, 0x09c4} - , - {0x09c7, 0x09c8} - , - {0x09cb, 0x09ce} - , - {0x09d7, 0x09d7} - , - {0x09dc, 0x09dd} - , - {0x09df, 0x09e3} - , - {0x09e6, 0x09fe} - , - {0x0a01, 0x0a03} - , - {0x0a05, 0x0a0a} - , - {0x0a0f, 0x0a10} - , - {0x0a13, 0x0a28} - , - {0x0a2a, 0x0a30} - , - {0x0a32, 0x0a33} - , - {0x0a35, 0x0a36} - , - {0x0a38, 0x0a39} - , - {0x0a3c, 0x0a3c} - , - {0x0a3e, 0x0a42} - , - {0x0a47, 0x0a48} - , - {0x0a4b, 0x0a4d} - , - {0x0a51, 0x0a51} - , - {0x0a59, 0x0a5c} - , - {0x0a5e, 0x0a5e} - , - {0x0a66, 0x0a76} - , - {0x0a81, 0x0a83} - , - {0x0a85, 0x0a8d} - , - {0x0a8f, 0x0a91} - , - {0x0a93, 0x0aa8} - , - {0x0aaa, 0x0ab0} - , - {0x0ab2, 0x0ab3} - , - {0x0ab5, 0x0ab9} - , - {0x0abc, 0x0ac5} - , - {0x0ac7, 0x0ac9} - , - {0x0acb, 0x0acd} - , - {0x0ad0, 0x0ad0} - , - {0x0ae0, 0x0ae3} - , - {0x0ae6, 0x0af1} - , - {0x0af9, 0x0aff} - , - {0x0b01, 0x0b03} - , - {0x0b05, 0x0b0c} - , - {0x0b0f, 0x0b10} - , - {0x0b13, 0x0b28} - , - {0x0b2a, 0x0b30} - , - {0x0b32, 0x0b33} - , - {0x0b35, 0x0b39} - , - {0x0b3c, 0x0b44} - , - {0x0b47, 0x0b48} - , - {0x0b4b, 0x0b4d} - , - {0x0b55, 0x0b57} - , - {0x0b5c, 0x0b5d} - , - {0x0b5f, 0x0b63} - , - {0x0b66, 0x0b77} - , - {0x0b82, 0x0b83} - , - {0x0b85, 0x0b8a} - , - {0x0b8e, 0x0b90} - , - {0x0b92, 0x0b95} - , - {0x0b99, 0x0b9a} - , - {0x0b9c, 0x0b9c} - , - {0x0b9e, 0x0b9f} - , - {0x0ba3, 0x0ba4} - , - {0x0ba8, 0x0baa} - , - {0x0bae, 0x0bb9} - , - {0x0bbe, 0x0bc2} - , - {0x0bc6, 0x0bc8} - , - {0x0bca, 0x0bcd} - , - {0x0bd0, 0x0bd0} - , - {0x0bd7, 0x0bd7} - , - {0x0be6, 0x0bfa} - , - {0x0c00, 0x0c0c} - , - {0x0c0e, 0x0c10} - , - {0x0c12, 0x0c28} - , - {0x0c2a, 0x0c39} - , - {0x0c3d, 0x0c44} - , - {0x0c46, 0x0c48} - , - {0x0c4a, 0x0c4d} - , - {0x0c55, 0x0c56} - , - {0x0c58, 0x0c5a} - , - {0x0c60, 0x0c63} - , - {0x0c66, 0x0c6f} - , - {0x0c77, 0x0c8c} - , - {0x0c8e, 0x0c90} - , - {0x0c92, 0x0ca8} - , - {0x0caa, 0x0cb3} - , - {0x0cb5, 0x0cb9} - , - {0x0cbc, 0x0cc4} - , - {0x0cc6, 0x0cc8} - , - {0x0cca, 0x0ccd} - , - {0x0cd5, 0x0cd6} - , - {0x0cde, 0x0cde} - , - {0x0ce0, 0x0ce3} - , - {0x0ce6, 0x0cef} - , - {0x0cf1, 0x0cf2} - , - {0x0d00, 0x0d0c} - , - {0x0d0e, 0x0d10} - , - {0x0d12, 0x0d44} - , - {0x0d46, 0x0d48} - , - {0x0d4a, 0x0d4f} - , - {0x0d54, 0x0d63} - , - {0x0d66, 0x0d7f} - , - {0x0d81, 0x0d83} - , - {0x0d85, 0x0d96} - , - {0x0d9a, 0x0db1} - , - {0x0db3, 0x0dbb} - , - {0x0dbd, 0x0dbd} - , - {0x0dc0, 0x0dc6} - , - {0x0dca, 0x0dca} - , - {0x0dcf, 0x0dd4} - , - {0x0dd6, 0x0dd6} - , - {0x0dd8, 0x0ddf} - , - {0x0de6, 0x0def} - , - {0x0df2, 0x0df4} - , - {0x0e01, 0x0e3a} - , - {0x0e3f, 0x0e5b} - , - {0x0e81, 0x0e82} - , - {0x0e84, 0x0e84} - , - {0x0e86, 0x0e8a} - , - {0x0e8c, 0x0ea3} - , - {0x0ea5, 0x0ea5} - , - {0x0ea7, 0x0ebd} - , - {0x0ec0, 0x0ec4} - , - {0x0ec6, 0x0ec6} - , - {0x0ec8, 0x0ecd} - , - {0x0ed0, 0x0ed9} - , - {0x0edc, 0x0edf} - , - {0x0f00, 0x0f47} - , - {0x0f49, 0x0f6c} - , - {0x0f71, 0x0f97} - , - {0x0f99, 0x0fbc} - , - {0x0fbe, 0x0fcc} - , - {0x0fce, 0x0fda} - , - {0x1000, 0x10c5} - , - {0x10c7, 0x10c7} - , - {0x10cd, 0x10cd} - , - {0x10d0, 0x1248} - , - {0x124a, 0x124d} - , - {0x1250, 0x1256} - , - {0x1258, 0x1258} - , - {0x125a, 0x125d} - , - {0x1260, 0x1288} - , - {0x128a, 0x128d} - , - {0x1290, 0x12b0} - , - {0x12b2, 0x12b5} - , - {0x12b8, 0x12be} - , - {0x12c0, 0x12c0} - , - {0x12c2, 0x12c5} - , - {0x12c8, 0x12d6} - , - {0x12d8, 0x1310} - , - {0x1312, 0x1315} - , - {0x1318, 0x135a} - , - {0x135d, 0x137c} - , - {0x1380, 0x1399} - , - {0x13a0, 0x13f5} - , - {0x13f8, 0x13fd} - , - {0x1400, 0x167f} - , - {0x1681, 0x169c} - , - {0x16a0, 0x16f8} - , - {0x1700, 0x170c} - , - {0x170e, 0x1714} - , - {0x1720, 0x1736} - , - {0x1740, 0x1753} - , - {0x1760, 0x176c} - , - {0x176e, 0x1770} - , - {0x1772, 0x1773} - , - {0x1780, 0x17dd} - , - {0x17e0, 0x17e9} - , - {0x17f0, 0x17f9} - , - {0x1800, 0x180d} - , - {0x1810, 0x1819} - , - {0x1820, 0x1878} - , - {0x1880, 0x18aa} - , - {0x18b0, 0x18f5} - , - {0x1900, 0x191e} - , - {0x1920, 0x192b} - , - {0x1930, 0x193b} - , - {0x1940, 0x1940} - , - {0x1944, 0x196d} - , - {0x1970, 0x1974} - , - {0x1980, 0x19ab} - , - {0x19b0, 0x19c9} - , - {0x19d0, 0x19da} - , - {0x19de, 0x1a1b} - , - {0x1a1e, 0x1a5e} - , - {0x1a60, 0x1a7c} - , - {0x1a7f, 0x1a89} - , - {0x1a90, 0x1a99} - , - {0x1aa0, 0x1aad} - , - {0x1ab0, 0x1ac0} - , - {0x1b00, 0x1b4b} - , - {0x1b50, 0x1b7c} - , - {0x1b80, 0x1bf3} - , - {0x1bfc, 0x1c37} - , - {0x1c3b, 0x1c49} - , - {0x1c4d, 0x1c88} - , - {0x1c90, 0x1cba} - , - {0x1cbd, 0x1cc7} - , - {0x1cd0, 0x1cfa} - , - {0x1d00, 0x1df9} - , - {0x1dfb, 0x1f15} - , - {0x1f18, 0x1f1d} - , - {0x1f20, 0x1f45} - , - {0x1f48, 0x1f4d} - , - {0x1f50, 0x1f57} - , - {0x1f59, 0x1f59} - , - {0x1f5b, 0x1f5b} - , - {0x1f5d, 0x1f5d} - , - {0x1f5f, 0x1f7d} - , - {0x1f80, 0x1fb4} - , - {0x1fb6, 0x1fc4} - , - {0x1fc6, 0x1fd3} - , - {0x1fd6, 0x1fdb} - , - {0x1fdd, 0x1fef} - , - {0x1ff2, 0x1ff4} - , - {0x1ff6, 0x1ffe} - , - {0x2010, 0x2027} - , - {0x2030, 0x205e} - , - {0x2070, 0x2071} - , - {0x2074, 0x208e} - , - {0x2090, 0x209c} - , - {0x20a0, 0x20bf} - , - {0x20d0, 0x20f0} - , - {0x2100, 0x218b} - , - {0x2190, 0x2426} - , - {0x2440, 0x244a} - , - {0x2460, 0x2b73} - , - {0x2b76, 0x2b95} - , - {0x2b97, 0x2c2e} - , - {0x2c30, 0x2c5e} - , - {0x2c60, 0x2cf3} - , - {0x2cf9, 0x2d25} - , - {0x2d27, 0x2d27} - , - {0x2d2d, 0x2d2d} - , - {0x2d30, 0x2d67} - , - {0x2d6f, 0x2d70} - , - {0x2d7f, 0x2d96} - , - {0x2da0, 0x2da6} - , - {0x2da8, 0x2dae} - , - {0x2db0, 0x2db6} - , - {0x2db8, 0x2dbe} - , - {0x2dc0, 0x2dc6} - , - {0x2dc8, 0x2dce} - , - {0x2dd0, 0x2dd6} - , - {0x2dd8, 0x2dde} - , - {0x2de0, 0x2e52} - , - {0x2e80, 0x2e99} - , - {0x2e9b, 0x2ef3} - , - {0x2f00, 0x2fd5} - , - {0x2ff0, 0x2ffb} - , - {0x3001, 0x303f} - , - {0x3041, 0x3096} - , - {0x3099, 0x30ff} - , - {0x3105, 0x312f} - , - {0x3131, 0x318e} - , - {0x3190, 0x31e3} - , - {0x31f0, 0x321e} - , - {0x3220, 0x9ffc} - , - {0xa000, 0xa48c} - , - {0xa490, 0xa4c6} - , - {0xa4d0, 0xa62b} - , - {0xa640, 0xa6f7} - , - {0xa700, 0xa7bf} - , - {0xa7c2, 0xa7ca} - , - {0xa7f5, 0xa82c} - , - {0xa830, 0xa839} - , - {0xa840, 0xa877} - , - {0xa880, 0xa8c5} - , - {0xa8ce, 0xa8d9} - , - {0xa8e0, 0xa953} - , - {0xa95f, 0xa97c} - , - {0xa980, 0xa9cd} - , - {0xa9cf, 0xa9d9} - , - {0xa9de, 0xa9fe} - , - {0xaa00, 0xaa36} - , - {0xaa40, 0xaa4d} - , - {0xaa50, 0xaa59} - , - {0xaa5c, 0xaac2} - , - {0xaadb, 0xaaf6} - , - {0xab01, 0xab06} - , - {0xab09, 0xab0e} - , - {0xab11, 0xab16} - , - {0xab20, 0xab26} - , - {0xab28, 0xab2e} - , - {0xab30, 0xab6b} - , - {0xab70, 0xabed} - , - {0xabf0, 0xabf9} - , - {0xac00, 0xd7a3} - , - {0xd7b0, 0xd7c6} - , - {0xd7cb, 0xd7fb} - , - {0xf900, 0xfa6d} - , - {0xfa70, 0xfad9} - , - {0xfb00, 0xfb06} - , - {0xfb13, 0xfb17} - , - {0xfb1d, 0xfb36} - , - {0xfb38, 0xfb3c} - , - {0xfb3e, 0xfb3e} - , - {0xfb40, 0xfb41} - , - {0xfb43, 0xfb44} - , - {0xfb46, 0xfbc1} - , - {0xfbd3, 0xfd3f} - , - {0xfd50, 0xfd8f} - , - {0xfd92, 0xfdc7} - , - {0xfdf0, 0xfdfd} - , - {0xfe00, 0xfe19} - , - {0xfe20, 0xfe52} - , - {0xfe54, 0xfe66} - , - {0xfe68, 0xfe6b} - , - {0xfe70, 0xfe74} - , - {0xfe76, 0xfefc} - , - {0xff01, 0xffbe} - , - {0xffc2, 0xffc7} - , - {0xffca, 0xffcf} - , - {0xffd2, 0xffd7} - , - {0xffda, 0xffdc} - , - {0xffe0, 0xffe6} - , - {0xffe8, 0xffee} - , - {0xfffc, 0xfffd} - , - {0x10000, 0x1000b} - , - {0x1000d, 0x10026} - , - {0x10028, 0x1003a} - , - {0x1003c, 0x1003d} - , - {0x1003f, 0x1004d} - , - {0x10050, 0x1005d} - , - {0x10080, 0x100fa} - , - {0x10100, 0x10102} - , - {0x10107, 0x10133} - , - {0x10137, 0x1018e} - , - {0x10190, 0x1019c} - , - {0x101a0, 0x101a0} - , - {0x101d0, 0x101fd} - , - {0x10280, 0x1029c} - , - {0x102a0, 0x102d0} - , - {0x102e0, 0x102fb} - , - {0x10300, 0x10323} - , - {0x1032d, 0x1034a} - , - {0x10350, 0x1037a} - , - {0x10380, 0x1039d} - , - {0x1039f, 0x103c3} - , - {0x103c8, 0x103d5} - , - {0x10400, 0x1049d} - , - {0x104a0, 0x104a9} - , - {0x104b0, 0x104d3} - , - {0x104d8, 0x104fb} - , - {0x10500, 0x10527} - , - {0x10530, 0x10563} - , - {0x1056f, 0x1056f} - , - {0x10600, 0x10736} - , - {0x10740, 0x10755} - , - {0x10760, 0x10767} - , - {0x10800, 0x10805} - , - {0x10808, 0x10808} - , - {0x1080a, 0x10835} - , - {0x10837, 0x10838} - , - {0x1083c, 0x1083c} - , - {0x1083f, 0x10855} - , - {0x10857, 0x1089e} - , - {0x108a7, 0x108af} - , - {0x108e0, 0x108f2} - , - {0x108f4, 0x108f5} - , - {0x108fb, 0x1091b} - , - {0x1091f, 0x10939} - , - {0x1093f, 0x1093f} - , - {0x10980, 0x109b7} - , - {0x109bc, 0x109cf} - , - {0x109d2, 0x10a03} - , - {0x10a05, 0x10a06} - , - {0x10a0c, 0x10a13} - , - {0x10a15, 0x10a17} - , - {0x10a19, 0x10a35} - , - {0x10a38, 0x10a3a} - , - {0x10a3f, 0x10a48} - , - {0x10a50, 0x10a58} - , - {0x10a60, 0x10a9f} - , - {0x10ac0, 0x10ae6} - , - {0x10aeb, 0x10af6} - , - {0x10b00, 0x10b35} - , - {0x10b39, 0x10b55} - , - {0x10b58, 0x10b72} - , - {0x10b78, 0x10b91} - , - {0x10b99, 0x10b9c} - , - {0x10ba9, 0x10baf} - , - {0x10c00, 0x10c48} - , - {0x10c80, 0x10cb2} - , - {0x10cc0, 0x10cf2} - , - {0x10cfa, 0x10d27} - , - {0x10d30, 0x10d39} - , - {0x10e60, 0x10e7e} - , - {0x10e80, 0x10ea9} - , - {0x10eab, 0x10ead} - , - {0x10eb0, 0x10eb1} - , - {0x10f00, 0x10f27} - , - {0x10f30, 0x10f59} - , - {0x10fb0, 0x10fcb} - , - {0x10fe0, 0x10ff6} - , - {0x11000, 0x1104d} - , - {0x11052, 0x1106f} - , - {0x1107f, 0x110bc} - , - {0x110be, 0x110c1} - , - {0x110d0, 0x110e8} - , - {0x110f0, 0x110f9} - , - {0x11100, 0x11134} - , - {0x11136, 0x11147} - , - {0x11150, 0x11176} - , - {0x11180, 0x111df} - , - {0x111e1, 0x111f4} - , - {0x11200, 0x11211} - , - {0x11213, 0x1123e} - , - {0x11280, 0x11286} - , - {0x11288, 0x11288} - , - {0x1128a, 0x1128d} - , - {0x1128f, 0x1129d} - , - {0x1129f, 0x112a9} - , - {0x112b0, 0x112ea} - , - {0x112f0, 0x112f9} - , - {0x11300, 0x11303} - , - {0x11305, 0x1130c} - , - {0x1130f, 0x11310} - , - {0x11313, 0x11328} - , - {0x1132a, 0x11330} - , - {0x11332, 0x11333} - , - {0x11335, 0x11339} - , - {0x1133b, 0x11344} - , - {0x11347, 0x11348} - , - {0x1134b, 0x1134d} - , - {0x11350, 0x11350} - , - {0x11357, 0x11357} - , - {0x1135d, 0x11363} - , - {0x11366, 0x1136c} - , - {0x11370, 0x11374} - , - {0x11400, 0x1145b} - , - {0x1145d, 0x11461} - , - {0x11480, 0x114c7} - , - {0x114d0, 0x114d9} - , - {0x11580, 0x115b5} - , - {0x115b8, 0x115dd} - , - {0x11600, 0x11644} - , - {0x11650, 0x11659} - , - {0x11660, 0x1166c} - , - {0x11680, 0x116b8} - , - {0x116c0, 0x116c9} - , - {0x11700, 0x1171a} - , - {0x1171d, 0x1172b} - , - {0x11730, 0x1173f} - , - {0x11800, 0x1183b} - , - {0x118a0, 0x118f2} - , - {0x118ff, 0x11906} - , - {0x11909, 0x11909} - , - {0x1190c, 0x11913} - , - {0x11915, 0x11916} - , - {0x11918, 0x11935} - , - {0x11937, 0x11938} - , - {0x1193b, 0x11946} - , - {0x11950, 0x11959} - , - {0x119a0, 0x119a7} - , - {0x119aa, 0x119d7} - , - {0x119da, 0x119e4} - , - {0x11a00, 0x11a47} - , - {0x11a50, 0x11aa2} - , - {0x11ac0, 0x11af8} - , - {0x11c00, 0x11c08} - , - {0x11c0a, 0x11c36} - , - {0x11c38, 0x11c45} - , - {0x11c50, 0x11c6c} - , - {0x11c70, 0x11c8f} - , - {0x11c92, 0x11ca7} - , - {0x11ca9, 0x11cb6} - , - {0x11d00, 0x11d06} - , - {0x11d08, 0x11d09} - , - {0x11d0b, 0x11d36} - , - {0x11d3a, 0x11d3a} - , - {0x11d3c, 0x11d3d} - , - {0x11d3f, 0x11d47} - , - {0x11d50, 0x11d59} - , - {0x11d60, 0x11d65} - , - {0x11d67, 0x11d68} - , - {0x11d6a, 0x11d8e} - , - {0x11d90, 0x11d91} - , - {0x11d93, 0x11d98} - , - {0x11da0, 0x11da9} - , - {0x11ee0, 0x11ef8} - , - {0x11fb0, 0x11fb0} - , - {0x11fc0, 0x11ff1} - , - {0x11fff, 0x12399} - , - {0x12400, 0x1246e} - , - {0x12470, 0x12474} - , - {0x12480, 0x12543} - , - {0x13000, 0x1342e} - , - {0x14400, 0x14646} - , - {0x16800, 0x16a38} - , - {0x16a40, 0x16a5e} - , - {0x16a60, 0x16a69} - , - {0x16a6e, 0x16a6f} - , - {0x16ad0, 0x16aed} - , - {0x16af0, 0x16af5} - , - {0x16b00, 0x16b45} - , - {0x16b50, 0x16b59} - , - {0x16b5b, 0x16b61} - , - {0x16b63, 0x16b77} - , - {0x16b7d, 0x16b8f} - , - {0x16e40, 0x16e9a} - , - {0x16f00, 0x16f4a} - , - {0x16f4f, 0x16f87} - , - {0x16f8f, 0x16f9f} - , - {0x16fe0, 0x16fe4} - , - {0x16ff0, 0x16ff1} - , - {0x17000, 0x187f7} - , - {0x18800, 0x18cd5} - , - {0x18d00, 0x18d08} - , - {0x1b000, 0x1b11e} - , - {0x1b150, 0x1b152} - , - {0x1b164, 0x1b167} - , - {0x1b170, 0x1b2fb} - , - {0x1bc00, 0x1bc6a} - , - {0x1bc70, 0x1bc7c} - , - {0x1bc80, 0x1bc88} - , - {0x1bc90, 0x1bc99} - , - {0x1bc9c, 0x1bc9f} - , - {0x1d000, 0x1d0f5} - , - {0x1d100, 0x1d126} - , - {0x1d129, 0x1d172} - , - {0x1d17b, 0x1d1e8} - , - {0x1d200, 0x1d245} - , - {0x1d2e0, 0x1d2f3} - , - {0x1d300, 0x1d356} - , - {0x1d360, 0x1d378} - , - {0x1d400, 0x1d454} - , - {0x1d456, 0x1d49c} - , - {0x1d49e, 0x1d49f} - , - {0x1d4a2, 0x1d4a2} - , - {0x1d4a5, 0x1d4a6} - , - {0x1d4a9, 0x1d4ac} - , - {0x1d4ae, 0x1d4b9} - , - {0x1d4bb, 0x1d4bb} - , - {0x1d4bd, 0x1d4c3} - , - {0x1d4c5, 0x1d505} - , - {0x1d507, 0x1d50a} - , - {0x1d50d, 0x1d514} - , - {0x1d516, 0x1d51c} - , - {0x1d51e, 0x1d539} - , - {0x1d53b, 0x1d53e} - , - {0x1d540, 0x1d544} - , - {0x1d546, 0x1d546} - , - {0x1d54a, 0x1d550} - , - {0x1d552, 0x1d6a5} - , - {0x1d6a8, 0x1d7cb} - , - {0x1d7ce, 0x1da8b} - , - {0x1da9b, 0x1da9f} - , - {0x1daa1, 0x1daaf} - , - {0x1e000, 0x1e006} - , - {0x1e008, 0x1e018} - , - {0x1e01b, 0x1e021} - , - {0x1e023, 0x1e024} - , - {0x1e026, 0x1e02a} - , - {0x1e100, 0x1e12c} - , - {0x1e130, 0x1e13d} - , - {0x1e140, 0x1e149} - , - {0x1e14e, 0x1e14f} - , - {0x1e2c0, 0x1e2f9} - , - {0x1e2ff, 0x1e2ff} - , - {0x1e800, 0x1e8c4} - , - {0x1e8c7, 0x1e8d6} - , - {0x1e900, 0x1e94b} - , - {0x1e950, 0x1e959} - , - {0x1e95e, 0x1e95f} - , - {0x1ec71, 0x1ecb4} - , - {0x1ed01, 0x1ed3d} - , - {0x1ee00, 0x1ee03} - , - {0x1ee05, 0x1ee1f} - , - {0x1ee21, 0x1ee22} - , - {0x1ee24, 0x1ee24} - , - {0x1ee27, 0x1ee27} - , - {0x1ee29, 0x1ee32} - , - {0x1ee34, 0x1ee37} - , - {0x1ee39, 0x1ee39} - , - {0x1ee3b, 0x1ee3b} - , - {0x1ee42, 0x1ee42} - , - {0x1ee47, 0x1ee47} - , - {0x1ee49, 0x1ee49} - , - {0x1ee4b, 0x1ee4b} - , - {0x1ee4d, 0x1ee4f} - , - {0x1ee51, 0x1ee52} - , - {0x1ee54, 0x1ee54} - , - {0x1ee57, 0x1ee57} - , - {0x1ee59, 0x1ee59} - , - {0x1ee5b, 0x1ee5b} - , - {0x1ee5d, 0x1ee5d} - , - {0x1ee5f, 0x1ee5f} - , - {0x1ee61, 0x1ee62} - , - {0x1ee64, 0x1ee64} - , - {0x1ee67, 0x1ee6a} - , - {0x1ee6c, 0x1ee72} - , - {0x1ee74, 0x1ee77} - , - {0x1ee79, 0x1ee7c} - , - {0x1ee7e, 0x1ee7e} - , - {0x1ee80, 0x1ee89} - , - {0x1ee8b, 0x1ee9b} - , - {0x1eea1, 0x1eea3} - , - {0x1eea5, 0x1eea9} - , - {0x1eeab, 0x1eebb} - , - {0x1eef0, 0x1eef1} - , - {0x1f000, 0x1f02b} - , - {0x1f030, 0x1f093} - , - {0x1f0a0, 0x1f0ae} - , - {0x1f0b1, 0x1f0bf} - , - {0x1f0c1, 0x1f0cf} - , - {0x1f0d1, 0x1f0f5} - , - {0x1f100, 0x1f1ad} - , - {0x1f1e6, 0x1f202} - , - {0x1f210, 0x1f23b} - , - {0x1f240, 0x1f248} - , - {0x1f250, 0x1f251} - , - {0x1f260, 0x1f265} - , - {0x1f300, 0x1f6d7} - , - {0x1f6e0, 0x1f6ec} - , - {0x1f6f0, 0x1f6fc} - , - {0x1f700, 0x1f773} - , - {0x1f780, 0x1f7d8} - , - {0x1f7e0, 0x1f7eb} - , - {0x1f800, 0x1f80b} - , - {0x1f810, 0x1f847} - , - {0x1f850, 0x1f859} - , - {0x1f860, 0x1f887} - , - {0x1f890, 0x1f8ad} - , - {0x1f8b0, 0x1f8b1} - , - {0x1f900, 0x1f978} - , - {0x1f97a, 0x1f9cb} - , - {0x1f9cd, 0x1fa53} - , - {0x1fa60, 0x1fa6d} - , - {0x1fa70, 0x1fa74} - , - {0x1fa78, 0x1fa7a} - , - {0x1fa80, 0x1fa86} - , - {0x1fa90, 0x1faa8} - , - {0x1fab0, 0x1fab6} - , - {0x1fac0, 0x1fac2} - , - {0x1fad0, 0x1fad6} - , - {0x1fb00, 0x1fb92} - , - {0x1fb94, 0x1fbca} - , - {0x1fbf0, 0x1fbf9} - , - {0x20000, 0x2a6dd} - , - {0x2a700, 0x2b734} - , - {0x2b740, 0x2b81d} - , - {0x2b820, 0x2cea1} - , - {0x2ceb0, 0x2ebe0} - , - {0x2f800, 0x2fa1d} - , - {0x30000, 0x3134a} - , +static const scm_t_char_range cs_graphic_ranges[] = { + {0x0021, 0x007e}, + {0x00a1, 0x00ac}, + {0x00ae, 0x0377}, + {0x037a, 0x037f}, + {0x0384, 0x038a}, + {0x038c, 0x038c}, + {0x038e, 0x03a1}, + {0x03a3, 0x052f}, + {0x0531, 0x0556}, + {0x0559, 0x058a}, + {0x058d, 0x058f}, + {0x0591, 0x05c7}, + {0x05d0, 0x05ea}, + {0x05ef, 0x05f4}, + {0x0606, 0x061b}, + {0x061d, 0x06dc}, + {0x06de, 0x070d}, + {0x0710, 0x074a}, + {0x074d, 0x07b1}, + {0x07c0, 0x07fa}, + {0x07fd, 0x082d}, + {0x0830, 0x083e}, + {0x0840, 0x085b}, + {0x085e, 0x085e}, + {0x0860, 0x086a}, + {0x0870, 0x088e}, + {0x0898, 0x08e1}, + {0x08e3, 0x0983}, + {0x0985, 0x098c}, + {0x098f, 0x0990}, + {0x0993, 0x09a8}, + {0x09aa, 0x09b0}, + {0x09b2, 0x09b2}, + {0x09b6, 0x09b9}, + {0x09bc, 0x09c4}, + {0x09c7, 0x09c8}, + {0x09cb, 0x09ce}, + {0x09d7, 0x09d7}, + {0x09dc, 0x09dd}, + {0x09df, 0x09e3}, + {0x09e6, 0x09fe}, + {0x0a01, 0x0a03}, + {0x0a05, 0x0a0a}, + {0x0a0f, 0x0a10}, + {0x0a13, 0x0a28}, + {0x0a2a, 0x0a30}, + {0x0a32, 0x0a33}, + {0x0a35, 0x0a36}, + {0x0a38, 0x0a39}, + {0x0a3c, 0x0a3c}, + {0x0a3e, 0x0a42}, + {0x0a47, 0x0a48}, + {0x0a4b, 0x0a4d}, + {0x0a51, 0x0a51}, + {0x0a59, 0x0a5c}, + {0x0a5e, 0x0a5e}, + {0x0a66, 0x0a76}, + {0x0a81, 0x0a83}, + {0x0a85, 0x0a8d}, + {0x0a8f, 0x0a91}, + {0x0a93, 0x0aa8}, + {0x0aaa, 0x0ab0}, + {0x0ab2, 0x0ab3}, + {0x0ab5, 0x0ab9}, + {0x0abc, 0x0ac5}, + {0x0ac7, 0x0ac9}, + {0x0acb, 0x0acd}, + {0x0ad0, 0x0ad0}, + {0x0ae0, 0x0ae3}, + {0x0ae6, 0x0af1}, + {0x0af9, 0x0aff}, + {0x0b01, 0x0b03}, + {0x0b05, 0x0b0c}, + {0x0b0f, 0x0b10}, + {0x0b13, 0x0b28}, + {0x0b2a, 0x0b30}, + {0x0b32, 0x0b33}, + {0x0b35, 0x0b39}, + {0x0b3c, 0x0b44}, + {0x0b47, 0x0b48}, + {0x0b4b, 0x0b4d}, + {0x0b55, 0x0b57}, + {0x0b5c, 0x0b5d}, + {0x0b5f, 0x0b63}, + {0x0b66, 0x0b77}, + {0x0b82, 0x0b83}, + {0x0b85, 0x0b8a}, + {0x0b8e, 0x0b90}, + {0x0b92, 0x0b95}, + {0x0b99, 0x0b9a}, + {0x0b9c, 0x0b9c}, + {0x0b9e, 0x0b9f}, + {0x0ba3, 0x0ba4}, + {0x0ba8, 0x0baa}, + {0x0bae, 0x0bb9}, + {0x0bbe, 0x0bc2}, + {0x0bc6, 0x0bc8}, + {0x0bca, 0x0bcd}, + {0x0bd0, 0x0bd0}, + {0x0bd7, 0x0bd7}, + {0x0be6, 0x0bfa}, + {0x0c00, 0x0c0c}, + {0x0c0e, 0x0c10}, + {0x0c12, 0x0c28}, + {0x0c2a, 0x0c39}, + {0x0c3c, 0x0c44}, + {0x0c46, 0x0c48}, + {0x0c4a, 0x0c4d}, + {0x0c55, 0x0c56}, + {0x0c58, 0x0c5a}, + {0x0c5d, 0x0c5d}, + {0x0c60, 0x0c63}, + {0x0c66, 0x0c6f}, + {0x0c77, 0x0c8c}, + {0x0c8e, 0x0c90}, + {0x0c92, 0x0ca8}, + {0x0caa, 0x0cb3}, + {0x0cb5, 0x0cb9}, + {0x0cbc, 0x0cc4}, + {0x0cc6, 0x0cc8}, + {0x0cca, 0x0ccd}, + {0x0cd5, 0x0cd6}, + {0x0cdd, 0x0cde}, + {0x0ce0, 0x0ce3}, + {0x0ce6, 0x0cef}, + {0x0cf1, 0x0cf2}, + {0x0d00, 0x0d0c}, + {0x0d0e, 0x0d10}, + {0x0d12, 0x0d44}, + {0x0d46, 0x0d48}, + {0x0d4a, 0x0d4f}, + {0x0d54, 0x0d63}, + {0x0d66, 0x0d7f}, + {0x0d81, 0x0d83}, + {0x0d85, 0x0d96}, + {0x0d9a, 0x0db1}, + {0x0db3, 0x0dbb}, + {0x0dbd, 0x0dbd}, + {0x0dc0, 0x0dc6}, + {0x0dca, 0x0dca}, + {0x0dcf, 0x0dd4}, + {0x0dd6, 0x0dd6}, + {0x0dd8, 0x0ddf}, + {0x0de6, 0x0def}, + {0x0df2, 0x0df4}, + {0x0e01, 0x0e3a}, + {0x0e3f, 0x0e5b}, + {0x0e81, 0x0e82}, + {0x0e84, 0x0e84}, + {0x0e86, 0x0e8a}, + {0x0e8c, 0x0ea3}, + {0x0ea5, 0x0ea5}, + {0x0ea7, 0x0ebd}, + {0x0ec0, 0x0ec4}, + {0x0ec6, 0x0ec6}, + {0x0ec8, 0x0ecd}, + {0x0ed0, 0x0ed9}, + {0x0edc, 0x0edf}, + {0x0f00, 0x0f47}, + {0x0f49, 0x0f6c}, + {0x0f71, 0x0f97}, + {0x0f99, 0x0fbc}, + {0x0fbe, 0x0fcc}, + {0x0fce, 0x0fda}, + {0x1000, 0x10c5}, + {0x10c7, 0x10c7}, + {0x10cd, 0x10cd}, + {0x10d0, 0x1248}, + {0x124a, 0x124d}, + {0x1250, 0x1256}, + {0x1258, 0x1258}, + {0x125a, 0x125d}, + {0x1260, 0x1288}, + {0x128a, 0x128d}, + {0x1290, 0x12b0}, + {0x12b2, 0x12b5}, + {0x12b8, 0x12be}, + {0x12c0, 0x12c0}, + {0x12c2, 0x12c5}, + {0x12c8, 0x12d6}, + {0x12d8, 0x1310}, + {0x1312, 0x1315}, + {0x1318, 0x135a}, + {0x135d, 0x137c}, + {0x1380, 0x1399}, + {0x13a0, 0x13f5}, + {0x13f8, 0x13fd}, + {0x1400, 0x167f}, + {0x1681, 0x169c}, + {0x16a0, 0x16f8}, + {0x1700, 0x1715}, + {0x171f, 0x1736}, + {0x1740, 0x1753}, + {0x1760, 0x176c}, + {0x176e, 0x1770}, + {0x1772, 0x1773}, + {0x1780, 0x17dd}, + {0x17e0, 0x17e9}, + {0x17f0, 0x17f9}, + {0x1800, 0x180d}, + {0x180f, 0x1819}, + {0x1820, 0x1878}, + {0x1880, 0x18aa}, + {0x18b0, 0x18f5}, + {0x1900, 0x191e}, + {0x1920, 0x192b}, + {0x1930, 0x193b}, + {0x1940, 0x1940}, + {0x1944, 0x196d}, + {0x1970, 0x1974}, + {0x1980, 0x19ab}, + {0x19b0, 0x19c9}, + {0x19d0, 0x19da}, + {0x19de, 0x1a1b}, + {0x1a1e, 0x1a5e}, + {0x1a60, 0x1a7c}, + {0x1a7f, 0x1a89}, + {0x1a90, 0x1a99}, + {0x1aa0, 0x1aad}, + {0x1ab0, 0x1ace}, + {0x1b00, 0x1b4c}, + {0x1b50, 0x1b7e}, + {0x1b80, 0x1bf3}, + {0x1bfc, 0x1c37}, + {0x1c3b, 0x1c49}, + {0x1c4d, 0x1c88}, + {0x1c90, 0x1cba}, + {0x1cbd, 0x1cc7}, + {0x1cd0, 0x1cfa}, + {0x1d00, 0x1f15}, + {0x1f18, 0x1f1d}, + {0x1f20, 0x1f45}, + {0x1f48, 0x1f4d}, + {0x1f50, 0x1f57}, + {0x1f59, 0x1f59}, + {0x1f5b, 0x1f5b}, + {0x1f5d, 0x1f5d}, + {0x1f5f, 0x1f7d}, + {0x1f80, 0x1fb4}, + {0x1fb6, 0x1fc4}, + {0x1fc6, 0x1fd3}, + {0x1fd6, 0x1fdb}, + {0x1fdd, 0x1fef}, + {0x1ff2, 0x1ff4}, + {0x1ff6, 0x1ffe}, + {0x2010, 0x2027}, + {0x2030, 0x205e}, + {0x2070, 0x2071}, + {0x2074, 0x208e}, + {0x2090, 0x209c}, + {0x20a0, 0x20c0}, + {0x20d0, 0x20f0}, + {0x2100, 0x218b}, + {0x2190, 0x2426}, + {0x2440, 0x244a}, + {0x2460, 0x2b73}, + {0x2b76, 0x2b95}, + {0x2b97, 0x2cf3}, + {0x2cf9, 0x2d25}, + {0x2d27, 0x2d27}, + {0x2d2d, 0x2d2d}, + {0x2d30, 0x2d67}, + {0x2d6f, 0x2d70}, + {0x2d7f, 0x2d96}, + {0x2da0, 0x2da6}, + {0x2da8, 0x2dae}, + {0x2db0, 0x2db6}, + {0x2db8, 0x2dbe}, + {0x2dc0, 0x2dc6}, + {0x2dc8, 0x2dce}, + {0x2dd0, 0x2dd6}, + {0x2dd8, 0x2dde}, + {0x2de0, 0x2e5d}, + {0x2e80, 0x2e99}, + {0x2e9b, 0x2ef3}, + {0x2f00, 0x2fd5}, + {0x2ff0, 0x2ffb}, + {0x3001, 0x303f}, + {0x3041, 0x3096}, + {0x3099, 0x30ff}, + {0x3105, 0x312f}, + {0x3131, 0x318e}, + {0x3190, 0x31e3}, + {0x31f0, 0x321e}, + {0x3220, 0xa48c}, + {0xa490, 0xa4c6}, + {0xa4d0, 0xa62b}, + {0xa640, 0xa6f7}, + {0xa700, 0xa7ca}, + {0xa7d0, 0xa7d1}, + {0xa7d3, 0xa7d3}, + {0xa7d5, 0xa7d9}, + {0xa7f2, 0xa82c}, + {0xa830, 0xa839}, + {0xa840, 0xa877}, + {0xa880, 0xa8c5}, + {0xa8ce, 0xa8d9}, + {0xa8e0, 0xa953}, + {0xa95f, 0xa97c}, + {0xa980, 0xa9cd}, + {0xa9cf, 0xa9d9}, + {0xa9de, 0xa9fe}, + {0xaa00, 0xaa36}, + {0xaa40, 0xaa4d}, + {0xaa50, 0xaa59}, + {0xaa5c, 0xaac2}, + {0xaadb, 0xaaf6}, + {0xab01, 0xab06}, + {0xab09, 0xab0e}, + {0xab11, 0xab16}, + {0xab20, 0xab26}, + {0xab28, 0xab2e}, + {0xab30, 0xab6b}, + {0xab70, 0xabed}, + {0xabf0, 0xabf9}, + {0xac00, 0xd7a3}, + {0xd7b0, 0xd7c6}, + {0xd7cb, 0xd7fb}, + {0xf900, 0xfa6d}, + {0xfa70, 0xfad9}, + {0xfb00, 0xfb06}, + {0xfb13, 0xfb17}, + {0xfb1d, 0xfb36}, + {0xfb38, 0xfb3c}, + {0xfb3e, 0xfb3e}, + {0xfb40, 0xfb41}, + {0xfb43, 0xfb44}, + {0xfb46, 0xfbc2}, + {0xfbd3, 0xfd8f}, + {0xfd92, 0xfdc7}, + {0xfdcf, 0xfdcf}, + {0xfdf0, 0xfe19}, + {0xfe20, 0xfe52}, + {0xfe54, 0xfe66}, + {0xfe68, 0xfe6b}, + {0xfe70, 0xfe74}, + {0xfe76, 0xfefc}, + {0xff01, 0xffbe}, + {0xffc2, 0xffc7}, + {0xffca, 0xffcf}, + {0xffd2, 0xffd7}, + {0xffda, 0xffdc}, + {0xffe0, 0xffe6}, + {0xffe8, 0xffee}, + {0xfffc, 0xfffd}, + {0x10000, 0x1000b}, + {0x1000d, 0x10026}, + {0x10028, 0x1003a}, + {0x1003c, 0x1003d}, + {0x1003f, 0x1004d}, + {0x10050, 0x1005d}, + {0x10080, 0x100fa}, + {0x10100, 0x10102}, + {0x10107, 0x10133}, + {0x10137, 0x1018e}, + {0x10190, 0x1019c}, + {0x101a0, 0x101a0}, + {0x101d0, 0x101fd}, + {0x10280, 0x1029c}, + {0x102a0, 0x102d0}, + {0x102e0, 0x102fb}, + {0x10300, 0x10323}, + {0x1032d, 0x1034a}, + {0x10350, 0x1037a}, + {0x10380, 0x1039d}, + {0x1039f, 0x103c3}, + {0x103c8, 0x103d5}, + {0x10400, 0x1049d}, + {0x104a0, 0x104a9}, + {0x104b0, 0x104d3}, + {0x104d8, 0x104fb}, + {0x10500, 0x10527}, + {0x10530, 0x10563}, + {0x1056f, 0x1057a}, + {0x1057c, 0x1058a}, + {0x1058c, 0x10592}, + {0x10594, 0x10595}, + {0x10597, 0x105a1}, + {0x105a3, 0x105b1}, + {0x105b3, 0x105b9}, + {0x105bb, 0x105bc}, + {0x10600, 0x10736}, + {0x10740, 0x10755}, + {0x10760, 0x10767}, + {0x10780, 0x10785}, + {0x10787, 0x107b0}, + {0x107b2, 0x107ba}, + {0x10800, 0x10805}, + {0x10808, 0x10808}, + {0x1080a, 0x10835}, + {0x10837, 0x10838}, + {0x1083c, 0x1083c}, + {0x1083f, 0x10855}, + {0x10857, 0x1089e}, + {0x108a7, 0x108af}, + {0x108e0, 0x108f2}, + {0x108f4, 0x108f5}, + {0x108fb, 0x1091b}, + {0x1091f, 0x10939}, + {0x1093f, 0x1093f}, + {0x10980, 0x109b7}, + {0x109bc, 0x109cf}, + {0x109d2, 0x10a03}, + {0x10a05, 0x10a06}, + {0x10a0c, 0x10a13}, + {0x10a15, 0x10a17}, + {0x10a19, 0x10a35}, + {0x10a38, 0x10a3a}, + {0x10a3f, 0x10a48}, + {0x10a50, 0x10a58}, + {0x10a60, 0x10a9f}, + {0x10ac0, 0x10ae6}, + {0x10aeb, 0x10af6}, + {0x10b00, 0x10b35}, + {0x10b39, 0x10b55}, + {0x10b58, 0x10b72}, + {0x10b78, 0x10b91}, + {0x10b99, 0x10b9c}, + {0x10ba9, 0x10baf}, + {0x10c00, 0x10c48}, + {0x10c80, 0x10cb2}, + {0x10cc0, 0x10cf2}, + {0x10cfa, 0x10d27}, + {0x10d30, 0x10d39}, + {0x10e60, 0x10e7e}, + {0x10e80, 0x10ea9}, + {0x10eab, 0x10ead}, + {0x10eb0, 0x10eb1}, + {0x10f00, 0x10f27}, + {0x10f30, 0x10f59}, + {0x10f70, 0x10f89}, + {0x10fb0, 0x10fcb}, + {0x10fe0, 0x10ff6}, + {0x11000, 0x1104d}, + {0x11052, 0x11075}, + {0x1107f, 0x110bc}, + {0x110be, 0x110c2}, + {0x110d0, 0x110e8}, + {0x110f0, 0x110f9}, + {0x11100, 0x11134}, + {0x11136, 0x11147}, + {0x11150, 0x11176}, + {0x11180, 0x111df}, + {0x111e1, 0x111f4}, + {0x11200, 0x11211}, + {0x11213, 0x1123e}, + {0x11280, 0x11286}, + {0x11288, 0x11288}, + {0x1128a, 0x1128d}, + {0x1128f, 0x1129d}, + {0x1129f, 0x112a9}, + {0x112b0, 0x112ea}, + {0x112f0, 0x112f9}, + {0x11300, 0x11303}, + {0x11305, 0x1130c}, + {0x1130f, 0x11310}, + {0x11313, 0x11328}, + {0x1132a, 0x11330}, + {0x11332, 0x11333}, + {0x11335, 0x11339}, + {0x1133b, 0x11344}, + {0x11347, 0x11348}, + {0x1134b, 0x1134d}, + {0x11350, 0x11350}, + {0x11357, 0x11357}, + {0x1135d, 0x11363}, + {0x11366, 0x1136c}, + {0x11370, 0x11374}, + {0x11400, 0x1145b}, + {0x1145d, 0x11461}, + {0x11480, 0x114c7}, + {0x114d0, 0x114d9}, + {0x11580, 0x115b5}, + {0x115b8, 0x115dd}, + {0x11600, 0x11644}, + {0x11650, 0x11659}, + {0x11660, 0x1166c}, + {0x11680, 0x116b9}, + {0x116c0, 0x116c9}, + {0x11700, 0x1171a}, + {0x1171d, 0x1172b}, + {0x11730, 0x11746}, + {0x11800, 0x1183b}, + {0x118a0, 0x118f2}, + {0x118ff, 0x11906}, + {0x11909, 0x11909}, + {0x1190c, 0x11913}, + {0x11915, 0x11916}, + {0x11918, 0x11935}, + {0x11937, 0x11938}, + {0x1193b, 0x11946}, + {0x11950, 0x11959}, + {0x119a0, 0x119a7}, + {0x119aa, 0x119d7}, + {0x119da, 0x119e4}, + {0x11a00, 0x11a47}, + {0x11a50, 0x11aa2}, + {0x11ab0, 0x11af8}, + {0x11c00, 0x11c08}, + {0x11c0a, 0x11c36}, + {0x11c38, 0x11c45}, + {0x11c50, 0x11c6c}, + {0x11c70, 0x11c8f}, + {0x11c92, 0x11ca7}, + {0x11ca9, 0x11cb6}, + {0x11d00, 0x11d06}, + {0x11d08, 0x11d09}, + {0x11d0b, 0x11d36}, + {0x11d3a, 0x11d3a}, + {0x11d3c, 0x11d3d}, + {0x11d3f, 0x11d47}, + {0x11d50, 0x11d59}, + {0x11d60, 0x11d65}, + {0x11d67, 0x11d68}, + {0x11d6a, 0x11d8e}, + {0x11d90, 0x11d91}, + {0x11d93, 0x11d98}, + {0x11da0, 0x11da9}, + {0x11ee0, 0x11ef8}, + {0x11fb0, 0x11fb0}, + {0x11fc0, 0x11ff1}, + {0x11fff, 0x12399}, + {0x12400, 0x1246e}, + {0x12470, 0x12474}, + {0x12480, 0x12543}, + {0x12f90, 0x12ff2}, + {0x13000, 0x1342e}, + {0x14400, 0x14646}, + {0x16800, 0x16a38}, + {0x16a40, 0x16a5e}, + {0x16a60, 0x16a69}, + {0x16a6e, 0x16abe}, + {0x16ac0, 0x16ac9}, + {0x16ad0, 0x16aed}, + {0x16af0, 0x16af5}, + {0x16b00, 0x16b45}, + {0x16b50, 0x16b59}, + {0x16b5b, 0x16b61}, + {0x16b63, 0x16b77}, + {0x16b7d, 0x16b8f}, + {0x16e40, 0x16e9a}, + {0x16f00, 0x16f4a}, + {0x16f4f, 0x16f87}, + {0x16f8f, 0x16f9f}, + {0x16fe0, 0x16fe4}, + {0x16ff0, 0x16ff1}, + {0x17000, 0x187f7}, + {0x18800, 0x18cd5}, + {0x18d00, 0x18d08}, + {0x1aff0, 0x1aff3}, + {0x1aff5, 0x1affb}, + {0x1affd, 0x1affe}, + {0x1b000, 0x1b122}, + {0x1b150, 0x1b152}, + {0x1b164, 0x1b167}, + {0x1b170, 0x1b2fb}, + {0x1bc00, 0x1bc6a}, + {0x1bc70, 0x1bc7c}, + {0x1bc80, 0x1bc88}, + {0x1bc90, 0x1bc99}, + {0x1bc9c, 0x1bc9f}, + {0x1cf00, 0x1cf2d}, + {0x1cf30, 0x1cf46}, + {0x1cf50, 0x1cfc3}, + {0x1d000, 0x1d0f5}, + {0x1d100, 0x1d126}, + {0x1d129, 0x1d172}, + {0x1d17b, 0x1d1ea}, + {0x1d200, 0x1d245}, + {0x1d2e0, 0x1d2f3}, + {0x1d300, 0x1d356}, + {0x1d360, 0x1d378}, + {0x1d400, 0x1d454}, + {0x1d456, 0x1d49c}, + {0x1d49e, 0x1d49f}, + {0x1d4a2, 0x1d4a2}, + {0x1d4a5, 0x1d4a6}, + {0x1d4a9, 0x1d4ac}, + {0x1d4ae, 0x1d4b9}, + {0x1d4bb, 0x1d4bb}, + {0x1d4bd, 0x1d4c3}, + {0x1d4c5, 0x1d505}, + {0x1d507, 0x1d50a}, + {0x1d50d, 0x1d514}, + {0x1d516, 0x1d51c}, + {0x1d51e, 0x1d539}, + {0x1d53b, 0x1d53e}, + {0x1d540, 0x1d544}, + {0x1d546, 0x1d546}, + {0x1d54a, 0x1d550}, + {0x1d552, 0x1d6a5}, + {0x1d6a8, 0x1d7cb}, + {0x1d7ce, 0x1da8b}, + {0x1da9b, 0x1da9f}, + {0x1daa1, 0x1daaf}, + {0x1df00, 0x1df1e}, + {0x1e000, 0x1e006}, + {0x1e008, 0x1e018}, + {0x1e01b, 0x1e021}, + {0x1e023, 0x1e024}, + {0x1e026, 0x1e02a}, + {0x1e100, 0x1e12c}, + {0x1e130, 0x1e13d}, + {0x1e140, 0x1e149}, + {0x1e14e, 0x1e14f}, + {0x1e290, 0x1e2ae}, + {0x1e2c0, 0x1e2f9}, + {0x1e2ff, 0x1e2ff}, + {0x1e7e0, 0x1e7e6}, + {0x1e7e8, 0x1e7eb}, + {0x1e7ed, 0x1e7ee}, + {0x1e7f0, 0x1e7fe}, + {0x1e800, 0x1e8c4}, + {0x1e8c7, 0x1e8d6}, + {0x1e900, 0x1e94b}, + {0x1e950, 0x1e959}, + {0x1e95e, 0x1e95f}, + {0x1ec71, 0x1ecb4}, + {0x1ed01, 0x1ed3d}, + {0x1ee00, 0x1ee03}, + {0x1ee05, 0x1ee1f}, + {0x1ee21, 0x1ee22}, + {0x1ee24, 0x1ee24}, + {0x1ee27, 0x1ee27}, + {0x1ee29, 0x1ee32}, + {0x1ee34, 0x1ee37}, + {0x1ee39, 0x1ee39}, + {0x1ee3b, 0x1ee3b}, + {0x1ee42, 0x1ee42}, + {0x1ee47, 0x1ee47}, + {0x1ee49, 0x1ee49}, + {0x1ee4b, 0x1ee4b}, + {0x1ee4d, 0x1ee4f}, + {0x1ee51, 0x1ee52}, + {0x1ee54, 0x1ee54}, + {0x1ee57, 0x1ee57}, + {0x1ee59, 0x1ee59}, + {0x1ee5b, 0x1ee5b}, + {0x1ee5d, 0x1ee5d}, + {0x1ee5f, 0x1ee5f}, + {0x1ee61, 0x1ee62}, + {0x1ee64, 0x1ee64}, + {0x1ee67, 0x1ee6a}, + {0x1ee6c, 0x1ee72}, + {0x1ee74, 0x1ee77}, + {0x1ee79, 0x1ee7c}, + {0x1ee7e, 0x1ee7e}, + {0x1ee80, 0x1ee89}, + {0x1ee8b, 0x1ee9b}, + {0x1eea1, 0x1eea3}, + {0x1eea5, 0x1eea9}, + {0x1eeab, 0x1eebb}, + {0x1eef0, 0x1eef1}, + {0x1f000, 0x1f02b}, + {0x1f030, 0x1f093}, + {0x1f0a0, 0x1f0ae}, + {0x1f0b1, 0x1f0bf}, + {0x1f0c1, 0x1f0cf}, + {0x1f0d1, 0x1f0f5}, + {0x1f100, 0x1f1ad}, + {0x1f1e6, 0x1f202}, + {0x1f210, 0x1f23b}, + {0x1f240, 0x1f248}, + {0x1f250, 0x1f251}, + {0x1f260, 0x1f265}, + {0x1f300, 0x1f6d7}, + {0x1f6dd, 0x1f6ec}, + {0x1f6f0, 0x1f6fc}, + {0x1f700, 0x1f773}, + {0x1f780, 0x1f7d8}, + {0x1f7e0, 0x1f7eb}, + {0x1f7f0, 0x1f7f0}, + {0x1f800, 0x1f80b}, + {0x1f810, 0x1f847}, + {0x1f850, 0x1f859}, + {0x1f860, 0x1f887}, + {0x1f890, 0x1f8ad}, + {0x1f8b0, 0x1f8b1}, + {0x1f900, 0x1fa53}, + {0x1fa60, 0x1fa6d}, + {0x1fa70, 0x1fa74}, + {0x1fa78, 0x1fa7c}, + {0x1fa80, 0x1fa86}, + {0x1fa90, 0x1faac}, + {0x1fab0, 0x1faba}, + {0x1fac0, 0x1fac5}, + {0x1fad0, 0x1fad9}, + {0x1fae0, 0x1fae7}, + {0x1faf0, 0x1faf6}, + {0x1fb00, 0x1fb92}, + {0x1fb94, 0x1fbca}, + {0x1fbf0, 0x1fbf9}, + {0x20000, 0x2a6df}, + {0x2a700, 0x2b738}, + {0x2b740, 0x2b81d}, + {0x2b820, 0x2cea1}, + {0x2ceb0, 0x2ebe0}, + {0x2f800, 0x2fa1d}, + {0x30000, 0x3134a}, {0xe0100, 0xe01ef} }; -scm_t_char_set cs_graphic = { - 678, - cs_graphic_ranges -}; +static const size_t cs_graphic_len = 700; -scm_t_char_range cs_whitespace_ranges[] = { - {0x0009, 0x000d} - , - {0x0020, 0x0020} - , - {0x00a0, 0x00a0} - , - {0x1680, 0x1680} - , - {0x2000, 0x200a} - , - {0x2028, 0x2029} - , - {0x202f, 0x202f} - , - {0x205f, 0x205f} - , +static const scm_t_char_range cs_whitespace_ranges[] = { + {0x0009, 0x000d}, + {0x0020, 0x0020}, + {0x00a0, 0x00a0}, + {0x1680, 0x1680}, + {0x2000, 0x200a}, + {0x2028, 0x2029}, + {0x202f, 0x202f}, + {0x205f, 0x205f}, {0x3000, 0x3000} }; -scm_t_char_set cs_whitespace = { - 9, - cs_whitespace_ranges -}; +static const size_t cs_whitespace_len = 9; -scm_t_char_range cs_printing_ranges[] = { - {0x0009, 0x000d} - , - {0x0020, 0x007e} - , - {0x00a0, 0x00ac} - , - {0x00ae, 0x0377} - , - {0x037a, 0x037f} - , - {0x0384, 0x038a} - , - {0x038c, 0x038c} - , - {0x038e, 0x03a1} - , - {0x03a3, 0x052f} - , - {0x0531, 0x0556} - , - {0x0559, 0x058a} - , - {0x058d, 0x058f} - , - {0x0591, 0x05c7} - , - {0x05d0, 0x05ea} - , - {0x05ef, 0x05f4} - , - {0x0606, 0x061b} - , - {0x061e, 0x06dc} - , - {0x06de, 0x070d} - , - {0x0710, 0x074a} - , - {0x074d, 0x07b1} - , - {0x07c0, 0x07fa} - , - {0x07fd, 0x082d} - , - {0x0830, 0x083e} - , - {0x0840, 0x085b} - , - {0x085e, 0x085e} - , - {0x0860, 0x086a} - , - {0x08a0, 0x08b4} - , - {0x08b6, 0x08c7} - , - {0x08d3, 0x08e1} - , - {0x08e3, 0x0983} - , - {0x0985, 0x098c} - , - {0x098f, 0x0990} - , - {0x0993, 0x09a8} - , - {0x09aa, 0x09b0} - , - {0x09b2, 0x09b2} - , - {0x09b6, 0x09b9} - , - {0x09bc, 0x09c4} - , - {0x09c7, 0x09c8} - , - {0x09cb, 0x09ce} - , - {0x09d7, 0x09d7} - , - {0x09dc, 0x09dd} - , - {0x09df, 0x09e3} - , - {0x09e6, 0x09fe} - , - {0x0a01, 0x0a03} - , - {0x0a05, 0x0a0a} - , - {0x0a0f, 0x0a10} - , - {0x0a13, 0x0a28} - , - {0x0a2a, 0x0a30} - , - {0x0a32, 0x0a33} - , - {0x0a35, 0x0a36} - , - {0x0a38, 0x0a39} - , - {0x0a3c, 0x0a3c} - , - {0x0a3e, 0x0a42} - , - {0x0a47, 0x0a48} - , - {0x0a4b, 0x0a4d} - , - {0x0a51, 0x0a51} - , - {0x0a59, 0x0a5c} - , - {0x0a5e, 0x0a5e} - , - {0x0a66, 0x0a76} - , - {0x0a81, 0x0a83} - , - {0x0a85, 0x0a8d} - , - {0x0a8f, 0x0a91} - , - {0x0a93, 0x0aa8} - , - {0x0aaa, 0x0ab0} - , - {0x0ab2, 0x0ab3} - , - {0x0ab5, 0x0ab9} - , - {0x0abc, 0x0ac5} - , - {0x0ac7, 0x0ac9} - , - {0x0acb, 0x0acd} - , - {0x0ad0, 0x0ad0} - , - {0x0ae0, 0x0ae3} - , - {0x0ae6, 0x0af1} - , - {0x0af9, 0x0aff} - , - {0x0b01, 0x0b03} - , - {0x0b05, 0x0b0c} - , - {0x0b0f, 0x0b10} - , - {0x0b13, 0x0b28} - , - {0x0b2a, 0x0b30} - , - {0x0b32, 0x0b33} - , - {0x0b35, 0x0b39} - , - {0x0b3c, 0x0b44} - , - {0x0b47, 0x0b48} - , - {0x0b4b, 0x0b4d} - , - {0x0b55, 0x0b57} - , - {0x0b5c, 0x0b5d} - , - {0x0b5f, 0x0b63} - , - {0x0b66, 0x0b77} - , - {0x0b82, 0x0b83} - , - {0x0b85, 0x0b8a} - , - {0x0b8e, 0x0b90} - , - {0x0b92, 0x0b95} - , - {0x0b99, 0x0b9a} - , - {0x0b9c, 0x0b9c} - , - {0x0b9e, 0x0b9f} - , - {0x0ba3, 0x0ba4} - , - {0x0ba8, 0x0baa} - , - {0x0bae, 0x0bb9} - , - {0x0bbe, 0x0bc2} - , - {0x0bc6, 0x0bc8} - , - {0x0bca, 0x0bcd} - , - {0x0bd0, 0x0bd0} - , - {0x0bd7, 0x0bd7} - , - {0x0be6, 0x0bfa} - , - {0x0c00, 0x0c0c} - , - {0x0c0e, 0x0c10} - , - {0x0c12, 0x0c28} - , - {0x0c2a, 0x0c39} - , - {0x0c3d, 0x0c44} - , - {0x0c46, 0x0c48} - , - {0x0c4a, 0x0c4d} - , - {0x0c55, 0x0c56} - , - {0x0c58, 0x0c5a} - , - {0x0c60, 0x0c63} - , - {0x0c66, 0x0c6f} - , - {0x0c77, 0x0c8c} - , - {0x0c8e, 0x0c90} - , - {0x0c92, 0x0ca8} - , - {0x0caa, 0x0cb3} - , - {0x0cb5, 0x0cb9} - , - {0x0cbc, 0x0cc4} - , - {0x0cc6, 0x0cc8} - , - {0x0cca, 0x0ccd} - , - {0x0cd5, 0x0cd6} - , - {0x0cde, 0x0cde} - , - {0x0ce0, 0x0ce3} - , - {0x0ce6, 0x0cef} - , - {0x0cf1, 0x0cf2} - , - {0x0d00, 0x0d0c} - , - {0x0d0e, 0x0d10} - , - {0x0d12, 0x0d44} - , - {0x0d46, 0x0d48} - , - {0x0d4a, 0x0d4f} - , - {0x0d54, 0x0d63} - , - {0x0d66, 0x0d7f} - , - {0x0d81, 0x0d83} - , - {0x0d85, 0x0d96} - , - {0x0d9a, 0x0db1} - , - {0x0db3, 0x0dbb} - , - {0x0dbd, 0x0dbd} - , - {0x0dc0, 0x0dc6} - , - {0x0dca, 0x0dca} - , - {0x0dcf, 0x0dd4} - , - {0x0dd6, 0x0dd6} - , - {0x0dd8, 0x0ddf} - , - {0x0de6, 0x0def} - , - {0x0df2, 0x0df4} - , - {0x0e01, 0x0e3a} - , - {0x0e3f, 0x0e5b} - , - {0x0e81, 0x0e82} - , - {0x0e84, 0x0e84} - , - {0x0e86, 0x0e8a} - , - {0x0e8c, 0x0ea3} - , - {0x0ea5, 0x0ea5} - , - {0x0ea7, 0x0ebd} - , - {0x0ec0, 0x0ec4} - , - {0x0ec6, 0x0ec6} - , - {0x0ec8, 0x0ecd} - , - {0x0ed0, 0x0ed9} - , - {0x0edc, 0x0edf} - , - {0x0f00, 0x0f47} - , - {0x0f49, 0x0f6c} - , - {0x0f71, 0x0f97} - , - {0x0f99, 0x0fbc} - , - {0x0fbe, 0x0fcc} - , - {0x0fce, 0x0fda} - , - {0x1000, 0x10c5} - , - {0x10c7, 0x10c7} - , - {0x10cd, 0x10cd} - , - {0x10d0, 0x1248} - , - {0x124a, 0x124d} - , - {0x1250, 0x1256} - , - {0x1258, 0x1258} - , - {0x125a, 0x125d} - , - {0x1260, 0x1288} - , - {0x128a, 0x128d} - , - {0x1290, 0x12b0} - , - {0x12b2, 0x12b5} - , - {0x12b8, 0x12be} - , - {0x12c0, 0x12c0} - , - {0x12c2, 0x12c5} - , - {0x12c8, 0x12d6} - , - {0x12d8, 0x1310} - , - {0x1312, 0x1315} - , - {0x1318, 0x135a} - , - {0x135d, 0x137c} - , - {0x1380, 0x1399} - , - {0x13a0, 0x13f5} - , - {0x13f8, 0x13fd} - , - {0x1400, 0x169c} - , - {0x16a0, 0x16f8} - , - {0x1700, 0x170c} - , - {0x170e, 0x1714} - , - {0x1720, 0x1736} - , - {0x1740, 0x1753} - , - {0x1760, 0x176c} - , - {0x176e, 0x1770} - , - {0x1772, 0x1773} - , - {0x1780, 0x17dd} - , - {0x17e0, 0x17e9} - , - {0x17f0, 0x17f9} - , - {0x1800, 0x180d} - , - {0x1810, 0x1819} - , - {0x1820, 0x1878} - , - {0x1880, 0x18aa} - , - {0x18b0, 0x18f5} - , - {0x1900, 0x191e} - , - {0x1920, 0x192b} - , - {0x1930, 0x193b} - , - {0x1940, 0x1940} - , - {0x1944, 0x196d} - , - {0x1970, 0x1974} - , - {0x1980, 0x19ab} - , - {0x19b0, 0x19c9} - , - {0x19d0, 0x19da} - , - {0x19de, 0x1a1b} - , - {0x1a1e, 0x1a5e} - , - {0x1a60, 0x1a7c} - , - {0x1a7f, 0x1a89} - , - {0x1a90, 0x1a99} - , - {0x1aa0, 0x1aad} - , - {0x1ab0, 0x1ac0} - , - {0x1b00, 0x1b4b} - , - {0x1b50, 0x1b7c} - , - {0x1b80, 0x1bf3} - , - {0x1bfc, 0x1c37} - , - {0x1c3b, 0x1c49} - , - {0x1c4d, 0x1c88} - , - {0x1c90, 0x1cba} - , - {0x1cbd, 0x1cc7} - , - {0x1cd0, 0x1cfa} - , - {0x1d00, 0x1df9} - , - {0x1dfb, 0x1f15} - , - {0x1f18, 0x1f1d} - , - {0x1f20, 0x1f45} - , - {0x1f48, 0x1f4d} - , - {0x1f50, 0x1f57} - , - {0x1f59, 0x1f59} - , - {0x1f5b, 0x1f5b} - , - {0x1f5d, 0x1f5d} - , - {0x1f5f, 0x1f7d} - , - {0x1f80, 0x1fb4} - , - {0x1fb6, 0x1fc4} - , - {0x1fc6, 0x1fd3} - , - {0x1fd6, 0x1fdb} - , - {0x1fdd, 0x1fef} - , - {0x1ff2, 0x1ff4} - , - {0x1ff6, 0x1ffe} - , - {0x2000, 0x200a} - , - {0x2010, 0x2029} - , - {0x202f, 0x205f} - , - {0x2070, 0x2071} - , - {0x2074, 0x208e} - , - {0x2090, 0x209c} - , - {0x20a0, 0x20bf} - , - {0x20d0, 0x20f0} - , - {0x2100, 0x218b} - , - {0x2190, 0x2426} - , - {0x2440, 0x244a} - , - {0x2460, 0x2b73} - , - {0x2b76, 0x2b95} - , - {0x2b97, 0x2c2e} - , - {0x2c30, 0x2c5e} - , - {0x2c60, 0x2cf3} - , - {0x2cf9, 0x2d25} - , - {0x2d27, 0x2d27} - , - {0x2d2d, 0x2d2d} - , - {0x2d30, 0x2d67} - , - {0x2d6f, 0x2d70} - , - {0x2d7f, 0x2d96} - , - {0x2da0, 0x2da6} - , - {0x2da8, 0x2dae} - , - {0x2db0, 0x2db6} - , - {0x2db8, 0x2dbe} - , - {0x2dc0, 0x2dc6} - , - {0x2dc8, 0x2dce} - , - {0x2dd0, 0x2dd6} - , - {0x2dd8, 0x2dde} - , - {0x2de0, 0x2e52} - , - {0x2e80, 0x2e99} - , - {0x2e9b, 0x2ef3} - , - {0x2f00, 0x2fd5} - , - {0x2ff0, 0x2ffb} - , - {0x3000, 0x303f} - , - {0x3041, 0x3096} - , - {0x3099, 0x30ff} - , - {0x3105, 0x312f} - , - {0x3131, 0x318e} - , - {0x3190, 0x31e3} - , - {0x31f0, 0x321e} - , - {0x3220, 0x9ffc} - , - {0xa000, 0xa48c} - , - {0xa490, 0xa4c6} - , - {0xa4d0, 0xa62b} - , - {0xa640, 0xa6f7} - , - {0xa700, 0xa7bf} - , - {0xa7c2, 0xa7ca} - , - {0xa7f5, 0xa82c} - , - {0xa830, 0xa839} - , - {0xa840, 0xa877} - , - {0xa880, 0xa8c5} - , - {0xa8ce, 0xa8d9} - , - {0xa8e0, 0xa953} - , - {0xa95f, 0xa97c} - , - {0xa980, 0xa9cd} - , - {0xa9cf, 0xa9d9} - , - {0xa9de, 0xa9fe} - , - {0xaa00, 0xaa36} - , - {0xaa40, 0xaa4d} - , - {0xaa50, 0xaa59} - , - {0xaa5c, 0xaac2} - , - {0xaadb, 0xaaf6} - , - {0xab01, 0xab06} - , - {0xab09, 0xab0e} - , - {0xab11, 0xab16} - , - {0xab20, 0xab26} - , - {0xab28, 0xab2e} - , - {0xab30, 0xab6b} - , - {0xab70, 0xabed} - , - {0xabf0, 0xabf9} - , - {0xac00, 0xd7a3} - , - {0xd7b0, 0xd7c6} - , - {0xd7cb, 0xd7fb} - , - {0xf900, 0xfa6d} - , - {0xfa70, 0xfad9} - , - {0xfb00, 0xfb06} - , - {0xfb13, 0xfb17} - , - {0xfb1d, 0xfb36} - , - {0xfb38, 0xfb3c} - , - {0xfb3e, 0xfb3e} - , - {0xfb40, 0xfb41} - , - {0xfb43, 0xfb44} - , - {0xfb46, 0xfbc1} - , - {0xfbd3, 0xfd3f} - , - {0xfd50, 0xfd8f} - , - {0xfd92, 0xfdc7} - , - {0xfdf0, 0xfdfd} - , - {0xfe00, 0xfe19} - , - {0xfe20, 0xfe52} - , - {0xfe54, 0xfe66} - , - {0xfe68, 0xfe6b} - , - {0xfe70, 0xfe74} - , - {0xfe76, 0xfefc} - , - {0xff01, 0xffbe} - , - {0xffc2, 0xffc7} - , - {0xffca, 0xffcf} - , - {0xffd2, 0xffd7} - , - {0xffda, 0xffdc} - , - {0xffe0, 0xffe6} - , - {0xffe8, 0xffee} - , - {0xfffc, 0xfffd} - , - {0x10000, 0x1000b} - , - {0x1000d, 0x10026} - , - {0x10028, 0x1003a} - , - {0x1003c, 0x1003d} - , - {0x1003f, 0x1004d} - , - {0x10050, 0x1005d} - , - {0x10080, 0x100fa} - , - {0x10100, 0x10102} - , - {0x10107, 0x10133} - , - {0x10137, 0x1018e} - , - {0x10190, 0x1019c} - , - {0x101a0, 0x101a0} - , - {0x101d0, 0x101fd} - , - {0x10280, 0x1029c} - , - {0x102a0, 0x102d0} - , - {0x102e0, 0x102fb} - , - {0x10300, 0x10323} - , - {0x1032d, 0x1034a} - , - {0x10350, 0x1037a} - , - {0x10380, 0x1039d} - , - {0x1039f, 0x103c3} - , - {0x103c8, 0x103d5} - , - {0x10400, 0x1049d} - , - {0x104a0, 0x104a9} - , - {0x104b0, 0x104d3} - , - {0x104d8, 0x104fb} - , - {0x10500, 0x10527} - , - {0x10530, 0x10563} - , - {0x1056f, 0x1056f} - , - {0x10600, 0x10736} - , - {0x10740, 0x10755} - , - {0x10760, 0x10767} - , - {0x10800, 0x10805} - , - {0x10808, 0x10808} - , - {0x1080a, 0x10835} - , - {0x10837, 0x10838} - , - {0x1083c, 0x1083c} - , - {0x1083f, 0x10855} - , - {0x10857, 0x1089e} - , - {0x108a7, 0x108af} - , - {0x108e0, 0x108f2} - , - {0x108f4, 0x108f5} - , - {0x108fb, 0x1091b} - , - {0x1091f, 0x10939} - , - {0x1093f, 0x1093f} - , - {0x10980, 0x109b7} - , - {0x109bc, 0x109cf} - , - {0x109d2, 0x10a03} - , - {0x10a05, 0x10a06} - , - {0x10a0c, 0x10a13} - , - {0x10a15, 0x10a17} - , - {0x10a19, 0x10a35} - , - {0x10a38, 0x10a3a} - , - {0x10a3f, 0x10a48} - , - {0x10a50, 0x10a58} - , - {0x10a60, 0x10a9f} - , - {0x10ac0, 0x10ae6} - , - {0x10aeb, 0x10af6} - , - {0x10b00, 0x10b35} - , - {0x10b39, 0x10b55} - , - {0x10b58, 0x10b72} - , - {0x10b78, 0x10b91} - , - {0x10b99, 0x10b9c} - , - {0x10ba9, 0x10baf} - , - {0x10c00, 0x10c48} - , - {0x10c80, 0x10cb2} - , - {0x10cc0, 0x10cf2} - , - {0x10cfa, 0x10d27} - , - {0x10d30, 0x10d39} - , - {0x10e60, 0x10e7e} - , - {0x10e80, 0x10ea9} - , - {0x10eab, 0x10ead} - , - {0x10eb0, 0x10eb1} - , - {0x10f00, 0x10f27} - , - {0x10f30, 0x10f59} - , - {0x10fb0, 0x10fcb} - , - {0x10fe0, 0x10ff6} - , - {0x11000, 0x1104d} - , - {0x11052, 0x1106f} - , - {0x1107f, 0x110bc} - , - {0x110be, 0x110c1} - , - {0x110d0, 0x110e8} - , - {0x110f0, 0x110f9} - , - {0x11100, 0x11134} - , - {0x11136, 0x11147} - , - {0x11150, 0x11176} - , - {0x11180, 0x111df} - , - {0x111e1, 0x111f4} - , - {0x11200, 0x11211} - , - {0x11213, 0x1123e} - , - {0x11280, 0x11286} - , - {0x11288, 0x11288} - , - {0x1128a, 0x1128d} - , - {0x1128f, 0x1129d} - , - {0x1129f, 0x112a9} - , - {0x112b0, 0x112ea} - , - {0x112f0, 0x112f9} - , - {0x11300, 0x11303} - , - {0x11305, 0x1130c} - , - {0x1130f, 0x11310} - , - {0x11313, 0x11328} - , - {0x1132a, 0x11330} - , - {0x11332, 0x11333} - , - {0x11335, 0x11339} - , - {0x1133b, 0x11344} - , - {0x11347, 0x11348} - , - {0x1134b, 0x1134d} - , - {0x11350, 0x11350} - , - {0x11357, 0x11357} - , - {0x1135d, 0x11363} - , - {0x11366, 0x1136c} - , - {0x11370, 0x11374} - , - {0x11400, 0x1145b} - , - {0x1145d, 0x11461} - , - {0x11480, 0x114c7} - , - {0x114d0, 0x114d9} - , - {0x11580, 0x115b5} - , - {0x115b8, 0x115dd} - , - {0x11600, 0x11644} - , - {0x11650, 0x11659} - , - {0x11660, 0x1166c} - , - {0x11680, 0x116b8} - , - {0x116c0, 0x116c9} - , - {0x11700, 0x1171a} - , - {0x1171d, 0x1172b} - , - {0x11730, 0x1173f} - , - {0x11800, 0x1183b} - , - {0x118a0, 0x118f2} - , - {0x118ff, 0x11906} - , - {0x11909, 0x11909} - , - {0x1190c, 0x11913} - , - {0x11915, 0x11916} - , - {0x11918, 0x11935} - , - {0x11937, 0x11938} - , - {0x1193b, 0x11946} - , - {0x11950, 0x11959} - , - {0x119a0, 0x119a7} - , - {0x119aa, 0x119d7} - , - {0x119da, 0x119e4} - , - {0x11a00, 0x11a47} - , - {0x11a50, 0x11aa2} - , - {0x11ac0, 0x11af8} - , - {0x11c00, 0x11c08} - , - {0x11c0a, 0x11c36} - , - {0x11c38, 0x11c45} - , - {0x11c50, 0x11c6c} - , - {0x11c70, 0x11c8f} - , - {0x11c92, 0x11ca7} - , - {0x11ca9, 0x11cb6} - , - {0x11d00, 0x11d06} - , - {0x11d08, 0x11d09} - , - {0x11d0b, 0x11d36} - , - {0x11d3a, 0x11d3a} - , - {0x11d3c, 0x11d3d} - , - {0x11d3f, 0x11d47} - , - {0x11d50, 0x11d59} - , - {0x11d60, 0x11d65} - , - {0x11d67, 0x11d68} - , - {0x11d6a, 0x11d8e} - , - {0x11d90, 0x11d91} - , - {0x11d93, 0x11d98} - , - {0x11da0, 0x11da9} - , - {0x11ee0, 0x11ef8} - , - {0x11fb0, 0x11fb0} - , - {0x11fc0, 0x11ff1} - , - {0x11fff, 0x12399} - , - {0x12400, 0x1246e} - , - {0x12470, 0x12474} - , - {0x12480, 0x12543} - , - {0x13000, 0x1342e} - , - {0x14400, 0x14646} - , - {0x16800, 0x16a38} - , - {0x16a40, 0x16a5e} - , - {0x16a60, 0x16a69} - , - {0x16a6e, 0x16a6f} - , - {0x16ad0, 0x16aed} - , - {0x16af0, 0x16af5} - , - {0x16b00, 0x16b45} - , - {0x16b50, 0x16b59} - , - {0x16b5b, 0x16b61} - , - {0x16b63, 0x16b77} - , - {0x16b7d, 0x16b8f} - , - {0x16e40, 0x16e9a} - , - {0x16f00, 0x16f4a} - , - {0x16f4f, 0x16f87} - , - {0x16f8f, 0x16f9f} - , - {0x16fe0, 0x16fe4} - , - {0x16ff0, 0x16ff1} - , - {0x17000, 0x187f7} - , - {0x18800, 0x18cd5} - , - {0x18d00, 0x18d08} - , - {0x1b000, 0x1b11e} - , - {0x1b150, 0x1b152} - , - {0x1b164, 0x1b167} - , - {0x1b170, 0x1b2fb} - , - {0x1bc00, 0x1bc6a} - , - {0x1bc70, 0x1bc7c} - , - {0x1bc80, 0x1bc88} - , - {0x1bc90, 0x1bc99} - , - {0x1bc9c, 0x1bc9f} - , - {0x1d000, 0x1d0f5} - , - {0x1d100, 0x1d126} - , - {0x1d129, 0x1d172} - , - {0x1d17b, 0x1d1e8} - , - {0x1d200, 0x1d245} - , - {0x1d2e0, 0x1d2f3} - , - {0x1d300, 0x1d356} - , - {0x1d360, 0x1d378} - , - {0x1d400, 0x1d454} - , - {0x1d456, 0x1d49c} - , - {0x1d49e, 0x1d49f} - , - {0x1d4a2, 0x1d4a2} - , - {0x1d4a5, 0x1d4a6} - , - {0x1d4a9, 0x1d4ac} - , - {0x1d4ae, 0x1d4b9} - , - {0x1d4bb, 0x1d4bb} - , - {0x1d4bd, 0x1d4c3} - , - {0x1d4c5, 0x1d505} - , - {0x1d507, 0x1d50a} - , - {0x1d50d, 0x1d514} - , - {0x1d516, 0x1d51c} - , - {0x1d51e, 0x1d539} - , - {0x1d53b, 0x1d53e} - , - {0x1d540, 0x1d544} - , - {0x1d546, 0x1d546} - , - {0x1d54a, 0x1d550} - , - {0x1d552, 0x1d6a5} - , - {0x1d6a8, 0x1d7cb} - , - {0x1d7ce, 0x1da8b} - , - {0x1da9b, 0x1da9f} - , - {0x1daa1, 0x1daaf} - , - {0x1e000, 0x1e006} - , - {0x1e008, 0x1e018} - , - {0x1e01b, 0x1e021} - , - {0x1e023, 0x1e024} - , - {0x1e026, 0x1e02a} - , - {0x1e100, 0x1e12c} - , - {0x1e130, 0x1e13d} - , - {0x1e140, 0x1e149} - , - {0x1e14e, 0x1e14f} - , - {0x1e2c0, 0x1e2f9} - , - {0x1e2ff, 0x1e2ff} - , - {0x1e800, 0x1e8c4} - , - {0x1e8c7, 0x1e8d6} - , - {0x1e900, 0x1e94b} - , - {0x1e950, 0x1e959} - , - {0x1e95e, 0x1e95f} - , - {0x1ec71, 0x1ecb4} - , - {0x1ed01, 0x1ed3d} - , - {0x1ee00, 0x1ee03} - , - {0x1ee05, 0x1ee1f} - , - {0x1ee21, 0x1ee22} - , - {0x1ee24, 0x1ee24} - , - {0x1ee27, 0x1ee27} - , - {0x1ee29, 0x1ee32} - , - {0x1ee34, 0x1ee37} - , - {0x1ee39, 0x1ee39} - , - {0x1ee3b, 0x1ee3b} - , - {0x1ee42, 0x1ee42} - , - {0x1ee47, 0x1ee47} - , - {0x1ee49, 0x1ee49} - , - {0x1ee4b, 0x1ee4b} - , - {0x1ee4d, 0x1ee4f} - , - {0x1ee51, 0x1ee52} - , - {0x1ee54, 0x1ee54} - , - {0x1ee57, 0x1ee57} - , - {0x1ee59, 0x1ee59} - , - {0x1ee5b, 0x1ee5b} - , - {0x1ee5d, 0x1ee5d} - , - {0x1ee5f, 0x1ee5f} - , - {0x1ee61, 0x1ee62} - , - {0x1ee64, 0x1ee64} - , - {0x1ee67, 0x1ee6a} - , - {0x1ee6c, 0x1ee72} - , - {0x1ee74, 0x1ee77} - , - {0x1ee79, 0x1ee7c} - , - {0x1ee7e, 0x1ee7e} - , - {0x1ee80, 0x1ee89} - , - {0x1ee8b, 0x1ee9b} - , - {0x1eea1, 0x1eea3} - , - {0x1eea5, 0x1eea9} - , - {0x1eeab, 0x1eebb} - , - {0x1eef0, 0x1eef1} - , - {0x1f000, 0x1f02b} - , - {0x1f030, 0x1f093} - , - {0x1f0a0, 0x1f0ae} - , - {0x1f0b1, 0x1f0bf} - , - {0x1f0c1, 0x1f0cf} - , - {0x1f0d1, 0x1f0f5} - , - {0x1f100, 0x1f1ad} - , - {0x1f1e6, 0x1f202} - , - {0x1f210, 0x1f23b} - , - {0x1f240, 0x1f248} - , - {0x1f250, 0x1f251} - , - {0x1f260, 0x1f265} - , - {0x1f300, 0x1f6d7} - , - {0x1f6e0, 0x1f6ec} - , - {0x1f6f0, 0x1f6fc} - , - {0x1f700, 0x1f773} - , - {0x1f780, 0x1f7d8} - , - {0x1f7e0, 0x1f7eb} - , - {0x1f800, 0x1f80b} - , - {0x1f810, 0x1f847} - , - {0x1f850, 0x1f859} - , - {0x1f860, 0x1f887} - , - {0x1f890, 0x1f8ad} - , - {0x1f8b0, 0x1f8b1} - , - {0x1f900, 0x1f978} - , - {0x1f97a, 0x1f9cb} - , - {0x1f9cd, 0x1fa53} - , - {0x1fa60, 0x1fa6d} - , - {0x1fa70, 0x1fa74} - , - {0x1fa78, 0x1fa7a} - , - {0x1fa80, 0x1fa86} - , - {0x1fa90, 0x1faa8} - , - {0x1fab0, 0x1fab6} - , - {0x1fac0, 0x1fac2} - , - {0x1fad0, 0x1fad6} - , - {0x1fb00, 0x1fb92} - , - {0x1fb94, 0x1fbca} - , - {0x1fbf0, 0x1fbf9} - , - {0x20000, 0x2a6dd} - , - {0x2a700, 0x2b734} - , - {0x2b740, 0x2b81d} - , - {0x2b820, 0x2cea1} - , - {0x2ceb0, 0x2ebe0} - , - {0x2f800, 0x2fa1d} - , - {0x30000, 0x3134a} - , +static const scm_t_char_range cs_printing_ranges[] = { + {0x0009, 0x000d}, + {0x0020, 0x007e}, + {0x00a0, 0x00ac}, + {0x00ae, 0x0377}, + {0x037a, 0x037f}, + {0x0384, 0x038a}, + {0x038c, 0x038c}, + {0x038e, 0x03a1}, + {0x03a3, 0x052f}, + {0x0531, 0x0556}, + {0x0559, 0x058a}, + {0x058d, 0x058f}, + {0x0591, 0x05c7}, + {0x05d0, 0x05ea}, + {0x05ef, 0x05f4}, + {0x0606, 0x061b}, + {0x061d, 0x06dc}, + {0x06de, 0x070d}, + {0x0710, 0x074a}, + {0x074d, 0x07b1}, + {0x07c0, 0x07fa}, + {0x07fd, 0x082d}, + {0x0830, 0x083e}, + {0x0840, 0x085b}, + {0x085e, 0x085e}, + {0x0860, 0x086a}, + {0x0870, 0x088e}, + {0x0898, 0x08e1}, + {0x08e3, 0x0983}, + {0x0985, 0x098c}, + {0x098f, 0x0990}, + {0x0993, 0x09a8}, + {0x09aa, 0x09b0}, + {0x09b2, 0x09b2}, + {0x09b6, 0x09b9}, + {0x09bc, 0x09c4}, + {0x09c7, 0x09c8}, + {0x09cb, 0x09ce}, + {0x09d7, 0x09d7}, + {0x09dc, 0x09dd}, + {0x09df, 0x09e3}, + {0x09e6, 0x09fe}, + {0x0a01, 0x0a03}, + {0x0a05, 0x0a0a}, + {0x0a0f, 0x0a10}, + {0x0a13, 0x0a28}, + {0x0a2a, 0x0a30}, + {0x0a32, 0x0a33}, + {0x0a35, 0x0a36}, + {0x0a38, 0x0a39}, + {0x0a3c, 0x0a3c}, + {0x0a3e, 0x0a42}, + {0x0a47, 0x0a48}, + {0x0a4b, 0x0a4d}, + {0x0a51, 0x0a51}, + {0x0a59, 0x0a5c}, + {0x0a5e, 0x0a5e}, + {0x0a66, 0x0a76}, + {0x0a81, 0x0a83}, + {0x0a85, 0x0a8d}, + {0x0a8f, 0x0a91}, + {0x0a93, 0x0aa8}, + {0x0aaa, 0x0ab0}, + {0x0ab2, 0x0ab3}, + {0x0ab5, 0x0ab9}, + {0x0abc, 0x0ac5}, + {0x0ac7, 0x0ac9}, + {0x0acb, 0x0acd}, + {0x0ad0, 0x0ad0}, + {0x0ae0, 0x0ae3}, + {0x0ae6, 0x0af1}, + {0x0af9, 0x0aff}, + {0x0b01, 0x0b03}, + {0x0b05, 0x0b0c}, + {0x0b0f, 0x0b10}, + {0x0b13, 0x0b28}, + {0x0b2a, 0x0b30}, + {0x0b32, 0x0b33}, + {0x0b35, 0x0b39}, + {0x0b3c, 0x0b44}, + {0x0b47, 0x0b48}, + {0x0b4b, 0x0b4d}, + {0x0b55, 0x0b57}, + {0x0b5c, 0x0b5d}, + {0x0b5f, 0x0b63}, + {0x0b66, 0x0b77}, + {0x0b82, 0x0b83}, + {0x0b85, 0x0b8a}, + {0x0b8e, 0x0b90}, + {0x0b92, 0x0b95}, + {0x0b99, 0x0b9a}, + {0x0b9c, 0x0b9c}, + {0x0b9e, 0x0b9f}, + {0x0ba3, 0x0ba4}, + {0x0ba8, 0x0baa}, + {0x0bae, 0x0bb9}, + {0x0bbe, 0x0bc2}, + {0x0bc6, 0x0bc8}, + {0x0bca, 0x0bcd}, + {0x0bd0, 0x0bd0}, + {0x0bd7, 0x0bd7}, + {0x0be6, 0x0bfa}, + {0x0c00, 0x0c0c}, + {0x0c0e, 0x0c10}, + {0x0c12, 0x0c28}, + {0x0c2a, 0x0c39}, + {0x0c3c, 0x0c44}, + {0x0c46, 0x0c48}, + {0x0c4a, 0x0c4d}, + {0x0c55, 0x0c56}, + {0x0c58, 0x0c5a}, + {0x0c5d, 0x0c5d}, + {0x0c60, 0x0c63}, + {0x0c66, 0x0c6f}, + {0x0c77, 0x0c8c}, + {0x0c8e, 0x0c90}, + {0x0c92, 0x0ca8}, + {0x0caa, 0x0cb3}, + {0x0cb5, 0x0cb9}, + {0x0cbc, 0x0cc4}, + {0x0cc6, 0x0cc8}, + {0x0cca, 0x0ccd}, + {0x0cd5, 0x0cd6}, + {0x0cdd, 0x0cde}, + {0x0ce0, 0x0ce3}, + {0x0ce6, 0x0cef}, + {0x0cf1, 0x0cf2}, + {0x0d00, 0x0d0c}, + {0x0d0e, 0x0d10}, + {0x0d12, 0x0d44}, + {0x0d46, 0x0d48}, + {0x0d4a, 0x0d4f}, + {0x0d54, 0x0d63}, + {0x0d66, 0x0d7f}, + {0x0d81, 0x0d83}, + {0x0d85, 0x0d96}, + {0x0d9a, 0x0db1}, + {0x0db3, 0x0dbb}, + {0x0dbd, 0x0dbd}, + {0x0dc0, 0x0dc6}, + {0x0dca, 0x0dca}, + {0x0dcf, 0x0dd4}, + {0x0dd6, 0x0dd6}, + {0x0dd8, 0x0ddf}, + {0x0de6, 0x0def}, + {0x0df2, 0x0df4}, + {0x0e01, 0x0e3a}, + {0x0e3f, 0x0e5b}, + {0x0e81, 0x0e82}, + {0x0e84, 0x0e84}, + {0x0e86, 0x0e8a}, + {0x0e8c, 0x0ea3}, + {0x0ea5, 0x0ea5}, + {0x0ea7, 0x0ebd}, + {0x0ec0, 0x0ec4}, + {0x0ec6, 0x0ec6}, + {0x0ec8, 0x0ecd}, + {0x0ed0, 0x0ed9}, + {0x0edc, 0x0edf}, + {0x0f00, 0x0f47}, + {0x0f49, 0x0f6c}, + {0x0f71, 0x0f97}, + {0x0f99, 0x0fbc}, + {0x0fbe, 0x0fcc}, + {0x0fce, 0x0fda}, + {0x1000, 0x10c5}, + {0x10c7, 0x10c7}, + {0x10cd, 0x10cd}, + {0x10d0, 0x1248}, + {0x124a, 0x124d}, + {0x1250, 0x1256}, + {0x1258, 0x1258}, + {0x125a, 0x125d}, + {0x1260, 0x1288}, + {0x128a, 0x128d}, + {0x1290, 0x12b0}, + {0x12b2, 0x12b5}, + {0x12b8, 0x12be}, + {0x12c0, 0x12c0}, + {0x12c2, 0x12c5}, + {0x12c8, 0x12d6}, + {0x12d8, 0x1310}, + {0x1312, 0x1315}, + {0x1318, 0x135a}, + {0x135d, 0x137c}, + {0x1380, 0x1399}, + {0x13a0, 0x13f5}, + {0x13f8, 0x13fd}, + {0x1400, 0x169c}, + {0x16a0, 0x16f8}, + {0x1700, 0x1715}, + {0x171f, 0x1736}, + {0x1740, 0x1753}, + {0x1760, 0x176c}, + {0x176e, 0x1770}, + {0x1772, 0x1773}, + {0x1780, 0x17dd}, + {0x17e0, 0x17e9}, + {0x17f0, 0x17f9}, + {0x1800, 0x180d}, + {0x180f, 0x1819}, + {0x1820, 0x1878}, + {0x1880, 0x18aa}, + {0x18b0, 0x18f5}, + {0x1900, 0x191e}, + {0x1920, 0x192b}, + {0x1930, 0x193b}, + {0x1940, 0x1940}, + {0x1944, 0x196d}, + {0x1970, 0x1974}, + {0x1980, 0x19ab}, + {0x19b0, 0x19c9}, + {0x19d0, 0x19da}, + {0x19de, 0x1a1b}, + {0x1a1e, 0x1a5e}, + {0x1a60, 0x1a7c}, + {0x1a7f, 0x1a89}, + {0x1a90, 0x1a99}, + {0x1aa0, 0x1aad}, + {0x1ab0, 0x1ace}, + {0x1b00, 0x1b4c}, + {0x1b50, 0x1b7e}, + {0x1b80, 0x1bf3}, + {0x1bfc, 0x1c37}, + {0x1c3b, 0x1c49}, + {0x1c4d, 0x1c88}, + {0x1c90, 0x1cba}, + {0x1cbd, 0x1cc7}, + {0x1cd0, 0x1cfa}, + {0x1d00, 0x1f15}, + {0x1f18, 0x1f1d}, + {0x1f20, 0x1f45}, + {0x1f48, 0x1f4d}, + {0x1f50, 0x1f57}, + {0x1f59, 0x1f59}, + {0x1f5b, 0x1f5b}, + {0x1f5d, 0x1f5d}, + {0x1f5f, 0x1f7d}, + {0x1f80, 0x1fb4}, + {0x1fb6, 0x1fc4}, + {0x1fc6, 0x1fd3}, + {0x1fd6, 0x1fdb}, + {0x1fdd, 0x1fef}, + {0x1ff2, 0x1ff4}, + {0x1ff6, 0x1ffe}, + {0x2000, 0x200a}, + {0x2010, 0x2029}, + {0x202f, 0x205f}, + {0x2070, 0x2071}, + {0x2074, 0x208e}, + {0x2090, 0x209c}, + {0x20a0, 0x20c0}, + {0x20d0, 0x20f0}, + {0x2100, 0x218b}, + {0x2190, 0x2426}, + {0x2440, 0x244a}, + {0x2460, 0x2b73}, + {0x2b76, 0x2b95}, + {0x2b97, 0x2cf3}, + {0x2cf9, 0x2d25}, + {0x2d27, 0x2d27}, + {0x2d2d, 0x2d2d}, + {0x2d30, 0x2d67}, + {0x2d6f, 0x2d70}, + {0x2d7f, 0x2d96}, + {0x2da0, 0x2da6}, + {0x2da8, 0x2dae}, + {0x2db0, 0x2db6}, + {0x2db8, 0x2dbe}, + {0x2dc0, 0x2dc6}, + {0x2dc8, 0x2dce}, + {0x2dd0, 0x2dd6}, + {0x2dd8, 0x2dde}, + {0x2de0, 0x2e5d}, + {0x2e80, 0x2e99}, + {0x2e9b, 0x2ef3}, + {0x2f00, 0x2fd5}, + {0x2ff0, 0x2ffb}, + {0x3000, 0x303f}, + {0x3041, 0x3096}, + {0x3099, 0x30ff}, + {0x3105, 0x312f}, + {0x3131, 0x318e}, + {0x3190, 0x31e3}, + {0x31f0, 0x321e}, + {0x3220, 0xa48c}, + {0xa490, 0xa4c6}, + {0xa4d0, 0xa62b}, + {0xa640, 0xa6f7}, + {0xa700, 0xa7ca}, + {0xa7d0, 0xa7d1}, + {0xa7d3, 0xa7d3}, + {0xa7d5, 0xa7d9}, + {0xa7f2, 0xa82c}, + {0xa830, 0xa839}, + {0xa840, 0xa877}, + {0xa880, 0xa8c5}, + {0xa8ce, 0xa8d9}, + {0xa8e0, 0xa953}, + {0xa95f, 0xa97c}, + {0xa980, 0xa9cd}, + {0xa9cf, 0xa9d9}, + {0xa9de, 0xa9fe}, + {0xaa00, 0xaa36}, + {0xaa40, 0xaa4d}, + {0xaa50, 0xaa59}, + {0xaa5c, 0xaac2}, + {0xaadb, 0xaaf6}, + {0xab01, 0xab06}, + {0xab09, 0xab0e}, + {0xab11, 0xab16}, + {0xab20, 0xab26}, + {0xab28, 0xab2e}, + {0xab30, 0xab6b}, + {0xab70, 0xabed}, + {0xabf0, 0xabf9}, + {0xac00, 0xd7a3}, + {0xd7b0, 0xd7c6}, + {0xd7cb, 0xd7fb}, + {0xf900, 0xfa6d}, + {0xfa70, 0xfad9}, + {0xfb00, 0xfb06}, + {0xfb13, 0xfb17}, + {0xfb1d, 0xfb36}, + {0xfb38, 0xfb3c}, + {0xfb3e, 0xfb3e}, + {0xfb40, 0xfb41}, + {0xfb43, 0xfb44}, + {0xfb46, 0xfbc2}, + {0xfbd3, 0xfd8f}, + {0xfd92, 0xfdc7}, + {0xfdcf, 0xfdcf}, + {0xfdf0, 0xfe19}, + {0xfe20, 0xfe52}, + {0xfe54, 0xfe66}, + {0xfe68, 0xfe6b}, + {0xfe70, 0xfe74}, + {0xfe76, 0xfefc}, + {0xff01, 0xffbe}, + {0xffc2, 0xffc7}, + {0xffca, 0xffcf}, + {0xffd2, 0xffd7}, + {0xffda, 0xffdc}, + {0xffe0, 0xffe6}, + {0xffe8, 0xffee}, + {0xfffc, 0xfffd}, + {0x10000, 0x1000b}, + {0x1000d, 0x10026}, + {0x10028, 0x1003a}, + {0x1003c, 0x1003d}, + {0x1003f, 0x1004d}, + {0x10050, 0x1005d}, + {0x10080, 0x100fa}, + {0x10100, 0x10102}, + {0x10107, 0x10133}, + {0x10137, 0x1018e}, + {0x10190, 0x1019c}, + {0x101a0, 0x101a0}, + {0x101d0, 0x101fd}, + {0x10280, 0x1029c}, + {0x102a0, 0x102d0}, + {0x102e0, 0x102fb}, + {0x10300, 0x10323}, + {0x1032d, 0x1034a}, + {0x10350, 0x1037a}, + {0x10380, 0x1039d}, + {0x1039f, 0x103c3}, + {0x103c8, 0x103d5}, + {0x10400, 0x1049d}, + {0x104a0, 0x104a9}, + {0x104b0, 0x104d3}, + {0x104d8, 0x104fb}, + {0x10500, 0x10527}, + {0x10530, 0x10563}, + {0x1056f, 0x1057a}, + {0x1057c, 0x1058a}, + {0x1058c, 0x10592}, + {0x10594, 0x10595}, + {0x10597, 0x105a1}, + {0x105a3, 0x105b1}, + {0x105b3, 0x105b9}, + {0x105bb, 0x105bc}, + {0x10600, 0x10736}, + {0x10740, 0x10755}, + {0x10760, 0x10767}, + {0x10780, 0x10785}, + {0x10787, 0x107b0}, + {0x107b2, 0x107ba}, + {0x10800, 0x10805}, + {0x10808, 0x10808}, + {0x1080a, 0x10835}, + {0x10837, 0x10838}, + {0x1083c, 0x1083c}, + {0x1083f, 0x10855}, + {0x10857, 0x1089e}, + {0x108a7, 0x108af}, + {0x108e0, 0x108f2}, + {0x108f4, 0x108f5}, + {0x108fb, 0x1091b}, + {0x1091f, 0x10939}, + {0x1093f, 0x1093f}, + {0x10980, 0x109b7}, + {0x109bc, 0x109cf}, + {0x109d2, 0x10a03}, + {0x10a05, 0x10a06}, + {0x10a0c, 0x10a13}, + {0x10a15, 0x10a17}, + {0x10a19, 0x10a35}, + {0x10a38, 0x10a3a}, + {0x10a3f, 0x10a48}, + {0x10a50, 0x10a58}, + {0x10a60, 0x10a9f}, + {0x10ac0, 0x10ae6}, + {0x10aeb, 0x10af6}, + {0x10b00, 0x10b35}, + {0x10b39, 0x10b55}, + {0x10b58, 0x10b72}, + {0x10b78, 0x10b91}, + {0x10b99, 0x10b9c}, + {0x10ba9, 0x10baf}, + {0x10c00, 0x10c48}, + {0x10c80, 0x10cb2}, + {0x10cc0, 0x10cf2}, + {0x10cfa, 0x10d27}, + {0x10d30, 0x10d39}, + {0x10e60, 0x10e7e}, + {0x10e80, 0x10ea9}, + {0x10eab, 0x10ead}, + {0x10eb0, 0x10eb1}, + {0x10f00, 0x10f27}, + {0x10f30, 0x10f59}, + {0x10f70, 0x10f89}, + {0x10fb0, 0x10fcb}, + {0x10fe0, 0x10ff6}, + {0x11000, 0x1104d}, + {0x11052, 0x11075}, + {0x1107f, 0x110bc}, + {0x110be, 0x110c2}, + {0x110d0, 0x110e8}, + {0x110f0, 0x110f9}, + {0x11100, 0x11134}, + {0x11136, 0x11147}, + {0x11150, 0x11176}, + {0x11180, 0x111df}, + {0x111e1, 0x111f4}, + {0x11200, 0x11211}, + {0x11213, 0x1123e}, + {0x11280, 0x11286}, + {0x11288, 0x11288}, + {0x1128a, 0x1128d}, + {0x1128f, 0x1129d}, + {0x1129f, 0x112a9}, + {0x112b0, 0x112ea}, + {0x112f0, 0x112f9}, + {0x11300, 0x11303}, + {0x11305, 0x1130c}, + {0x1130f, 0x11310}, + {0x11313, 0x11328}, + {0x1132a, 0x11330}, + {0x11332, 0x11333}, + {0x11335, 0x11339}, + {0x1133b, 0x11344}, + {0x11347, 0x11348}, + {0x1134b, 0x1134d}, + {0x11350, 0x11350}, + {0x11357, 0x11357}, + {0x1135d, 0x11363}, + {0x11366, 0x1136c}, + {0x11370, 0x11374}, + {0x11400, 0x1145b}, + {0x1145d, 0x11461}, + {0x11480, 0x114c7}, + {0x114d0, 0x114d9}, + {0x11580, 0x115b5}, + {0x115b8, 0x115dd}, + {0x11600, 0x11644}, + {0x11650, 0x11659}, + {0x11660, 0x1166c}, + {0x11680, 0x116b9}, + {0x116c0, 0x116c9}, + {0x11700, 0x1171a}, + {0x1171d, 0x1172b}, + {0x11730, 0x11746}, + {0x11800, 0x1183b}, + {0x118a0, 0x118f2}, + {0x118ff, 0x11906}, + {0x11909, 0x11909}, + {0x1190c, 0x11913}, + {0x11915, 0x11916}, + {0x11918, 0x11935}, + {0x11937, 0x11938}, + {0x1193b, 0x11946}, + {0x11950, 0x11959}, + {0x119a0, 0x119a7}, + {0x119aa, 0x119d7}, + {0x119da, 0x119e4}, + {0x11a00, 0x11a47}, + {0x11a50, 0x11aa2}, + {0x11ab0, 0x11af8}, + {0x11c00, 0x11c08}, + {0x11c0a, 0x11c36}, + {0x11c38, 0x11c45}, + {0x11c50, 0x11c6c}, + {0x11c70, 0x11c8f}, + {0x11c92, 0x11ca7}, + {0x11ca9, 0x11cb6}, + {0x11d00, 0x11d06}, + {0x11d08, 0x11d09}, + {0x11d0b, 0x11d36}, + {0x11d3a, 0x11d3a}, + {0x11d3c, 0x11d3d}, + {0x11d3f, 0x11d47}, + {0x11d50, 0x11d59}, + {0x11d60, 0x11d65}, + {0x11d67, 0x11d68}, + {0x11d6a, 0x11d8e}, + {0x11d90, 0x11d91}, + {0x11d93, 0x11d98}, + {0x11da0, 0x11da9}, + {0x11ee0, 0x11ef8}, + {0x11fb0, 0x11fb0}, + {0x11fc0, 0x11ff1}, + {0x11fff, 0x12399}, + {0x12400, 0x1246e}, + {0x12470, 0x12474}, + {0x12480, 0x12543}, + {0x12f90, 0x12ff2}, + {0x13000, 0x1342e}, + {0x14400, 0x14646}, + {0x16800, 0x16a38}, + {0x16a40, 0x16a5e}, + {0x16a60, 0x16a69}, + {0x16a6e, 0x16abe}, + {0x16ac0, 0x16ac9}, + {0x16ad0, 0x16aed}, + {0x16af0, 0x16af5}, + {0x16b00, 0x16b45}, + {0x16b50, 0x16b59}, + {0x16b5b, 0x16b61}, + {0x16b63, 0x16b77}, + {0x16b7d, 0x16b8f}, + {0x16e40, 0x16e9a}, + {0x16f00, 0x16f4a}, + {0x16f4f, 0x16f87}, + {0x16f8f, 0x16f9f}, + {0x16fe0, 0x16fe4}, + {0x16ff0, 0x16ff1}, + {0x17000, 0x187f7}, + {0x18800, 0x18cd5}, + {0x18d00, 0x18d08}, + {0x1aff0, 0x1aff3}, + {0x1aff5, 0x1affb}, + {0x1affd, 0x1affe}, + {0x1b000, 0x1b122}, + {0x1b150, 0x1b152}, + {0x1b164, 0x1b167}, + {0x1b170, 0x1b2fb}, + {0x1bc00, 0x1bc6a}, + {0x1bc70, 0x1bc7c}, + {0x1bc80, 0x1bc88}, + {0x1bc90, 0x1bc99}, + {0x1bc9c, 0x1bc9f}, + {0x1cf00, 0x1cf2d}, + {0x1cf30, 0x1cf46}, + {0x1cf50, 0x1cfc3}, + {0x1d000, 0x1d0f5}, + {0x1d100, 0x1d126}, + {0x1d129, 0x1d172}, + {0x1d17b, 0x1d1ea}, + {0x1d200, 0x1d245}, + {0x1d2e0, 0x1d2f3}, + {0x1d300, 0x1d356}, + {0x1d360, 0x1d378}, + {0x1d400, 0x1d454}, + {0x1d456, 0x1d49c}, + {0x1d49e, 0x1d49f}, + {0x1d4a2, 0x1d4a2}, + {0x1d4a5, 0x1d4a6}, + {0x1d4a9, 0x1d4ac}, + {0x1d4ae, 0x1d4b9}, + {0x1d4bb, 0x1d4bb}, + {0x1d4bd, 0x1d4c3}, + {0x1d4c5, 0x1d505}, + {0x1d507, 0x1d50a}, + {0x1d50d, 0x1d514}, + {0x1d516, 0x1d51c}, + {0x1d51e, 0x1d539}, + {0x1d53b, 0x1d53e}, + {0x1d540, 0x1d544}, + {0x1d546, 0x1d546}, + {0x1d54a, 0x1d550}, + {0x1d552, 0x1d6a5}, + {0x1d6a8, 0x1d7cb}, + {0x1d7ce, 0x1da8b}, + {0x1da9b, 0x1da9f}, + {0x1daa1, 0x1daaf}, + {0x1df00, 0x1df1e}, + {0x1e000, 0x1e006}, + {0x1e008, 0x1e018}, + {0x1e01b, 0x1e021}, + {0x1e023, 0x1e024}, + {0x1e026, 0x1e02a}, + {0x1e100, 0x1e12c}, + {0x1e130, 0x1e13d}, + {0x1e140, 0x1e149}, + {0x1e14e, 0x1e14f}, + {0x1e290, 0x1e2ae}, + {0x1e2c0, 0x1e2f9}, + {0x1e2ff, 0x1e2ff}, + {0x1e7e0, 0x1e7e6}, + {0x1e7e8, 0x1e7eb}, + {0x1e7ed, 0x1e7ee}, + {0x1e7f0, 0x1e7fe}, + {0x1e800, 0x1e8c4}, + {0x1e8c7, 0x1e8d6}, + {0x1e900, 0x1e94b}, + {0x1e950, 0x1e959}, + {0x1e95e, 0x1e95f}, + {0x1ec71, 0x1ecb4}, + {0x1ed01, 0x1ed3d}, + {0x1ee00, 0x1ee03}, + {0x1ee05, 0x1ee1f}, + {0x1ee21, 0x1ee22}, + {0x1ee24, 0x1ee24}, + {0x1ee27, 0x1ee27}, + {0x1ee29, 0x1ee32}, + {0x1ee34, 0x1ee37}, + {0x1ee39, 0x1ee39}, + {0x1ee3b, 0x1ee3b}, + {0x1ee42, 0x1ee42}, + {0x1ee47, 0x1ee47}, + {0x1ee49, 0x1ee49}, + {0x1ee4b, 0x1ee4b}, + {0x1ee4d, 0x1ee4f}, + {0x1ee51, 0x1ee52}, + {0x1ee54, 0x1ee54}, + {0x1ee57, 0x1ee57}, + {0x1ee59, 0x1ee59}, + {0x1ee5b, 0x1ee5b}, + {0x1ee5d, 0x1ee5d}, + {0x1ee5f, 0x1ee5f}, + {0x1ee61, 0x1ee62}, + {0x1ee64, 0x1ee64}, + {0x1ee67, 0x1ee6a}, + {0x1ee6c, 0x1ee72}, + {0x1ee74, 0x1ee77}, + {0x1ee79, 0x1ee7c}, + {0x1ee7e, 0x1ee7e}, + {0x1ee80, 0x1ee89}, + {0x1ee8b, 0x1ee9b}, + {0x1eea1, 0x1eea3}, + {0x1eea5, 0x1eea9}, + {0x1eeab, 0x1eebb}, + {0x1eef0, 0x1eef1}, + {0x1f000, 0x1f02b}, + {0x1f030, 0x1f093}, + {0x1f0a0, 0x1f0ae}, + {0x1f0b1, 0x1f0bf}, + {0x1f0c1, 0x1f0cf}, + {0x1f0d1, 0x1f0f5}, + {0x1f100, 0x1f1ad}, + {0x1f1e6, 0x1f202}, + {0x1f210, 0x1f23b}, + {0x1f240, 0x1f248}, + {0x1f250, 0x1f251}, + {0x1f260, 0x1f265}, + {0x1f300, 0x1f6d7}, + {0x1f6dd, 0x1f6ec}, + {0x1f6f0, 0x1f6fc}, + {0x1f700, 0x1f773}, + {0x1f780, 0x1f7d8}, + {0x1f7e0, 0x1f7eb}, + {0x1f7f0, 0x1f7f0}, + {0x1f800, 0x1f80b}, + {0x1f810, 0x1f847}, + {0x1f850, 0x1f859}, + {0x1f860, 0x1f887}, + {0x1f890, 0x1f8ad}, + {0x1f8b0, 0x1f8b1}, + {0x1f900, 0x1fa53}, + {0x1fa60, 0x1fa6d}, + {0x1fa70, 0x1fa74}, + {0x1fa78, 0x1fa7c}, + {0x1fa80, 0x1fa86}, + {0x1fa90, 0x1faac}, + {0x1fab0, 0x1faba}, + {0x1fac0, 0x1fac5}, + {0x1fad0, 0x1fad9}, + {0x1fae0, 0x1fae7}, + {0x1faf0, 0x1faf6}, + {0x1fb00, 0x1fb92}, + {0x1fb94, 0x1fbca}, + {0x1fbf0, 0x1fbf9}, + {0x20000, 0x2a6df}, + {0x2a700, 0x2b738}, + {0x2b740, 0x2b81d}, + {0x2b820, 0x2cea1}, + {0x2ceb0, 0x2ebe0}, + {0x2f800, 0x2fa1d}, + {0x30000, 0x3134a}, {0xe0100, 0xe01ef} }; -scm_t_char_set cs_printing = { - 679, - cs_printing_ranges -}; +static const size_t cs_printing_len = 701; -scm_t_char_range cs_iso_control_ranges[] = { - {0x0000, 0x001f} - , +static const scm_t_char_range cs_iso_control_ranges[] = { + {0x0000, 0x001f}, {0x007f, 0x009f} }; -scm_t_char_set cs_iso_control = { - 2, - cs_iso_control_ranges -}; +static const size_t cs_iso_control_len = 2; -scm_t_char_range cs_punctuation_ranges[] = { - {0x0021, 0x0023} - , - {0x0025, 0x002a} - , - {0x002c, 0x002f} - , - {0x003a, 0x003b} - , - {0x003f, 0x0040} - , - {0x005b, 0x005d} - , - {0x005f, 0x005f} - , - {0x007b, 0x007b} - , - {0x007d, 0x007d} - , - {0x00a1, 0x00a1} - , - {0x00a7, 0x00a7} - , - {0x00ab, 0x00ab} - , - {0x00b6, 0x00b7} - , - {0x00bb, 0x00bb} - , - {0x00bf, 0x00bf} - , - {0x037e, 0x037e} - , - {0x0387, 0x0387} - , - {0x055a, 0x055f} - , - {0x0589, 0x058a} - , - {0x05be, 0x05be} - , - {0x05c0, 0x05c0} - , - {0x05c3, 0x05c3} - , - {0x05c6, 0x05c6} - , - {0x05f3, 0x05f4} - , - {0x0609, 0x060a} - , - {0x060c, 0x060d} - , - {0x061b, 0x061b} - , - {0x061e, 0x061f} - , - {0x066a, 0x066d} - , - {0x06d4, 0x06d4} - , - {0x0700, 0x070d} - , - {0x07f7, 0x07f9} - , - {0x0830, 0x083e} - , - {0x085e, 0x085e} - , - {0x0964, 0x0965} - , - {0x0970, 0x0970} - , - {0x09fd, 0x09fd} - , - {0x0a76, 0x0a76} - , - {0x0af0, 0x0af0} - , - {0x0c77, 0x0c77} - , - {0x0c84, 0x0c84} - , - {0x0df4, 0x0df4} - , - {0x0e4f, 0x0e4f} - , - {0x0e5a, 0x0e5b} - , - {0x0f04, 0x0f12} - , - {0x0f14, 0x0f14} - , - {0x0f3a, 0x0f3d} - , - {0x0f85, 0x0f85} - , - {0x0fd0, 0x0fd4} - , - {0x0fd9, 0x0fda} - , - {0x104a, 0x104f} - , - {0x10fb, 0x10fb} - , - {0x1360, 0x1368} - , - {0x1400, 0x1400} - , - {0x166e, 0x166e} - , - {0x169b, 0x169c} - , - {0x16eb, 0x16ed} - , - {0x1735, 0x1736} - , - {0x17d4, 0x17d6} - , - {0x17d8, 0x17da} - , - {0x1800, 0x180a} - , - {0x1944, 0x1945} - , - {0x1a1e, 0x1a1f} - , - {0x1aa0, 0x1aa6} - , - {0x1aa8, 0x1aad} - , - {0x1b5a, 0x1b60} - , - {0x1bfc, 0x1bff} - , - {0x1c3b, 0x1c3f} - , - {0x1c7e, 0x1c7f} - , - {0x1cc0, 0x1cc7} - , - {0x1cd3, 0x1cd3} - , - {0x2010, 0x2027} - , - {0x2030, 0x2043} - , - {0x2045, 0x2051} - , - {0x2053, 0x205e} - , - {0x207d, 0x207e} - , - {0x208d, 0x208e} - , - {0x2308, 0x230b} - , - {0x2329, 0x232a} - , - {0x2768, 0x2775} - , - {0x27c5, 0x27c6} - , - {0x27e6, 0x27ef} - , - {0x2983, 0x2998} - , - {0x29d8, 0x29db} - , - {0x29fc, 0x29fd} - , - {0x2cf9, 0x2cfc} - , - {0x2cfe, 0x2cff} - , - {0x2d70, 0x2d70} - , - {0x2e00, 0x2e2e} - , - {0x2e30, 0x2e4f} - , - {0x2e52, 0x2e52} - , - {0x3001, 0x3003} - , - {0x3008, 0x3011} - , - {0x3014, 0x301f} - , - {0x3030, 0x3030} - , - {0x303d, 0x303d} - , - {0x30a0, 0x30a0} - , - {0x30fb, 0x30fb} - , - {0xa4fe, 0xa4ff} - , - {0xa60d, 0xa60f} - , - {0xa673, 0xa673} - , - {0xa67e, 0xa67e} - , - {0xa6f2, 0xa6f7} - , - {0xa874, 0xa877} - , - {0xa8ce, 0xa8cf} - , - {0xa8f8, 0xa8fa} - , - {0xa8fc, 0xa8fc} - , - {0xa92e, 0xa92f} - , - {0xa95f, 0xa95f} - , - {0xa9c1, 0xa9cd} - , - {0xa9de, 0xa9df} - , - {0xaa5c, 0xaa5f} - , - {0xaade, 0xaadf} - , - {0xaaf0, 0xaaf1} - , - {0xabeb, 0xabeb} - , - {0xfd3e, 0xfd3f} - , - {0xfe10, 0xfe19} - , - {0xfe30, 0xfe52} - , - {0xfe54, 0xfe61} - , - {0xfe63, 0xfe63} - , - {0xfe68, 0xfe68} - , - {0xfe6a, 0xfe6b} - , - {0xff01, 0xff03} - , - {0xff05, 0xff0a} - , - {0xff0c, 0xff0f} - , - {0xff1a, 0xff1b} - , - {0xff1f, 0xff20} - , - {0xff3b, 0xff3d} - , - {0xff3f, 0xff3f} - , - {0xff5b, 0xff5b} - , - {0xff5d, 0xff5d} - , - {0xff5f, 0xff65} - , - {0x10100, 0x10102} - , - {0x1039f, 0x1039f} - , - {0x103d0, 0x103d0} - , - {0x1056f, 0x1056f} - , - {0x10857, 0x10857} - , - {0x1091f, 0x1091f} - , - {0x1093f, 0x1093f} - , - {0x10a50, 0x10a58} - , - {0x10a7f, 0x10a7f} - , - {0x10af0, 0x10af6} - , - {0x10b39, 0x10b3f} - , - {0x10b99, 0x10b9c} - , - {0x10ead, 0x10ead} - , - {0x10f55, 0x10f59} - , - {0x11047, 0x1104d} - , - {0x110bb, 0x110bc} - , - {0x110be, 0x110c1} - , - {0x11140, 0x11143} - , - {0x11174, 0x11175} - , - {0x111c5, 0x111c8} - , - {0x111cd, 0x111cd} - , - {0x111db, 0x111db} - , - {0x111dd, 0x111df} - , - {0x11238, 0x1123d} - , - {0x112a9, 0x112a9} - , - {0x1144b, 0x1144f} - , - {0x1145a, 0x1145b} - , - {0x1145d, 0x1145d} - , - {0x114c6, 0x114c6} - , - {0x115c1, 0x115d7} - , - {0x11641, 0x11643} - , - {0x11660, 0x1166c} - , - {0x1173c, 0x1173e} - , - {0x1183b, 0x1183b} - , - {0x11944, 0x11946} - , - {0x119e2, 0x119e2} - , - {0x11a3f, 0x11a46} - , - {0x11a9a, 0x11a9c} - , - {0x11a9e, 0x11aa2} - , - {0x11c41, 0x11c45} - , - {0x11c70, 0x11c71} - , - {0x11ef7, 0x11ef8} - , - {0x11fff, 0x11fff} - , - {0x12470, 0x12474} - , - {0x16a6e, 0x16a6f} - , - {0x16af5, 0x16af5} - , - {0x16b37, 0x16b3b} - , - {0x16b44, 0x16b44} - , - {0x16e97, 0x16e9a} - , - {0x16fe2, 0x16fe2} - , - {0x1bc9f, 0x1bc9f} - , - {0x1da87, 0x1da8b} - , +static const scm_t_char_range cs_punctuation_ranges[] = { + {0x0021, 0x0023}, + {0x0025, 0x002a}, + {0x002c, 0x002f}, + {0x003a, 0x003b}, + {0x003f, 0x0040}, + {0x005b, 0x005d}, + {0x005f, 0x005f}, + {0x007b, 0x007b}, + {0x007d, 0x007d}, + {0x00a1, 0x00a1}, + {0x00a7, 0x00a7}, + {0x00ab, 0x00ab}, + {0x00b6, 0x00b7}, + {0x00bb, 0x00bb}, + {0x00bf, 0x00bf}, + {0x037e, 0x037e}, + {0x0387, 0x0387}, + {0x055a, 0x055f}, + {0x0589, 0x058a}, + {0x05be, 0x05be}, + {0x05c0, 0x05c0}, + {0x05c3, 0x05c3}, + {0x05c6, 0x05c6}, + {0x05f3, 0x05f4}, + {0x0609, 0x060a}, + {0x060c, 0x060d}, + {0x061b, 0x061b}, + {0x061d, 0x061f}, + {0x066a, 0x066d}, + {0x06d4, 0x06d4}, + {0x0700, 0x070d}, + {0x07f7, 0x07f9}, + {0x0830, 0x083e}, + {0x085e, 0x085e}, + {0x0964, 0x0965}, + {0x0970, 0x0970}, + {0x09fd, 0x09fd}, + {0x0a76, 0x0a76}, + {0x0af0, 0x0af0}, + {0x0c77, 0x0c77}, + {0x0c84, 0x0c84}, + {0x0df4, 0x0df4}, + {0x0e4f, 0x0e4f}, + {0x0e5a, 0x0e5b}, + {0x0f04, 0x0f12}, + {0x0f14, 0x0f14}, + {0x0f3a, 0x0f3d}, + {0x0f85, 0x0f85}, + {0x0fd0, 0x0fd4}, + {0x0fd9, 0x0fda}, + {0x104a, 0x104f}, + {0x10fb, 0x10fb}, + {0x1360, 0x1368}, + {0x1400, 0x1400}, + {0x166e, 0x166e}, + {0x169b, 0x169c}, + {0x16eb, 0x16ed}, + {0x1735, 0x1736}, + {0x17d4, 0x17d6}, + {0x17d8, 0x17da}, + {0x1800, 0x180a}, + {0x1944, 0x1945}, + {0x1a1e, 0x1a1f}, + {0x1aa0, 0x1aa6}, + {0x1aa8, 0x1aad}, + {0x1b5a, 0x1b60}, + {0x1b7d, 0x1b7e}, + {0x1bfc, 0x1bff}, + {0x1c3b, 0x1c3f}, + {0x1c7e, 0x1c7f}, + {0x1cc0, 0x1cc7}, + {0x1cd3, 0x1cd3}, + {0x2010, 0x2027}, + {0x2030, 0x2043}, + {0x2045, 0x2051}, + {0x2053, 0x205e}, + {0x207d, 0x207e}, + {0x208d, 0x208e}, + {0x2308, 0x230b}, + {0x2329, 0x232a}, + {0x2768, 0x2775}, + {0x27c5, 0x27c6}, + {0x27e6, 0x27ef}, + {0x2983, 0x2998}, + {0x29d8, 0x29db}, + {0x29fc, 0x29fd}, + {0x2cf9, 0x2cfc}, + {0x2cfe, 0x2cff}, + {0x2d70, 0x2d70}, + {0x2e00, 0x2e2e}, + {0x2e30, 0x2e4f}, + {0x2e52, 0x2e5d}, + {0x3001, 0x3003}, + {0x3008, 0x3011}, + {0x3014, 0x301f}, + {0x3030, 0x3030}, + {0x303d, 0x303d}, + {0x30a0, 0x30a0}, + {0x30fb, 0x30fb}, + {0xa4fe, 0xa4ff}, + {0xa60d, 0xa60f}, + {0xa673, 0xa673}, + {0xa67e, 0xa67e}, + {0xa6f2, 0xa6f7}, + {0xa874, 0xa877}, + {0xa8ce, 0xa8cf}, + {0xa8f8, 0xa8fa}, + {0xa8fc, 0xa8fc}, + {0xa92e, 0xa92f}, + {0xa95f, 0xa95f}, + {0xa9c1, 0xa9cd}, + {0xa9de, 0xa9df}, + {0xaa5c, 0xaa5f}, + {0xaade, 0xaadf}, + {0xaaf0, 0xaaf1}, + {0xabeb, 0xabeb}, + {0xfd3e, 0xfd3f}, + {0xfe10, 0xfe19}, + {0xfe30, 0xfe52}, + {0xfe54, 0xfe61}, + {0xfe63, 0xfe63}, + {0xfe68, 0xfe68}, + {0xfe6a, 0xfe6b}, + {0xff01, 0xff03}, + {0xff05, 0xff0a}, + {0xff0c, 0xff0f}, + {0xff1a, 0xff1b}, + {0xff1f, 0xff20}, + {0xff3b, 0xff3d}, + {0xff3f, 0xff3f}, + {0xff5b, 0xff5b}, + {0xff5d, 0xff5d}, + {0xff5f, 0xff65}, + {0x10100, 0x10102}, + {0x1039f, 0x1039f}, + {0x103d0, 0x103d0}, + {0x1056f, 0x1056f}, + {0x10857, 0x10857}, + {0x1091f, 0x1091f}, + {0x1093f, 0x1093f}, + {0x10a50, 0x10a58}, + {0x10a7f, 0x10a7f}, + {0x10af0, 0x10af6}, + {0x10b39, 0x10b3f}, + {0x10b99, 0x10b9c}, + {0x10ead, 0x10ead}, + {0x10f55, 0x10f59}, + {0x10f86, 0x10f89}, + {0x11047, 0x1104d}, + {0x110bb, 0x110bc}, + {0x110be, 0x110c1}, + {0x11140, 0x11143}, + {0x11174, 0x11175}, + {0x111c5, 0x111c8}, + {0x111cd, 0x111cd}, + {0x111db, 0x111db}, + {0x111dd, 0x111df}, + {0x11238, 0x1123d}, + {0x112a9, 0x112a9}, + {0x1144b, 0x1144f}, + {0x1145a, 0x1145b}, + {0x1145d, 0x1145d}, + {0x114c6, 0x114c6}, + {0x115c1, 0x115d7}, + {0x11641, 0x11643}, + {0x11660, 0x1166c}, + {0x116b9, 0x116b9}, + {0x1173c, 0x1173e}, + {0x1183b, 0x1183b}, + {0x11944, 0x11946}, + {0x119e2, 0x119e2}, + {0x11a3f, 0x11a46}, + {0x11a9a, 0x11a9c}, + {0x11a9e, 0x11aa2}, + {0x11c41, 0x11c45}, + {0x11c70, 0x11c71}, + {0x11ef7, 0x11ef8}, + {0x11fff, 0x11fff}, + {0x12470, 0x12474}, + {0x12ff1, 0x12ff2}, + {0x16a6e, 0x16a6f}, + {0x16af5, 0x16af5}, + {0x16b37, 0x16b3b}, + {0x16b44, 0x16b44}, + {0x16e97, 0x16e9a}, + {0x16fe2, 0x16fe2}, + {0x1bc9f, 0x1bc9f}, + {0x1da87, 0x1da8b}, {0x1e95e, 0x1e95f} }; -scm_t_char_set cs_punctuation = { - 185, - cs_punctuation_ranges -}; +static const size_t cs_punctuation_len = 189; -scm_t_char_range cs_symbol_ranges[] = { - {0x0024, 0x0024} - , - {0x002b, 0x002b} - , - {0x003c, 0x003e} - , - {0x005e, 0x005e} - , - {0x0060, 0x0060} - , - {0x007c, 0x007c} - , - {0x007e, 0x007e} - , - {0x00a2, 0x00a6} - , - {0x00a8, 0x00a9} - , - {0x00ac, 0x00ac} - , - {0x00ae, 0x00b1} - , - {0x00b4, 0x00b4} - , - {0x00b8, 0x00b8} - , - {0x00d7, 0x00d7} - , - {0x00f7, 0x00f7} - , - {0x02c2, 0x02c5} - , - {0x02d2, 0x02df} - , - {0x02e5, 0x02eb} - , - {0x02ed, 0x02ed} - , - {0x02ef, 0x02ff} - , - {0x0375, 0x0375} - , - {0x0384, 0x0385} - , - {0x03f6, 0x03f6} - , - {0x0482, 0x0482} - , - {0x058d, 0x058f} - , - {0x0606, 0x0608} - , - {0x060b, 0x060b} - , - {0x060e, 0x060f} - , - {0x06de, 0x06de} - , - {0x06e9, 0x06e9} - , - {0x06fd, 0x06fe} - , - {0x07f6, 0x07f6} - , - {0x07fe, 0x07ff} - , - {0x09f2, 0x09f3} - , - {0x09fa, 0x09fb} - , - {0x0af1, 0x0af1} - , - {0x0b70, 0x0b70} - , - {0x0bf3, 0x0bfa} - , - {0x0c7f, 0x0c7f} - , - {0x0d4f, 0x0d4f} - , - {0x0d79, 0x0d79} - , - {0x0e3f, 0x0e3f} - , - {0x0f01, 0x0f03} - , - {0x0f13, 0x0f13} - , - {0x0f15, 0x0f17} - , - {0x0f1a, 0x0f1f} - , - {0x0f34, 0x0f34} - , - {0x0f36, 0x0f36} - , - {0x0f38, 0x0f38} - , - {0x0fbe, 0x0fc5} - , - {0x0fc7, 0x0fcc} - , - {0x0fce, 0x0fcf} - , - {0x0fd5, 0x0fd8} - , - {0x109e, 0x109f} - , - {0x1390, 0x1399} - , - {0x166d, 0x166d} - , - {0x17db, 0x17db} - , - {0x1940, 0x1940} - , - {0x19de, 0x19ff} - , - {0x1b61, 0x1b6a} - , - {0x1b74, 0x1b7c} - , - {0x1fbd, 0x1fbd} - , - {0x1fbf, 0x1fc1} - , - {0x1fcd, 0x1fcf} - , - {0x1fdd, 0x1fdf} - , - {0x1fed, 0x1fef} - , - {0x1ffd, 0x1ffe} - , - {0x2044, 0x2044} - , - {0x2052, 0x2052} - , - {0x207a, 0x207c} - , - {0x208a, 0x208c} - , - {0x20a0, 0x20bf} - , - {0x2100, 0x2101} - , - {0x2103, 0x2106} - , - {0x2108, 0x2109} - , - {0x2114, 0x2114} - , - {0x2116, 0x2118} - , - {0x211e, 0x2123} - , - {0x2125, 0x2125} - , - {0x2127, 0x2127} - , - {0x2129, 0x2129} - , - {0x212e, 0x212e} - , - {0x213a, 0x213b} - , - {0x2140, 0x2144} - , - {0x214a, 0x214d} - , - {0x214f, 0x214f} - , - {0x218a, 0x218b} - , - {0x2190, 0x2307} - , - {0x230c, 0x2328} - , - {0x232b, 0x2426} - , - {0x2440, 0x244a} - , - {0x249c, 0x24e9} - , - {0x2500, 0x2767} - , - {0x2794, 0x27c4} - , - {0x27c7, 0x27e5} - , - {0x27f0, 0x2982} - , - {0x2999, 0x29d7} - , - {0x29dc, 0x29fb} - , - {0x29fe, 0x2b73} - , - {0x2b76, 0x2b95} - , - {0x2b97, 0x2bff} - , - {0x2ce5, 0x2cea} - , - {0x2e50, 0x2e51} - , - {0x2e80, 0x2e99} - , - {0x2e9b, 0x2ef3} - , - {0x2f00, 0x2fd5} - , - {0x2ff0, 0x2ffb} - , - {0x3004, 0x3004} - , - {0x3012, 0x3013} - , - {0x3020, 0x3020} - , - {0x3036, 0x3037} - , - {0x303e, 0x303f} - , - {0x309b, 0x309c} - , - {0x3190, 0x3191} - , - {0x3196, 0x319f} - , - {0x31c0, 0x31e3} - , - {0x3200, 0x321e} - , - {0x322a, 0x3247} - , - {0x3250, 0x3250} - , - {0x3260, 0x327f} - , - {0x328a, 0x32b0} - , - {0x32c0, 0x33ff} - , - {0x4dc0, 0x4dff} - , - {0xa490, 0xa4c6} - , - {0xa700, 0xa716} - , - {0xa720, 0xa721} - , - {0xa789, 0xa78a} - , - {0xa828, 0xa82b} - , - {0xa836, 0xa839} - , - {0xaa77, 0xaa79} - , - {0xab5b, 0xab5b} - , - {0xab6a, 0xab6b} - , - {0xfb29, 0xfb29} - , - {0xfbb2, 0xfbc1} - , - {0xfdfc, 0xfdfd} - , - {0xfe62, 0xfe62} - , - {0xfe64, 0xfe66} - , - {0xfe69, 0xfe69} - , - {0xff04, 0xff04} - , - {0xff0b, 0xff0b} - , - {0xff1c, 0xff1e} - , - {0xff3e, 0xff3e} - , - {0xff40, 0xff40} - , - {0xff5c, 0xff5c} - , - {0xff5e, 0xff5e} - , - {0xffe0, 0xffe6} - , - {0xffe8, 0xffee} - , - {0xfffc, 0xfffd} - , - {0x10137, 0x1013f} - , - {0x10179, 0x10189} - , - {0x1018c, 0x1018e} - , - {0x10190, 0x1019c} - , - {0x101a0, 0x101a0} - , - {0x101d0, 0x101fc} - , - {0x10877, 0x10878} - , - {0x10ac8, 0x10ac8} - , - {0x1173f, 0x1173f} - , - {0x11fd5, 0x11ff1} - , - {0x16b3c, 0x16b3f} - , - {0x16b45, 0x16b45} - , - {0x1bc9c, 0x1bc9c} - , - {0x1d000, 0x1d0f5} - , - {0x1d100, 0x1d126} - , - {0x1d129, 0x1d164} - , - {0x1d16a, 0x1d16c} - , - {0x1d183, 0x1d184} - , - {0x1d18c, 0x1d1a9} - , - {0x1d1ae, 0x1d1e8} - , - {0x1d200, 0x1d241} - , - {0x1d245, 0x1d245} - , - {0x1d300, 0x1d356} - , - {0x1d6c1, 0x1d6c1} - , - {0x1d6db, 0x1d6db} - , - {0x1d6fb, 0x1d6fb} - , - {0x1d715, 0x1d715} - , - {0x1d735, 0x1d735} - , - {0x1d74f, 0x1d74f} - , - {0x1d76f, 0x1d76f} - , - {0x1d789, 0x1d789} - , - {0x1d7a9, 0x1d7a9} - , - {0x1d7c3, 0x1d7c3} - , - {0x1d800, 0x1d9ff} - , - {0x1da37, 0x1da3a} - , - {0x1da6d, 0x1da74} - , - {0x1da76, 0x1da83} - , - {0x1da85, 0x1da86} - , - {0x1e14f, 0x1e14f} - , - {0x1e2ff, 0x1e2ff} - , - {0x1ecac, 0x1ecac} - , - {0x1ecb0, 0x1ecb0} - , - {0x1ed2e, 0x1ed2e} - , - {0x1eef0, 0x1eef1} - , - {0x1f000, 0x1f02b} - , - {0x1f030, 0x1f093} - , - {0x1f0a0, 0x1f0ae} - , - {0x1f0b1, 0x1f0bf} - , - {0x1f0c1, 0x1f0cf} - , - {0x1f0d1, 0x1f0f5} - , - {0x1f10d, 0x1f1ad} - , - {0x1f1e6, 0x1f202} - , - {0x1f210, 0x1f23b} - , - {0x1f240, 0x1f248} - , - {0x1f250, 0x1f251} - , - {0x1f260, 0x1f265} - , - {0x1f300, 0x1f6d7} - , - {0x1f6e0, 0x1f6ec} - , - {0x1f6f0, 0x1f6fc} - , - {0x1f700, 0x1f773} - , - {0x1f780, 0x1f7d8} - , - {0x1f7e0, 0x1f7eb} - , - {0x1f800, 0x1f80b} - , - {0x1f810, 0x1f847} - , - {0x1f850, 0x1f859} - , - {0x1f860, 0x1f887} - , - {0x1f890, 0x1f8ad} - , - {0x1f8b0, 0x1f8b1} - , - {0x1f900, 0x1f978} - , - {0x1f97a, 0x1f9cb} - , - {0x1f9cd, 0x1fa53} - , - {0x1fa60, 0x1fa6d} - , - {0x1fa70, 0x1fa74} - , - {0x1fa78, 0x1fa7a} - , - {0x1fa80, 0x1fa86} - , - {0x1fa90, 0x1faa8} - , - {0x1fab0, 0x1fab6} - , - {0x1fac0, 0x1fac2} - , - {0x1fad0, 0x1fad6} - , - {0x1fb00, 0x1fb92} - , +static const scm_t_char_range cs_symbol_ranges[] = { + {0x0024, 0x0024}, + {0x002b, 0x002b}, + {0x003c, 0x003e}, + {0x005e, 0x005e}, + {0x0060, 0x0060}, + {0x007c, 0x007c}, + {0x007e, 0x007e}, + {0x00a2, 0x00a6}, + {0x00a8, 0x00a9}, + {0x00ac, 0x00ac}, + {0x00ae, 0x00b1}, + {0x00b4, 0x00b4}, + {0x00b8, 0x00b8}, + {0x00d7, 0x00d7}, + {0x00f7, 0x00f7}, + {0x02c2, 0x02c5}, + {0x02d2, 0x02df}, + {0x02e5, 0x02eb}, + {0x02ed, 0x02ed}, + {0x02ef, 0x02ff}, + {0x0375, 0x0375}, + {0x0384, 0x0385}, + {0x03f6, 0x03f6}, + {0x0482, 0x0482}, + {0x058d, 0x058f}, + {0x0606, 0x0608}, + {0x060b, 0x060b}, + {0x060e, 0x060f}, + {0x06de, 0x06de}, + {0x06e9, 0x06e9}, + {0x06fd, 0x06fe}, + {0x07f6, 0x07f6}, + {0x07fe, 0x07ff}, + {0x0888, 0x0888}, + {0x09f2, 0x09f3}, + {0x09fa, 0x09fb}, + {0x0af1, 0x0af1}, + {0x0b70, 0x0b70}, + {0x0bf3, 0x0bfa}, + {0x0c7f, 0x0c7f}, + {0x0d4f, 0x0d4f}, + {0x0d79, 0x0d79}, + {0x0e3f, 0x0e3f}, + {0x0f01, 0x0f03}, + {0x0f13, 0x0f13}, + {0x0f15, 0x0f17}, + {0x0f1a, 0x0f1f}, + {0x0f34, 0x0f34}, + {0x0f36, 0x0f36}, + {0x0f38, 0x0f38}, + {0x0fbe, 0x0fc5}, + {0x0fc7, 0x0fcc}, + {0x0fce, 0x0fcf}, + {0x0fd5, 0x0fd8}, + {0x109e, 0x109f}, + {0x1390, 0x1399}, + {0x166d, 0x166d}, + {0x17db, 0x17db}, + {0x1940, 0x1940}, + {0x19de, 0x19ff}, + {0x1b61, 0x1b6a}, + {0x1b74, 0x1b7c}, + {0x1fbd, 0x1fbd}, + {0x1fbf, 0x1fc1}, + {0x1fcd, 0x1fcf}, + {0x1fdd, 0x1fdf}, + {0x1fed, 0x1fef}, + {0x1ffd, 0x1ffe}, + {0x2044, 0x2044}, + {0x2052, 0x2052}, + {0x207a, 0x207c}, + {0x208a, 0x208c}, + {0x20a0, 0x20c0}, + {0x2100, 0x2101}, + {0x2103, 0x2106}, + {0x2108, 0x2109}, + {0x2114, 0x2114}, + {0x2116, 0x2118}, + {0x211e, 0x2123}, + {0x2125, 0x2125}, + {0x2127, 0x2127}, + {0x2129, 0x2129}, + {0x212e, 0x212e}, + {0x213a, 0x213b}, + {0x2140, 0x2144}, + {0x214a, 0x214d}, + {0x214f, 0x214f}, + {0x218a, 0x218b}, + {0x2190, 0x2307}, + {0x230c, 0x2328}, + {0x232b, 0x2426}, + {0x2440, 0x244a}, + {0x249c, 0x24e9}, + {0x2500, 0x2767}, + {0x2794, 0x27c4}, + {0x27c7, 0x27e5}, + {0x27f0, 0x2982}, + {0x2999, 0x29d7}, + {0x29dc, 0x29fb}, + {0x29fe, 0x2b73}, + {0x2b76, 0x2b95}, + {0x2b97, 0x2bff}, + {0x2ce5, 0x2cea}, + {0x2e50, 0x2e51}, + {0x2e80, 0x2e99}, + {0x2e9b, 0x2ef3}, + {0x2f00, 0x2fd5}, + {0x2ff0, 0x2ffb}, + {0x3004, 0x3004}, + {0x3012, 0x3013}, + {0x3020, 0x3020}, + {0x3036, 0x3037}, + {0x303e, 0x303f}, + {0x309b, 0x309c}, + {0x3190, 0x3191}, + {0x3196, 0x319f}, + {0x31c0, 0x31e3}, + {0x3200, 0x321e}, + {0x322a, 0x3247}, + {0x3250, 0x3250}, + {0x3260, 0x327f}, + {0x328a, 0x32b0}, + {0x32c0, 0x33ff}, + {0x4dc0, 0x4dff}, + {0xa490, 0xa4c6}, + {0xa700, 0xa716}, + {0xa720, 0xa721}, + {0xa789, 0xa78a}, + {0xa828, 0xa82b}, + {0xa836, 0xa839}, + {0xaa77, 0xaa79}, + {0xab5b, 0xab5b}, + {0xab6a, 0xab6b}, + {0xfb29, 0xfb29}, + {0xfbb2, 0xfbc2}, + {0xfd40, 0xfd4f}, + {0xfdcf, 0xfdcf}, + {0xfdfc, 0xfdff}, + {0xfe62, 0xfe62}, + {0xfe64, 0xfe66}, + {0xfe69, 0xfe69}, + {0xff04, 0xff04}, + {0xff0b, 0xff0b}, + {0xff1c, 0xff1e}, + {0xff3e, 0xff3e}, + {0xff40, 0xff40}, + {0xff5c, 0xff5c}, + {0xff5e, 0xff5e}, + {0xffe0, 0xffe6}, + {0xffe8, 0xffee}, + {0xfffc, 0xfffd}, + {0x10137, 0x1013f}, + {0x10179, 0x10189}, + {0x1018c, 0x1018e}, + {0x10190, 0x1019c}, + {0x101a0, 0x101a0}, + {0x101d0, 0x101fc}, + {0x10877, 0x10878}, + {0x10ac8, 0x10ac8}, + {0x1173f, 0x1173f}, + {0x11fd5, 0x11ff1}, + {0x16b3c, 0x16b3f}, + {0x16b45, 0x16b45}, + {0x1bc9c, 0x1bc9c}, + {0x1cf50, 0x1cfc3}, + {0x1d000, 0x1d0f5}, + {0x1d100, 0x1d126}, + {0x1d129, 0x1d164}, + {0x1d16a, 0x1d16c}, + {0x1d183, 0x1d184}, + {0x1d18c, 0x1d1a9}, + {0x1d1ae, 0x1d1ea}, + {0x1d200, 0x1d241}, + {0x1d245, 0x1d245}, + {0x1d300, 0x1d356}, + {0x1d6c1, 0x1d6c1}, + {0x1d6db, 0x1d6db}, + {0x1d6fb, 0x1d6fb}, + {0x1d715, 0x1d715}, + {0x1d735, 0x1d735}, + {0x1d74f, 0x1d74f}, + {0x1d76f, 0x1d76f}, + {0x1d789, 0x1d789}, + {0x1d7a9, 0x1d7a9}, + {0x1d7c3, 0x1d7c3}, + {0x1d800, 0x1d9ff}, + {0x1da37, 0x1da3a}, + {0x1da6d, 0x1da74}, + {0x1da76, 0x1da83}, + {0x1da85, 0x1da86}, + {0x1e14f, 0x1e14f}, + {0x1e2ff, 0x1e2ff}, + {0x1ecac, 0x1ecac}, + {0x1ecb0, 0x1ecb0}, + {0x1ed2e, 0x1ed2e}, + {0x1eef0, 0x1eef1}, + {0x1f000, 0x1f02b}, + {0x1f030, 0x1f093}, + {0x1f0a0, 0x1f0ae}, + {0x1f0b1, 0x1f0bf}, + {0x1f0c1, 0x1f0cf}, + {0x1f0d1, 0x1f0f5}, + {0x1f10d, 0x1f1ad}, + {0x1f1e6, 0x1f202}, + {0x1f210, 0x1f23b}, + {0x1f240, 0x1f248}, + {0x1f250, 0x1f251}, + {0x1f260, 0x1f265}, + {0x1f300, 0x1f6d7}, + {0x1f6dd, 0x1f6ec}, + {0x1f6f0, 0x1f6fc}, + {0x1f700, 0x1f773}, + {0x1f780, 0x1f7d8}, + {0x1f7e0, 0x1f7eb}, + {0x1f7f0, 0x1f7f0}, + {0x1f800, 0x1f80b}, + {0x1f810, 0x1f847}, + {0x1f850, 0x1f859}, + {0x1f860, 0x1f887}, + {0x1f890, 0x1f8ad}, + {0x1f8b0, 0x1f8b1}, + {0x1f900, 0x1fa53}, + {0x1fa60, 0x1fa6d}, + {0x1fa70, 0x1fa74}, + {0x1fa78, 0x1fa7c}, + {0x1fa80, 0x1fa86}, + {0x1fa90, 0x1faac}, + {0x1fab0, 0x1faba}, + {0x1fac0, 0x1fac5}, + {0x1fad0, 0x1fad9}, + {0x1fae0, 0x1fae7}, + {0x1faf0, 0x1faf6}, + {0x1fb00, 0x1fb92}, {0x1fb94, 0x1fbca} }; -scm_t_char_set cs_symbol = { - 229, - cs_symbol_ranges -}; +static const size_t cs_symbol_len = 234; -scm_t_char_range cs_blank_ranges[] = { - {0x0009, 0x0009} - , - {0x0020, 0x0020} - , - {0x00a0, 0x00a0} - , - {0x1680, 0x1680} - , - {0x2000, 0x200a} - , - {0x202f, 0x202f} - , - {0x205f, 0x205f} - , +static const scm_t_char_range cs_blank_ranges[] = { + {0x0009, 0x0009}, + {0x0020, 0x0020}, + {0x00a0, 0x00a0}, + {0x1680, 0x1680}, + {0x2000, 0x200a}, + {0x202f, 0x202f}, + {0x205f, 0x205f}, {0x3000, 0x3000} }; -scm_t_char_set cs_blank = { - 8, - cs_blank_ranges -}; +static const size_t cs_blank_len = 8; -scm_t_char_range cs_ascii_ranges[] = { +static const scm_t_char_range cs_ascii_ranges[] = { {0x0000, 0x007f} }; -scm_t_char_set cs_ascii = { - 1, - cs_ascii_ranges +static const size_t cs_ascii_len = 1; + +static const scm_t_char_range cs_empty_ranges[] = { }; -scm_t_char_range cs_empty_ranges[] = { -}; +static const size_t cs_empty_len = 0; -scm_t_char_set cs_empty = { - 0, - cs_empty_ranges -}; - -scm_t_char_range cs_designated_ranges[] = { - {0x0000, 0x0377} - , - {0x037a, 0x037f} - , - {0x0384, 0x038a} - , - {0x038c, 0x038c} - , - {0x038e, 0x03a1} - , - {0x03a3, 0x052f} - , - {0x0531, 0x0556} - , - {0x0559, 0x058a} - , - {0x058d, 0x058f} - , - {0x0591, 0x05c7} - , - {0x05d0, 0x05ea} - , - {0x05ef, 0x05f4} - , - {0x0600, 0x061c} - , - {0x061e, 0x070d} - , - {0x070f, 0x074a} - , - {0x074d, 0x07b1} - , - {0x07c0, 0x07fa} - , - {0x07fd, 0x082d} - , - {0x0830, 0x083e} - , - {0x0840, 0x085b} - , - {0x085e, 0x085e} - , - {0x0860, 0x086a} - , - {0x08a0, 0x08b4} - , - {0x08b6, 0x08c7} - , - {0x08d3, 0x0983} - , - {0x0985, 0x098c} - , - {0x098f, 0x0990} - , - {0x0993, 0x09a8} - , - {0x09aa, 0x09b0} - , - {0x09b2, 0x09b2} - , - {0x09b6, 0x09b9} - , - {0x09bc, 0x09c4} - , - {0x09c7, 0x09c8} - , - {0x09cb, 0x09ce} - , - {0x09d7, 0x09d7} - , - {0x09dc, 0x09dd} - , - {0x09df, 0x09e3} - , - {0x09e6, 0x09fe} - , - {0x0a01, 0x0a03} - , - {0x0a05, 0x0a0a} - , - {0x0a0f, 0x0a10} - , - {0x0a13, 0x0a28} - , - {0x0a2a, 0x0a30} - , - {0x0a32, 0x0a33} - , - {0x0a35, 0x0a36} - , - {0x0a38, 0x0a39} - , - {0x0a3c, 0x0a3c} - , - {0x0a3e, 0x0a42} - , - {0x0a47, 0x0a48} - , - {0x0a4b, 0x0a4d} - , - {0x0a51, 0x0a51} - , - {0x0a59, 0x0a5c} - , - {0x0a5e, 0x0a5e} - , - {0x0a66, 0x0a76} - , - {0x0a81, 0x0a83} - , - {0x0a85, 0x0a8d} - , - {0x0a8f, 0x0a91} - , - {0x0a93, 0x0aa8} - , - {0x0aaa, 0x0ab0} - , - {0x0ab2, 0x0ab3} - , - {0x0ab5, 0x0ab9} - , - {0x0abc, 0x0ac5} - , - {0x0ac7, 0x0ac9} - , - {0x0acb, 0x0acd} - , - {0x0ad0, 0x0ad0} - , - {0x0ae0, 0x0ae3} - , - {0x0ae6, 0x0af1} - , - {0x0af9, 0x0aff} - , - {0x0b01, 0x0b03} - , - {0x0b05, 0x0b0c} - , - {0x0b0f, 0x0b10} - , - {0x0b13, 0x0b28} - , - {0x0b2a, 0x0b30} - , - {0x0b32, 0x0b33} - , - {0x0b35, 0x0b39} - , - {0x0b3c, 0x0b44} - , - {0x0b47, 0x0b48} - , - {0x0b4b, 0x0b4d} - , - {0x0b55, 0x0b57} - , - {0x0b5c, 0x0b5d} - , - {0x0b5f, 0x0b63} - , - {0x0b66, 0x0b77} - , - {0x0b82, 0x0b83} - , - {0x0b85, 0x0b8a} - , - {0x0b8e, 0x0b90} - , - {0x0b92, 0x0b95} - , - {0x0b99, 0x0b9a} - , - {0x0b9c, 0x0b9c} - , - {0x0b9e, 0x0b9f} - , - {0x0ba3, 0x0ba4} - , - {0x0ba8, 0x0baa} - , - {0x0bae, 0x0bb9} - , - {0x0bbe, 0x0bc2} - , - {0x0bc6, 0x0bc8} - , - {0x0bca, 0x0bcd} - , - {0x0bd0, 0x0bd0} - , - {0x0bd7, 0x0bd7} - , - {0x0be6, 0x0bfa} - , - {0x0c00, 0x0c0c} - , - {0x0c0e, 0x0c10} - , - {0x0c12, 0x0c28} - , - {0x0c2a, 0x0c39} - , - {0x0c3d, 0x0c44} - , - {0x0c46, 0x0c48} - , - {0x0c4a, 0x0c4d} - , - {0x0c55, 0x0c56} - , - {0x0c58, 0x0c5a} - , - {0x0c60, 0x0c63} - , - {0x0c66, 0x0c6f} - , - {0x0c77, 0x0c8c} - , - {0x0c8e, 0x0c90} - , - {0x0c92, 0x0ca8} - , - {0x0caa, 0x0cb3} - , - {0x0cb5, 0x0cb9} - , - {0x0cbc, 0x0cc4} - , - {0x0cc6, 0x0cc8} - , - {0x0cca, 0x0ccd} - , - {0x0cd5, 0x0cd6} - , - {0x0cde, 0x0cde} - , - {0x0ce0, 0x0ce3} - , - {0x0ce6, 0x0cef} - , - {0x0cf1, 0x0cf2} - , - {0x0d00, 0x0d0c} - , - {0x0d0e, 0x0d10} - , - {0x0d12, 0x0d44} - , - {0x0d46, 0x0d48} - , - {0x0d4a, 0x0d4f} - , - {0x0d54, 0x0d63} - , - {0x0d66, 0x0d7f} - , - {0x0d81, 0x0d83} - , - {0x0d85, 0x0d96} - , - {0x0d9a, 0x0db1} - , - {0x0db3, 0x0dbb} - , - {0x0dbd, 0x0dbd} - , - {0x0dc0, 0x0dc6} - , - {0x0dca, 0x0dca} - , - {0x0dcf, 0x0dd4} - , - {0x0dd6, 0x0dd6} - , - {0x0dd8, 0x0ddf} - , - {0x0de6, 0x0def} - , - {0x0df2, 0x0df4} - , - {0x0e01, 0x0e3a} - , - {0x0e3f, 0x0e5b} - , - {0x0e81, 0x0e82} - , - {0x0e84, 0x0e84} - , - {0x0e86, 0x0e8a} - , - {0x0e8c, 0x0ea3} - , - {0x0ea5, 0x0ea5} - , - {0x0ea7, 0x0ebd} - , - {0x0ec0, 0x0ec4} - , - {0x0ec6, 0x0ec6} - , - {0x0ec8, 0x0ecd} - , - {0x0ed0, 0x0ed9} - , - {0x0edc, 0x0edf} - , - {0x0f00, 0x0f47} - , - {0x0f49, 0x0f6c} - , - {0x0f71, 0x0f97} - , - {0x0f99, 0x0fbc} - , - {0x0fbe, 0x0fcc} - , - {0x0fce, 0x0fda} - , - {0x1000, 0x10c5} - , - {0x10c7, 0x10c7} - , - {0x10cd, 0x10cd} - , - {0x10d0, 0x1248} - , - {0x124a, 0x124d} - , - {0x1250, 0x1256} - , - {0x1258, 0x1258} - , - {0x125a, 0x125d} - , - {0x1260, 0x1288} - , - {0x128a, 0x128d} - , - {0x1290, 0x12b0} - , - {0x12b2, 0x12b5} - , - {0x12b8, 0x12be} - , - {0x12c0, 0x12c0} - , - {0x12c2, 0x12c5} - , - {0x12c8, 0x12d6} - , - {0x12d8, 0x1310} - , - {0x1312, 0x1315} - , - {0x1318, 0x135a} - , - {0x135d, 0x137c} - , - {0x1380, 0x1399} - , - {0x13a0, 0x13f5} - , - {0x13f8, 0x13fd} - , - {0x1400, 0x169c} - , - {0x16a0, 0x16f8} - , - {0x1700, 0x170c} - , - {0x170e, 0x1714} - , - {0x1720, 0x1736} - , - {0x1740, 0x1753} - , - {0x1760, 0x176c} - , - {0x176e, 0x1770} - , - {0x1772, 0x1773} - , - {0x1780, 0x17dd} - , - {0x17e0, 0x17e9} - , - {0x17f0, 0x17f9} - , - {0x1800, 0x180e} - , - {0x1810, 0x1819} - , - {0x1820, 0x1878} - , - {0x1880, 0x18aa} - , - {0x18b0, 0x18f5} - , - {0x1900, 0x191e} - , - {0x1920, 0x192b} - , - {0x1930, 0x193b} - , - {0x1940, 0x1940} - , - {0x1944, 0x196d} - , - {0x1970, 0x1974} - , - {0x1980, 0x19ab} - , - {0x19b0, 0x19c9} - , - {0x19d0, 0x19da} - , - {0x19de, 0x1a1b} - , - {0x1a1e, 0x1a5e} - , - {0x1a60, 0x1a7c} - , - {0x1a7f, 0x1a89} - , - {0x1a90, 0x1a99} - , - {0x1aa0, 0x1aad} - , - {0x1ab0, 0x1ac0} - , - {0x1b00, 0x1b4b} - , - {0x1b50, 0x1b7c} - , - {0x1b80, 0x1bf3} - , - {0x1bfc, 0x1c37} - , - {0x1c3b, 0x1c49} - , - {0x1c4d, 0x1c88} - , - {0x1c90, 0x1cba} - , - {0x1cbd, 0x1cc7} - , - {0x1cd0, 0x1cfa} - , - {0x1d00, 0x1df9} - , - {0x1dfb, 0x1f15} - , - {0x1f18, 0x1f1d} - , - {0x1f20, 0x1f45} - , - {0x1f48, 0x1f4d} - , - {0x1f50, 0x1f57} - , - {0x1f59, 0x1f59} - , - {0x1f5b, 0x1f5b} - , - {0x1f5d, 0x1f5d} - , - {0x1f5f, 0x1f7d} - , - {0x1f80, 0x1fb4} - , - {0x1fb6, 0x1fc4} - , - {0x1fc6, 0x1fd3} - , - {0x1fd6, 0x1fdb} - , - {0x1fdd, 0x1fef} - , - {0x1ff2, 0x1ff4} - , - {0x1ff6, 0x1ffe} - , - {0x2000, 0x2064} - , - {0x2066, 0x2071} - , - {0x2074, 0x208e} - , - {0x2090, 0x209c} - , - {0x20a0, 0x20bf} - , - {0x20d0, 0x20f0} - , - {0x2100, 0x218b} - , - {0x2190, 0x2426} - , - {0x2440, 0x244a} - , - {0x2460, 0x2b73} - , - {0x2b76, 0x2b95} - , - {0x2b97, 0x2c2e} - , - {0x2c30, 0x2c5e} - , - {0x2c60, 0x2cf3} - , - {0x2cf9, 0x2d25} - , - {0x2d27, 0x2d27} - , - {0x2d2d, 0x2d2d} - , - {0x2d30, 0x2d67} - , - {0x2d6f, 0x2d70} - , - {0x2d7f, 0x2d96} - , - {0x2da0, 0x2da6} - , - {0x2da8, 0x2dae} - , - {0x2db0, 0x2db6} - , - {0x2db8, 0x2dbe} - , - {0x2dc0, 0x2dc6} - , - {0x2dc8, 0x2dce} - , - {0x2dd0, 0x2dd6} - , - {0x2dd8, 0x2dde} - , - {0x2de0, 0x2e52} - , - {0x2e80, 0x2e99} - , - {0x2e9b, 0x2ef3} - , - {0x2f00, 0x2fd5} - , - {0x2ff0, 0x2ffb} - , - {0x3000, 0x303f} - , - {0x3041, 0x3096} - , - {0x3099, 0x30ff} - , - {0x3105, 0x312f} - , - {0x3131, 0x318e} - , - {0x3190, 0x31e3} - , - {0x31f0, 0x321e} - , - {0x3220, 0x9ffc} - , - {0xa000, 0xa48c} - , - {0xa490, 0xa4c6} - , - {0xa4d0, 0xa62b} - , - {0xa640, 0xa6f7} - , - {0xa700, 0xa7bf} - , - {0xa7c2, 0xa7ca} - , - {0xa7f5, 0xa82c} - , - {0xa830, 0xa839} - , - {0xa840, 0xa877} - , - {0xa880, 0xa8c5} - , - {0xa8ce, 0xa8d9} - , - {0xa8e0, 0xa953} - , - {0xa95f, 0xa97c} - , - {0xa980, 0xa9cd} - , - {0xa9cf, 0xa9d9} - , - {0xa9de, 0xa9fe} - , - {0xaa00, 0xaa36} - , - {0xaa40, 0xaa4d} - , - {0xaa50, 0xaa59} - , - {0xaa5c, 0xaac2} - , - {0xaadb, 0xaaf6} - , - {0xab01, 0xab06} - , - {0xab09, 0xab0e} - , - {0xab11, 0xab16} - , - {0xab20, 0xab26} - , - {0xab28, 0xab2e} - , - {0xab30, 0xab6b} - , - {0xab70, 0xabed} - , - {0xabf0, 0xabf9} - , - {0xac00, 0xd7a3} - , - {0xd7b0, 0xd7c6} - , - {0xd7cb, 0xd7fb} - , - {0xe000, 0xfa6d} - , - {0xfa70, 0xfad9} - , - {0xfb00, 0xfb06} - , - {0xfb13, 0xfb17} - , - {0xfb1d, 0xfb36} - , - {0xfb38, 0xfb3c} - , - {0xfb3e, 0xfb3e} - , - {0xfb40, 0xfb41} - , - {0xfb43, 0xfb44} - , - {0xfb46, 0xfbc1} - , - {0xfbd3, 0xfd3f} - , - {0xfd50, 0xfd8f} - , - {0xfd92, 0xfdc7} - , - {0xfdf0, 0xfdfd} - , - {0xfe00, 0xfe19} - , - {0xfe20, 0xfe52} - , - {0xfe54, 0xfe66} - , - {0xfe68, 0xfe6b} - , - {0xfe70, 0xfe74} - , - {0xfe76, 0xfefc} - , - {0xfeff, 0xfeff} - , - {0xff01, 0xffbe} - , - {0xffc2, 0xffc7} - , - {0xffca, 0xffcf} - , - {0xffd2, 0xffd7} - , - {0xffda, 0xffdc} - , - {0xffe0, 0xffe6} - , - {0xffe8, 0xffee} - , - {0xfff9, 0xfffd} - , - {0x10000, 0x1000b} - , - {0x1000d, 0x10026} - , - {0x10028, 0x1003a} - , - {0x1003c, 0x1003d} - , - {0x1003f, 0x1004d} - , - {0x10050, 0x1005d} - , - {0x10080, 0x100fa} - , - {0x10100, 0x10102} - , - {0x10107, 0x10133} - , - {0x10137, 0x1018e} - , - {0x10190, 0x1019c} - , - {0x101a0, 0x101a0} - , - {0x101d0, 0x101fd} - , - {0x10280, 0x1029c} - , - {0x102a0, 0x102d0} - , - {0x102e0, 0x102fb} - , - {0x10300, 0x10323} - , - {0x1032d, 0x1034a} - , - {0x10350, 0x1037a} - , - {0x10380, 0x1039d} - , - {0x1039f, 0x103c3} - , - {0x103c8, 0x103d5} - , - {0x10400, 0x1049d} - , - {0x104a0, 0x104a9} - , - {0x104b0, 0x104d3} - , - {0x104d8, 0x104fb} - , - {0x10500, 0x10527} - , - {0x10530, 0x10563} - , - {0x1056f, 0x1056f} - , - {0x10600, 0x10736} - , - {0x10740, 0x10755} - , - {0x10760, 0x10767} - , - {0x10800, 0x10805} - , - {0x10808, 0x10808} - , - {0x1080a, 0x10835} - , - {0x10837, 0x10838} - , - {0x1083c, 0x1083c} - , - {0x1083f, 0x10855} - , - {0x10857, 0x1089e} - , - {0x108a7, 0x108af} - , - {0x108e0, 0x108f2} - , - {0x108f4, 0x108f5} - , - {0x108fb, 0x1091b} - , - {0x1091f, 0x10939} - , - {0x1093f, 0x1093f} - , - {0x10980, 0x109b7} - , - {0x109bc, 0x109cf} - , - {0x109d2, 0x10a03} - , - {0x10a05, 0x10a06} - , - {0x10a0c, 0x10a13} - , - {0x10a15, 0x10a17} - , - {0x10a19, 0x10a35} - , - {0x10a38, 0x10a3a} - , - {0x10a3f, 0x10a48} - , - {0x10a50, 0x10a58} - , - {0x10a60, 0x10a9f} - , - {0x10ac0, 0x10ae6} - , - {0x10aeb, 0x10af6} - , - {0x10b00, 0x10b35} - , - {0x10b39, 0x10b55} - , - {0x10b58, 0x10b72} - , - {0x10b78, 0x10b91} - , - {0x10b99, 0x10b9c} - , - {0x10ba9, 0x10baf} - , - {0x10c00, 0x10c48} - , - {0x10c80, 0x10cb2} - , - {0x10cc0, 0x10cf2} - , - {0x10cfa, 0x10d27} - , - {0x10d30, 0x10d39} - , - {0x10e60, 0x10e7e} - , - {0x10e80, 0x10ea9} - , - {0x10eab, 0x10ead} - , - {0x10eb0, 0x10eb1} - , - {0x10f00, 0x10f27} - , - {0x10f30, 0x10f59} - , - {0x10fb0, 0x10fcb} - , - {0x10fe0, 0x10ff6} - , - {0x11000, 0x1104d} - , - {0x11052, 0x1106f} - , - {0x1107f, 0x110c1} - , - {0x110cd, 0x110cd} - , - {0x110d0, 0x110e8} - , - {0x110f0, 0x110f9} - , - {0x11100, 0x11134} - , - {0x11136, 0x11147} - , - {0x11150, 0x11176} - , - {0x11180, 0x111df} - , - {0x111e1, 0x111f4} - , - {0x11200, 0x11211} - , - {0x11213, 0x1123e} - , - {0x11280, 0x11286} - , - {0x11288, 0x11288} - , - {0x1128a, 0x1128d} - , - {0x1128f, 0x1129d} - , - {0x1129f, 0x112a9} - , - {0x112b0, 0x112ea} - , - {0x112f0, 0x112f9} - , - {0x11300, 0x11303} - , - {0x11305, 0x1130c} - , - {0x1130f, 0x11310} - , - {0x11313, 0x11328} - , - {0x1132a, 0x11330} - , - {0x11332, 0x11333} - , - {0x11335, 0x11339} - , - {0x1133b, 0x11344} - , - {0x11347, 0x11348} - , - {0x1134b, 0x1134d} - , - {0x11350, 0x11350} - , - {0x11357, 0x11357} - , - {0x1135d, 0x11363} - , - {0x11366, 0x1136c} - , - {0x11370, 0x11374} - , - {0x11400, 0x1145b} - , - {0x1145d, 0x11461} - , - {0x11480, 0x114c7} - , - {0x114d0, 0x114d9} - , - {0x11580, 0x115b5} - , - {0x115b8, 0x115dd} - , - {0x11600, 0x11644} - , - {0x11650, 0x11659} - , - {0x11660, 0x1166c} - , - {0x11680, 0x116b8} - , - {0x116c0, 0x116c9} - , - {0x11700, 0x1171a} - , - {0x1171d, 0x1172b} - , - {0x11730, 0x1173f} - , - {0x11800, 0x1183b} - , - {0x118a0, 0x118f2} - , - {0x118ff, 0x11906} - , - {0x11909, 0x11909} - , - {0x1190c, 0x11913} - , - {0x11915, 0x11916} - , - {0x11918, 0x11935} - , - {0x11937, 0x11938} - , - {0x1193b, 0x11946} - , - {0x11950, 0x11959} - , - {0x119a0, 0x119a7} - , - {0x119aa, 0x119d7} - , - {0x119da, 0x119e4} - , - {0x11a00, 0x11a47} - , - {0x11a50, 0x11aa2} - , - {0x11ac0, 0x11af8} - , - {0x11c00, 0x11c08} - , - {0x11c0a, 0x11c36} - , - {0x11c38, 0x11c45} - , - {0x11c50, 0x11c6c} - , - {0x11c70, 0x11c8f} - , - {0x11c92, 0x11ca7} - , - {0x11ca9, 0x11cb6} - , - {0x11d00, 0x11d06} - , - {0x11d08, 0x11d09} - , - {0x11d0b, 0x11d36} - , - {0x11d3a, 0x11d3a} - , - {0x11d3c, 0x11d3d} - , - {0x11d3f, 0x11d47} - , - {0x11d50, 0x11d59} - , - {0x11d60, 0x11d65} - , - {0x11d67, 0x11d68} - , - {0x11d6a, 0x11d8e} - , - {0x11d90, 0x11d91} - , - {0x11d93, 0x11d98} - , - {0x11da0, 0x11da9} - , - {0x11ee0, 0x11ef8} - , - {0x11fb0, 0x11fb0} - , - {0x11fc0, 0x11ff1} - , - {0x11fff, 0x12399} - , - {0x12400, 0x1246e} - , - {0x12470, 0x12474} - , - {0x12480, 0x12543} - , - {0x13000, 0x1342e} - , - {0x13430, 0x13438} - , - {0x14400, 0x14646} - , - {0x16800, 0x16a38} - , - {0x16a40, 0x16a5e} - , - {0x16a60, 0x16a69} - , - {0x16a6e, 0x16a6f} - , - {0x16ad0, 0x16aed} - , - {0x16af0, 0x16af5} - , - {0x16b00, 0x16b45} - , - {0x16b50, 0x16b59} - , - {0x16b5b, 0x16b61} - , - {0x16b63, 0x16b77} - , - {0x16b7d, 0x16b8f} - , - {0x16e40, 0x16e9a} - , - {0x16f00, 0x16f4a} - , - {0x16f4f, 0x16f87} - , - {0x16f8f, 0x16f9f} - , - {0x16fe0, 0x16fe4} - , - {0x16ff0, 0x16ff1} - , - {0x17000, 0x187f7} - , - {0x18800, 0x18cd5} - , - {0x18d00, 0x18d08} - , - {0x1b000, 0x1b11e} - , - {0x1b150, 0x1b152} - , - {0x1b164, 0x1b167} - , - {0x1b170, 0x1b2fb} - , - {0x1bc00, 0x1bc6a} - , - {0x1bc70, 0x1bc7c} - , - {0x1bc80, 0x1bc88} - , - {0x1bc90, 0x1bc99} - , - {0x1bc9c, 0x1bca3} - , - {0x1d000, 0x1d0f5} - , - {0x1d100, 0x1d126} - , - {0x1d129, 0x1d1e8} - , - {0x1d200, 0x1d245} - , - {0x1d2e0, 0x1d2f3} - , - {0x1d300, 0x1d356} - , - {0x1d360, 0x1d378} - , - {0x1d400, 0x1d454} - , - {0x1d456, 0x1d49c} - , - {0x1d49e, 0x1d49f} - , - {0x1d4a2, 0x1d4a2} - , - {0x1d4a5, 0x1d4a6} - , - {0x1d4a9, 0x1d4ac} - , - {0x1d4ae, 0x1d4b9} - , - {0x1d4bb, 0x1d4bb} - , - {0x1d4bd, 0x1d4c3} - , - {0x1d4c5, 0x1d505} - , - {0x1d507, 0x1d50a} - , - {0x1d50d, 0x1d514} - , - {0x1d516, 0x1d51c} - , - {0x1d51e, 0x1d539} - , - {0x1d53b, 0x1d53e} - , - {0x1d540, 0x1d544} - , - {0x1d546, 0x1d546} - , - {0x1d54a, 0x1d550} - , - {0x1d552, 0x1d6a5} - , - {0x1d6a8, 0x1d7cb} - , - {0x1d7ce, 0x1da8b} - , - {0x1da9b, 0x1da9f} - , - {0x1daa1, 0x1daaf} - , - {0x1e000, 0x1e006} - , - {0x1e008, 0x1e018} - , - {0x1e01b, 0x1e021} - , - {0x1e023, 0x1e024} - , - {0x1e026, 0x1e02a} - , - {0x1e100, 0x1e12c} - , - {0x1e130, 0x1e13d} - , - {0x1e140, 0x1e149} - , - {0x1e14e, 0x1e14f} - , - {0x1e2c0, 0x1e2f9} - , - {0x1e2ff, 0x1e2ff} - , - {0x1e800, 0x1e8c4} - , - {0x1e8c7, 0x1e8d6} - , - {0x1e900, 0x1e94b} - , - {0x1e950, 0x1e959} - , - {0x1e95e, 0x1e95f} - , - {0x1ec71, 0x1ecb4} - , - {0x1ed01, 0x1ed3d} - , - {0x1ee00, 0x1ee03} - , - {0x1ee05, 0x1ee1f} - , - {0x1ee21, 0x1ee22} - , - {0x1ee24, 0x1ee24} - , - {0x1ee27, 0x1ee27} - , - {0x1ee29, 0x1ee32} - , - {0x1ee34, 0x1ee37} - , - {0x1ee39, 0x1ee39} - , - {0x1ee3b, 0x1ee3b} - , - {0x1ee42, 0x1ee42} - , - {0x1ee47, 0x1ee47} - , - {0x1ee49, 0x1ee49} - , - {0x1ee4b, 0x1ee4b} - , - {0x1ee4d, 0x1ee4f} - , - {0x1ee51, 0x1ee52} - , - {0x1ee54, 0x1ee54} - , - {0x1ee57, 0x1ee57} - , - {0x1ee59, 0x1ee59} - , - {0x1ee5b, 0x1ee5b} - , - {0x1ee5d, 0x1ee5d} - , - {0x1ee5f, 0x1ee5f} - , - {0x1ee61, 0x1ee62} - , - {0x1ee64, 0x1ee64} - , - {0x1ee67, 0x1ee6a} - , - {0x1ee6c, 0x1ee72} - , - {0x1ee74, 0x1ee77} - , - {0x1ee79, 0x1ee7c} - , - {0x1ee7e, 0x1ee7e} - , - {0x1ee80, 0x1ee89} - , - {0x1ee8b, 0x1ee9b} - , - {0x1eea1, 0x1eea3} - , - {0x1eea5, 0x1eea9} - , - {0x1eeab, 0x1eebb} - , - {0x1eef0, 0x1eef1} - , - {0x1f000, 0x1f02b} - , - {0x1f030, 0x1f093} - , - {0x1f0a0, 0x1f0ae} - , - {0x1f0b1, 0x1f0bf} - , - {0x1f0c1, 0x1f0cf} - , - {0x1f0d1, 0x1f0f5} - , - {0x1f100, 0x1f1ad} - , - {0x1f1e6, 0x1f202} - , - {0x1f210, 0x1f23b} - , - {0x1f240, 0x1f248} - , - {0x1f250, 0x1f251} - , - {0x1f260, 0x1f265} - , - {0x1f300, 0x1f6d7} - , - {0x1f6e0, 0x1f6ec} - , - {0x1f6f0, 0x1f6fc} - , - {0x1f700, 0x1f773} - , - {0x1f780, 0x1f7d8} - , - {0x1f7e0, 0x1f7eb} - , - {0x1f800, 0x1f80b} - , - {0x1f810, 0x1f847} - , - {0x1f850, 0x1f859} - , - {0x1f860, 0x1f887} - , - {0x1f890, 0x1f8ad} - , - {0x1f8b0, 0x1f8b1} - , - {0x1f900, 0x1f978} - , - {0x1f97a, 0x1f9cb} - , - {0x1f9cd, 0x1fa53} - , - {0x1fa60, 0x1fa6d} - , - {0x1fa70, 0x1fa74} - , - {0x1fa78, 0x1fa7a} - , - {0x1fa80, 0x1fa86} - , - {0x1fa90, 0x1faa8} - , - {0x1fab0, 0x1fab6} - , - {0x1fac0, 0x1fac2} - , - {0x1fad0, 0x1fad6} - , - {0x1fb00, 0x1fb92} - , - {0x1fb94, 0x1fbca} - , - {0x1fbf0, 0x1fbf9} - , - {0x20000, 0x2a6dd} - , - {0x2a700, 0x2b734} - , - {0x2b740, 0x2b81d} - , - {0x2b820, 0x2cea1} - , - {0x2ceb0, 0x2ebe0} - , - {0x2f800, 0x2fa1d} - , - {0x30000, 0x3134a} - , - {0xe0001, 0xe0001} - , - {0xe0020, 0xe007f} - , - {0xe0100, 0xe01ef} - , - {0xf0000, 0xffffd} - , +static const scm_t_char_range cs_designated_ranges[] = { + {0x0000, 0x0377}, + {0x037a, 0x037f}, + {0x0384, 0x038a}, + {0x038c, 0x038c}, + {0x038e, 0x03a1}, + {0x03a3, 0x052f}, + {0x0531, 0x0556}, + {0x0559, 0x058a}, + {0x058d, 0x058f}, + {0x0591, 0x05c7}, + {0x05d0, 0x05ea}, + {0x05ef, 0x05f4}, + {0x0600, 0x070d}, + {0x070f, 0x074a}, + {0x074d, 0x07b1}, + {0x07c0, 0x07fa}, + {0x07fd, 0x082d}, + {0x0830, 0x083e}, + {0x0840, 0x085b}, + {0x085e, 0x085e}, + {0x0860, 0x086a}, + {0x0870, 0x088e}, + {0x0890, 0x0891}, + {0x0898, 0x0983}, + {0x0985, 0x098c}, + {0x098f, 0x0990}, + {0x0993, 0x09a8}, + {0x09aa, 0x09b0}, + {0x09b2, 0x09b2}, + {0x09b6, 0x09b9}, + {0x09bc, 0x09c4}, + {0x09c7, 0x09c8}, + {0x09cb, 0x09ce}, + {0x09d7, 0x09d7}, + {0x09dc, 0x09dd}, + {0x09df, 0x09e3}, + {0x09e6, 0x09fe}, + {0x0a01, 0x0a03}, + {0x0a05, 0x0a0a}, + {0x0a0f, 0x0a10}, + {0x0a13, 0x0a28}, + {0x0a2a, 0x0a30}, + {0x0a32, 0x0a33}, + {0x0a35, 0x0a36}, + {0x0a38, 0x0a39}, + {0x0a3c, 0x0a3c}, + {0x0a3e, 0x0a42}, + {0x0a47, 0x0a48}, + {0x0a4b, 0x0a4d}, + {0x0a51, 0x0a51}, + {0x0a59, 0x0a5c}, + {0x0a5e, 0x0a5e}, + {0x0a66, 0x0a76}, + {0x0a81, 0x0a83}, + {0x0a85, 0x0a8d}, + {0x0a8f, 0x0a91}, + {0x0a93, 0x0aa8}, + {0x0aaa, 0x0ab0}, + {0x0ab2, 0x0ab3}, + {0x0ab5, 0x0ab9}, + {0x0abc, 0x0ac5}, + {0x0ac7, 0x0ac9}, + {0x0acb, 0x0acd}, + {0x0ad0, 0x0ad0}, + {0x0ae0, 0x0ae3}, + {0x0ae6, 0x0af1}, + {0x0af9, 0x0aff}, + {0x0b01, 0x0b03}, + {0x0b05, 0x0b0c}, + {0x0b0f, 0x0b10}, + {0x0b13, 0x0b28}, + {0x0b2a, 0x0b30}, + {0x0b32, 0x0b33}, + {0x0b35, 0x0b39}, + {0x0b3c, 0x0b44}, + {0x0b47, 0x0b48}, + {0x0b4b, 0x0b4d}, + {0x0b55, 0x0b57}, + {0x0b5c, 0x0b5d}, + {0x0b5f, 0x0b63}, + {0x0b66, 0x0b77}, + {0x0b82, 0x0b83}, + {0x0b85, 0x0b8a}, + {0x0b8e, 0x0b90}, + {0x0b92, 0x0b95}, + {0x0b99, 0x0b9a}, + {0x0b9c, 0x0b9c}, + {0x0b9e, 0x0b9f}, + {0x0ba3, 0x0ba4}, + {0x0ba8, 0x0baa}, + {0x0bae, 0x0bb9}, + {0x0bbe, 0x0bc2}, + {0x0bc6, 0x0bc8}, + {0x0bca, 0x0bcd}, + {0x0bd0, 0x0bd0}, + {0x0bd7, 0x0bd7}, + {0x0be6, 0x0bfa}, + {0x0c00, 0x0c0c}, + {0x0c0e, 0x0c10}, + {0x0c12, 0x0c28}, + {0x0c2a, 0x0c39}, + {0x0c3c, 0x0c44}, + {0x0c46, 0x0c48}, + {0x0c4a, 0x0c4d}, + {0x0c55, 0x0c56}, + {0x0c58, 0x0c5a}, + {0x0c5d, 0x0c5d}, + {0x0c60, 0x0c63}, + {0x0c66, 0x0c6f}, + {0x0c77, 0x0c8c}, + {0x0c8e, 0x0c90}, + {0x0c92, 0x0ca8}, + {0x0caa, 0x0cb3}, + {0x0cb5, 0x0cb9}, + {0x0cbc, 0x0cc4}, + {0x0cc6, 0x0cc8}, + {0x0cca, 0x0ccd}, + {0x0cd5, 0x0cd6}, + {0x0cdd, 0x0cde}, + {0x0ce0, 0x0ce3}, + {0x0ce6, 0x0cef}, + {0x0cf1, 0x0cf2}, + {0x0d00, 0x0d0c}, + {0x0d0e, 0x0d10}, + {0x0d12, 0x0d44}, + {0x0d46, 0x0d48}, + {0x0d4a, 0x0d4f}, + {0x0d54, 0x0d63}, + {0x0d66, 0x0d7f}, + {0x0d81, 0x0d83}, + {0x0d85, 0x0d96}, + {0x0d9a, 0x0db1}, + {0x0db3, 0x0dbb}, + {0x0dbd, 0x0dbd}, + {0x0dc0, 0x0dc6}, + {0x0dca, 0x0dca}, + {0x0dcf, 0x0dd4}, + {0x0dd6, 0x0dd6}, + {0x0dd8, 0x0ddf}, + {0x0de6, 0x0def}, + {0x0df2, 0x0df4}, + {0x0e01, 0x0e3a}, + {0x0e3f, 0x0e5b}, + {0x0e81, 0x0e82}, + {0x0e84, 0x0e84}, + {0x0e86, 0x0e8a}, + {0x0e8c, 0x0ea3}, + {0x0ea5, 0x0ea5}, + {0x0ea7, 0x0ebd}, + {0x0ec0, 0x0ec4}, + {0x0ec6, 0x0ec6}, + {0x0ec8, 0x0ecd}, + {0x0ed0, 0x0ed9}, + {0x0edc, 0x0edf}, + {0x0f00, 0x0f47}, + {0x0f49, 0x0f6c}, + {0x0f71, 0x0f97}, + {0x0f99, 0x0fbc}, + {0x0fbe, 0x0fcc}, + {0x0fce, 0x0fda}, + {0x1000, 0x10c5}, + {0x10c7, 0x10c7}, + {0x10cd, 0x10cd}, + {0x10d0, 0x1248}, + {0x124a, 0x124d}, + {0x1250, 0x1256}, + {0x1258, 0x1258}, + {0x125a, 0x125d}, + {0x1260, 0x1288}, + {0x128a, 0x128d}, + {0x1290, 0x12b0}, + {0x12b2, 0x12b5}, + {0x12b8, 0x12be}, + {0x12c0, 0x12c0}, + {0x12c2, 0x12c5}, + {0x12c8, 0x12d6}, + {0x12d8, 0x1310}, + {0x1312, 0x1315}, + {0x1318, 0x135a}, + {0x135d, 0x137c}, + {0x1380, 0x1399}, + {0x13a0, 0x13f5}, + {0x13f8, 0x13fd}, + {0x1400, 0x169c}, + {0x16a0, 0x16f8}, + {0x1700, 0x1715}, + {0x171f, 0x1736}, + {0x1740, 0x1753}, + {0x1760, 0x176c}, + {0x176e, 0x1770}, + {0x1772, 0x1773}, + {0x1780, 0x17dd}, + {0x17e0, 0x17e9}, + {0x17f0, 0x17f9}, + {0x1800, 0x1819}, + {0x1820, 0x1878}, + {0x1880, 0x18aa}, + {0x18b0, 0x18f5}, + {0x1900, 0x191e}, + {0x1920, 0x192b}, + {0x1930, 0x193b}, + {0x1940, 0x1940}, + {0x1944, 0x196d}, + {0x1970, 0x1974}, + {0x1980, 0x19ab}, + {0x19b0, 0x19c9}, + {0x19d0, 0x19da}, + {0x19de, 0x1a1b}, + {0x1a1e, 0x1a5e}, + {0x1a60, 0x1a7c}, + {0x1a7f, 0x1a89}, + {0x1a90, 0x1a99}, + {0x1aa0, 0x1aad}, + {0x1ab0, 0x1ace}, + {0x1b00, 0x1b4c}, + {0x1b50, 0x1b7e}, + {0x1b80, 0x1bf3}, + {0x1bfc, 0x1c37}, + {0x1c3b, 0x1c49}, + {0x1c4d, 0x1c88}, + {0x1c90, 0x1cba}, + {0x1cbd, 0x1cc7}, + {0x1cd0, 0x1cfa}, + {0x1d00, 0x1f15}, + {0x1f18, 0x1f1d}, + {0x1f20, 0x1f45}, + {0x1f48, 0x1f4d}, + {0x1f50, 0x1f57}, + {0x1f59, 0x1f59}, + {0x1f5b, 0x1f5b}, + {0x1f5d, 0x1f5d}, + {0x1f5f, 0x1f7d}, + {0x1f80, 0x1fb4}, + {0x1fb6, 0x1fc4}, + {0x1fc6, 0x1fd3}, + {0x1fd6, 0x1fdb}, + {0x1fdd, 0x1fef}, + {0x1ff2, 0x1ff4}, + {0x1ff6, 0x1ffe}, + {0x2000, 0x2064}, + {0x2066, 0x2071}, + {0x2074, 0x208e}, + {0x2090, 0x209c}, + {0x20a0, 0x20c0}, + {0x20d0, 0x20f0}, + {0x2100, 0x218b}, + {0x2190, 0x2426}, + {0x2440, 0x244a}, + {0x2460, 0x2b73}, + {0x2b76, 0x2b95}, + {0x2b97, 0x2cf3}, + {0x2cf9, 0x2d25}, + {0x2d27, 0x2d27}, + {0x2d2d, 0x2d2d}, + {0x2d30, 0x2d67}, + {0x2d6f, 0x2d70}, + {0x2d7f, 0x2d96}, + {0x2da0, 0x2da6}, + {0x2da8, 0x2dae}, + {0x2db0, 0x2db6}, + {0x2db8, 0x2dbe}, + {0x2dc0, 0x2dc6}, + {0x2dc8, 0x2dce}, + {0x2dd0, 0x2dd6}, + {0x2dd8, 0x2dde}, + {0x2de0, 0x2e5d}, + {0x2e80, 0x2e99}, + {0x2e9b, 0x2ef3}, + {0x2f00, 0x2fd5}, + {0x2ff0, 0x2ffb}, + {0x3000, 0x303f}, + {0x3041, 0x3096}, + {0x3099, 0x30ff}, + {0x3105, 0x312f}, + {0x3131, 0x318e}, + {0x3190, 0x31e3}, + {0x31f0, 0x321e}, + {0x3220, 0xa48c}, + {0xa490, 0xa4c6}, + {0xa4d0, 0xa62b}, + {0xa640, 0xa6f7}, + {0xa700, 0xa7ca}, + {0xa7d0, 0xa7d1}, + {0xa7d3, 0xa7d3}, + {0xa7d5, 0xa7d9}, + {0xa7f2, 0xa82c}, + {0xa830, 0xa839}, + {0xa840, 0xa877}, + {0xa880, 0xa8c5}, + {0xa8ce, 0xa8d9}, + {0xa8e0, 0xa953}, + {0xa95f, 0xa97c}, + {0xa980, 0xa9cd}, + {0xa9cf, 0xa9d9}, + {0xa9de, 0xa9fe}, + {0xaa00, 0xaa36}, + {0xaa40, 0xaa4d}, + {0xaa50, 0xaa59}, + {0xaa5c, 0xaac2}, + {0xaadb, 0xaaf6}, + {0xab01, 0xab06}, + {0xab09, 0xab0e}, + {0xab11, 0xab16}, + {0xab20, 0xab26}, + {0xab28, 0xab2e}, + {0xab30, 0xab6b}, + {0xab70, 0xabed}, + {0xabf0, 0xabf9}, + {0xac00, 0xd7a3}, + {0xd7b0, 0xd7c6}, + {0xd7cb, 0xd7fb}, + {0xe000, 0xfa6d}, + {0xfa70, 0xfad9}, + {0xfb00, 0xfb06}, + {0xfb13, 0xfb17}, + {0xfb1d, 0xfb36}, + {0xfb38, 0xfb3c}, + {0xfb3e, 0xfb3e}, + {0xfb40, 0xfb41}, + {0xfb43, 0xfb44}, + {0xfb46, 0xfbc2}, + {0xfbd3, 0xfd8f}, + {0xfd92, 0xfdc7}, + {0xfdcf, 0xfdcf}, + {0xfdf0, 0xfe19}, + {0xfe20, 0xfe52}, + {0xfe54, 0xfe66}, + {0xfe68, 0xfe6b}, + {0xfe70, 0xfe74}, + {0xfe76, 0xfefc}, + {0xfeff, 0xfeff}, + {0xff01, 0xffbe}, + {0xffc2, 0xffc7}, + {0xffca, 0xffcf}, + {0xffd2, 0xffd7}, + {0xffda, 0xffdc}, + {0xffe0, 0xffe6}, + {0xffe8, 0xffee}, + {0xfff9, 0xfffd}, + {0x10000, 0x1000b}, + {0x1000d, 0x10026}, + {0x10028, 0x1003a}, + {0x1003c, 0x1003d}, + {0x1003f, 0x1004d}, + {0x10050, 0x1005d}, + {0x10080, 0x100fa}, + {0x10100, 0x10102}, + {0x10107, 0x10133}, + {0x10137, 0x1018e}, + {0x10190, 0x1019c}, + {0x101a0, 0x101a0}, + {0x101d0, 0x101fd}, + {0x10280, 0x1029c}, + {0x102a0, 0x102d0}, + {0x102e0, 0x102fb}, + {0x10300, 0x10323}, + {0x1032d, 0x1034a}, + {0x10350, 0x1037a}, + {0x10380, 0x1039d}, + {0x1039f, 0x103c3}, + {0x103c8, 0x103d5}, + {0x10400, 0x1049d}, + {0x104a0, 0x104a9}, + {0x104b0, 0x104d3}, + {0x104d8, 0x104fb}, + {0x10500, 0x10527}, + {0x10530, 0x10563}, + {0x1056f, 0x1057a}, + {0x1057c, 0x1058a}, + {0x1058c, 0x10592}, + {0x10594, 0x10595}, + {0x10597, 0x105a1}, + {0x105a3, 0x105b1}, + {0x105b3, 0x105b9}, + {0x105bb, 0x105bc}, + {0x10600, 0x10736}, + {0x10740, 0x10755}, + {0x10760, 0x10767}, + {0x10780, 0x10785}, + {0x10787, 0x107b0}, + {0x107b2, 0x107ba}, + {0x10800, 0x10805}, + {0x10808, 0x10808}, + {0x1080a, 0x10835}, + {0x10837, 0x10838}, + {0x1083c, 0x1083c}, + {0x1083f, 0x10855}, + {0x10857, 0x1089e}, + {0x108a7, 0x108af}, + {0x108e0, 0x108f2}, + {0x108f4, 0x108f5}, + {0x108fb, 0x1091b}, + {0x1091f, 0x10939}, + {0x1093f, 0x1093f}, + {0x10980, 0x109b7}, + {0x109bc, 0x109cf}, + {0x109d2, 0x10a03}, + {0x10a05, 0x10a06}, + {0x10a0c, 0x10a13}, + {0x10a15, 0x10a17}, + {0x10a19, 0x10a35}, + {0x10a38, 0x10a3a}, + {0x10a3f, 0x10a48}, + {0x10a50, 0x10a58}, + {0x10a60, 0x10a9f}, + {0x10ac0, 0x10ae6}, + {0x10aeb, 0x10af6}, + {0x10b00, 0x10b35}, + {0x10b39, 0x10b55}, + {0x10b58, 0x10b72}, + {0x10b78, 0x10b91}, + {0x10b99, 0x10b9c}, + {0x10ba9, 0x10baf}, + {0x10c00, 0x10c48}, + {0x10c80, 0x10cb2}, + {0x10cc0, 0x10cf2}, + {0x10cfa, 0x10d27}, + {0x10d30, 0x10d39}, + {0x10e60, 0x10e7e}, + {0x10e80, 0x10ea9}, + {0x10eab, 0x10ead}, + {0x10eb0, 0x10eb1}, + {0x10f00, 0x10f27}, + {0x10f30, 0x10f59}, + {0x10f70, 0x10f89}, + {0x10fb0, 0x10fcb}, + {0x10fe0, 0x10ff6}, + {0x11000, 0x1104d}, + {0x11052, 0x11075}, + {0x1107f, 0x110c2}, + {0x110cd, 0x110cd}, + {0x110d0, 0x110e8}, + {0x110f0, 0x110f9}, + {0x11100, 0x11134}, + {0x11136, 0x11147}, + {0x11150, 0x11176}, + {0x11180, 0x111df}, + {0x111e1, 0x111f4}, + {0x11200, 0x11211}, + {0x11213, 0x1123e}, + {0x11280, 0x11286}, + {0x11288, 0x11288}, + {0x1128a, 0x1128d}, + {0x1128f, 0x1129d}, + {0x1129f, 0x112a9}, + {0x112b0, 0x112ea}, + {0x112f0, 0x112f9}, + {0x11300, 0x11303}, + {0x11305, 0x1130c}, + {0x1130f, 0x11310}, + {0x11313, 0x11328}, + {0x1132a, 0x11330}, + {0x11332, 0x11333}, + {0x11335, 0x11339}, + {0x1133b, 0x11344}, + {0x11347, 0x11348}, + {0x1134b, 0x1134d}, + {0x11350, 0x11350}, + {0x11357, 0x11357}, + {0x1135d, 0x11363}, + {0x11366, 0x1136c}, + {0x11370, 0x11374}, + {0x11400, 0x1145b}, + {0x1145d, 0x11461}, + {0x11480, 0x114c7}, + {0x114d0, 0x114d9}, + {0x11580, 0x115b5}, + {0x115b8, 0x115dd}, + {0x11600, 0x11644}, + {0x11650, 0x11659}, + {0x11660, 0x1166c}, + {0x11680, 0x116b9}, + {0x116c0, 0x116c9}, + {0x11700, 0x1171a}, + {0x1171d, 0x1172b}, + {0x11730, 0x11746}, + {0x11800, 0x1183b}, + {0x118a0, 0x118f2}, + {0x118ff, 0x11906}, + {0x11909, 0x11909}, + {0x1190c, 0x11913}, + {0x11915, 0x11916}, + {0x11918, 0x11935}, + {0x11937, 0x11938}, + {0x1193b, 0x11946}, + {0x11950, 0x11959}, + {0x119a0, 0x119a7}, + {0x119aa, 0x119d7}, + {0x119da, 0x119e4}, + {0x11a00, 0x11a47}, + {0x11a50, 0x11aa2}, + {0x11ab0, 0x11af8}, + {0x11c00, 0x11c08}, + {0x11c0a, 0x11c36}, + {0x11c38, 0x11c45}, + {0x11c50, 0x11c6c}, + {0x11c70, 0x11c8f}, + {0x11c92, 0x11ca7}, + {0x11ca9, 0x11cb6}, + {0x11d00, 0x11d06}, + {0x11d08, 0x11d09}, + {0x11d0b, 0x11d36}, + {0x11d3a, 0x11d3a}, + {0x11d3c, 0x11d3d}, + {0x11d3f, 0x11d47}, + {0x11d50, 0x11d59}, + {0x11d60, 0x11d65}, + {0x11d67, 0x11d68}, + {0x11d6a, 0x11d8e}, + {0x11d90, 0x11d91}, + {0x11d93, 0x11d98}, + {0x11da0, 0x11da9}, + {0x11ee0, 0x11ef8}, + {0x11fb0, 0x11fb0}, + {0x11fc0, 0x11ff1}, + {0x11fff, 0x12399}, + {0x12400, 0x1246e}, + {0x12470, 0x12474}, + {0x12480, 0x12543}, + {0x12f90, 0x12ff2}, + {0x13000, 0x1342e}, + {0x13430, 0x13438}, + {0x14400, 0x14646}, + {0x16800, 0x16a38}, + {0x16a40, 0x16a5e}, + {0x16a60, 0x16a69}, + {0x16a6e, 0x16abe}, + {0x16ac0, 0x16ac9}, + {0x16ad0, 0x16aed}, + {0x16af0, 0x16af5}, + {0x16b00, 0x16b45}, + {0x16b50, 0x16b59}, + {0x16b5b, 0x16b61}, + {0x16b63, 0x16b77}, + {0x16b7d, 0x16b8f}, + {0x16e40, 0x16e9a}, + {0x16f00, 0x16f4a}, + {0x16f4f, 0x16f87}, + {0x16f8f, 0x16f9f}, + {0x16fe0, 0x16fe4}, + {0x16ff0, 0x16ff1}, + {0x17000, 0x187f7}, + {0x18800, 0x18cd5}, + {0x18d00, 0x18d08}, + {0x1aff0, 0x1aff3}, + {0x1aff5, 0x1affb}, + {0x1affd, 0x1affe}, + {0x1b000, 0x1b122}, + {0x1b150, 0x1b152}, + {0x1b164, 0x1b167}, + {0x1b170, 0x1b2fb}, + {0x1bc00, 0x1bc6a}, + {0x1bc70, 0x1bc7c}, + {0x1bc80, 0x1bc88}, + {0x1bc90, 0x1bc99}, + {0x1bc9c, 0x1bca3}, + {0x1cf00, 0x1cf2d}, + {0x1cf30, 0x1cf46}, + {0x1cf50, 0x1cfc3}, + {0x1d000, 0x1d0f5}, + {0x1d100, 0x1d126}, + {0x1d129, 0x1d1ea}, + {0x1d200, 0x1d245}, + {0x1d2e0, 0x1d2f3}, + {0x1d300, 0x1d356}, + {0x1d360, 0x1d378}, + {0x1d400, 0x1d454}, + {0x1d456, 0x1d49c}, + {0x1d49e, 0x1d49f}, + {0x1d4a2, 0x1d4a2}, + {0x1d4a5, 0x1d4a6}, + {0x1d4a9, 0x1d4ac}, + {0x1d4ae, 0x1d4b9}, + {0x1d4bb, 0x1d4bb}, + {0x1d4bd, 0x1d4c3}, + {0x1d4c5, 0x1d505}, + {0x1d507, 0x1d50a}, + {0x1d50d, 0x1d514}, + {0x1d516, 0x1d51c}, + {0x1d51e, 0x1d539}, + {0x1d53b, 0x1d53e}, + {0x1d540, 0x1d544}, + {0x1d546, 0x1d546}, + {0x1d54a, 0x1d550}, + {0x1d552, 0x1d6a5}, + {0x1d6a8, 0x1d7cb}, + {0x1d7ce, 0x1da8b}, + {0x1da9b, 0x1da9f}, + {0x1daa1, 0x1daaf}, + {0x1df00, 0x1df1e}, + {0x1e000, 0x1e006}, + {0x1e008, 0x1e018}, + {0x1e01b, 0x1e021}, + {0x1e023, 0x1e024}, + {0x1e026, 0x1e02a}, + {0x1e100, 0x1e12c}, + {0x1e130, 0x1e13d}, + {0x1e140, 0x1e149}, + {0x1e14e, 0x1e14f}, + {0x1e290, 0x1e2ae}, + {0x1e2c0, 0x1e2f9}, + {0x1e2ff, 0x1e2ff}, + {0x1e7e0, 0x1e7e6}, + {0x1e7e8, 0x1e7eb}, + {0x1e7ed, 0x1e7ee}, + {0x1e7f0, 0x1e7fe}, + {0x1e800, 0x1e8c4}, + {0x1e8c7, 0x1e8d6}, + {0x1e900, 0x1e94b}, + {0x1e950, 0x1e959}, + {0x1e95e, 0x1e95f}, + {0x1ec71, 0x1ecb4}, + {0x1ed01, 0x1ed3d}, + {0x1ee00, 0x1ee03}, + {0x1ee05, 0x1ee1f}, + {0x1ee21, 0x1ee22}, + {0x1ee24, 0x1ee24}, + {0x1ee27, 0x1ee27}, + {0x1ee29, 0x1ee32}, + {0x1ee34, 0x1ee37}, + {0x1ee39, 0x1ee39}, + {0x1ee3b, 0x1ee3b}, + {0x1ee42, 0x1ee42}, + {0x1ee47, 0x1ee47}, + {0x1ee49, 0x1ee49}, + {0x1ee4b, 0x1ee4b}, + {0x1ee4d, 0x1ee4f}, + {0x1ee51, 0x1ee52}, + {0x1ee54, 0x1ee54}, + {0x1ee57, 0x1ee57}, + {0x1ee59, 0x1ee59}, + {0x1ee5b, 0x1ee5b}, + {0x1ee5d, 0x1ee5d}, + {0x1ee5f, 0x1ee5f}, + {0x1ee61, 0x1ee62}, + {0x1ee64, 0x1ee64}, + {0x1ee67, 0x1ee6a}, + {0x1ee6c, 0x1ee72}, + {0x1ee74, 0x1ee77}, + {0x1ee79, 0x1ee7c}, + {0x1ee7e, 0x1ee7e}, + {0x1ee80, 0x1ee89}, + {0x1ee8b, 0x1ee9b}, + {0x1eea1, 0x1eea3}, + {0x1eea5, 0x1eea9}, + {0x1eeab, 0x1eebb}, + {0x1eef0, 0x1eef1}, + {0x1f000, 0x1f02b}, + {0x1f030, 0x1f093}, + {0x1f0a0, 0x1f0ae}, + {0x1f0b1, 0x1f0bf}, + {0x1f0c1, 0x1f0cf}, + {0x1f0d1, 0x1f0f5}, + {0x1f100, 0x1f1ad}, + {0x1f1e6, 0x1f202}, + {0x1f210, 0x1f23b}, + {0x1f240, 0x1f248}, + {0x1f250, 0x1f251}, + {0x1f260, 0x1f265}, + {0x1f300, 0x1f6d7}, + {0x1f6dd, 0x1f6ec}, + {0x1f6f0, 0x1f6fc}, + {0x1f700, 0x1f773}, + {0x1f780, 0x1f7d8}, + {0x1f7e0, 0x1f7eb}, + {0x1f7f0, 0x1f7f0}, + {0x1f800, 0x1f80b}, + {0x1f810, 0x1f847}, + {0x1f850, 0x1f859}, + {0x1f860, 0x1f887}, + {0x1f890, 0x1f8ad}, + {0x1f8b0, 0x1f8b1}, + {0x1f900, 0x1fa53}, + {0x1fa60, 0x1fa6d}, + {0x1fa70, 0x1fa74}, + {0x1fa78, 0x1fa7c}, + {0x1fa80, 0x1fa86}, + {0x1fa90, 0x1faac}, + {0x1fab0, 0x1faba}, + {0x1fac0, 0x1fac5}, + {0x1fad0, 0x1fad9}, + {0x1fae0, 0x1fae7}, + {0x1faf0, 0x1faf6}, + {0x1fb00, 0x1fb92}, + {0x1fb94, 0x1fbca}, + {0x1fbf0, 0x1fbf9}, + {0x20000, 0x2a6df}, + {0x2a700, 0x2b738}, + {0x2b740, 0x2b81d}, + {0x2b820, 0x2cea1}, + {0x2ceb0, 0x2ebe0}, + {0x2f800, 0x2fa1d}, + {0x30000, 0x3134a}, + {0xe0001, 0xe0001}, + {0xe0020, 0xe007f}, + {0xe0100, 0xe01ef}, + {0xf0000, 0xffffd}, {0x100000, 0x10fffd} }; -scm_t_char_set cs_designated = { - 677, - cs_designated_ranges -}; +static const size_t cs_designated_len = 698; diff --git a/libguile/unidata_to_charset.pl b/libguile/unidata_to_charset.pl index 16468a04b..9cd7e6e71 100755 --- a/libguile/unidata_to_charset.pl +++ b/libguile/unidata_to_charset.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl # unidata_to_charset.pl --- Compute SRFI-14 charsets from UnicodeData.txt # -# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# Copyright (C) 2009, 2010, 2022 Free Software Foundation, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -347,7 +347,7 @@ sub compute { } # Print the C struct that contains the range list. - print $out "scm_t_char_range cs_" . $f . "_ranges[] = {\n"; + print $out "static const scm_t_char_range cs_" . $f . "_ranges[] = {\n"; if ($rstart[0] != -1) { for (my $i=0; $i<@rstart-1; $i++) { printf $out " {0x%04x, 0x%04x},\n", $rstart[$i], $rend[$i]; @@ -358,10 +358,7 @@ sub compute { # Print the C struct that contains the range list length and # pointer to the range list. - print $out "scm_t_char_set cs_${f} = {\n"; - print $out " $len,\n"; - print $out " cs_" . $f . "_ranges\n"; - print $out "};\n\n"; + print $out "static const size_t cs_${f}_len = $len;\n\n"; } # Write a bit of a header