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
00033
00034 #ifndef UTYPES_H
00035 #define UTYPES_H
00036
00037
00038 #include "unicode/umachine.h"
00039 #include "unicode/uversion.h"
00040 #include "unicode/uconfig.h"
00041 #include <float.h>
00042
00043 #if !U_NO_DEFAULT_INCLUDE_UTF_HEADERS
00044 # include "unicode/utf.h"
00045 #endif
00046
00062 #ifdef __cplusplus
00063 # ifndef U_SHOW_CPLUSPLUS_API
00064 # define U_SHOW_CPLUSPLUS_API 1
00065 # endif
00066 #else
00067 # undef U_SHOW_CPLUSPLUS_API
00068 # define U_SHOW_CPLUSPLUS_API 0
00069 #endif
00070
00083 #if !U_DEFAULT_SHOW_DRAFT && !defined(U_SHOW_DRAFT_API)
00084 #define U_HIDE_DRAFT_API 1
00085 #endif
00086 #if !U_DEFAULT_SHOW_DRAFT && !defined(U_SHOW_INTERNAL_API)
00087 #define U_HIDE_INTERNAL_API 1
00088 #endif
00089
00092
00093
00094
00095
00112 #if U_CHARSET_FAMILY
00113 # if U_IS_BIG_ENDIAN
00114
00115 # define U_ICUDATA_TYPE_LETTER "e"
00116 # define U_ICUDATA_TYPE_LITLETTER e
00117 # else
00118 # error "Don't know what to do with little endian EBCDIC!"
00119 # define U_ICUDATA_TYPE_LETTER "x"
00120 # define U_ICUDATA_TYPE_LITLETTER x
00121 # endif
00122 #else
00123 # if U_IS_BIG_ENDIAN
00124
00125 # define U_ICUDATA_TYPE_LETTER "b"
00126 # define U_ICUDATA_TYPE_LITLETTER b
00127 # else
00128
00129 # define U_ICUDATA_TYPE_LETTER "l"
00130 # define U_ICUDATA_TYPE_LITLETTER l
00131 # endif
00132 #endif
00133
00139 #define U_ICUDATA_NAME "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER
00140 #ifndef U_HIDE_INTERNAL_API
00141 #define U_USRDATA_NAME "usrdt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER
00142 #define U_USE_USRDATA 0
00143 #endif
00144
00156 #define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM,U_LIB_SUFFIX_C_NAME)
00157
00158 #ifndef U_HIDE_INTERNAL_API
00159
00163 #define U_DEF2_ICUDATA_ENTRY_POINT(major,suff) U_DEF_ICUDATA_ENTRY_POINT(major,suff)
00164
00169 #ifndef U_DEF_ICUDATA_ENTRY_POINT
00170
00171 #ifndef U_LIB_SUFFIX_C_NAME
00172 #define U_DEF_ICUDATA_ENTRY_POINT(major, suff) icudt##major##_dat
00173 #else
00174 #define U_DEF_ICUDATA_ENTRY_POINT(major, suff) icudt##suff ## major##_dat
00175 #endif
00176 #endif
00177 #endif
00178
00184 #ifndef NULL
00185 #ifdef __cplusplus
00186 #define NULL nullptr
00187 #else
00188 #define NULL ((void *)0)
00189 #endif
00190 #endif
00191
00192
00193
00194
00195
00203 typedef double UDate;
00204
00206 #define U_MILLIS_PER_SECOND (1000)
00207
00208 #define U_MILLIS_PER_MINUTE (60000)
00209
00210 #define U_MILLIS_PER_HOUR (3600000)
00211
00212 #define U_MILLIS_PER_DAY (86400000)
00213
00218 #define U_DATE_MAX DBL_MAX
00219
00224 #define U_DATE_MIN -U_DATE_MAX
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00293 #ifdef U_IN_DOXYGEN
00294
00295 #define U_COMBINED_IMPLEMENTATION 1
00296 #endif
00297
00298 #if defined(U_COMBINED_IMPLEMENTATION)
00299 #define U_DATA_API U_EXPORT
00300 #define U_COMMON_API U_EXPORT
00301 #define U_I18N_API U_EXPORT
00302 #define U_LAYOUT_API U_EXPORT
00303 #define U_LAYOUTEX_API U_EXPORT
00304 #define U_IO_API U_EXPORT
00305 #define U_TOOLUTIL_API U_EXPORT
00306 #elif defined(U_STATIC_IMPLEMENTATION)
00307 #define U_DATA_API
00308 #define U_COMMON_API
00309 #define U_I18N_API
00310 #define U_LAYOUT_API
00311 #define U_LAYOUTEX_API
00312 #define U_IO_API
00313 #define U_TOOLUTIL_API
00314 #elif defined(U_COMMON_IMPLEMENTATION)
00315 #define U_DATA_API U_IMPORT
00316 #define U_COMMON_API U_EXPORT
00317 #define U_I18N_API U_IMPORT
00318 #define U_LAYOUT_API U_IMPORT
00319 #define U_LAYOUTEX_API U_IMPORT
00320 #define U_IO_API U_IMPORT
00321 #define U_TOOLUTIL_API U_IMPORT
00322 #elif defined(U_I18N_IMPLEMENTATION)
00323 #define U_DATA_API U_IMPORT
00324 #define U_COMMON_API U_IMPORT
00325 #define U_I18N_API U_EXPORT
00326 #define U_LAYOUT_API U_IMPORT
00327 #define U_LAYOUTEX_API U_IMPORT
00328 #define U_IO_API U_IMPORT
00329 #define U_TOOLUTIL_API U_IMPORT
00330 #elif defined(U_LAYOUT_IMPLEMENTATION)
00331 #define U_DATA_API U_IMPORT
00332 #define U_COMMON_API U_IMPORT
00333 #define U_I18N_API U_IMPORT
00334 #define U_LAYOUT_API U_EXPORT
00335 #define U_LAYOUTEX_API U_IMPORT
00336 #define U_IO_API U_IMPORT
00337 #define U_TOOLUTIL_API U_IMPORT
00338 #elif defined(U_LAYOUTEX_IMPLEMENTATION)
00339 #define U_DATA_API U_IMPORT
00340 #define U_COMMON_API U_IMPORT
00341 #define U_I18N_API U_IMPORT
00342 #define U_LAYOUT_API U_IMPORT
00343 #define U_LAYOUTEX_API U_EXPORT
00344 #define U_IO_API U_IMPORT
00345 #define U_TOOLUTIL_API U_IMPORT
00346 #elif defined(U_IO_IMPLEMENTATION)
00347 #define U_DATA_API U_IMPORT
00348 #define U_COMMON_API U_IMPORT
00349 #define U_I18N_API U_IMPORT
00350 #define U_LAYOUT_API U_IMPORT
00351 #define U_LAYOUTEX_API U_IMPORT
00352 #define U_IO_API U_EXPORT
00353 #define U_TOOLUTIL_API U_IMPORT
00354 #elif defined(U_TOOLUTIL_IMPLEMENTATION)
00355 #define U_DATA_API U_IMPORT
00356 #define U_COMMON_API U_IMPORT
00357 #define U_I18N_API U_IMPORT
00358 #define U_LAYOUT_API U_IMPORT
00359 #define U_LAYOUTEX_API U_IMPORT
00360 #define U_IO_API U_IMPORT
00361 #define U_TOOLUTIL_API U_EXPORT
00362 #else
00363 #define U_DATA_API U_IMPORT
00364 #define U_COMMON_API U_IMPORT
00365 #define U_I18N_API U_IMPORT
00366 #define U_LAYOUT_API U_IMPORT
00367 #define U_LAYOUTEX_API U_IMPORT
00368 #define U_IO_API U_IMPORT
00369 #define U_TOOLUTIL_API U_IMPORT
00370 #endif
00371
00377 #ifdef __cplusplus
00378 #define U_STANDARD_CPP_NAMESPACE ::
00379 #else
00380 #define U_STANDARD_CPP_NAMESPACE
00381 #endif
00382
00383
00384
00385
00386
00401 typedef enum UErrorCode {
00402
00403
00404
00405
00406
00407 U_USING_FALLBACK_WARNING = -128,
00409 U_ERROR_WARNING_START = -128,
00411 U_USING_DEFAULT_WARNING = -127,
00413 U_SAFECLONE_ALLOCATED_WARNING = -126,
00415 U_STATE_OLD_WARNING = -125,
00417 U_STRING_NOT_TERMINATED_WARNING = -124,
00419 U_SORT_KEY_TOO_SHORT_WARNING = -123,
00421 U_AMBIGUOUS_ALIAS_WARNING = -122,
00423 U_DIFFERENT_UCA_VERSION = -121,
00425 U_PLUGIN_CHANGED_LEVEL_WARNING = -120,
00427 #ifndef U_HIDE_DEPRECATED_API
00428
00432 U_ERROR_WARNING_LIMIT,
00433 #endif // U_HIDE_DEPRECATED_API
00434
00435 U_ZERO_ERROR = 0,
00437 U_ILLEGAL_ARGUMENT_ERROR = 1,
00438 U_MISSING_RESOURCE_ERROR = 2,
00439 U_INVALID_FORMAT_ERROR = 3,
00440 U_FILE_ACCESS_ERROR = 4,
00441 U_INTERNAL_PROGRAM_ERROR = 5,
00442 U_MESSAGE_PARSE_ERROR = 6,
00443 U_MEMORY_ALLOCATION_ERROR = 7,
00444 U_INDEX_OUTOFBOUNDS_ERROR = 8,
00445 U_PARSE_ERROR = 9,
00446 U_INVALID_CHAR_FOUND = 10,
00447 U_TRUNCATED_CHAR_FOUND = 11,
00448 U_ILLEGAL_CHAR_FOUND = 12,
00449 U_INVALID_TABLE_FORMAT = 13,
00450 U_INVALID_TABLE_FILE = 14,
00451 U_BUFFER_OVERFLOW_ERROR = 15,
00452 U_UNSUPPORTED_ERROR = 16,
00453 U_RESOURCE_TYPE_MISMATCH = 17,
00454 U_ILLEGAL_ESCAPE_SEQUENCE = 18,
00455 U_UNSUPPORTED_ESCAPE_SEQUENCE = 19,
00456 U_NO_SPACE_AVAILABLE = 20,
00457 U_CE_NOT_FOUND_ERROR = 21,
00458 U_PRIMARY_TOO_LONG_ERROR = 22,
00459 U_STATE_TOO_OLD_ERROR = 23,
00460 U_TOO_MANY_ALIASES_ERROR = 24,
00462 U_ENUM_OUT_OF_SYNC_ERROR = 25,
00463 U_INVARIANT_CONVERSION_ERROR = 26,
00464 U_INVALID_STATE_ERROR = 27,
00465 U_COLLATOR_VERSION_MISMATCH = 28,
00466 U_USELESS_COLLATOR_ERROR = 29,
00467 U_NO_WRITE_PERMISSION = 30,
00469 #ifndef U_HIDE_DEPRECATED_API
00470
00474 U_STANDARD_ERROR_LIMIT,
00475 #endif // U_HIDE_DEPRECATED_API
00476
00477
00478
00479
00480 U_BAD_VARIABLE_DEFINITION=0x10000,
00481 U_PARSE_ERROR_START = 0x10000,
00482 U_MALFORMED_RULE,
00483 U_MALFORMED_SET,
00484 U_MALFORMED_SYMBOL_REFERENCE,
00485 U_MALFORMED_UNICODE_ESCAPE,
00486 U_MALFORMED_VARIABLE_DEFINITION,
00487 U_MALFORMED_VARIABLE_REFERENCE,
00488 U_MISMATCHED_SEGMENT_DELIMITERS,
00489 U_MISPLACED_ANCHOR_START,
00490 U_MISPLACED_CURSOR_OFFSET,
00491 U_MISPLACED_QUANTIFIER,
00492 U_MISSING_OPERATOR,
00493 U_MISSING_SEGMENT_CLOSE,
00494 U_MULTIPLE_ANTE_CONTEXTS,
00495 U_MULTIPLE_CURSORS,
00496 U_MULTIPLE_POST_CONTEXTS,
00497 U_TRAILING_BACKSLASH,
00498 U_UNDEFINED_SEGMENT_REFERENCE,
00499 U_UNDEFINED_VARIABLE,
00500 U_UNQUOTED_SPECIAL,
00501 U_UNTERMINATED_QUOTE,
00502 U_RULE_MASK_ERROR,
00503 U_MISPLACED_COMPOUND_FILTER,
00504 U_MULTIPLE_COMPOUND_FILTERS,
00505 U_INVALID_RBT_SYNTAX,
00506 U_INVALID_PROPERTY_PATTERN,
00507 U_MALFORMED_PRAGMA,
00508 U_UNCLOSED_SEGMENT,
00509 U_ILLEGAL_CHAR_IN_SEGMENT,
00510 U_VARIABLE_RANGE_EXHAUSTED,
00511 U_VARIABLE_RANGE_OVERLAP,
00512 U_ILLEGAL_CHARACTER,
00513 U_INTERNAL_TRANSLITERATOR_ERROR,
00514 U_INVALID_ID,
00515 U_INVALID_FUNCTION,
00516 #ifndef U_HIDE_DEPRECATED_API
00517
00521 U_PARSE_ERROR_LIMIT,
00522 #endif // U_HIDE_DEPRECATED_API
00523
00524
00525
00526
00527 U_UNEXPECTED_TOKEN=0x10100,
00528 U_FMT_PARSE_ERROR_START=0x10100,
00529 U_MULTIPLE_DECIMAL_SEPARATORS,
00530 U_MULTIPLE_DECIMAL_SEPERATORS = U_MULTIPLE_DECIMAL_SEPARATORS,
00531 U_MULTIPLE_EXPONENTIAL_SYMBOLS,
00532 U_MALFORMED_EXPONENTIAL_PATTERN,
00533 U_MULTIPLE_PERCENT_SYMBOLS,
00534 U_MULTIPLE_PERMILL_SYMBOLS,
00535 U_MULTIPLE_PAD_SPECIFIERS,
00536 U_PATTERN_SYNTAX_ERROR,
00537 U_ILLEGAL_PAD_POSITION,
00538 U_UNMATCHED_BRACES,
00539 U_UNSUPPORTED_PROPERTY,
00540 U_UNSUPPORTED_ATTRIBUTE,
00541 U_ARGUMENT_TYPE_MISMATCH,
00542 U_DUPLICATE_KEYWORD,
00543 U_UNDEFINED_KEYWORD,
00544 U_DEFAULT_KEYWORD_MISSING,
00545 U_DECIMAL_NUMBER_SYNTAX_ERROR,
00546 U_FORMAT_INEXACT_ERROR,
00547 #ifndef U_HIDE_DRAFT_API
00548 U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
00549 #endif // U_HIDE_DRAFT_API
00550 #ifndef U_HIDE_DRAFT_API
00551 U_NUMBER_SKELETON_SYNTAX_ERROR,
00552 #endif // U_HIDE_DRAFT_API
00553 #ifndef U_HIDE_DEPRECATED_API
00554
00558 U_FMT_PARSE_ERROR_LIMIT = 0x10114,
00559 #endif // U_HIDE_DEPRECATED_API
00560
00561
00562
00563
00564 U_BRK_INTERNAL_ERROR=0x10200,
00565 U_BRK_ERROR_START=0x10200,
00566 U_BRK_HEX_DIGITS_EXPECTED,
00567 U_BRK_SEMICOLON_EXPECTED,
00568 U_BRK_RULE_SYNTAX,
00569 U_BRK_UNCLOSED_SET,
00570 U_BRK_ASSIGN_ERROR,
00571 U_BRK_VARIABLE_REDFINITION,
00572 U_BRK_MISMATCHED_PAREN,
00573 U_BRK_NEW_LINE_IN_QUOTED_STRING,
00574 U_BRK_UNDEFINED_VARIABLE,
00575 U_BRK_INIT_ERROR,
00576 U_BRK_RULE_EMPTY_SET,
00577 U_BRK_UNRECOGNIZED_OPTION,
00578 U_BRK_MALFORMED_RULE_TAG,
00579 #ifndef U_HIDE_DEPRECATED_API
00580
00584 U_BRK_ERROR_LIMIT,
00585 #endif // U_HIDE_DEPRECATED_API
00586
00587
00588
00589
00590 U_REGEX_INTERNAL_ERROR=0x10300,
00591 U_REGEX_ERROR_START=0x10300,
00592 U_REGEX_RULE_SYNTAX,
00593 U_REGEX_INVALID_STATE,
00594 U_REGEX_BAD_ESCAPE_SEQUENCE,
00595 U_REGEX_PROPERTY_SYNTAX,
00596 U_REGEX_UNIMPLEMENTED,
00597 U_REGEX_MISMATCHED_PAREN,
00598 U_REGEX_NUMBER_TOO_BIG,
00599 U_REGEX_BAD_INTERVAL,
00600 U_REGEX_MAX_LT_MIN,
00601 U_REGEX_INVALID_BACK_REF,
00602 U_REGEX_INVALID_FLAG,
00603 U_REGEX_LOOK_BEHIND_LIMIT,
00604 U_REGEX_SET_CONTAINS_STRING,
00605 #ifndef U_HIDE_DEPRECATED_API
00606 U_REGEX_OCTAL_TOO_BIG,
00607 #endif
00608 U_REGEX_MISSING_CLOSE_BRACKET=U_REGEX_SET_CONTAINS_STRING+2,
00609 U_REGEX_INVALID_RANGE,
00610 U_REGEX_STACK_OVERFLOW,
00611 U_REGEX_TIME_OUT,
00612 U_REGEX_STOPPED_BY_CALLER,
00613 U_REGEX_PATTERN_TOO_BIG,
00614 U_REGEX_INVALID_CAPTURE_GROUP_NAME,
00615 #ifndef U_HIDE_DEPRECATED_API
00616
00620 U_REGEX_ERROR_LIMIT=U_REGEX_STOPPED_BY_CALLER+3,
00621 #endif // U_HIDE_DEPRECATED_API
00622
00623
00624
00625
00626 U_IDNA_PROHIBITED_ERROR=0x10400,
00627 U_IDNA_ERROR_START=0x10400,
00628 U_IDNA_UNASSIGNED_ERROR,
00629 U_IDNA_CHECK_BIDI_ERROR,
00630 U_IDNA_STD3_ASCII_RULES_ERROR,
00631 U_IDNA_ACE_PREFIX_ERROR,
00632 U_IDNA_VERIFICATION_ERROR,
00633 U_IDNA_LABEL_TOO_LONG_ERROR,
00634 U_IDNA_ZERO_LENGTH_LABEL_ERROR,
00635 U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR,
00636 #ifndef U_HIDE_DEPRECATED_API
00637
00641 U_IDNA_ERROR_LIMIT,
00642 #endif // U_HIDE_DEPRECATED_API
00643
00644
00645
00646 U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR,
00647 U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR,
00648 U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR,
00649
00650
00651
00652
00653 U_PLUGIN_ERROR_START=0x10500,
00654 U_PLUGIN_TOO_HIGH=0x10500,
00655 U_PLUGIN_DIDNT_SET_LEVEL,
00656 #ifndef U_HIDE_DEPRECATED_API
00657
00661 U_PLUGIN_ERROR_LIMIT,
00662 #endif // U_HIDE_DEPRECATED_API
00663
00664 #ifndef U_HIDE_DEPRECATED_API
00665
00669 U_ERROR_LIMIT=U_PLUGIN_ERROR_LIMIT
00670 #endif // U_HIDE_DEPRECATED_API
00671 } UErrorCode;
00672
00673
00674
00675
00676 #ifdef __cplusplus
00677
00681 static
00682 inline UBool U_SUCCESS(UErrorCode code) { return (UBool)(code<=U_ZERO_ERROR); }
00687 static
00688 inline UBool U_FAILURE(UErrorCode code) { return (UBool)(code>U_ZERO_ERROR); }
00689 #else
00690
00694 # define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)
00695
00699 # define U_FAILURE(x) ((x)>U_ZERO_ERROR)
00700 #endif
00701
00708 U_STABLE const char * U_EXPORT2
00709 u_errorName(UErrorCode code);
00710
00711
00712 #endif