Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

uchar.h

Go to the documentation of this file.
00001 /*
00002 **********************************************************************
00003 *   Copyright (C) 1997-2003, International Business Machines
00004 *   Corporation and others.  All Rights Reserved.
00005 **********************************************************************
00006 *
00007 * File UCHAR.H
00008 *
00009 * Modification History:
00010 *
00011 *   Date        Name        Description
00012 *   04/02/97    aliu        Creation.
00013 *   03/29/99    helena      Updated for C APIs.
00014 *   4/15/99     Madhu       Updated for C Implementation and Javadoc
00015 *   5/20/99     Madhu       Added the function u_getVersion()
00016 *   8/19/1999   srl         Upgraded scripts to Unicode 3.0
00017 *   8/27/1999   schererm    UCharDirection constants: U_...
00018 *   11/11/1999  weiv        added u_isalnum(), cleaned comments
00019 *   01/11/2000  helena      Renamed u_getVersion to u_getUnicodeVersion().
00020 ******************************************************************************
00021 */
00022 
00023 #ifndef UCHAR_H
00024 #define UCHAR_H
00025 
00026 #include "unicode/utypes.h"
00027 
00028 U_CDECL_BEGIN
00029 
00030 /*==========================================================================*/
00031 /* Unicode version number                                                   */
00032 /*==========================================================================*/
00042 #define U_UNICODE_VERSION "4"
00043 
00103 #define UCHAR_MIN_VALUE 0
00104 
00113 #define UCHAR_MAX_VALUE 0x10ffff
00114 
00119 #define U_MASK(x) ((uint32_t)1<<(x))
00120 
00121 /*
00122  * !! Note: Several comments in this file are machine-read by the
00123  * genpname tool.  These comments describe the correspondence between
00124  * icu enum constants and UCD entities.  Do not delete them.  Update
00125  * these comments as needed.
00126  *
00127  * Any comment of the form "/ *[name]* /" (spaces added) is such
00128  * a comment.
00129  *
00130  * The U_JG_* and U_GC_*_MASK constants are matched by their symbolic
00131  * name, which must match PropertyValueAliases.txt.
00132  */
00133 
00153 typedef enum UProperty {
00154     /*  See note !!.  Comments of the form "Binary property Dash",
00155         "Enumerated property Script", "Double property Numeric_Value",
00156         and "String property Age" are read by genpname. */
00157 
00158     /*  Note: Place UCHAR_ALPHABETIC before UCHAR_BINARY_START so that
00159         debuggers display UCHAR_ALPHABETIC as the symbolic name for 0,
00160         rather than UCHAR_BINARY_START.  Likewise for other *_START
00161         identifiers. */
00162 
00165     UCHAR_ALPHABETIC=0,
00167     UCHAR_BINARY_START=UCHAR_ALPHABETIC,
00169     UCHAR_ASCII_HEX_DIGIT,
00173     UCHAR_BIDI_CONTROL,
00178     UCHAR_BIDI_MIRRORED,
00180     UCHAR_DASH,
00184     UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
00187     UCHAR_DEPRECATED,
00190     UCHAR_DIACRITIC,
00194     UCHAR_EXTENDER,
00198     UCHAR_FULL_COMPOSITION_EXCLUSION,
00202     UCHAR_GRAPHEME_BASE,
00206     UCHAR_GRAPHEME_EXTEND,
00209     UCHAR_GRAPHEME_LINK,
00212     UCHAR_HEX_DIGIT,
00215     UCHAR_HYPHEN,
00220     UCHAR_ID_CONTINUE,
00224     UCHAR_ID_START,
00227     UCHAR_IDEOGRAPHIC,
00231     UCHAR_IDS_BINARY_OPERATOR,
00235     UCHAR_IDS_TRINARY_OPERATOR,
00238     UCHAR_JOIN_CONTROL,
00242     UCHAR_LOGICAL_ORDER_EXCEPTION,
00245     UCHAR_LOWERCASE,
00247     UCHAR_MATH,
00251     UCHAR_NONCHARACTER_CODE_POINT,
00253     UCHAR_QUOTATION_MARK,
00257     UCHAR_RADICAL,
00262     UCHAR_SOFT_DOTTED,
00266     UCHAR_TERMINAL_PUNCTUATION,
00270     UCHAR_UNIFIED_IDEOGRAPH,
00273     UCHAR_UPPERCASE,
00277     UCHAR_WHITE_SPACE,
00281     UCHAR_XID_CONTINUE,
00284     UCHAR_XID_START,
00288     UCHAR_CASE_SENSITIVE,
00290     UCHAR_BINARY_LIMIT,
00291 
00294     UCHAR_BIDI_CLASS=0x1000,
00296     UCHAR_INT_START=UCHAR_BIDI_CLASS,
00299     UCHAR_BLOCK,
00302     UCHAR_CANONICAL_COMBINING_CLASS,
00305     UCHAR_DECOMPOSITION_TYPE,
00309     UCHAR_EAST_ASIAN_WIDTH,
00312     UCHAR_GENERAL_CATEGORY,
00315     UCHAR_JOINING_GROUP,
00318     UCHAR_JOINING_TYPE,
00321     UCHAR_LINE_BREAK,
00324     UCHAR_NUMERIC_TYPE,
00327     UCHAR_SCRIPT,
00330     UCHAR_HANGUL_SYLLABLE_TYPE,
00332     UCHAR_INT_LIMIT,
00333 
00342     UCHAR_GENERAL_CATEGORY_MASK=0x2000,
00344     UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
00346     UCHAR_MASK_LIMIT,
00347 
00350     UCHAR_NUMERIC_VALUE=0x3000,
00352     UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
00354     UCHAR_DOUBLE_LIMIT,
00355 
00358     UCHAR_AGE=0x4000,
00360     UCHAR_STRING_START=UCHAR_AGE,
00363     UCHAR_BIDI_MIRRORING_GLYPH,
00366     UCHAR_CASE_FOLDING,
00369     UCHAR_ISO_COMMENT,
00372     UCHAR_LOWERCASE_MAPPING,
00375     UCHAR_NAME,
00378     UCHAR_SIMPLE_CASE_FOLDING,
00381     UCHAR_SIMPLE_LOWERCASE_MAPPING,
00384     UCHAR_SIMPLE_TITLECASE_MAPPING,
00387     UCHAR_SIMPLE_UPPERCASE_MAPPING,
00390     UCHAR_TITLECASE_MAPPING,
00393     UCHAR_UNICODE_1_NAME,
00396     UCHAR_UPPERCASE_MAPPING,
00398     UCHAR_STRING_LIMIT,
00399 
00401     UCHAR_INVALID_CODE = -1
00402 } UProperty;
00403 
00409 typedef enum UCharCategory
00410 {
00414     U_UNASSIGNED              = 0,
00416     U_GENERAL_OTHER_TYPES     = 0,
00418     U_UPPERCASE_LETTER        = 1,
00420     U_LOWERCASE_LETTER        = 2,
00422     U_TITLECASE_LETTER        = 3,
00424     U_MODIFIER_LETTER         = 4,
00426     U_OTHER_LETTER            = 5,
00428     U_NON_SPACING_MARK        = 6,
00430     U_ENCLOSING_MARK          = 7,
00432     U_COMBINING_SPACING_MARK  = 8,
00434     U_DECIMAL_DIGIT_NUMBER    = 9,
00436     U_LETTER_NUMBER           = 10,
00438     U_OTHER_NUMBER            = 11,
00440     U_SPACE_SEPARATOR         = 12,
00442     U_LINE_SEPARATOR          = 13,
00444     U_PARAGRAPH_SEPARATOR     = 14,
00446     U_CONTROL_CHAR            = 15,
00448     U_FORMAT_CHAR             = 16,
00450     U_PRIVATE_USE_CHAR        = 17,
00452     U_SURROGATE               = 18,
00454     U_DASH_PUNCTUATION        = 19,
00456     U_START_PUNCTUATION       = 20,
00458     U_END_PUNCTUATION         = 21,
00460     U_CONNECTOR_PUNCTUATION   = 22,
00462     U_OTHER_PUNCTUATION       = 23,
00464     U_MATH_SYMBOL             = 24,
00466     U_CURRENCY_SYMBOL         = 25,
00468     U_MODIFIER_SYMBOL         = 26,
00470     U_OTHER_SYMBOL            = 27,
00472     U_INITIAL_PUNCTUATION     = 28,
00474     U_FINAL_PUNCTUATION       = 29,
00476     U_CHAR_CATEGORY_COUNT
00477 } UCharCategory;
00478 
00493 #define U_GC_CN_MASK    U_MASK(U_GENERAL_OTHER_TYPES)
00494 
00496 #define U_GC_LU_MASK    U_MASK(U_UPPERCASE_LETTER)
00497 
00498 #define U_GC_LL_MASK    U_MASK(U_LOWERCASE_LETTER)
00499 
00500 #define U_GC_LT_MASK    U_MASK(U_TITLECASE_LETTER)
00501 
00502 #define U_GC_LM_MASK    U_MASK(U_MODIFIER_LETTER)
00503 
00504 #define U_GC_LO_MASK    U_MASK(U_OTHER_LETTER)
00505 
00507 #define U_GC_MN_MASK    U_MASK(U_NON_SPACING_MARK)
00508 
00509 #define U_GC_ME_MASK    U_MASK(U_ENCLOSING_MARK)
00510 
00511 #define U_GC_MC_MASK    U_MASK(U_COMBINING_SPACING_MARK)
00512 
00514 #define U_GC_ND_MASK    U_MASK(U_DECIMAL_DIGIT_NUMBER)
00515 
00516 #define U_GC_NL_MASK    U_MASK(U_LETTER_NUMBER)
00517 
00518 #define U_GC_NO_MASK    U_MASK(U_OTHER_NUMBER)
00519 
00521 #define U_GC_ZS_MASK    U_MASK(U_SPACE_SEPARATOR)
00522 
00523 #define U_GC_ZL_MASK    U_MASK(U_LINE_SEPARATOR)
00524 
00525 #define U_GC_ZP_MASK    U_MASK(U_PARAGRAPH_SEPARATOR)
00526 
00528 #define U_GC_CC_MASK    U_MASK(U_CONTROL_CHAR)
00529 
00530 #define U_GC_CF_MASK    U_MASK(U_FORMAT_CHAR)
00531 
00532 #define U_GC_CO_MASK    U_MASK(U_PRIVATE_USE_CHAR)
00533 
00534 #define U_GC_CS_MASK    U_MASK(U_SURROGATE)
00535 
00537 #define U_GC_PD_MASK    U_MASK(U_DASH_PUNCTUATION)
00538 
00539 #define U_GC_PS_MASK    U_MASK(U_START_PUNCTUATION)
00540 
00541 #define U_GC_PE_MASK    U_MASK(U_END_PUNCTUATION)
00542 
00543 #define U_GC_PC_MASK    U_MASK(U_CONNECTOR_PUNCTUATION)
00544 
00545 #define U_GC_PO_MASK    U_MASK(U_OTHER_PUNCTUATION)
00546 
00548 #define U_GC_SM_MASK    U_MASK(U_MATH_SYMBOL)
00549 
00550 #define U_GC_SC_MASK    U_MASK(U_CURRENCY_SYMBOL)
00551 
00552 #define U_GC_SK_MASK    U_MASK(U_MODIFIER_SYMBOL)
00553 
00554 #define U_GC_SO_MASK    U_MASK(U_OTHER_SYMBOL)
00555 
00557 #define U_GC_PI_MASK    U_MASK(U_INITIAL_PUNCTUATION)
00558 
00559 #define U_GC_PF_MASK    U_MASK(U_FINAL_PUNCTUATION)
00560 
00561 
00563 #define U_GC_L_MASK \
00564             (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
00565 
00567 #define U_GC_LC_MASK \
00568             (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
00569 
00571 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
00572 
00574 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
00575 
00577 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
00578 
00580 #define U_GC_C_MASK \
00581             (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
00582 
00584 #define U_GC_P_MASK \
00585             (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
00586              U_GC_PI_MASK|U_GC_PF_MASK)
00587 
00589 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
00590 
00595 typedef enum UCharDirection {
00599     U_LEFT_TO_RIGHT               = 0,
00601     U_RIGHT_TO_LEFT               = 1,
00603     U_EUROPEAN_NUMBER             = 2,
00605     U_EUROPEAN_NUMBER_SEPARATOR   = 3,
00607     U_EUROPEAN_NUMBER_TERMINATOR  = 4,
00609     U_ARABIC_NUMBER               = 5,
00611     U_COMMON_NUMBER_SEPARATOR     = 6,
00613     U_BLOCK_SEPARATOR             = 7,
00615     U_SEGMENT_SEPARATOR           = 8,
00617     U_WHITE_SPACE_NEUTRAL         = 9,
00619     U_OTHER_NEUTRAL               = 10,
00621     U_LEFT_TO_RIGHT_EMBEDDING     = 11,
00623     U_LEFT_TO_RIGHT_OVERRIDE      = 12,
00625     U_RIGHT_TO_LEFT_ARABIC        = 13,
00627     U_RIGHT_TO_LEFT_EMBEDDING     = 14,
00629     U_RIGHT_TO_LEFT_OVERRIDE      = 15,
00631     U_POP_DIRECTIONAL_FORMAT      = 16,
00633     U_DIR_NON_SPACING_MARK        = 17,
00635     U_BOUNDARY_NEUTRAL            = 18,
00637     U_CHAR_DIRECTION_COUNT
00638 } UCharDirection;
00639 
00644 enum UBlockCode {
00646     UBLOCK_NO_BLOCK = 0, /*[none]*/ /* Special range indicating No_Block */
00647 
00649     UBLOCK_BASIC_LATIN = 1, /*[0000]*/ /*See note !!*/
00650 
00652     UBLOCK_LATIN_1_SUPPLEMENT=2, /*[0080]*/
00653 
00655     UBLOCK_LATIN_EXTENDED_A =3, /*[0100]*/
00656 
00658     UBLOCK_LATIN_EXTENDED_B =4, /*[0180]*/
00659 
00661     UBLOCK_IPA_EXTENSIONS =5, /*[0250]*/
00662 
00664     UBLOCK_SPACING_MODIFIER_LETTERS =6, /*[02B0]*/
00665 
00667     UBLOCK_COMBINING_DIACRITICAL_MARKS =7, /*[0300]*/
00668 
00673     UBLOCK_GREEK =8, /*[0370]*/
00674 
00676     UBLOCK_CYRILLIC =9, /*[0400]*/
00677 
00679     UBLOCK_ARMENIAN =10, /*[0530]*/
00680 
00682     UBLOCK_HEBREW =11, /*[0590]*/
00683 
00685     UBLOCK_ARABIC =12, /*[0600]*/
00686 
00688     UBLOCK_SYRIAC =13, /*[0700]*/
00689 
00691     UBLOCK_THAANA =14, /*[0780]*/
00692 
00694     UBLOCK_DEVANAGARI =15, /*[0900]*/
00695 
00697     UBLOCK_BENGALI =16, /*[0980]*/
00698 
00700     UBLOCK_GURMUKHI =17, /*[0A00]*/
00701 
00703     UBLOCK_GUJARATI =18, /*[0A80]*/
00704 
00706     UBLOCK_ORIYA =19, /*[0B00]*/
00707 
00709     UBLOCK_TAMIL =20, /*[0B80]*/
00710 
00712     UBLOCK_TELUGU =21, /*[0C00]*/
00713 
00715     UBLOCK_KANNADA =22, /*[0C80]*/
00716 
00718     UBLOCK_MALAYALAM =23, /*[0D00]*/
00719 
00721     UBLOCK_SINHALA =24, /*[0D80]*/
00722 
00724     UBLOCK_THAI =25, /*[0E00]*/
00725 
00727     UBLOCK_LAO =26, /*[0E80]*/
00728 
00730     UBLOCK_TIBETAN =27, /*[0F00]*/
00731 
00733     UBLOCK_MYANMAR =28, /*[1000]*/
00734 
00736     UBLOCK_GEORGIAN =29, /*[10A0]*/
00737 
00739     UBLOCK_HANGUL_JAMO =30, /*[1100]*/
00740 
00742     UBLOCK_ETHIOPIC =31, /*[1200]*/
00743 
00745     UBLOCK_CHEROKEE =32, /*[13A0]*/
00746 
00748     UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33, /*[1400]*/
00749 
00751     UBLOCK_OGHAM =34, /*[1680]*/
00752 
00754     UBLOCK_RUNIC =35, /*[16A0]*/
00755 
00757     UBLOCK_KHMER =36, /*[1780]*/
00758 
00760     UBLOCK_MONGOLIAN =37, /*[1800]*/
00761 
00763     UBLOCK_LATIN_EXTENDED_ADDITIONAL =38, /*[1E00]*/
00764 
00766     UBLOCK_GREEK_EXTENDED =39, /*[1F00]*/
00767 
00769     UBLOCK_GENERAL_PUNCTUATION =40, /*[2000]*/
00770 
00772     UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41, /*[2070]*/
00773 
00775     UBLOCK_CURRENCY_SYMBOLS =42, /*[20A0]*/
00776 
00781     UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43, /*[20D0]*/
00782 
00784     UBLOCK_LETTERLIKE_SYMBOLS =44, /*[2100]*/
00785 
00787     UBLOCK_NUMBER_FORMS =45, /*[2150]*/
00788 
00790     UBLOCK_ARROWS =46, /*[2190]*/
00791 
00793     UBLOCK_MATHEMATICAL_OPERATORS =47, /*[2200]*/
00794 
00796     UBLOCK_MISCELLANEOUS_TECHNICAL =48, /*[2300]*/
00797 
00799     UBLOCK_CONTROL_PICTURES =49, /*[2400]*/
00800 
00802     UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50, /*[2440]*/
00803 
00805     UBLOCK_ENCLOSED_ALPHANUMERICS =51, /*[2460]*/
00806 
00808     UBLOCK_BOX_DRAWING =52, /*[2500]*/
00809 
00811     UBLOCK_BLOCK_ELEMENTS =53, /*[2580]*/
00812 
00814     UBLOCK_GEOMETRIC_SHAPES =54, /*[25A0]*/
00815 
00817     UBLOCK_MISCELLANEOUS_SYMBOLS =55, /*[2600]*/
00818 
00820     UBLOCK_DINGBATS =56, /*[2700]*/
00821 
00823     UBLOCK_BRAILLE_PATTERNS =57, /*[2800]*/
00824 
00826     UBLOCK_CJK_RADICALS_SUPPLEMENT =58, /*[2E80]*/
00827 
00829     UBLOCK_KANGXI_RADICALS =59, /*[2F00]*/
00830 
00832     UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60, /*[2FF0]*/
00833 
00835     UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61, /*[3000]*/
00836 
00838     UBLOCK_HIRAGANA =62, /*[3040]*/
00839 
00841     UBLOCK_KATAKANA =63, /*[30A0]*/
00842 
00844     UBLOCK_BOPOMOFO =64, /*[3100]*/
00845 
00847     UBLOCK_HANGUL_COMPATIBILITY_JAMO =65, /*[3130]*/
00848 
00850     UBLOCK_KANBUN =66, /*[3190]*/
00851 
00853     UBLOCK_BOPOMOFO_EXTENDED =67, /*[31A0]*/
00854 
00856     UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68, /*[3200]*/
00857 
00859     UBLOCK_CJK_COMPATIBILITY =69, /*[3300]*/
00860 
00862     UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70, /*[3400]*/
00863 
00865     UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71, /*[4E00]*/
00866 
00868     UBLOCK_YI_SYLLABLES =72, /*[A000]*/
00869 
00871     UBLOCK_YI_RADICALS =73, /*[A490]*/
00872 
00874     UBLOCK_HANGUL_SYLLABLES =74, /*[AC00]*/
00875 
00877     UBLOCK_HIGH_SURROGATES =75, /*[D800]*/
00878 
00880     UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76, /*[DB80]*/
00881 
00883     UBLOCK_LOW_SURROGATES =77, /*[DC00]*/
00884 
00894     UBLOCK_PRIVATE_USE = 78,
00904     UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE, /*[E000]*/
00905 
00907     UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79, /*[F900]*/
00908 
00910     UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80, /*[FB00]*/
00911 
00913     UBLOCK_ARABIC_PRESENTATION_FORMS_A =81, /*[FB50]*/
00914 
00916     UBLOCK_COMBINING_HALF_MARKS =82, /*[FE20]*/
00917 
00919     UBLOCK_CJK_COMPATIBILITY_FORMS =83, /*[FE30]*/
00920 
00922     UBLOCK_SMALL_FORM_VARIANTS =84, /*[FE50]*/
00923 
00925     UBLOCK_ARABIC_PRESENTATION_FORMS_B =85, /*[FE70]*/
00926 
00928     UBLOCK_SPECIALS =86, /*[FFF0]*/
00929 
00931     UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87, /*[FF00]*/
00932 
00933     /* New blocks in Unicode 3.1 */
00934 
00936     UBLOCK_OLD_ITALIC = 88  , /*[10300]*/
00938     UBLOCK_GOTHIC = 89 , /*[10330]*/
00940     UBLOCK_DESERET = 90 , /*[10400]*/
00942     UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 , /*[1D000]*/
00944     UBLOCK_MUSICAL_SYMBOLS = 92 , /*[1D100]*/
00946     UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93  , /*[1D400]*/
00948     UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B  = 94 , /*[20000]*/
00950     UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 , /*[2F800]*/
00952     UBLOCK_TAGS = 96, /*[E0000]*/
00953 
00954     /* New blocks in Unicode 3.2 */
00955 
00957     UBLOCK_CYRILLIC_SUPPLEMENTARY = 97, /*[0500]*/
00959     UBLOCK_TAGALOG = 98, /*[1700]*/
00961     UBLOCK_HANUNOO = 99, /*[1720]*/
00963     UBLOCK_BUHID = 100, /*[1740]*/
00965     UBLOCK_TAGBANWA = 101, /*[1760]*/
00967     UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102, /*[27C0]*/
00969     UBLOCK_SUPPLEMENTAL_ARROWS_A = 103, /*[27F0]*/
00971     UBLOCK_SUPPLEMENTAL_ARROWS_B = 104, /*[2900]*/
00973     UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105, /*[2980]*/
00975     UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106, /*[2A00]*/
00977     UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107, /*[31F0]*/
00979     UBLOCK_VARIATION_SELECTORS = 108, /*[FE00]*/
00981     UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109, /*[F0000]*/
00983     UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110, /*[100000]*/
00984 
00985     /* New blocks in Unicode 4 */
00986 
00988     UBLOCK_LIMBU = 111, /*[1900]*/
00990     UBLOCK_TAI_LE = 112, /*[1950]*/
00992     UBLOCK_KHMER_SYMBOLS = 113, /*[19E0]*/
00994     UBLOCK_PHONETIC_EXTENSIONS = 114, /*[1D00]*/
00996     UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115, /*[2B00]*/
00998     UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116, /*[4DC0]*/
01000     UBLOCK_LINEAR_B_SYLLABARY = 117, /*[10000]*/
01002     UBLOCK_LINEAR_B_IDEOGRAMS = 118, /*[10080]*/
01004     UBLOCK_AEGEAN_NUMBERS = 119, /*[10100]*/
01006     UBLOCK_UGARITIC = 120, /*[10380]*/
01008     UBLOCK_SHAVIAN = 121, /*[10450]*/
01010     UBLOCK_OSMANYA = 122, /*[10480]*/
01012     UBLOCK_CYPRIOT_SYLLABARY = 123, /*[10800]*/
01014     UBLOCK_TAI_XUAN_JING_SYMBOLS = 124, /*[1D300]*/
01016     UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/
01017 
01019     UBLOCK_COUNT,
01020 
01022     UBLOCK_INVALID_CODE=-1
01023 };
01024 
01026 typedef enum UBlockCode UBlockCode;
01027 
01035 typedef enum UEastAsianWidth {
01036     U_EA_NEUTRAL,   /*[N]*/ /*See note !!*/
01037     U_EA_AMBIGUOUS, /*[A]*/
01038     U_EA_HALFWIDTH, /*[H]*/
01039     U_EA_FULLWIDTH, /*[F]*/
01040     U_EA_NARROW,    /*[Na]*/
01041     U_EA_WIDE,      /*[W]*/
01042     U_EA_COUNT
01043 } UEastAsianWidth;
01044 /*
01045  * Implementation note:
01046  * Keep UEastAsianWidth constant values in sync with names list in genprops/props2.c.
01047  */
01048 
01060 typedef enum UCharNameChoice {
01061     U_UNICODE_CHAR_NAME,
01062     U_UNICODE_10_CHAR_NAME,
01063     U_EXTENDED_CHAR_NAME,
01064     U_CHAR_NAME_CHOICE_COUNT
01065 } UCharNameChoice;
01066 
01080 typedef enum UPropertyNameChoice {
01081     U_SHORT_PROPERTY_NAME,
01082     U_LONG_PROPERTY_NAME,
01083     U_PROPERTY_NAME_CHOICE_COUNT
01084 } UPropertyNameChoice;
01085 
01092 typedef enum UDecompositionType {
01093     U_DT_NONE,              /*[none]*/ /*See note !!*/
01094     U_DT_CANONICAL,         /*[can]*/
01095     U_DT_COMPAT,            /*[com]*/
01096     U_DT_CIRCLE,            /*[enc]*/
01097     U_DT_FINAL,             /*[fin]*/
01098     U_DT_FONT,              /*[font]*/
01099     U_DT_FRACTION,          /*[fra]*/
01100     U_DT_INITIAL,           /*[init]*/
01101     U_DT_ISOLATED,          /*[iso]*/
01102     U_DT_MEDIAL,            /*[med]*/
01103     U_DT_NARROW,            /*[nar]*/
01104     U_DT_NOBREAK,           /*[nb]*/
01105     U_DT_SMALL,             /*[sml]*/
01106     U_DT_SQUARE,            /*[sqr]*/
01107     U_DT_SUB,               /*[sub]*/
01108     U_DT_SUPER,             /*[sup]*/
01109     U_DT_VERTICAL,          /*[vert]*/
01110     U_DT_WIDE,              /*[wide]*/
01111     U_DT_COUNT /* 18 */
01112 } UDecompositionType;
01113 
01120 typedef enum UJoiningType {
01121     U_JT_NON_JOINING,       /*[U]*/ /*See note !!*/
01122     U_JT_JOIN_CAUSING,      /*[C]*/
01123     U_JT_DUAL_JOINING,      /*[D]*/
01124     U_JT_LEFT_JOINING,      /*[L]*/
01125     U_JT_RIGHT_JOINING,     /*[R]*/
01126     U_JT_TRANSPARENT,       /*[T]*/
01127     U_JT_COUNT /* 6 */
01128 } UJoiningType;
01129 
01136 typedef enum UJoiningGroup {
01137     U_JG_NO_JOINING_GROUP,
01138     U_JG_AIN,
01139     U_JG_ALAPH,
01140     U_JG_ALEF,
01141     U_JG_BEH,
01142     U_JG_BETH,
01143     U_JG_DAL,
01144     U_JG_DALATH_RISH,
01145     U_JG_E,
01146     U_JG_FEH,
01147     U_JG_FINAL_SEMKATH,
01148     U_JG_GAF,
01149     U_JG_GAMAL,
01150     U_JG_HAH,
01151     U_JG_HAMZA_ON_HEH_GOAL,
01152     U_JG_HE,
01153     U_JG_HEH,
01154     U_JG_HEH_GOAL,
01155     U_JG_HETH,
01156     U_JG_KAF,
01157     U_JG_KAPH,
01158     U_JG_KNOTTED_HEH,
01159     U_JG_LAM,
01160     U_JG_LAMADH,
01161     U_JG_MEEM,
01162     U_JG_MIM,
01163     U_JG_NOON,
01164     U_JG_NUN,
01165     U_JG_PE,
01166     U_JG_QAF,
01167     U_JG_QAPH,
01168     U_JG_REH,
01169     U_JG_REVERSED_PE,
01170     U_JG_SAD,
01171     U_JG_SADHE,
01172     U_JG_SEEN,
01173     U_JG_SEMKATH,
01174     U_JG_SHIN,
01175     U_JG_SWASH_KAF,
01176     U_JG_SYRIAC_WAW,
01177     U_JG_TAH,
01178     U_JG_TAW,
01179     U_JG_TEH_MARBUTA,
01180     U_JG_TETH,
01181     U_JG_WAW,
01182     U_JG_YEH,
01183     U_JG_YEH_BARREE,
01184     U_JG_YEH_WITH_TAIL,
01185     U_JG_YUDH,
01186     U_JG_YUDH_HE,
01187     U_JG_ZAIN,
01188     U_JG_FE,        
01189     U_JG_KHAPH,     
01190     U_JG_ZHAIN,     
01191     U_JG_COUNT
01192 } UJoiningGroup;
01193 
01200 typedef enum ULineBreak {
01201     U_LB_UNKNOWN,           /*[XX]*/ /*See note !!*/
01202     U_LB_AMBIGUOUS,         /*[AI]*/
01203     U_LB_ALPHABETIC,        /*[AL]*/
01204     U_LB_BREAK_BOTH,        /*[B2]*/
01205     U_LB_BREAK_AFTER,       /*[BA]*/
01206     U_LB_BREAK_BEFORE,      /*[BB]*/
01207     U_LB_MANDATORY_BREAK,   /*[BK]*/
01208     U_LB_CONTINGENT_BREAK,  /*[CB]*/
01209     U_LB_CLOSE_PUNCTUATION, /*[CL]*/
01210     U_LB_COMBINING_MARK,    /*[CM]*/
01211     U_LB_CARRIAGE_RETURN,   /*[CR]*/
01212     U_LB_EXCLAMATION,       /*[EX]*/
01213     U_LB_GLUE,              /*[GL]*/
01214     U_LB_HYPHEN,            /*[HY]*/
01215     U_LB_IDEOGRAPHIC,       /*[ID]*/
01216     U_LB_INSEPERABLE,       /*[IN]*/
01217     U_LB_INFIX_NUMERIC,     /*[IS]*/
01218     U_LB_LINE_FEED,         /*[LF]*/
01219     U_LB_NONSTARTER,        /*[NS]*/
01220     U_LB_NUMERIC,           /*[NU]*/
01221     U_LB_OPEN_PUNCTUATION,  /*[OP]*/
01222     U_LB_POSTFIX_NUMERIC,   /*[PO]*/
01223     U_LB_PREFIX_NUMERIC,    /*[PR]*/
01224     U_LB_QUOTATION,         /*[QU]*/
01225     U_LB_COMPLEX_CONTEXT,   /*[SA]*/
01226     U_LB_SURROGATE,         /*[SG]*/
01227     U_LB_SPACE,             /*[SP]*/
01228     U_LB_BREAK_SYMBOLS,     /*[SY]*/
01229     U_LB_ZWSPACE,           /*[ZW]*/
01230     U_LB_NEXT_LINE,         /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
01231     U_LB_WORD_JOINER,       /*[WJ]*/
01232     U_LB_COUNT
01233 } ULineBreak;
01234 
01241 typedef enum UNumericType {
01242     U_NT_NONE,              /*[None]*/ /*See note !!*/
01243     U_NT_DECIMAL,           /*[de]*/
01244     U_NT_DIGIT,             /*[di]*/
01245     U_NT_NUMERIC,           /*[nu]*/
01246     U_NT_COUNT
01247 } UNumericType;
01248 
01255 typedef enum UHangulSyllableType {
01256     U_HST_NOT_APPLICABLE,   /*[NA]*/ /*See note !!*/
01257     U_HST_LEADING_JAMO,     /*[L]*/
01258     U_HST_VOWEL_JAMO,       /*[V]*/
01259     U_HST_TRAILING_JAMO,    /*[T]*/
01260     U_HST_LV_SYLLABLE,      /*[LV]*/
01261     U_HST_LVT_SYLLABLE,     /*[LVT]*/
01262     U_HST_COUNT
01263 } UHangulSyllableType;
01264 
01291 U_CAPI UBool U_EXPORT2
01292 u_hasBinaryProperty(UChar32 c, UProperty which);
01293 
01306 U_CAPI UBool U_EXPORT2
01307 u_isUAlphabetic(UChar32 c);
01308 
01321 U_CAPI UBool U_EXPORT2
01322 u_isULowercase(UChar32 c);
01323 
01336 U_CAPI UBool U_EXPORT2
01337 u_isUUppercase(UChar32 c);
01338 
01357 U_CAPI UBool U_EXPORT2
01358 u_isUWhiteSpace(UChar32 c);
01359 
01397 U_CAPI int32_t U_EXPORT2
01398 u_getIntPropertyValue(UChar32 c, UProperty which);
01399 
01418 U_CAPI int32_t U_EXPORT2
01419 u_getIntPropertyMinValue(UProperty which);
01420 
01447 U_CAPI int32_t U_EXPORT2
01448 u_getIntPropertyMaxValue(UProperty which);
01449 
01470 U_CAPI double U_EXPORT2
01471 u_getNumericValue(UChar32 c);
01472 
01480 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
01481 
01506 U_CAPI UBool U_EXPORT2
01507 u_islower(UChar32 c);
01508 
01533 U_CAPI UBool U_EXPORT2
01534 u_isupper(UChar32 c);
01535 
01550 U_CAPI UBool U_EXPORT2
01551 u_istitle(UChar32 c);
01552 
01571 U_CAPI UBool U_EXPORT2
01572 u_isdigit(UChar32 c);
01573 
01592 U_CAPI UBool U_EXPORT2
01593 u_isalpha(UChar32 c);
01594 
01613 U_CAPI UBool U_EXPORT2
01614 u_isalnum(UChar32 c);
01615 
01636 U_CAPI UBool U_EXPORT2
01637 u_isxdigit(UChar32 c);
01638 
01652 U_CAPI UBool U_EXPORT2
01653 u_ispunct(UChar32 c);
01654 
01671 U_CAPI UBool U_EXPORT2
01672 u_isgraph(UChar32 c);
01673 
01700 U_CAPI UBool U_EXPORT2
01701 u_isblank(UChar32 c);
01702 
01725 U_CAPI UBool U_EXPORT2
01726 u_isdefined(UChar32 c);
01727 
01746 U_CAPI UBool U_EXPORT2
01747 u_isspace(UChar32 c);
01748 
01767 U_CAPI UBool U_EXPORT2
01768 u_isJavaSpaceChar(UChar32 c);
01769 
01801 U_CAPI UBool U_EXPORT2
01802 u_isWhitespace(UChar32 c);
01803 
01825 U_CAPI UBool U_EXPORT2
01826 u_iscntrl(UChar32 c);
01827 
01840 U_CAPI UBool U_EXPORT2
01841 u_isISOControl(UChar32 c);
01842 
01858 U_CAPI UBool U_EXPORT2
01859 u_isprint(UChar32 c);
01860 
01879 U_CAPI UBool U_EXPORT2
01880 u_isbase(UChar32 c);
01881 
01898 U_CAPI UCharDirection U_EXPORT2
01899 u_charDirection(UChar32 c);
01900 
01916 U_CAPI UBool U_EXPORT2
01917 u_isMirrored(UChar32 c);
01918 
01938 U_CAPI UChar32 U_EXPORT2
01939 u_charMirror(UChar32 c);
01940 
01952 U_CAPI int8_t U_EXPORT2
01953 u_charType(UChar32 c);
01954 
01968 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
01969 
01987 typedef UBool U_CALLCONV
01988 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
01989 
02009 U_CAPI void U_EXPORT2
02010 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
02011 
02012 #if !UCONFIG_NO_NORMALIZATION
02013 
02021 U_CAPI uint8_t U_EXPORT2
02022 u_getCombiningClass(UChar32 c);
02023 
02024 #endif
02025 
02049 U_CAPI int32_t U_EXPORT2
02050 u_charDigitValue(UChar32 c);
02051 
02061 U_CAPI UBlockCode U_EXPORT2
02062 ublock_getCode(UChar32 c);
02063 
02096 U_CAPI int32_t U_EXPORT2
02097 u_charName(UChar32 code, UCharNameChoice nameChoice,
02098            char *buffer, int32_t bufferLength,
02099            UErrorCode *pErrorCode);
02100 
02123 U_CAPI int32_t U_EXPORT2
02124 u_getISOComment(UChar32 c,
02125                 char *dest, int32_t destCapacity,
02126                 UErrorCode *pErrorCode);
02127 
02148 U_CAPI UChar32 U_EXPORT2
02149 u_charFromName(UCharNameChoice nameChoice,
02150                const char *name,
02151                UErrorCode *pErrorCode);
02152 
02170 typedef UBool UEnumCharNamesFn(void *context,
02171                                UChar32 code,
02172                                UCharNameChoice nameChoice,
02173                                const char *name,
02174                                int32_t length);
02175 
02197 U_CAPI void U_EXPORT2
02198 u_enumCharNames(UChar32 start, UChar32 limit,
02199                 UEnumCharNamesFn *fn,
02200                 void *context,
02201                 UCharNameChoice nameChoice,
02202                 UErrorCode *pErrorCode);
02203 
02235 U_CAPI const char* U_EXPORT2
02236 u_getPropertyName(UProperty property,
02237                   UPropertyNameChoice nameChoice);
02238 
02258 U_CAPI UProperty U_EXPORT2
02259 u_getPropertyEnum(const char* alias);
02260 
02308 U_CAPI const char* U_EXPORT2
02309 u_getPropertyValueName(UProperty property,
02310                        int32_t value,
02311                        UPropertyNameChoice nameChoice);
02312 
02344 U_CAPI int32_t U_EXPORT2
02345 u_getPropertyValueEnum(UProperty property,
02346                        const char* alias);
02347 
02365 U_CAPI UBool U_EXPORT2
02366 u_isIDStart(UChar32 c);
02367 
02389 U_CAPI UBool U_EXPORT2
02390 u_isIDPart(UChar32 c);
02391 
02414 U_CAPI UBool U_EXPORT2
02415 u_isIDIgnorable(UChar32 c);
02416 
02433 U_CAPI UBool U_EXPORT2
02434 u_isJavaIDStart(UChar32 c);
02435 
02454 U_CAPI UBool U_EXPORT2
02455 u_isJavaIDPart(UChar32 c);
02456 
02475 U_CAPI UChar32 U_EXPORT2
02476 u_tolower(UChar32 c);
02477 
02496 U_CAPI UChar32 U_EXPORT2
02497 u_toupper(UChar32 c);
02498 
02517 U_CAPI UChar32 U_EXPORT2
02518 u_totitle(UChar32 c);
02519 
02521 #define U_FOLD_CASE_DEFAULT 0
02522 
02539 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
02540 
02559 U_CAPI UChar32 U_EXPORT2
02560 u_foldCase(UChar32 c, uint32_t options);
02561 
02600 U_CAPI int32_t U_EXPORT2
02601 u_digit(UChar32 ch, int8_t radix);
02602 
02631 U_CAPI UChar32 U_EXPORT2
02632 u_forDigit(int32_t digit, int8_t radix);
02633 
02648 U_CAPI void U_EXPORT2
02649 u_charAge(UChar32 c, UVersionInfo versionArray);
02650 
02662 U_CAPI void U_EXPORT2
02663 u_getUnicodeVersion(UVersionInfo versionArray);
02664 
02686 U_CAPI int32_t U_EXPORT2
02687 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
02688 
02689 U_CDECL_END
02690 
02691 #endif /*_UCHAR*/
02692 /*eof*/

Generated on Tue Oct 26 18:11:09 2004 for ICU 2.8 by  doxygen 1.3.9.1