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) && U_DEBUG && U_OVERRIDE_CXX_ALLOCATION && (_MSC_VER>=1200) && !defined(U_STATIC_IMPLEMENTATION) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_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
00506 #ifdef _Ret_bytecap_
00507
00508 _Ret_bytecap_(_Size)
00509 #endif
00510
00515 inline void *
00516 operator new[](size_t ) {
00517 char *q=NULL;
00518 *q=5;
00519 return q;
00520 }
00521
00527 inline void
00528 operator delete(void * ) {
00529 char *q=NULL;
00530 *q=5;
00531 }
00532
00538 inline void
00539 operator delete[](void * ) {
00540 char *q=NULL;
00541 *q=5;
00542 }
00543
00544 #endif
00545 #endif
00546
00547
00548
00549
00550
00565 typedef enum UErrorCode {
00566
00567
00568
00569
00570
00571 U_USING_FALLBACK_WARNING = -128,
00573 U_ERROR_WARNING_START = -128,
00575 U_USING_DEFAULT_WARNING = -127,
00577 U_SAFECLONE_ALLOCATED_WARNING = -126,
00579 U_STATE_OLD_WARNING = -125,
00581 U_STRING_NOT_TERMINATED_WARNING = -124,
00583 U_SORT_KEY_TOO_SHORT_WARNING = -123,
00585 U_AMBIGUOUS_ALIAS_WARNING = -122,
00587 U_DIFFERENT_UCA_VERSION = -121,
00589 U_ERROR_WARNING_LIMIT,
00592 U_ZERO_ERROR = 0,
00594 U_ILLEGAL_ARGUMENT_ERROR = 1,
00595 U_MISSING_RESOURCE_ERROR = 2,
00596 U_INVALID_FORMAT_ERROR = 3,
00597 U_FILE_ACCESS_ERROR = 4,
00598 U_INTERNAL_PROGRAM_ERROR = 5,
00599 U_MESSAGE_PARSE_ERROR = 6,
00600 U_MEMORY_ALLOCATION_ERROR = 7,
00601 U_INDEX_OUTOFBOUNDS_ERROR = 8,
00602 U_PARSE_ERROR = 9,
00603 U_INVALID_CHAR_FOUND = 10,
00604 U_TRUNCATED_CHAR_FOUND = 11,
00605 U_ILLEGAL_CHAR_FOUND = 12,
00606 U_INVALID_TABLE_FORMAT = 13,
00607 U_INVALID_TABLE_FILE = 14,
00608 U_BUFFER_OVERFLOW_ERROR = 15,
00609 U_UNSUPPORTED_ERROR = 16,
00610 U_RESOURCE_TYPE_MISMATCH = 17,
00611 U_ILLEGAL_ESCAPE_SEQUENCE = 18,
00612 U_UNSUPPORTED_ESCAPE_SEQUENCE = 19,
00613 U_NO_SPACE_AVAILABLE = 20,
00614 U_CE_NOT_FOUND_ERROR = 21,
00615 U_PRIMARY_TOO_LONG_ERROR = 22,
00616 U_STATE_TOO_OLD_ERROR = 23,
00617 U_TOO_MANY_ALIASES_ERROR = 24,
00619 U_ENUM_OUT_OF_SYNC_ERROR = 25,
00620 U_INVARIANT_CONVERSION_ERROR = 26,
00621 U_INVALID_STATE_ERROR = 27,
00622 U_COLLATOR_VERSION_MISMATCH = 28,
00623 U_USELESS_COLLATOR_ERROR = 29,
00624 U_NO_WRITE_PERMISSION = 30,
00626 U_STANDARD_ERROR_LIMIT,
00627
00628
00629
00630 U_BAD_VARIABLE_DEFINITION=0x10000,
00631 U_PARSE_ERROR_START = 0x10000,
00632 U_MALFORMED_RULE,
00633 U_MALFORMED_SET,
00634 U_MALFORMED_SYMBOL_REFERENCE,
00635 U_MALFORMED_UNICODE_ESCAPE,
00636 U_MALFORMED_VARIABLE_DEFINITION,
00637 U_MALFORMED_VARIABLE_REFERENCE,
00638 U_MISMATCHED_SEGMENT_DELIMITERS,
00639 U_MISPLACED_ANCHOR_START,
00640 U_MISPLACED_CURSOR_OFFSET,
00641 U_MISPLACED_QUANTIFIER,
00642 U_MISSING_OPERATOR,
00643 U_MISSING_SEGMENT_CLOSE,
00644 U_MULTIPLE_ANTE_CONTEXTS,
00645 U_MULTIPLE_CURSORS,
00646 U_MULTIPLE_POST_CONTEXTS,
00647 U_TRAILING_BACKSLASH,
00648 U_UNDEFINED_SEGMENT_REFERENCE,
00649 U_UNDEFINED_VARIABLE,
00650 U_UNQUOTED_SPECIAL,
00651 U_UNTERMINATED_QUOTE,
00652 U_RULE_MASK_ERROR,
00653 U_MISPLACED_COMPOUND_FILTER,
00654 U_MULTIPLE_COMPOUND_FILTERS,
00655 U_INVALID_RBT_SYNTAX,
00656 U_INVALID_PROPERTY_PATTERN,
00657 U_MALFORMED_PRAGMA,
00658 U_UNCLOSED_SEGMENT,
00659 U_ILLEGAL_CHAR_IN_SEGMENT,
00660 U_VARIABLE_RANGE_EXHAUSTED,
00661 U_VARIABLE_RANGE_OVERLAP,
00662 U_ILLEGAL_CHARACTER,
00663 U_INTERNAL_TRANSLITERATOR_ERROR,
00664 U_INVALID_ID,
00665 U_INVALID_FUNCTION,
00666 U_PARSE_ERROR_LIMIT,
00668
00669
00670
00671 U_UNEXPECTED_TOKEN=0x10100,
00672 U_FMT_PARSE_ERROR_START=0x10100,
00673 U_MULTIPLE_DECIMAL_SEPARATORS,
00674 U_MULTIPLE_DECIMAL_SEPERATORS = U_MULTIPLE_DECIMAL_SEPARATORS,
00675 U_MULTIPLE_EXPONENTIAL_SYMBOLS,
00676 U_MALFORMED_EXPONENTIAL_PATTERN,
00677 U_MULTIPLE_PERCENT_SYMBOLS,
00678 U_MULTIPLE_PERMILL_SYMBOLS,
00679 U_MULTIPLE_PAD_SPECIFIERS,
00680 U_PATTERN_SYNTAX_ERROR,
00681 U_ILLEGAL_PAD_POSITION,
00682 U_UNMATCHED_BRACES,
00683 U_UNSUPPORTED_PROPERTY,
00684 U_UNSUPPORTED_ATTRIBUTE,
00685 U_ARGUMENT_TYPE_MISMATCH,
00686 U_DUPLICATE_KEYWORD,
00687 U_UNDEFINED_KEYWORD,
00688 U_DEFAULT_KEYWORD_MISSING,
00689 U_FMT_PARSE_ERROR_LIMIT,
00691
00692
00693
00694 U_BRK_INTERNAL_ERROR=0x10200,
00695 U_BRK_ERROR_START=0x10200,
00696 U_BRK_HEX_DIGITS_EXPECTED,
00697 U_BRK_SEMICOLON_EXPECTED,
00698 U_BRK_RULE_SYNTAX,
00699 U_BRK_UNCLOSED_SET,
00700 U_BRK_ASSIGN_ERROR,
00701 U_BRK_VARIABLE_REDFINITION,
00702 U_BRK_MISMATCHED_PAREN,
00703 U_BRK_NEW_LINE_IN_QUOTED_STRING,
00704 U_BRK_UNDEFINED_VARIABLE,
00705 U_BRK_INIT_ERROR,
00706 U_BRK_RULE_EMPTY_SET,
00707 U_BRK_UNRECOGNIZED_OPTION,
00708 U_BRK_MALFORMED_RULE_TAG,
00709 U_BRK_ERROR_LIMIT,
00711
00712
00713
00714 U_REGEX_INTERNAL_ERROR=0x10300,
00715 U_REGEX_ERROR_START=0x10300,
00716 U_REGEX_RULE_SYNTAX,
00717 U_REGEX_INVALID_STATE,
00718 U_REGEX_BAD_ESCAPE_SEQUENCE,
00719 U_REGEX_PROPERTY_SYNTAX,
00720 U_REGEX_UNIMPLEMENTED,
00721 U_REGEX_MISMATCHED_PAREN,
00722 U_REGEX_NUMBER_TOO_BIG,
00723 U_REGEX_BAD_INTERVAL,
00724 U_REGEX_MAX_LT_MIN,
00725 U_REGEX_INVALID_BACK_REF,
00726 U_REGEX_INVALID_FLAG,
00727 U_REGEX_LOOK_BEHIND_LIMIT,
00728 U_REGEX_SET_CONTAINS_STRING,
00729 U_REGEX_OCTAL_TOO_BIG,
00730 U_REGEX_MISSING_CLOSE_BRACKET,
00731 U_REGEX_INVALID_RANGE,
00732 U_REGEX_STACK_OVERFLOW,
00733 U_REGEX_TIME_OUT,
00734 U_REGEX_STOPPED_BY_CALLER,
00735 U_REGEX_ERROR_LIMIT,
00737
00738
00739
00740 U_IDNA_PROHIBITED_ERROR=0x10400,
00741 U_IDNA_ERROR_START=0x10400,
00742 U_IDNA_UNASSIGNED_ERROR,
00743 U_IDNA_CHECK_BIDI_ERROR,
00744 U_IDNA_STD3_ASCII_RULES_ERROR,
00745 U_IDNA_ACE_PREFIX_ERROR,
00746 U_IDNA_VERIFICATION_ERROR,
00747 U_IDNA_LABEL_TOO_LONG_ERROR,
00748 U_IDNA_ZERO_LENGTH_LABEL_ERROR,
00749 U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR,
00750 U_IDNA_ERROR_LIMIT,
00751
00752
00753
00754 U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR,
00755 U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR,
00756 U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR,
00757
00758
00759 U_ERROR_LIMIT=U_IDNA_ERROR_LIMIT
00760 } UErrorCode;
00761
00762
00763
00764
00765 #ifdef XP_CPLUSPLUS
00766
00770 static
00771 inline UBool U_SUCCESS(UErrorCode code) { return (UBool)(code<=U_ZERO_ERROR); }
00776 static
00777 inline UBool U_FAILURE(UErrorCode code) { return (UBool)(code>U_ZERO_ERROR); }
00778 #else
00779
00783 # define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)
00784
00788 # define U_FAILURE(x) ((x)>U_ZERO_ERROR)
00789 #endif
00790
00797 U_STABLE const char * U_EXPORT2
00798 u_errorName(UErrorCode code);
00799
00800
00801 #endif