* enc/unicode/name2ctype.h: split from enc/unicode.c and made a
perfect hash. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a606038c6a
commit
a7b920686a
@ -1,3 +1,8 @@
|
|||||||
|
Fri Aug 21 17:01:04 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* enc/unicode/name2ctype.h: split from enc/unicode.c and made a
|
||||||
|
perfect hash.
|
||||||
|
|
||||||
Fri Aug 21 15:13:08 2009 NARUSE, Yui <naruse@ruby-lang.org>
|
Fri Aug 21 15:13:08 2009 NARUSE, Yui <naruse@ruby-lang.org>
|
||||||
|
|
||||||
* include/ruby/io.h, io.c (FMODE_SETENC_BY_BOM):
|
* include/ruby/io.h, io.c (FMODE_SETENC_BY_BOM):
|
||||||
|
22
Makefile.in
22
Makefile.in
@ -208,6 +208,28 @@ lex.c: defs/keywords
|
|||||||
cp $@ $(srcdir)/lex.c.blt; \
|
cp $@ $(srcdir)/lex.c.blt; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
NAME2CTYPE_OPTIONS = -7 -c -j1 -i1 -t -C -P -T -H uniname2ctype_hash -Q uniname2ctype_pool -N uniname2ctype_p
|
||||||
|
|
||||||
|
enc/unicode/name2ctype.h: enc/unicode/name2ctype.kwd
|
||||||
|
$(MAKEDIRS) $(@D)
|
||||||
|
@\
|
||||||
|
if cmp -s $(?:.kwd=.src) $?; then \
|
||||||
|
set -x; \
|
||||||
|
cp $(?:.kwd=.h.blt) $@; \
|
||||||
|
else \
|
||||||
|
trap '$(RM) $@-1.h $@-2.h' 0 && \
|
||||||
|
set -x; \
|
||||||
|
sed '/^#ifdef USE_UNICODE_PROPERTIES/,/^#endif/d' $? | gperf $(NAME2CTYPE_OPTIONS) > $@-1.h && \
|
||||||
|
gperf $(NAME2CTYPE_OPTIONS) < $? > $@-2.h && \
|
||||||
|
diff -DUSE_UNICODE_PROPERTIES $@-1.h $@-2.h > $@.tmp; \
|
||||||
|
mv $@.tmp $@ && \
|
||||||
|
cp $? $(?:.kwd=.src) && \
|
||||||
|
cp $@ $(?:.kwd=.h.blt); \
|
||||||
|
fi
|
||||||
|
|
||||||
|
enc/unicode/name2ctype_prop.h: $(srcdir)/enc/unicode/name2ctype.kwd
|
||||||
|
$(MAKEDIRS) $(@D)
|
||||||
|
|
||||||
.c.@OBJEXT@:
|
.c.@OBJEXT@:
|
||||||
$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
|
$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
|
||||||
|
|
||||||
|
@ -640,7 +640,9 @@ us_ascii.$(OBJEXT): {$(VPATH)}us_ascii.c {$(VPATH)}regenc.h \
|
|||||||
unicode.$(OBJEXT): {$(VPATH)}unicode.c {$(VPATH)}regint.h \
|
unicode.$(OBJEXT): {$(VPATH)}unicode.c {$(VPATH)}regint.h \
|
||||||
{$(VPATH)}config.h {$(VPATH)}defines.h {$(VPATH)}regenc.h \
|
{$(VPATH)}config.h {$(VPATH)}defines.h {$(VPATH)}regenc.h \
|
||||||
{$(VPATH)}oniguruma.h {$(VPATH)}st.h {$(VPATH)}ruby.h \
|
{$(VPATH)}oniguruma.h {$(VPATH)}st.h {$(VPATH)}ruby.h \
|
||||||
{$(VPATH)}missing.h {$(VPATH)}intern.h
|
{$(VPATH)}missing.h {$(VPATH)}intern.h \
|
||||||
|
{$(VPATH)}enc/unicode/name2ctype.h
|
||||||
|
|
||||||
utf_8.$(OBJEXT): {$(VPATH)}utf_8.c {$(VPATH)}regenc.h {$(VPATH)}config.h \
|
utf_8.$(OBJEXT): {$(VPATH)}utf_8.c {$(VPATH)}regenc.h {$(VPATH)}config.h \
|
||||||
{$(VPATH)}defines.h {$(VPATH)}oniguruma.h
|
{$(VPATH)}defines.h {$(VPATH)}oniguruma.h
|
||||||
|
|
||||||
@ -678,7 +680,7 @@ srcs-enc: $(ENC_MK)
|
|||||||
$(MAKE) -f $(ENC_MK) RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(MFLAGS) srcs
|
$(MAKE) -f $(ENC_MK) RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(MFLAGS) srcs
|
||||||
|
|
||||||
incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}encdb.h {$(VPATH)}transdb.h {$(VPATH)}known_errors.inc \
|
incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}encdb.h {$(VPATH)}transdb.h {$(VPATH)}known_errors.inc \
|
||||||
$(srcdir)/revision.h $(REVISION_H)
|
$(srcdir)/revision.h $(REVISION_H) enc/unicode/name2ctype.h
|
||||||
|
|
||||||
insns: $(INSNS)
|
insns: $(INSNS)
|
||||||
|
|
||||||
|
154
enc/unicode.c
154
enc/unicode.c
@ -10486,128 +10486,7 @@ static const CaseUnfold_13_Type CaseUnfold_13[] = {
|
|||||||
{ {0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7 }}}
|
{ {0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7 }}}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#include "enc/unicode/name2ctype.h"
|
||||||
static PosixBracketEntryType HashEntryData[] = {
|
|
||||||
{ (UChar* )"NEWLINE", 0, 7 },
|
|
||||||
{ (UChar* )"Alpha", 1, 5 },
|
|
||||||
{ (UChar* )"Blank", 2, 5 },
|
|
||||||
{ (UChar* )"Cntrl", 3, 5 },
|
|
||||||
{ (UChar* )"Digit", 4, 5 },
|
|
||||||
{ (UChar* )"Graph", 5, 5 },
|
|
||||||
{ (UChar* )"Lower", 6, 5 },
|
|
||||||
{ (UChar* )"Print", 7, 5 },
|
|
||||||
{ (UChar* )"Punct", 8, 5 },
|
|
||||||
{ (UChar* )"Space", 9, 5 },
|
|
||||||
{ (UChar* )"Upper", 10, 5 },
|
|
||||||
{ (UChar* )"XDigit", 11, 6 },
|
|
||||||
{ (UChar* )"Word", 12, 4 },
|
|
||||||
{ (UChar* )"Alnum", 13, 5 },
|
|
||||||
{ (UChar* )"ASCII", 14, 5 },
|
|
||||||
|
|
||||||
#ifdef USE_UNICODE_PROPERTIES
|
|
||||||
{ (UChar* )"Any", 15, 3 },
|
|
||||||
{ (UChar* )"Assigned", 16, 8 },
|
|
||||||
{ (UChar* )"C", 17, 1 },
|
|
||||||
{ (UChar* )"Cc", 18, 2 },
|
|
||||||
{ (UChar* )"Cf", 19, 2 },
|
|
||||||
{ (UChar* )"Cn", 20, 2 },
|
|
||||||
{ (UChar* )"Co", 21, 2 },
|
|
||||||
{ (UChar* )"Cs", 22, 2 },
|
|
||||||
{ (UChar* )"L", 23, 1 },
|
|
||||||
{ (UChar* )"Ll", 24, 2 },
|
|
||||||
{ (UChar* )"Lm", 25, 2 },
|
|
||||||
{ (UChar* )"Lo", 26, 2 },
|
|
||||||
{ (UChar* )"Lt", 27, 2 },
|
|
||||||
{ (UChar* )"Lu", 28, 2 },
|
|
||||||
{ (UChar* )"M", 29, 1 },
|
|
||||||
{ (UChar* )"Mc", 30, 2 },
|
|
||||||
{ (UChar* )"Me", 31, 2 },
|
|
||||||
{ (UChar* )"Mn", 32, 2 },
|
|
||||||
{ (UChar* )"N", 33, 1 },
|
|
||||||
{ (UChar* )"Nd", 34, 2 },
|
|
||||||
{ (UChar* )"Nl", 35, 2 },
|
|
||||||
{ (UChar* )"No", 36, 2 },
|
|
||||||
{ (UChar* )"P", 37, 1 },
|
|
||||||
{ (UChar* )"Pc", 38, 2 },
|
|
||||||
{ (UChar* )"Pd", 39, 2 },
|
|
||||||
{ (UChar* )"Pe", 40, 2 },
|
|
||||||
{ (UChar* )"Pf", 41, 2 },
|
|
||||||
{ (UChar* )"Pi", 42, 2 },
|
|
||||||
{ (UChar* )"Po", 43, 2 },
|
|
||||||
{ (UChar* )"Ps", 44, 2 },
|
|
||||||
{ (UChar* )"S", 45, 1 },
|
|
||||||
{ (UChar* )"Sc", 46, 2 },
|
|
||||||
{ (UChar* )"Sk", 47, 2 },
|
|
||||||
{ (UChar* )"Sm", 48, 2 },
|
|
||||||
{ (UChar* )"So", 49, 2 },
|
|
||||||
{ (UChar* )"Z", 50, 1 },
|
|
||||||
{ (UChar* )"Zl", 51, 2 },
|
|
||||||
{ (UChar* )"Zp", 52, 2 },
|
|
||||||
{ (UChar* )"Zs", 53, 2 },
|
|
||||||
{ (UChar* )"Arabic", 54, 6 },
|
|
||||||
{ (UChar* )"Armenian", 55, 8 },
|
|
||||||
{ (UChar* )"Bengali", 56, 7 },
|
|
||||||
{ (UChar* )"Bopomofo", 57, 8 },
|
|
||||||
{ (UChar* )"Braille", 58, 7 },
|
|
||||||
{ (UChar* )"Buginese", 59, 8 },
|
|
||||||
{ (UChar* )"Buhid", 60, 5 },
|
|
||||||
{ (UChar* )"Canadian_Aboriginal", 61, 19 },
|
|
||||||
{ (UChar* )"Cherokee", 62, 8 },
|
|
||||||
{ (UChar* )"Common", 63, 6 },
|
|
||||||
{ (UChar* )"Coptic", 64, 6 },
|
|
||||||
{ (UChar* )"Cypriot", 65, 7 },
|
|
||||||
{ (UChar* )"Cyrillic", 66, 8 },
|
|
||||||
{ (UChar* )"Deseret", 67, 7 },
|
|
||||||
{ (UChar* )"Devanagari", 68, 10 },
|
|
||||||
{ (UChar* )"Ethiopic", 69, 8 },
|
|
||||||
{ (UChar* )"Georgian", 70, 8 },
|
|
||||||
{ (UChar* )"Glagolitic", 71, 10 },
|
|
||||||
{ (UChar* )"Gothic", 72, 6 },
|
|
||||||
{ (UChar* )"Greek", 73, 5 },
|
|
||||||
{ (UChar* )"Gujarati", 74, 8 },
|
|
||||||
{ (UChar* )"Gurmukhi", 75, 8 },
|
|
||||||
{ (UChar* )"Han", 76, 3 },
|
|
||||||
{ (UChar* )"Hangul", 77, 6 },
|
|
||||||
{ (UChar* )"Hanunoo", 78, 7 },
|
|
||||||
{ (UChar* )"Hebrew", 79, 6 },
|
|
||||||
{ (UChar* )"Hiragana", 80, 8 },
|
|
||||||
{ (UChar* )"Inherited", 81, 9 },
|
|
||||||
{ (UChar* )"Kannada", 82, 7 },
|
|
||||||
{ (UChar* )"Katakana", 83, 8 },
|
|
||||||
{ (UChar* )"Kharoshthi", 84, 10 },
|
|
||||||
{ (UChar* )"Khmer", 85, 5 },
|
|
||||||
{ (UChar* )"Lao", 86, 3 },
|
|
||||||
{ (UChar* )"Latin", 87, 5 },
|
|
||||||
{ (UChar* )"Limbu", 88, 5 },
|
|
||||||
{ (UChar* )"Linear_B", 89, 8 },
|
|
||||||
{ (UChar* )"Malayalam", 90, 9 },
|
|
||||||
{ (UChar* )"Mongolian", 91, 9 },
|
|
||||||
{ (UChar* )"Myanmar", 92, 7 },
|
|
||||||
{ (UChar* )"New_Tai_Lue", 93, 11 },
|
|
||||||
{ (UChar* )"Ogham", 94, 5 },
|
|
||||||
{ (UChar* )"Old_Italic", 95, 10 },
|
|
||||||
{ (UChar* )"Old_Persian", 96, 11 },
|
|
||||||
{ (UChar* )"Oriya", 97, 5 },
|
|
||||||
{ (UChar* )"Osmanya", 98, 7 },
|
|
||||||
{ (UChar* )"Runic", 99, 5 },
|
|
||||||
{ (UChar* )"Shavian", 100, 7 },
|
|
||||||
{ (UChar* )"Sinhala", 101, 7 },
|
|
||||||
{ (UChar* )"Syloti_Nagri", 102, 12 },
|
|
||||||
{ (UChar* )"Syriac", 103, 6 },
|
|
||||||
{ (UChar* )"Tagalog", 104, 7 },
|
|
||||||
{ (UChar* )"Tagbanwa", 105, 8 },
|
|
||||||
{ (UChar* )"Tai_Le", 106, 6 },
|
|
||||||
{ (UChar* )"Tamil", 107, 5 },
|
|
||||||
{ (UChar* )"Telugu", 108, 6 },
|
|
||||||
{ (UChar* )"Thaana", 109, 6 },
|
|
||||||
{ (UChar* )"Thai", 110, 4 },
|
|
||||||
{ (UChar* )"Tibetan", 111, 7 },
|
|
||||||
{ (UChar* )"Tifinagh", 112, 8 },
|
|
||||||
{ (UChar* )"Ugaritic", 113, 8 },
|
|
||||||
{ (UChar* )"Yi", 114, 2 },
|
|
||||||
#endif /* USE_UNICODE_PROPERTIES */
|
|
||||||
{ (UChar* )NULL, -1, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
#define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
|
#define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
|
||||||
#define CODE_RANGES_NUM numberof(CodeRanges)
|
#define CODE_RANGES_NUM numberof(CodeRanges)
|
||||||
@ -10777,33 +10656,11 @@ onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out,
|
|||||||
|
|
||||||
#define PROPERTY_NAME_MAX_SIZE 20
|
#define PROPERTY_NAME_MAX_SIZE 20
|
||||||
|
|
||||||
static st_table* NameCtypeTable;
|
|
||||||
static int NameTableInited = 0;
|
|
||||||
|
|
||||||
static int init_name_ctype_table(void)
|
|
||||||
{
|
|
||||||
PosixBracketEntryType *pb;
|
|
||||||
|
|
||||||
THREAD_ATOMIC_START;
|
|
||||||
|
|
||||||
NameCtypeTable = onig_st_init_strend_table_with_size(100);
|
|
||||||
if (ONIG_IS_NULL(NameCtypeTable)) return ONIGERR_MEMORY;
|
|
||||||
|
|
||||||
for (pb = HashEntryData; ONIG_IS_NOT_NULL(pb->name); pb++) {
|
|
||||||
onig_st_insert_strend(NameCtypeTable, pb->name, pb->name + pb->len,
|
|
||||||
(st_data_t )pb->ctype);
|
|
||||||
}
|
|
||||||
|
|
||||||
NameTableInited = 1;
|
|
||||||
THREAD_ATOMIC_END;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
extern int
|
extern int
|
||||||
onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end)
|
onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
st_data_t ctype;
|
int ctype;
|
||||||
UChar buf[PROPERTY_NAME_MAX_SIZE];
|
UChar buf[PROPERTY_NAME_MAX_SIZE];
|
||||||
UChar *p;
|
UChar *p;
|
||||||
OnigCodePoint code;
|
OnigCodePoint code;
|
||||||
@ -10824,14 +10681,11 @@ onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end
|
|||||||
|
|
||||||
buf[len] = 0;
|
buf[len] = 0;
|
||||||
|
|
||||||
if (NameTableInited == 0) init_name_ctype_table();
|
if ((ctype = uniname2ctype(buf, len)) < 0) {
|
||||||
|
|
||||||
if (onig_st_lookup_strend(NameCtypeTable, buf, buf + len,
|
|
||||||
&ctype) == 0) {
|
|
||||||
return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
|
return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (int)ctype;
|
return ctype;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
588
enc/unicode/name2ctype.h
Normal file
588
enc/unicode/name2ctype.h
Normal file
@ -0,0 +1,588 @@
|
|||||||
|
/* C code produced by gperf version 3.0.4 */
|
||||||
|
/* Command-line: gperf -7 -c -j1 -i1 -t -C -P -T -H uniname2ctype_hash -Q uniname2ctype_pool -N uniname2ctype_p */
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
/* Computed positions: -k'1,3' */
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
/* Computed positions: -k'1,3,$' */
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
|
||||||
|
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||||
|
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
|
||||||
|
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
|
||||||
|
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
|
||||||
|
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
|
||||||
|
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
|
||||||
|
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
|
||||||
|
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
|
||||||
|
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
|
||||||
|
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
|
||||||
|
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
|
||||||
|
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
|
||||||
|
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
|
||||||
|
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
|
||||||
|
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
|
||||||
|
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
|
||||||
|
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
|
||||||
|
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
|
||||||
|
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
|
||||||
|
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
|
||||||
|
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
|
||||||
|
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
|
||||||
|
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
|
||||||
|
/* The character set is not based on ISO-646. */
|
||||||
|
error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
struct uniname2ctype_struct {
|
||||||
|
int name, ctype;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct uniname2ctype_struct *uniname2ctype_p(const char *, unsigned int);
|
||||||
|
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
#define TOTAL_KEYWORDS 15
|
||||||
|
#define MIN_WORD_LENGTH 4
|
||||||
|
#define MAX_WORD_LENGTH 7
|
||||||
|
#define MIN_HASH_VALUE 6
|
||||||
|
#define MAX_HASH_VALUE 20
|
||||||
|
/* maximum key range = 15, duplicates = 0 */
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
#define TOTAL_KEYWORDS 115
|
||||||
|
#define MIN_WORD_LENGTH 1
|
||||||
|
#define MAX_WORD_LENGTH 19
|
||||||
|
#define MIN_HASH_VALUE 3
|
||||||
|
#define MAX_HASH_VALUE 138
|
||||||
|
/* maximum key range = 136, duplicates = 0 */
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
__inline
|
||||||
|
#else
|
||||||
|
#ifdef __cplusplus
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
static unsigned int
|
||||||
|
uniname2ctype_hash (str, len)
|
||||||
|
register const char *str;
|
||||||
|
register unsigned int len;
|
||||||
|
{
|
||||||
|
static const unsigned char asso_values[] =
|
||||||
|
{
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 1, 10, 3, 7, 21,
|
||||||
|
21, 8, 21, 21, 21, 21, 6, 21, 8, 21,
|
||||||
|
4, 21, 21, 5, 21, 8, 21, 1, 4, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 5, 21, 21,
|
||||||
|
21, 21, 21, 7, 21, 3, 21, 21, 21, 21,
|
||||||
|
2, 21, 1, 21, 1, 21, 2, 21, 21, 6,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 31, 4, 2, 80, 31,
|
||||||
|
139, 40, 45, 26, 139, 49, 14, 12, 33, 12,
|
||||||
|
1, 139, 74, 3, 3, 74, 139, 55, 74, 39,
|
||||||
|
49, 139, 139, 139, 139, 139, 139, 20, 139, 8,
|
||||||
|
51, 20, 65, 41, 34, 11, 42, 28, 45, 33,
|
||||||
|
2, 5, 25, 66, 14, 81, 1, 48, 29, 3,
|
||||||
|
2, 44, 139, 22, 139, 139, 139, 139, 139, 139
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
};
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]];
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
register int hval = len;
|
||||||
|
|
||||||
|
switch (hval)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
hval += asso_values[(unsigned char)str[2]+2];
|
||||||
|
/*FALLTHROUGH*/
|
||||||
|
case 2:
|
||||||
|
case 1:
|
||||||
|
hval += asso_values[(unsigned char)str[0]];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return hval + asso_values[(unsigned char)str[len - 1]];
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
}
|
||||||
|
|
||||||
|
struct uniname2ctype_pool_t
|
||||||
|
{
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
char uniname2ctype_pool_str6[sizeof("Word")];
|
||||||
|
char uniname2ctype_pool_str7[sizeof("Alpha")];
|
||||||
|
char uniname2ctype_pool_str8[sizeof("Alnum")];
|
||||||
|
char uniname2ctype_pool_str9[sizeof("ASCII")];
|
||||||
|
char uniname2ctype_pool_str10[sizeof("Cntrl")];
|
||||||
|
char uniname2ctype_pool_str11[sizeof("Punct")];
|
||||||
|
char uniname2ctype_pool_str12[sizeof("Print")];
|
||||||
|
char uniname2ctype_pool_str13[sizeof("XDigit")];
|
||||||
|
char uniname2ctype_pool_str14[sizeof("Upper")];
|
||||||
|
char uniname2ctype_pool_str15[sizeof("Space")];
|
||||||
|
char uniname2ctype_pool_str16[sizeof("NEWLINE")];
|
||||||
|
char uniname2ctype_pool_str17[sizeof("Lower")];
|
||||||
|
char uniname2ctype_pool_str18[sizeof("Graph")];
|
||||||
|
char uniname2ctype_pool_str19[sizeof("Digit")];
|
||||||
|
char uniname2ctype_pool_str20[sizeof("Blank")];
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
char uniname2ctype_pool_str3[sizeof("P")];
|
||||||
|
char uniname2ctype_pool_str5[sizeof("C")];
|
||||||
|
char uniname2ctype_pool_str6[sizeof("Cn")];
|
||||||
|
char uniname2ctype_pool_str7[sizeof("S")];
|
||||||
|
char uniname2ctype_pool_str8[sizeof("Po")];
|
||||||
|
char uniname2ctype_pool_str9[sizeof("Co")];
|
||||||
|
char uniname2ctype_pool_str10[sizeof("So")];
|
||||||
|
char uniname2ctype_pool_str11[sizeof("Pc")];
|
||||||
|
char uniname2ctype_pool_str12[sizeof("Cc")];
|
||||||
|
char uniname2ctype_pool_str13[sizeof("Sc")];
|
||||||
|
char uniname2ctype_pool_str14[sizeof("Pi")];
|
||||||
|
char uniname2ctype_pool_str15[sizeof("Common")];
|
||||||
|
char uniname2ctype_pool_str16[sizeof("Mn")];
|
||||||
|
char uniname2ctype_pool_str17[sizeof("Lt")];
|
||||||
|
char uniname2ctype_pool_str18[sizeof("Syriac")];
|
||||||
|
char uniname2ctype_pool_str19[sizeof("Cyrillic")];
|
||||||
|
char uniname2ctype_pool_str20[sizeof("Shavian")];
|
||||||
|
char uniname2ctype_pool_str21[sizeof("Lo")];
|
||||||
|
char uniname2ctype_pool_str22[sizeof("Mc")];
|
||||||
|
char uniname2ctype_pool_str23[sizeof("Pe")];
|
||||||
|
char uniname2ctype_pool_str24[sizeof("Cypriot")];
|
||||||
|
char uniname2ctype_pool_str25[sizeof("M")];
|
||||||
|
char uniname2ctype_pool_str26[sizeof("Thai")];
|
||||||
|
char uniname2ctype_pool_str28[sizeof("Syloti_Nagri")];
|
||||||
|
char uniname2ctype_pool_str29[sizeof("L")];
|
||||||
|
char uniname2ctype_pool_str30[sizeof("Coptic")];
|
||||||
|
char uniname2ctype_pool_str31[sizeof("Bopomofo")];
|
||||||
|
char uniname2ctype_pool_str32[sizeof("Punct")];
|
||||||
|
char uniname2ctype_pool_str33[sizeof("Sk")];
|
||||||
|
char uniname2ctype_pool_str34[sizeof("Me")];
|
||||||
|
char uniname2ctype_pool_str35[sizeof("Print")];
|
||||||
|
char uniname2ctype_pool_str36[sizeof("Space")];
|
||||||
|
char uniname2ctype_pool_str37[sizeof("Thaana")];
|
||||||
|
char uniname2ctype_pool_str38[sizeof("Sm")];
|
||||||
|
char uniname2ctype_pool_str39[sizeof("Braille")];
|
||||||
|
char uniname2ctype_pool_str40[sizeof("No")];
|
||||||
|
char uniname2ctype_pool_str41[sizeof("Myanmar")];
|
||||||
|
char uniname2ctype_pool_str42[sizeof("Tagbanwa")];
|
||||||
|
char uniname2ctype_pool_str43[sizeof("Buginese")];
|
||||||
|
char uniname2ctype_pool_str44[sizeof("Osmanya")];
|
||||||
|
char uniname2ctype_pool_str45[sizeof("Blank")];
|
||||||
|
char uniname2ctype_pool_str46[sizeof("Armenian")];
|
||||||
|
char uniname2ctype_pool_str47[sizeof("Bengali")];
|
||||||
|
char uniname2ctype_pool_str48[sizeof("Mongolian")];
|
||||||
|
char uniname2ctype_pool_str49[sizeof("Lm")];
|
||||||
|
char uniname2ctype_pool_str50[sizeof("Latin")];
|
||||||
|
char uniname2ctype_pool_str51[sizeof("Linear_B")];
|
||||||
|
char uniname2ctype_pool_str52[sizeof("Yi")];
|
||||||
|
char uniname2ctype_pool_str53[sizeof("Arabic")];
|
||||||
|
char uniname2ctype_pool_str54[sizeof("Pd")];
|
||||||
|
char uniname2ctype_pool_str55[sizeof("Sinhala")];
|
||||||
|
char uniname2ctype_pool_str56[sizeof("Malayalam")];
|
||||||
|
char uniname2ctype_pool_str57[sizeof("Tai_Le")];
|
||||||
|
char uniname2ctype_pool_str58[sizeof("Tamil")];
|
||||||
|
char uniname2ctype_pool_str59[sizeof("Telugu")];
|
||||||
|
char uniname2ctype_pool_str60[sizeof("Gurmukhi")];
|
||||||
|
char uniname2ctype_pool_str61[sizeof("Ll")];
|
||||||
|
char uniname2ctype_pool_str62[sizeof("Tagalog")];
|
||||||
|
char uniname2ctype_pool_str63[sizeof("Tibetan")];
|
||||||
|
char uniname2ctype_pool_str64[sizeof("Lu")];
|
||||||
|
char uniname2ctype_pool_str65[sizeof("Oriya")];
|
||||||
|
char uniname2ctype_pool_str66[sizeof("Glagolitic")];
|
||||||
|
char uniname2ctype_pool_str67[sizeof("N")];
|
||||||
|
char uniname2ctype_pool_str68[sizeof("Pf")];
|
||||||
|
char uniname2ctype_pool_str69[sizeof("Cf")];
|
||||||
|
char uniname2ctype_pool_str70[sizeof("Alpha")];
|
||||||
|
char uniname2ctype_pool_str71[sizeof("Cherokee")];
|
||||||
|
char uniname2ctype_pool_str72[sizeof("Limbu")];
|
||||||
|
char uniname2ctype_pool_str73[sizeof("Khmer")];
|
||||||
|
char uniname2ctype_pool_str74[sizeof("Hiragana")];
|
||||||
|
char uniname2ctype_pool_str75[sizeof("Han")];
|
||||||
|
char uniname2ctype_pool_str76[sizeof("Zp")];
|
||||||
|
char uniname2ctype_pool_str77[sizeof("Lower")];
|
||||||
|
char uniname2ctype_pool_str78[sizeof("Kharoshthi")];
|
||||||
|
char uniname2ctype_pool_str79[sizeof("Tifinagh")];
|
||||||
|
char uniname2ctype_pool_str80[sizeof("Nl")];
|
||||||
|
char uniname2ctype_pool_str81[sizeof("Cntrl")];
|
||||||
|
char uniname2ctype_pool_str82[sizeof("Hanunoo")];
|
||||||
|
char uniname2ctype_pool_str83[sizeof("Gothic")];
|
||||||
|
char uniname2ctype_pool_str84[sizeof("Ps")];
|
||||||
|
char uniname2ctype_pool_str85[sizeof("Cs")];
|
||||||
|
char uniname2ctype_pool_str86[sizeof("Nd")];
|
||||||
|
char uniname2ctype_pool_str87[sizeof("Graph")];
|
||||||
|
char uniname2ctype_pool_str88[sizeof("Lao")];
|
||||||
|
char uniname2ctype_pool_str89[sizeof("Ethiopic")];
|
||||||
|
char uniname2ctype_pool_str90[sizeof("Old_Persian")];
|
||||||
|
char uniname2ctype_pool_str91[sizeof("Canadian_Aboriginal")];
|
||||||
|
char uniname2ctype_pool_str92[sizeof("Ogham")];
|
||||||
|
char uniname2ctype_pool_str93[sizeof("ASCII")];
|
||||||
|
char uniname2ctype_pool_str94[sizeof("Alnum")];
|
||||||
|
char uniname2ctype_pool_str95[sizeof("Old_Italic")];
|
||||||
|
char uniname2ctype_pool_str96[sizeof("Zl")];
|
||||||
|
char uniname2ctype_pool_str97[sizeof("Digit")];
|
||||||
|
char uniname2ctype_pool_str98[sizeof("Ugaritic")];
|
||||||
|
char uniname2ctype_pool_str99[sizeof("Z")];
|
||||||
|
char uniname2ctype_pool_str100[sizeof("Any")];
|
||||||
|
char uniname2ctype_pool_str101[sizeof("Kannada")];
|
||||||
|
char uniname2ctype_pool_str102[sizeof("Buhid")];
|
||||||
|
char uniname2ctype_pool_str103[sizeof("Devanagari")];
|
||||||
|
char uniname2ctype_pool_str104[sizeof("Gujarati")];
|
||||||
|
char uniname2ctype_pool_str105[sizeof("Hebrew")];
|
||||||
|
char uniname2ctype_pool_str106[sizeof("Katakana")];
|
||||||
|
char uniname2ctype_pool_str107[sizeof("Upper")];
|
||||||
|
char uniname2ctype_pool_str108[sizeof("New_Tai_Lue")];
|
||||||
|
char uniname2ctype_pool_str109[sizeof("XDigit")];
|
||||||
|
char uniname2ctype_pool_str110[sizeof("NEWLINE")];
|
||||||
|
char uniname2ctype_pool_str111[sizeof("Word")];
|
||||||
|
char uniname2ctype_pool_str112[sizeof("Runic")];
|
||||||
|
char uniname2ctype_pool_str114[sizeof("Greek")];
|
||||||
|
char uniname2ctype_pool_str116[sizeof("Georgian")];
|
||||||
|
char uniname2ctype_pool_str121[sizeof("Hangul")];
|
||||||
|
char uniname2ctype_pool_str128[sizeof("Inherited")];
|
||||||
|
char uniname2ctype_pool_str132[sizeof("Zs")];
|
||||||
|
char uniname2ctype_pool_str136[sizeof("Deseret")];
|
||||||
|
char uniname2ctype_pool_str138[sizeof("Assigned")];
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
};
|
||||||
|
static const struct uniname2ctype_pool_t uniname2ctype_pool_contents =
|
||||||
|
{
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
"Word",
|
||||||
|
"Alpha",
|
||||||
|
"Alnum",
|
||||||
|
"ASCII",
|
||||||
|
"Cntrl",
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
"P",
|
||||||
|
"C",
|
||||||
|
"Cn",
|
||||||
|
"S",
|
||||||
|
"Po",
|
||||||
|
"Co",
|
||||||
|
"So",
|
||||||
|
"Pc",
|
||||||
|
"Cc",
|
||||||
|
"Sc",
|
||||||
|
"Pi",
|
||||||
|
"Common",
|
||||||
|
"Mn",
|
||||||
|
"Lt",
|
||||||
|
"Syriac",
|
||||||
|
"Cyrillic",
|
||||||
|
"Shavian",
|
||||||
|
"Lo",
|
||||||
|
"Mc",
|
||||||
|
"Pe",
|
||||||
|
"Cypriot",
|
||||||
|
"M",
|
||||||
|
"Thai",
|
||||||
|
"Syloti_Nagri",
|
||||||
|
"L",
|
||||||
|
"Coptic",
|
||||||
|
"Bopomofo",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Punct",
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
"Sk",
|
||||||
|
"Me",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Print",
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
"XDigit",
|
||||||
|
"Upper",
|
||||||
|
#endif /* ! USE_UNICODE_PROPERTIES */
|
||||||
|
"Space",
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
"NEWLINE",
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Thaana",
|
||||||
|
"Sm",
|
||||||
|
"Braille",
|
||||||
|
"No",
|
||||||
|
"Myanmar",
|
||||||
|
"Tagbanwa",
|
||||||
|
"Buginese",
|
||||||
|
"Osmanya",
|
||||||
|
"Blank",
|
||||||
|
"Armenian",
|
||||||
|
"Bengali",
|
||||||
|
"Mongolian",
|
||||||
|
"Lm",
|
||||||
|
"Latin",
|
||||||
|
"Linear_B",
|
||||||
|
"Yi",
|
||||||
|
"Arabic",
|
||||||
|
"Pd",
|
||||||
|
"Sinhala",
|
||||||
|
"Malayalam",
|
||||||
|
"Tai_Le",
|
||||||
|
"Tamil",
|
||||||
|
"Telugu",
|
||||||
|
"Gurmukhi",
|
||||||
|
"Ll",
|
||||||
|
"Tagalog",
|
||||||
|
"Tibetan",
|
||||||
|
"Lu",
|
||||||
|
"Oriya",
|
||||||
|
"Glagolitic",
|
||||||
|
"N",
|
||||||
|
"Pf",
|
||||||
|
"Cf",
|
||||||
|
"Alpha",
|
||||||
|
"Cherokee",
|
||||||
|
"Limbu",
|
||||||
|
"Khmer",
|
||||||
|
"Hiragana",
|
||||||
|
"Han",
|
||||||
|
"Zp",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Lower",
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
"Kharoshthi",
|
||||||
|
"Tifinagh",
|
||||||
|
"Nl",
|
||||||
|
"Cntrl",
|
||||||
|
"Hanunoo",
|
||||||
|
"Gothic",
|
||||||
|
"Ps",
|
||||||
|
"Cs",
|
||||||
|
"Nd",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Graph",
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
"Lao",
|
||||||
|
"Ethiopic",
|
||||||
|
"Old_Persian",
|
||||||
|
"Canadian_Aboriginal",
|
||||||
|
"Ogham",
|
||||||
|
"ASCII",
|
||||||
|
"Alnum",
|
||||||
|
"Old_Italic",
|
||||||
|
"Zl",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Digit",
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
"Blank"
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Ugaritic",
|
||||||
|
"Z",
|
||||||
|
"Any",
|
||||||
|
"Kannada",
|
||||||
|
"Buhid",
|
||||||
|
"Devanagari",
|
||||||
|
"Gujarati",
|
||||||
|
"Hebrew",
|
||||||
|
"Katakana",
|
||||||
|
"Upper",
|
||||||
|
"New_Tai_Lue",
|
||||||
|
"XDigit",
|
||||||
|
"NEWLINE",
|
||||||
|
"Word",
|
||||||
|
"Runic",
|
||||||
|
"Greek",
|
||||||
|
"Georgian",
|
||||||
|
"Hangul",
|
||||||
|
"Inherited",
|
||||||
|
"Zs",
|
||||||
|
"Deseret",
|
||||||
|
"Assigned"
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
};
|
||||||
|
#define uniname2ctype_pool ((const char *) &uniname2ctype_pool_contents)
|
||||||
|
#ifdef __GNUC__
|
||||||
|
__inline
|
||||||
|
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
|
||||||
|
__attribute__ ((__gnu_inline__))
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
const struct uniname2ctype_struct *
|
||||||
|
uniname2ctype_p (str, len)
|
||||||
|
register const char *str;
|
||||||
|
register unsigned int len;
|
||||||
|
{
|
||||||
|
static const struct uniname2ctype_struct wordlist[] =
|
||||||
|
{
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
{-1}, {-1}, {-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str3, 37},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str5, 17},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str6, 20},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str7, 45},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str8, 43},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str9, 21},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str10, 49},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str11, 38},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str12, 18},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str13, 46},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str14, 42},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str15, 63},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str16, 32},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str17, 27},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str18, 103},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str19, 66},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str20, 100},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str21, 26},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str22, 30},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str23, 40},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str24, 65},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str25, 29},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str26, 110},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str28, 102},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str29, 23},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str30, 64},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str31, 57},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str32, 8},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str33, 47},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str34, 31},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str35, 7},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str36, 9},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str37, 109},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str38, 48},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str39, 58},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str40, 36},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str41, 92},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str42, 105},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str43, 59},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str44, 98},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str45, 2},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str46, 55},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str47, 56},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str48, 91},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str49, 25},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str50, 87},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str51, 89},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str52, 114},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str53, 54},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str54, 39},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str55, 101},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str56, 90},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str57, 106},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str58, 107},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str59, 108},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str60, 75},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str61, 24},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str62, 104},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str63, 111},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str64, 28},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str65, 97},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str66, 71},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str67, 33},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str68, 41},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str69, 19},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str70, 1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str71, 62},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str72, 88},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str73, 85},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str74, 80},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str75, 76},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str76, 52},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str77, 6},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str78, 84},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str79, 112},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str80, 35},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str81, 3},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str82, 78},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str83, 72},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str84, 44},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str85, 22},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str86, 34},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str87, 5},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str88, 86},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str89, 69},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str90, 96},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str91, 61},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str92, 94},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str93, 14},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str94, 13},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str95, 95},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str96, 51},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str97, 4},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str98, 113},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str99, 50},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str100, 15},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str101, 82},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str102, 60},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str103, 68},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str104, 74},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str105, 79},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str106, 83},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str107, 10},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str108, 93},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str109, 11},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str110, 0},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str111, 12},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str112, 99},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str114, 73},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str116, 70},
|
||||||
|
{-1}, {-1}, {-1}, {-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str121, 77},
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
{-1}, {-1}, {-1}, {-1}, {-1}, {-1},
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str6, 12},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str7, 1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str8, 13},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str9, 14},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str10, 3},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str11, 8},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str12, 7},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str13, 11},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str14, 10},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str15, 9},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str16, 0},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str17, 6},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str18, 5},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str19, 4},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str20, 2}
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str128, 81},
|
||||||
|
{-1}, {-1}, {-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str132, 53},
|
||||||
|
{-1}, {-1}, {-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str136, 67},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str138, 16}
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
};
|
||||||
|
|
||||||
|
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
||||||
|
{
|
||||||
|
register int key = uniname2ctype_hash (str, len);
|
||||||
|
|
||||||
|
if (key <= MAX_HASH_VALUE && key >= 0)
|
||||||
|
{
|
||||||
|
register int o = wordlist[key].name;
|
||||||
|
if (o >= 0)
|
||||||
|
{
|
||||||
|
register const char *s = o + uniname2ctype_pool;
|
||||||
|
|
||||||
|
if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
|
||||||
|
return &wordlist[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
uniname2ctype(const UChar *name, unsigned int len)
|
||||||
|
{
|
||||||
|
const struct uniname2ctype_struct *p = uniname2ctype_p((const char *)name, len);
|
||||||
|
if (p) return p->ctype;
|
||||||
|
return -1;
|
||||||
|
}
|
588
enc/unicode/name2ctype.h.blt
Normal file
588
enc/unicode/name2ctype.h.blt
Normal file
@ -0,0 +1,588 @@
|
|||||||
|
/* C code produced by gperf version 3.0.4 */
|
||||||
|
/* Command-line: gperf -7 -c -j1 -i1 -t -C -P -T -H uniname2ctype_hash -Q uniname2ctype_pool -N uniname2ctype_p */
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
/* Computed positions: -k'1,3' */
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
/* Computed positions: -k'1,3,$' */
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
|
||||||
|
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||||
|
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
|
||||||
|
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
|
||||||
|
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
|
||||||
|
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
|
||||||
|
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
|
||||||
|
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
|
||||||
|
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
|
||||||
|
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
|
||||||
|
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
|
||||||
|
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
|
||||||
|
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
|
||||||
|
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
|
||||||
|
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
|
||||||
|
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
|
||||||
|
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
|
||||||
|
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
|
||||||
|
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
|
||||||
|
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
|
||||||
|
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
|
||||||
|
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
|
||||||
|
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
|
||||||
|
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
|
||||||
|
/* The character set is not based on ISO-646. */
|
||||||
|
error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
struct uniname2ctype_struct {
|
||||||
|
int name, ctype;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct uniname2ctype_struct *uniname2ctype_p(const char *, unsigned int);
|
||||||
|
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
#define TOTAL_KEYWORDS 15
|
||||||
|
#define MIN_WORD_LENGTH 4
|
||||||
|
#define MAX_WORD_LENGTH 7
|
||||||
|
#define MIN_HASH_VALUE 6
|
||||||
|
#define MAX_HASH_VALUE 20
|
||||||
|
/* maximum key range = 15, duplicates = 0 */
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
#define TOTAL_KEYWORDS 115
|
||||||
|
#define MIN_WORD_LENGTH 1
|
||||||
|
#define MAX_WORD_LENGTH 19
|
||||||
|
#define MIN_HASH_VALUE 3
|
||||||
|
#define MAX_HASH_VALUE 138
|
||||||
|
/* maximum key range = 136, duplicates = 0 */
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
__inline
|
||||||
|
#else
|
||||||
|
#ifdef __cplusplus
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
static unsigned int
|
||||||
|
uniname2ctype_hash (str, len)
|
||||||
|
register const char *str;
|
||||||
|
register unsigned int len;
|
||||||
|
{
|
||||||
|
static const unsigned char asso_values[] =
|
||||||
|
{
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
|
||||||
|
21, 21, 21, 21, 21, 1, 10, 3, 7, 21,
|
||||||
|
21, 8, 21, 21, 21, 21, 6, 21, 8, 21,
|
||||||
|
4, 21, 21, 5, 21, 8, 21, 1, 4, 21,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 5, 21, 21,
|
||||||
|
21, 21, 21, 7, 21, 3, 21, 21, 21, 21,
|
||||||
|
2, 21, 1, 21, 1, 21, 2, 21, 21, 6,
|
||||||
|
21, 21, 21, 21, 21, 21, 21, 21
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
|
||||||
|
139, 139, 139, 139, 139, 31, 4, 2, 80, 31,
|
||||||
|
139, 40, 45, 26, 139, 49, 14, 12, 33, 12,
|
||||||
|
1, 139, 74, 3, 3, 74, 139, 55, 74, 39,
|
||||||
|
49, 139, 139, 139, 139, 139, 139, 20, 139, 8,
|
||||||
|
51, 20, 65, 41, 34, 11, 42, 28, 45, 33,
|
||||||
|
2, 5, 25, 66, 14, 81, 1, 48, 29, 3,
|
||||||
|
2, 44, 139, 22, 139, 139, 139, 139, 139, 139
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
};
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]];
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
register int hval = len;
|
||||||
|
|
||||||
|
switch (hval)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
hval += asso_values[(unsigned char)str[2]+2];
|
||||||
|
/*FALLTHROUGH*/
|
||||||
|
case 2:
|
||||||
|
case 1:
|
||||||
|
hval += asso_values[(unsigned char)str[0]];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return hval + asso_values[(unsigned char)str[len - 1]];
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
}
|
||||||
|
|
||||||
|
struct uniname2ctype_pool_t
|
||||||
|
{
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
char uniname2ctype_pool_str6[sizeof("Word")];
|
||||||
|
char uniname2ctype_pool_str7[sizeof("Alpha")];
|
||||||
|
char uniname2ctype_pool_str8[sizeof("Alnum")];
|
||||||
|
char uniname2ctype_pool_str9[sizeof("ASCII")];
|
||||||
|
char uniname2ctype_pool_str10[sizeof("Cntrl")];
|
||||||
|
char uniname2ctype_pool_str11[sizeof("Punct")];
|
||||||
|
char uniname2ctype_pool_str12[sizeof("Print")];
|
||||||
|
char uniname2ctype_pool_str13[sizeof("XDigit")];
|
||||||
|
char uniname2ctype_pool_str14[sizeof("Upper")];
|
||||||
|
char uniname2ctype_pool_str15[sizeof("Space")];
|
||||||
|
char uniname2ctype_pool_str16[sizeof("NEWLINE")];
|
||||||
|
char uniname2ctype_pool_str17[sizeof("Lower")];
|
||||||
|
char uniname2ctype_pool_str18[sizeof("Graph")];
|
||||||
|
char uniname2ctype_pool_str19[sizeof("Digit")];
|
||||||
|
char uniname2ctype_pool_str20[sizeof("Blank")];
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
char uniname2ctype_pool_str3[sizeof("P")];
|
||||||
|
char uniname2ctype_pool_str5[sizeof("C")];
|
||||||
|
char uniname2ctype_pool_str6[sizeof("Cn")];
|
||||||
|
char uniname2ctype_pool_str7[sizeof("S")];
|
||||||
|
char uniname2ctype_pool_str8[sizeof("Po")];
|
||||||
|
char uniname2ctype_pool_str9[sizeof("Co")];
|
||||||
|
char uniname2ctype_pool_str10[sizeof("So")];
|
||||||
|
char uniname2ctype_pool_str11[sizeof("Pc")];
|
||||||
|
char uniname2ctype_pool_str12[sizeof("Cc")];
|
||||||
|
char uniname2ctype_pool_str13[sizeof("Sc")];
|
||||||
|
char uniname2ctype_pool_str14[sizeof("Pi")];
|
||||||
|
char uniname2ctype_pool_str15[sizeof("Common")];
|
||||||
|
char uniname2ctype_pool_str16[sizeof("Mn")];
|
||||||
|
char uniname2ctype_pool_str17[sizeof("Lt")];
|
||||||
|
char uniname2ctype_pool_str18[sizeof("Syriac")];
|
||||||
|
char uniname2ctype_pool_str19[sizeof("Cyrillic")];
|
||||||
|
char uniname2ctype_pool_str20[sizeof("Shavian")];
|
||||||
|
char uniname2ctype_pool_str21[sizeof("Lo")];
|
||||||
|
char uniname2ctype_pool_str22[sizeof("Mc")];
|
||||||
|
char uniname2ctype_pool_str23[sizeof("Pe")];
|
||||||
|
char uniname2ctype_pool_str24[sizeof("Cypriot")];
|
||||||
|
char uniname2ctype_pool_str25[sizeof("M")];
|
||||||
|
char uniname2ctype_pool_str26[sizeof("Thai")];
|
||||||
|
char uniname2ctype_pool_str28[sizeof("Syloti_Nagri")];
|
||||||
|
char uniname2ctype_pool_str29[sizeof("L")];
|
||||||
|
char uniname2ctype_pool_str30[sizeof("Coptic")];
|
||||||
|
char uniname2ctype_pool_str31[sizeof("Bopomofo")];
|
||||||
|
char uniname2ctype_pool_str32[sizeof("Punct")];
|
||||||
|
char uniname2ctype_pool_str33[sizeof("Sk")];
|
||||||
|
char uniname2ctype_pool_str34[sizeof("Me")];
|
||||||
|
char uniname2ctype_pool_str35[sizeof("Print")];
|
||||||
|
char uniname2ctype_pool_str36[sizeof("Space")];
|
||||||
|
char uniname2ctype_pool_str37[sizeof("Thaana")];
|
||||||
|
char uniname2ctype_pool_str38[sizeof("Sm")];
|
||||||
|
char uniname2ctype_pool_str39[sizeof("Braille")];
|
||||||
|
char uniname2ctype_pool_str40[sizeof("No")];
|
||||||
|
char uniname2ctype_pool_str41[sizeof("Myanmar")];
|
||||||
|
char uniname2ctype_pool_str42[sizeof("Tagbanwa")];
|
||||||
|
char uniname2ctype_pool_str43[sizeof("Buginese")];
|
||||||
|
char uniname2ctype_pool_str44[sizeof("Osmanya")];
|
||||||
|
char uniname2ctype_pool_str45[sizeof("Blank")];
|
||||||
|
char uniname2ctype_pool_str46[sizeof("Armenian")];
|
||||||
|
char uniname2ctype_pool_str47[sizeof("Bengali")];
|
||||||
|
char uniname2ctype_pool_str48[sizeof("Mongolian")];
|
||||||
|
char uniname2ctype_pool_str49[sizeof("Lm")];
|
||||||
|
char uniname2ctype_pool_str50[sizeof("Latin")];
|
||||||
|
char uniname2ctype_pool_str51[sizeof("Linear_B")];
|
||||||
|
char uniname2ctype_pool_str52[sizeof("Yi")];
|
||||||
|
char uniname2ctype_pool_str53[sizeof("Arabic")];
|
||||||
|
char uniname2ctype_pool_str54[sizeof("Pd")];
|
||||||
|
char uniname2ctype_pool_str55[sizeof("Sinhala")];
|
||||||
|
char uniname2ctype_pool_str56[sizeof("Malayalam")];
|
||||||
|
char uniname2ctype_pool_str57[sizeof("Tai_Le")];
|
||||||
|
char uniname2ctype_pool_str58[sizeof("Tamil")];
|
||||||
|
char uniname2ctype_pool_str59[sizeof("Telugu")];
|
||||||
|
char uniname2ctype_pool_str60[sizeof("Gurmukhi")];
|
||||||
|
char uniname2ctype_pool_str61[sizeof("Ll")];
|
||||||
|
char uniname2ctype_pool_str62[sizeof("Tagalog")];
|
||||||
|
char uniname2ctype_pool_str63[sizeof("Tibetan")];
|
||||||
|
char uniname2ctype_pool_str64[sizeof("Lu")];
|
||||||
|
char uniname2ctype_pool_str65[sizeof("Oriya")];
|
||||||
|
char uniname2ctype_pool_str66[sizeof("Glagolitic")];
|
||||||
|
char uniname2ctype_pool_str67[sizeof("N")];
|
||||||
|
char uniname2ctype_pool_str68[sizeof("Pf")];
|
||||||
|
char uniname2ctype_pool_str69[sizeof("Cf")];
|
||||||
|
char uniname2ctype_pool_str70[sizeof("Alpha")];
|
||||||
|
char uniname2ctype_pool_str71[sizeof("Cherokee")];
|
||||||
|
char uniname2ctype_pool_str72[sizeof("Limbu")];
|
||||||
|
char uniname2ctype_pool_str73[sizeof("Khmer")];
|
||||||
|
char uniname2ctype_pool_str74[sizeof("Hiragana")];
|
||||||
|
char uniname2ctype_pool_str75[sizeof("Han")];
|
||||||
|
char uniname2ctype_pool_str76[sizeof("Zp")];
|
||||||
|
char uniname2ctype_pool_str77[sizeof("Lower")];
|
||||||
|
char uniname2ctype_pool_str78[sizeof("Kharoshthi")];
|
||||||
|
char uniname2ctype_pool_str79[sizeof("Tifinagh")];
|
||||||
|
char uniname2ctype_pool_str80[sizeof("Nl")];
|
||||||
|
char uniname2ctype_pool_str81[sizeof("Cntrl")];
|
||||||
|
char uniname2ctype_pool_str82[sizeof("Hanunoo")];
|
||||||
|
char uniname2ctype_pool_str83[sizeof("Gothic")];
|
||||||
|
char uniname2ctype_pool_str84[sizeof("Ps")];
|
||||||
|
char uniname2ctype_pool_str85[sizeof("Cs")];
|
||||||
|
char uniname2ctype_pool_str86[sizeof("Nd")];
|
||||||
|
char uniname2ctype_pool_str87[sizeof("Graph")];
|
||||||
|
char uniname2ctype_pool_str88[sizeof("Lao")];
|
||||||
|
char uniname2ctype_pool_str89[sizeof("Ethiopic")];
|
||||||
|
char uniname2ctype_pool_str90[sizeof("Old_Persian")];
|
||||||
|
char uniname2ctype_pool_str91[sizeof("Canadian_Aboriginal")];
|
||||||
|
char uniname2ctype_pool_str92[sizeof("Ogham")];
|
||||||
|
char uniname2ctype_pool_str93[sizeof("ASCII")];
|
||||||
|
char uniname2ctype_pool_str94[sizeof("Alnum")];
|
||||||
|
char uniname2ctype_pool_str95[sizeof("Old_Italic")];
|
||||||
|
char uniname2ctype_pool_str96[sizeof("Zl")];
|
||||||
|
char uniname2ctype_pool_str97[sizeof("Digit")];
|
||||||
|
char uniname2ctype_pool_str98[sizeof("Ugaritic")];
|
||||||
|
char uniname2ctype_pool_str99[sizeof("Z")];
|
||||||
|
char uniname2ctype_pool_str100[sizeof("Any")];
|
||||||
|
char uniname2ctype_pool_str101[sizeof("Kannada")];
|
||||||
|
char uniname2ctype_pool_str102[sizeof("Buhid")];
|
||||||
|
char uniname2ctype_pool_str103[sizeof("Devanagari")];
|
||||||
|
char uniname2ctype_pool_str104[sizeof("Gujarati")];
|
||||||
|
char uniname2ctype_pool_str105[sizeof("Hebrew")];
|
||||||
|
char uniname2ctype_pool_str106[sizeof("Katakana")];
|
||||||
|
char uniname2ctype_pool_str107[sizeof("Upper")];
|
||||||
|
char uniname2ctype_pool_str108[sizeof("New_Tai_Lue")];
|
||||||
|
char uniname2ctype_pool_str109[sizeof("XDigit")];
|
||||||
|
char uniname2ctype_pool_str110[sizeof("NEWLINE")];
|
||||||
|
char uniname2ctype_pool_str111[sizeof("Word")];
|
||||||
|
char uniname2ctype_pool_str112[sizeof("Runic")];
|
||||||
|
char uniname2ctype_pool_str114[sizeof("Greek")];
|
||||||
|
char uniname2ctype_pool_str116[sizeof("Georgian")];
|
||||||
|
char uniname2ctype_pool_str121[sizeof("Hangul")];
|
||||||
|
char uniname2ctype_pool_str128[sizeof("Inherited")];
|
||||||
|
char uniname2ctype_pool_str132[sizeof("Zs")];
|
||||||
|
char uniname2ctype_pool_str136[sizeof("Deseret")];
|
||||||
|
char uniname2ctype_pool_str138[sizeof("Assigned")];
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
};
|
||||||
|
static const struct uniname2ctype_pool_t uniname2ctype_pool_contents =
|
||||||
|
{
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
"Word",
|
||||||
|
"Alpha",
|
||||||
|
"Alnum",
|
||||||
|
"ASCII",
|
||||||
|
"Cntrl",
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
"P",
|
||||||
|
"C",
|
||||||
|
"Cn",
|
||||||
|
"S",
|
||||||
|
"Po",
|
||||||
|
"Co",
|
||||||
|
"So",
|
||||||
|
"Pc",
|
||||||
|
"Cc",
|
||||||
|
"Sc",
|
||||||
|
"Pi",
|
||||||
|
"Common",
|
||||||
|
"Mn",
|
||||||
|
"Lt",
|
||||||
|
"Syriac",
|
||||||
|
"Cyrillic",
|
||||||
|
"Shavian",
|
||||||
|
"Lo",
|
||||||
|
"Mc",
|
||||||
|
"Pe",
|
||||||
|
"Cypriot",
|
||||||
|
"M",
|
||||||
|
"Thai",
|
||||||
|
"Syloti_Nagri",
|
||||||
|
"L",
|
||||||
|
"Coptic",
|
||||||
|
"Bopomofo",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Punct",
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
"Sk",
|
||||||
|
"Me",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Print",
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
"XDigit",
|
||||||
|
"Upper",
|
||||||
|
#endif /* ! USE_UNICODE_PROPERTIES */
|
||||||
|
"Space",
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
"NEWLINE",
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Thaana",
|
||||||
|
"Sm",
|
||||||
|
"Braille",
|
||||||
|
"No",
|
||||||
|
"Myanmar",
|
||||||
|
"Tagbanwa",
|
||||||
|
"Buginese",
|
||||||
|
"Osmanya",
|
||||||
|
"Blank",
|
||||||
|
"Armenian",
|
||||||
|
"Bengali",
|
||||||
|
"Mongolian",
|
||||||
|
"Lm",
|
||||||
|
"Latin",
|
||||||
|
"Linear_B",
|
||||||
|
"Yi",
|
||||||
|
"Arabic",
|
||||||
|
"Pd",
|
||||||
|
"Sinhala",
|
||||||
|
"Malayalam",
|
||||||
|
"Tai_Le",
|
||||||
|
"Tamil",
|
||||||
|
"Telugu",
|
||||||
|
"Gurmukhi",
|
||||||
|
"Ll",
|
||||||
|
"Tagalog",
|
||||||
|
"Tibetan",
|
||||||
|
"Lu",
|
||||||
|
"Oriya",
|
||||||
|
"Glagolitic",
|
||||||
|
"N",
|
||||||
|
"Pf",
|
||||||
|
"Cf",
|
||||||
|
"Alpha",
|
||||||
|
"Cherokee",
|
||||||
|
"Limbu",
|
||||||
|
"Khmer",
|
||||||
|
"Hiragana",
|
||||||
|
"Han",
|
||||||
|
"Zp",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Lower",
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
"Kharoshthi",
|
||||||
|
"Tifinagh",
|
||||||
|
"Nl",
|
||||||
|
"Cntrl",
|
||||||
|
"Hanunoo",
|
||||||
|
"Gothic",
|
||||||
|
"Ps",
|
||||||
|
"Cs",
|
||||||
|
"Nd",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Graph",
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
"Lao",
|
||||||
|
"Ethiopic",
|
||||||
|
"Old_Persian",
|
||||||
|
"Canadian_Aboriginal",
|
||||||
|
"Ogham",
|
||||||
|
"ASCII",
|
||||||
|
"Alnum",
|
||||||
|
"Old_Italic",
|
||||||
|
"Zl",
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Digit",
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
"Blank"
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
"Ugaritic",
|
||||||
|
"Z",
|
||||||
|
"Any",
|
||||||
|
"Kannada",
|
||||||
|
"Buhid",
|
||||||
|
"Devanagari",
|
||||||
|
"Gujarati",
|
||||||
|
"Hebrew",
|
||||||
|
"Katakana",
|
||||||
|
"Upper",
|
||||||
|
"New_Tai_Lue",
|
||||||
|
"XDigit",
|
||||||
|
"NEWLINE",
|
||||||
|
"Word",
|
||||||
|
"Runic",
|
||||||
|
"Greek",
|
||||||
|
"Georgian",
|
||||||
|
"Hangul",
|
||||||
|
"Inherited",
|
||||||
|
"Zs",
|
||||||
|
"Deseret",
|
||||||
|
"Assigned"
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
};
|
||||||
|
#define uniname2ctype_pool ((const char *) &uniname2ctype_pool_contents)
|
||||||
|
#ifdef __GNUC__
|
||||||
|
__inline
|
||||||
|
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
|
||||||
|
__attribute__ ((__gnu_inline__))
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
const struct uniname2ctype_struct *
|
||||||
|
uniname2ctype_p (str, len)
|
||||||
|
register const char *str;
|
||||||
|
register unsigned int len;
|
||||||
|
{
|
||||||
|
static const struct uniname2ctype_struct wordlist[] =
|
||||||
|
{
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
{-1}, {-1}, {-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str3, 37},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str5, 17},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str6, 20},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str7, 45},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str8, 43},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str9, 21},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str10, 49},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str11, 38},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str12, 18},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str13, 46},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str14, 42},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str15, 63},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str16, 32},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str17, 27},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str18, 103},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str19, 66},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str20, 100},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str21, 26},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str22, 30},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str23, 40},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str24, 65},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str25, 29},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str26, 110},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str28, 102},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str29, 23},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str30, 64},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str31, 57},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str32, 8},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str33, 47},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str34, 31},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str35, 7},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str36, 9},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str37, 109},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str38, 48},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str39, 58},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str40, 36},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str41, 92},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str42, 105},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str43, 59},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str44, 98},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str45, 2},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str46, 55},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str47, 56},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str48, 91},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str49, 25},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str50, 87},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str51, 89},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str52, 114},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str53, 54},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str54, 39},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str55, 101},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str56, 90},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str57, 106},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str58, 107},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str59, 108},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str60, 75},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str61, 24},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str62, 104},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str63, 111},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str64, 28},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str65, 97},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str66, 71},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str67, 33},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str68, 41},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str69, 19},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str70, 1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str71, 62},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str72, 88},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str73, 85},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str74, 80},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str75, 76},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str76, 52},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str77, 6},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str78, 84},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str79, 112},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str80, 35},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str81, 3},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str82, 78},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str83, 72},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str84, 44},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str85, 22},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str86, 34},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str87, 5},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str88, 86},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str89, 69},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str90, 96},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str91, 61},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str92, 94},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str93, 14},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str94, 13},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str95, 95},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str96, 51},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str97, 4},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str98, 113},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str99, 50},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str100, 15},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str101, 82},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str102, 60},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str103, 68},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str104, 74},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str105, 79},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str106, 83},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str107, 10},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str108, 93},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str109, 11},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str110, 0},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str111, 12},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str112, 99},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str114, 73},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str116, 70},
|
||||||
|
{-1}, {-1}, {-1}, {-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str121, 77},
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
{-1}, {-1}, {-1}, {-1}, {-1}, {-1},
|
||||||
|
#ifndef USE_UNICODE_PROPERTIES
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str6, 12},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str7, 1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str8, 13},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str9, 14},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str10, 3},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str11, 8},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str12, 7},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str13, 11},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str14, 10},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str15, 9},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str16, 0},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str17, 6},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str18, 5},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str19, 4},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str20, 2}
|
||||||
|
#else /* USE_UNICODE_PROPERTIES */
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str128, 81},
|
||||||
|
{-1}, {-1}, {-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str132, 53},
|
||||||
|
{-1}, {-1}, {-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str136, 67},
|
||||||
|
{-1},
|
||||||
|
{(int)(long)&((struct uniname2ctype_pool_t *)0)->uniname2ctype_pool_str138, 16}
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
};
|
||||||
|
|
||||||
|
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
||||||
|
{
|
||||||
|
register int key = uniname2ctype_hash (str, len);
|
||||||
|
|
||||||
|
if (key <= MAX_HASH_VALUE && key >= 0)
|
||||||
|
{
|
||||||
|
register int o = wordlist[key].name;
|
||||||
|
if (o >= 0)
|
||||||
|
{
|
||||||
|
register const char *s = o + uniname2ctype_pool;
|
||||||
|
|
||||||
|
if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
|
||||||
|
return &wordlist[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
uniname2ctype(const UChar *name, unsigned int len)
|
||||||
|
{
|
||||||
|
const struct uniname2ctype_struct *p = uniname2ctype_p((const char *)name, len);
|
||||||
|
if (p) return p->ctype;
|
||||||
|
return -1;
|
||||||
|
}
|
134
enc/unicode/name2ctype.kwd
Normal file
134
enc/unicode/name2ctype.kwd
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
%{
|
||||||
|
struct uniname2ctype_struct {
|
||||||
|
int name, ctype;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct uniname2ctype_struct *uniname2ctype_p(const char *, unsigned int);
|
||||||
|
%}
|
||||||
|
struct uniname2ctype_struct;
|
||||||
|
%%
|
||||||
|
NEWLINE, 0
|
||||||
|
Alpha, 1
|
||||||
|
Blank, 2
|
||||||
|
Cntrl, 3
|
||||||
|
Digit, 4
|
||||||
|
Graph, 5
|
||||||
|
Lower, 6
|
||||||
|
Print, 7
|
||||||
|
Punct, 8
|
||||||
|
Space, 9
|
||||||
|
Upper, 10
|
||||||
|
XDigit, 11
|
||||||
|
Word, 12
|
||||||
|
Alnum, 13
|
||||||
|
ASCII, 14
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
Any, 15
|
||||||
|
Assigned, 16
|
||||||
|
C, 17
|
||||||
|
Cc, 18
|
||||||
|
Cf, 19
|
||||||
|
Cn, 20
|
||||||
|
Co, 21
|
||||||
|
Cs, 22
|
||||||
|
L, 23
|
||||||
|
Ll, 24
|
||||||
|
Lm, 25
|
||||||
|
Lo, 26
|
||||||
|
Lt, 27
|
||||||
|
Lu, 28
|
||||||
|
M, 29
|
||||||
|
Mc, 30
|
||||||
|
Me, 31
|
||||||
|
Mn, 32
|
||||||
|
N, 33
|
||||||
|
Nd, 34
|
||||||
|
Nl, 35
|
||||||
|
No, 36
|
||||||
|
P, 37
|
||||||
|
Pc, 38
|
||||||
|
Pd, 39
|
||||||
|
Pe, 40
|
||||||
|
Pf, 41
|
||||||
|
Pi, 42
|
||||||
|
Po, 43
|
||||||
|
Ps, 44
|
||||||
|
S, 45
|
||||||
|
Sc, 46
|
||||||
|
Sk, 47
|
||||||
|
Sm, 48
|
||||||
|
So, 49
|
||||||
|
Z, 50
|
||||||
|
Zl, 51
|
||||||
|
Zp, 52
|
||||||
|
Zs, 53
|
||||||
|
Arabic, 54
|
||||||
|
Armenian, 55
|
||||||
|
Bengali, 56
|
||||||
|
Bopomofo, 57
|
||||||
|
Braille, 58
|
||||||
|
Buginese, 59
|
||||||
|
Buhid, 60
|
||||||
|
Canadian_Aboriginal, 61
|
||||||
|
Cherokee, 62
|
||||||
|
Common, 63
|
||||||
|
Coptic, 64
|
||||||
|
Cypriot, 65
|
||||||
|
Cyrillic, 66
|
||||||
|
Deseret, 67
|
||||||
|
Devanagari, 68
|
||||||
|
Ethiopic, 69
|
||||||
|
Georgian, 70
|
||||||
|
Glagolitic, 71
|
||||||
|
Gothic, 72
|
||||||
|
Greek, 73
|
||||||
|
Gujarati, 74
|
||||||
|
Gurmukhi, 75
|
||||||
|
Han, 76
|
||||||
|
Hangul, 77
|
||||||
|
Hanunoo, 78
|
||||||
|
Hebrew, 79
|
||||||
|
Hiragana, 80
|
||||||
|
Inherited, 81
|
||||||
|
Kannada, 82
|
||||||
|
Katakana, 83
|
||||||
|
Kharoshthi, 84
|
||||||
|
Khmer, 85
|
||||||
|
Lao, 86
|
||||||
|
Latin, 87
|
||||||
|
Limbu, 88
|
||||||
|
Linear_B, 89
|
||||||
|
Malayalam, 90
|
||||||
|
Mongolian, 91
|
||||||
|
Myanmar, 92
|
||||||
|
New_Tai_Lue, 93
|
||||||
|
Ogham, 94
|
||||||
|
Old_Italic, 95
|
||||||
|
Old_Persian, 96
|
||||||
|
Oriya, 97
|
||||||
|
Osmanya, 98
|
||||||
|
Runic, 99
|
||||||
|
Shavian, 100
|
||||||
|
Sinhala, 101
|
||||||
|
Syloti_Nagri, 102
|
||||||
|
Syriac, 103
|
||||||
|
Tagalog, 104
|
||||||
|
Tagbanwa, 105
|
||||||
|
Tai_Le, 106
|
||||||
|
Tamil, 107
|
||||||
|
Telugu, 108
|
||||||
|
Thaana, 109
|
||||||
|
Thai, 110
|
||||||
|
Tibetan, 111
|
||||||
|
Tifinagh, 112
|
||||||
|
Ugaritic, 113
|
||||||
|
Yi, 114
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
%%
|
||||||
|
static int
|
||||||
|
uniname2ctype(const UChar *name, unsigned int len)
|
||||||
|
{
|
||||||
|
const struct uniname2ctype_struct *p = uniname2ctype_p((const char *)name, len);
|
||||||
|
if (p) return p->ctype;
|
||||||
|
return -1;
|
||||||
|
}
|
134
enc/unicode/name2ctype.src
Normal file
134
enc/unicode/name2ctype.src
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
%{
|
||||||
|
struct uniname2ctype_struct {
|
||||||
|
int name, ctype;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct uniname2ctype_struct *uniname2ctype_p(const char *, unsigned int);
|
||||||
|
%}
|
||||||
|
struct uniname2ctype_struct;
|
||||||
|
%%
|
||||||
|
NEWLINE, 0
|
||||||
|
Alpha, 1
|
||||||
|
Blank, 2
|
||||||
|
Cntrl, 3
|
||||||
|
Digit, 4
|
||||||
|
Graph, 5
|
||||||
|
Lower, 6
|
||||||
|
Print, 7
|
||||||
|
Punct, 8
|
||||||
|
Space, 9
|
||||||
|
Upper, 10
|
||||||
|
XDigit, 11
|
||||||
|
Word, 12
|
||||||
|
Alnum, 13
|
||||||
|
ASCII, 14
|
||||||
|
#ifdef USE_UNICODE_PROPERTIES
|
||||||
|
Any, 15
|
||||||
|
Assigned, 16
|
||||||
|
C, 17
|
||||||
|
Cc, 18
|
||||||
|
Cf, 19
|
||||||
|
Cn, 20
|
||||||
|
Co, 21
|
||||||
|
Cs, 22
|
||||||
|
L, 23
|
||||||
|
Ll, 24
|
||||||
|
Lm, 25
|
||||||
|
Lo, 26
|
||||||
|
Lt, 27
|
||||||
|
Lu, 28
|
||||||
|
M, 29
|
||||||
|
Mc, 30
|
||||||
|
Me, 31
|
||||||
|
Mn, 32
|
||||||
|
N, 33
|
||||||
|
Nd, 34
|
||||||
|
Nl, 35
|
||||||
|
No, 36
|
||||||
|
P, 37
|
||||||
|
Pc, 38
|
||||||
|
Pd, 39
|
||||||
|
Pe, 40
|
||||||
|
Pf, 41
|
||||||
|
Pi, 42
|
||||||
|
Po, 43
|
||||||
|
Ps, 44
|
||||||
|
S, 45
|
||||||
|
Sc, 46
|
||||||
|
Sk, 47
|
||||||
|
Sm, 48
|
||||||
|
So, 49
|
||||||
|
Z, 50
|
||||||
|
Zl, 51
|
||||||
|
Zp, 52
|
||||||
|
Zs, 53
|
||||||
|
Arabic, 54
|
||||||
|
Armenian, 55
|
||||||
|
Bengali, 56
|
||||||
|
Bopomofo, 57
|
||||||
|
Braille, 58
|
||||||
|
Buginese, 59
|
||||||
|
Buhid, 60
|
||||||
|
Canadian_Aboriginal, 61
|
||||||
|
Cherokee, 62
|
||||||
|
Common, 63
|
||||||
|
Coptic, 64
|
||||||
|
Cypriot, 65
|
||||||
|
Cyrillic, 66
|
||||||
|
Deseret, 67
|
||||||
|
Devanagari, 68
|
||||||
|
Ethiopic, 69
|
||||||
|
Georgian, 70
|
||||||
|
Glagolitic, 71
|
||||||
|
Gothic, 72
|
||||||
|
Greek, 73
|
||||||
|
Gujarati, 74
|
||||||
|
Gurmukhi, 75
|
||||||
|
Han, 76
|
||||||
|
Hangul, 77
|
||||||
|
Hanunoo, 78
|
||||||
|
Hebrew, 79
|
||||||
|
Hiragana, 80
|
||||||
|
Inherited, 81
|
||||||
|
Kannada, 82
|
||||||
|
Katakana, 83
|
||||||
|
Kharoshthi, 84
|
||||||
|
Khmer, 85
|
||||||
|
Lao, 86
|
||||||
|
Latin, 87
|
||||||
|
Limbu, 88
|
||||||
|
Linear_B, 89
|
||||||
|
Malayalam, 90
|
||||||
|
Mongolian, 91
|
||||||
|
Myanmar, 92
|
||||||
|
New_Tai_Lue, 93
|
||||||
|
Ogham, 94
|
||||||
|
Old_Italic, 95
|
||||||
|
Old_Persian, 96
|
||||||
|
Oriya, 97
|
||||||
|
Osmanya, 98
|
||||||
|
Runic, 99
|
||||||
|
Shavian, 100
|
||||||
|
Sinhala, 101
|
||||||
|
Syloti_Nagri, 102
|
||||||
|
Syriac, 103
|
||||||
|
Tagalog, 104
|
||||||
|
Tagbanwa, 105
|
||||||
|
Tai_Le, 106
|
||||||
|
Tamil, 107
|
||||||
|
Telugu, 108
|
||||||
|
Thaana, 109
|
||||||
|
Thai, 110
|
||||||
|
Tibetan, 111
|
||||||
|
Tifinagh, 112
|
||||||
|
Ugaritic, 113
|
||||||
|
Yi, 114
|
||||||
|
#endif /* USE_UNICODE_PROPERTIES */
|
||||||
|
%%
|
||||||
|
static int
|
||||||
|
uniname2ctype(const UChar *name, unsigned int len)
|
||||||
|
{
|
||||||
|
const struct uniname2ctype_struct *p = uniname2ctype_p((const char *)name, len);
|
||||||
|
if (p) return p->ctype;
|
||||||
|
return -1;
|
||||||
|
}
|
@ -853,6 +853,10 @@ end
|
|||||||
lex.c: {$(srcdir)}lex.c.blt
|
lex.c: {$(srcdir)}lex.c.blt
|
||||||
copy $(?:/=\) $@
|
copy $(?:/=\) $@
|
||||||
|
|
||||||
|
enc/unicode/name2ctype.h: {$(srcdir)}enc/unicode/name2ctype.h.blt
|
||||||
|
$(MAKEDIRS) $(@D:/=\)
|
||||||
|
copy $(?:/=\) $(@:/=\)
|
||||||
|
|
||||||
$(OBJS): {$(hdrdir)/ruby}win32.h
|
$(OBJS): {$(hdrdir)/ruby}win32.h
|
||||||
|
|
||||||
dir.$(OBJEXT) win32.$(OBJEXT): {$(srcdir)}win32/dir.h
|
dir.$(OBJEXT) win32.$(OBJEXT): {$(srcdir)}win32/dir.h
|
||||||
|
Loading…
x
Reference in New Issue
Block a user