00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef UTYPES_H
00033 #define UTYPES_H
00034
00035
00036 #include "unicode/umachine.h"
00037 #include "unicode/utf.h"
00038 #include "unicode/uversion.h"
00039 #include "unicode/uconfig.h"
00040
00041 #if !U_DEFAULT_SHOW_DRAFT && !defined(U_SHOW_DRAFT_API)
00042 #define U_HIDE_DRAFT_API 1
00043 #endif
00044
00045 #ifdef U_HIDE_DRAFT_API
00046 #include "unicode/udraft.h"
00047 #endif
00048
00049 #ifdef U_HIDE_DEPRECATED_API
00050 #include "unicode/udeprctd.h"
00051 #endif
00052
00053 #ifdef U_HIDE_DEPRECATED_API
00054 #include "unicode/uobslete.h"
00055 #endif
00056
00057 #ifdef U_HIDE_INTERNAL_API
00058 #include "unicode/uintrnal.h"
00059 #endif
00060
00061 #ifdef U_HIDE_SYSTEM_API
00062 #include "unicode/usystem.h"
00063 #endif
00064
00075
00076
00077
00078
00083 #define U_ASCII_FAMILY 0
00084
00089 #define U_EBCDIC_FAMILY 1
00090
00134 #ifndef U_CHARSET_FAMILY
00135 # define U_CHARSET_FAMILY 0
00136 #endif
00137
00138
00139
00140
00141
00158 #if U_CHARSET_FAMILY
00159 # if U_IS_BIG_ENDIAN
00160
00161 # define U_ICUDATA_TYPE_LETTER "e"
00162 # define U_ICUDATA_TYPE_LITLETTER e
00163 # else
00164 # error "Don't know what to do with little endian EBCDIC!"
00165 # define U_ICUDATA_TYPE_LETTER "x"
00166 # define U_ICUDATA_TYPE_LITLETTER x
00167 # endif
00168 #else
00169 # if U_IS_BIG_ENDIAN
00170
00171 # define U_ICUDATA_TYPE_LETTER "b"
00172 # define U_ICUDATA_TYPE_LITLETTER b
00173 # else
00174
00175 # define U_ICUDATA_TYPE_LETTER "l"
00176 # define U_ICUDATA_TYPE_LITLETTER l
00177 # endif
00178 #endif
00179
00185 #define U_ICUDATA_NAME "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER
00186
00187
00199 #define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM)
00200
00205 #define U_DEF2_ICUDATA_ENTRY_POINT(major, minor) U_DEF_ICUDATA_ENTRY_POINT(major, minor)
00206
00210 #define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt##major##minor##_dat
00211
00223 #if defined(OS390) && (__COMPILER_VER__ < 0x41020000) && defined(XP_CPLUSPLUS)
00224 # define U_CALLCONV __cdecl
00225 #else
00226 # define U_CALLCONV U_EXPORT2
00227 #endif
00228
00234 #ifndef NULL
00235 #ifdef XP_CPLUSPLUS
00236 #define NULL 0
00237 #else
00238 #define NULL ((void *)0)
00239 #endif
00240 #endif
00241
00242
00243
00244
00245
00253 typedef double UDate;
00254
00256 #define U_MILLIS_PER_SECOND (1000)
00257
00258 #define U_MILLIS_PER_MINUTE (60000)
00259
00260 #define U_MILLIS_PER_HOUR (3600000)
00261
00262 #define U_MILLIS_PER_DAY (86400000)
00263
00264
00265
00266
00267
00268
00311 typedef void* UClassID;
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00380 #if defined(U_COMBINED_IMPLEMENTATION)
00381 #define U_DATA_API U_EXPORT
00382 #define U_COMMON_API U_EXPORT
00383 #define U_I18N_API U_EXPORT
00384 #define U_LAYOUT_API U_EXPORT
00385 #define U_LAYOUTEX_API U_EXPORT
00386 #define U_IO_API U_EXPORT
00387 #define U_TOOLUTIL_API U_EXPORT
00388 #elif defined(U_STATIC_IMPLEMENTATION)
00389 #define U_DATA_API
00390 #define U_COMMON_API
00391 #define U_I18N_API
00392 #define U_LAYOUT_API
00393 #define U_LAYOUTEX_API
00394 #define U_IO_API
00395 #define U_TOOLUTIL_API
00396 #elif defined(U_COMMON_IMPLEMENTATION)
00397 #define U_DATA_API U_IMPORT
00398 #define U_COMMON_API U_EXPORT
00399 #define U_I18N_API U_IMPORT
00400 #define U_LAYOUT_API U_IMPORT
00401 #define U_LAYOUTEX_API U_IMPORT
00402 #define U_IO_API U_IMPORT
00403 #define U_TOOLUTIL_API U_IMPORT
00404 #elif defined(U_I18N_IMPLEMENTATION)
00405 #define U_DATA_API U_IMPORT
00406 #define U_COMMON_API U_IMPORT
00407 #define U_I18N_API U_EXPORT
00408 #define U_LAYOUT_API U_IMPORT
00409 #define U_LAYOUTEX_API U_IMPORT
00410 #define U_IO_API U_IMPORT
00411 #define U_TOOLUTIL_API U_IMPORT
00412 #elif defined(U_LAYOUT_IMPLEMENTATION)
00413 #define U_DATA_API U_IMPORT
00414 #define U_COMMON_API U_IMPORT
00415 #define U_I18N_API U_IMPORT
00416 #define U_LAYOUT_API U_EXPORT
00417 #define U_LAYOUTEX_API U_IMPORT
00418 #define U_IO_API U_IMPORT
00419 #define U_TOOLUTIL_API U_IMPORT
00420 #elif defined(U_LAYOUTEX_IMPLEMENTATION)
00421 #define U_DATA_API U_IMPORT
00422 #define U_COMMON_API U_IMPORT
00423 #define U_I18N_API U_IMPORT
00424 #define U_LAYOUT_API U_IMPORT
00425 #define U_LAYOUTEX_API U_EXPORT
00426 #define U_IO_API U_IMPORT
00427 #define U_TOOLUTIL_API U_IMPORT
00428 #elif defined(U_IO_IMPLEMENTATION)
00429 #define U_DATA_API U_IMPORT
00430 #define U_COMMON_API U_IMPORT
00431 #define U_I18N_API U_IMPORT
00432 #define U_LAYOUT_API U_IMPORT
00433 #define U_LAYOUTEX_API U_IMPORT
00434 #define U_IO_API U_EXPORT
00435 #define U_TOOLUTIL_API U_IMPORT
00436 #elif defined(U_TOOLUTIL_IMPLEMENTATION)
00437 #define U_DATA_API U_IMPORT
00438 #define U_COMMON_API U_IMPORT
00439 #define U_I18N_API U_IMPORT
00440 #define U_LAYOUT_API U_IMPORT
00441 #define U_LAYOUTEX_API U_IMPORT
00442 #define U_IO_API U_IMPORT
00443 #define U_TOOLUTIL_API U_EXPORT
00444 #else
00445 #define U_DATA_API U_IMPORT
00446 #define U_COMMON_API U_IMPORT
00447 #define U_I18N_API U_IMPORT
00448 #define U_LAYOUT_API U_IMPORT
00449 #define U_LAYOUTEX_API U_IMPORT
00450 #define U_IO_API U_IMPORT
00451 #define U_TOOLUTIL_API U_IMPORT
00452 #endif
00453
00459 #ifdef __cplusplus
00460 #define U_STANDARD_CPP_NAMESPACE ::
00461 #else
00462 #define U_STANDARD_CPP_NAMESPACE
00463 #endif
00464
00465
00466
00467
00468
00469
00470
00471
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490
00491 #if defined(XP_CPLUSPLUS) && defined(U_WINDOWS) && (_MSC_VER>=1200) && U_DEBUG && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_USTDIO_IMPLEMENTATION))
00492
00493 #ifndef U_HIDE_INTERNAL_API
00494
00499 inline void *
00500 operator new(size_t ) {
00501 char *q=NULL;
00502 *q=5;
00503 return q;
00504 }
00505
00511 inline void *
00512 operator new[](size_t ) {
00513 char *q=NULL;
00514 *q=5;
00515 return q;
00516 }
00517
00523 inline void
00524 operator delete(void * ) {
00525 char *q=NULL;
00526 *q=5;
00527 }
00528
00534 inline void
00535 operator delete[](void * ) {
00536 char *q=NULL;
00537 *q=5;
00538 }
00539
00540 #endif
00541 #endif
00542
00543
00544
00545
00546
00561 typedef enum UErrorCode {
00562
00563
00564
00565
00566
00567 U_USING_FALLBACK_WARNING = -128,
00569 U_ERROR_WARNING_START = -128,
00571 U_USING_DEFAULT_WARNING = -127,
00573 U_SAFECLONE_ALLOCATED_WARNING = -126,
00575 U_STATE_OLD_WARNING = -125,
00577 U_STRING_NOT_TERMINATED_WARNING = -124,
00579 U_SORT_KEY_TOO_SHORT_WARNING = -123,
00581 U_AMBIGUOUS_ALIAS_WARNING = -122,
00583 U_DIFFERENT_UCA_VERSION = -121,
00585 U_ERROR_WARNING_LIMIT,
00588 U_ZERO_ERROR = 0,
00590 U_ILLEGAL_ARGUMENT_ERROR = 1,
00591 U_MISSING_RESOURCE_ERROR = 2,
00592 U_INVALID_FORMAT_ERROR = 3,
00593 U_FILE_ACCESS_ERROR = 4,
00594 U_INTERNAL_PROGRAM_ERROR = 5,
00595 U_MESSAGE_PARSE_ERROR = 6,
00596 U_MEMORY_ALLOCATION_ERROR = 7,
00597 U_INDEX_OUTOFBOUNDS_ERROR = 8,
00598 U_PARSE_ERROR = 9,
00599 U_INVALID_CHAR_FOUND = 10,
00600 U_TRUNCATED_CHAR_FOUND = 11,
00601 U_ILLEGAL_CHAR_FOUND = 12,
00602 U_INVALID_TABLE_FORMAT = 13,
00603 U_INVALID_TABLE_FILE = 14,
00604 U_BUFFER_OVERFLOW_ERROR = 15,
00605 U_UNSUPPORTED_ERROR = 16,
00606 U_RESOURCE_TYPE_MISMATCH = 17,
00607 U_ILLEGAL_ESCAPE_SEQUENCE = 18,
00608 U_UNSUPPORTED_ESCAPE_SEQUENCE = 19,
00609 U_NO_SPACE_AVAILABLE = 20,
00610 U_CE_NOT_FOUND_ERROR = 21,
00611 U_PRIMARY_TOO_LONG_ERROR = 22,
00612 U_STATE_TOO_OLD_ERROR = 23,
00613 U_TOO_MANY_ALIASES_ERROR = 24,
00615 U_ENUM_OUT_OF_SYNC_ERROR = 25,
00616 U_INVARIANT_CONVERSION_ERROR = 26,
00617 U_INVALID_STATE_ERROR = 27,
00618 U_COLLATOR_VERSION_MISMATCH = 28,
00619 U_USELESS_COLLATOR_ERROR = 29,
00620 U_NO_WRITE_PERMISSION = 30,
00622 U_STANDARD_ERROR_LIMIT,
00623
00624
00625
00626 U_BAD_VARIABLE_DEFINITION=0x10000,
00627 U_PARSE_ERROR_START = 0x10000,
00628 U_MALFORMED_RULE,
00629 U_MALFORMED_SET,
00630 U_MALFORMED_SYMBOL_REFERENCE,
00631 U_MALFORMED_UNICODE_ESCAPE,
00632 U_MALFORMED_VARIABLE_DEFINITION,
00633 U_MALFORMED_VARIABLE_REFERENCE,
00634 U_MISMATCHED_SEGMENT_DELIMITERS,
00635 U_MISPLACED_ANCHOR_START,
00636 U_MISPLACED_CURSOR_OFFSET,
00637 U_MISPLACED_QUANTIFIER,
00638 U_MISSING_OPERATOR,
00639 U_MISSING_SEGMENT_CLOSE,
00640 U_MULTIPLE_ANTE_CONTEXTS,
00641 U_MULTIPLE_CURSORS,
00642 U_MULTIPLE_POST_CONTEXTS,
00643 U_TRAILING_BACKSLASH,
00644 U_UNDEFINED_SEGMENT_REFERENCE,
00645 U_UNDEFINED_VARIABLE,
00646 U_UNQUOTED_SPECIAL,
00647 U_UNTERMINATED_QUOTE,
00648 U_RULE_MASK_ERROR,
00649 U_MISPLACED_COMPOUND_FILTER,
00650 U_MULTIPLE_COMPOUND_FILTERS,
00651 U_INVALID_RBT_SYNTAX,
00652 U_INVALID_PROPERTY_PATTERN,
00653 U_MALFORMED_PRAGMA,
00654 U_UNCLOSED_SEGMENT,
00655 U_ILLEGAL_CHAR_IN_SEGMENT,
00656 U_VARIABLE_RANGE_EXHAUSTED,
00657 U_VARIABLE_RANGE_OVERLAP,
00658 U_ILLEGAL_CHARACTER,
00659 U_INTERNAL_TRANSLITERATOR_ERROR,
00660 U_INVALID_ID,
00661 U_INVALID_FUNCTION,
00662 U_PARSE_ERROR_LIMIT,
00664
00665
00666
00667 U_UNEXPECTED_TOKEN=0x10100,
00668 U_FMT_PARSE_ERROR_START=0x10100,
00669 U_MULTIPLE_DECIMAL_SEPARATORS,
00670 U_MULTIPLE_DECIMAL_SEPERATORS = U_MULTIPLE_DECIMAL_SEPARATORS,
00671 U_MULTIPLE_EXPONENTIAL_SYMBOLS,
00672 U_MALFORMED_EXPONENTIAL_PATTERN,
00673 U_MULTIPLE_PERCENT_SYMBOLS,
00674 U_MULTIPLE_PERMILL_SYMBOLS,
00675 U_MULTIPLE_PAD_SPECIFIERS,
00676 U_PATTERN_SYNTAX_ERROR,
00677 U_ILLEGAL_PAD_POSITION,
00678 U_UNMATCHED_BRACES,
00679 U_UNSUPPORTED_PROPERTY,
00680 U_UNSUPPORTED_ATTRIBUTE,
00681 U_FMT_PARSE_ERROR_LIMIT,
00683
00684
00685
00686 U_BRK_INTERNAL_ERROR=0x10200,
00687 U_BRK_ERROR_START=0x10200,
00688 U_BRK_HEX_DIGITS_EXPECTED,
00689 U_BRK_SEMICOLON_EXPECTED,
00690 U_BRK_RULE_SYNTAX,
00691 U_BRK_UNCLOSED_SET,
00692 U_BRK_ASSIGN_ERROR,
00693 U_BRK_VARIABLE_REDFINITION,
00694 U_BRK_MISMATCHED_PAREN,
00695 U_BRK_NEW_LINE_IN_QUOTED_STRING,
00696 U_BRK_UNDEFINED_VARIABLE,
00697 U_BRK_INIT_ERROR,
00698 U_BRK_RULE_EMPTY_SET,
00699 U_BRK_UNRECOGNIZED_OPTION,
00700 U_BRK_MALFORMED_RULE_TAG,
00701 U_BRK_ERROR_LIMIT,
00703
00704
00705
00706 U_REGEX_INTERNAL_ERROR=0x10300,
00707 U_REGEX_ERROR_START=0x10300,
00708 U_REGEX_RULE_SYNTAX,
00709 U_REGEX_INVALID_STATE,
00710 U_REGEX_BAD_ESCAPE_SEQUENCE,
00711 U_REGEX_PROPERTY_SYNTAX,
00712 U_REGEX_UNIMPLEMENTED,
00713 U_REGEX_MISMATCHED_PAREN,
00714 U_REGEX_NUMBER_TOO_BIG,
00715 U_REGEX_BAD_INTERVAL,
00716 U_REGEX_MAX_LT_MIN,
00717 U_REGEX_INVALID_BACK_REF,
00718 U_REGEX_INVALID_FLAG,
00719 U_REGEX_LOOK_BEHIND_LIMIT,
00720 U_REGEX_SET_CONTAINS_STRING,
00721 U_REGEX_ERROR_LIMIT,
00723
00724
00725
00726 U_IDNA_PROHIBITED_ERROR=0x10400,
00727 U_IDNA_ERROR_START=0x10400,
00728 U_IDNA_UNASSIGNED_ERROR,
00729 U_IDNA_CHECK_BIDI_ERROR,
00730 U_IDNA_STD3_ASCII_RULES_ERROR,
00731 U_IDNA_ACE_PREFIX_ERROR,
00732 U_IDNA_VERIFICATION_ERROR,
00733 U_IDNA_LABEL_TOO_LONG_ERROR,
00734 U_IDNA_ZERO_LENGTH_LABEL_ERROR,
00735 U_IDNA_ERROR_LIMIT,
00736
00737
00738
00739 U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR,
00740 U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR,
00741 U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR,
00742
00743
00744 U_ERROR_LIMIT=U_IDNA_ERROR_LIMIT
00745 } UErrorCode;
00746
00747
00748
00749
00750 #ifdef XP_CPLUSPLUS
00751
00755 static
00756 inline UBool U_SUCCESS(UErrorCode code) { return (UBool)(code<=U_ZERO_ERROR); }
00761 static
00762 inline UBool U_FAILURE(UErrorCode code) { return (UBool)(code>U_ZERO_ERROR); }
00763 #else
00764
00768 # define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)
00769
00773 # define U_FAILURE(x) ((x)>U_ZERO_ERROR)
00774 #endif
00775
00782 U_STABLE const char * U_EXPORT2
00783 u_errorName(UErrorCode code);
00784
00785
00786 #endif