| //===--- UnicodeShims.h - Access to Unicode data for the core stdlib ------===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See https://swift.org/LICENSE.txt for license information |
| // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // Data structures required for Unicode support in Swift that are |
| // statically initialized in its runtime's C++ source. |
| // |
| //===----------------------------------------------------------------------===// |
| #ifndef SWIFT_STDLIB_SHIMS_UNICODESHIMS_H_ |
| #define SWIFT_STDLIB_SHIMS_UNICODESHIMS_H_ |
| |
| #include "SwiftStdint.h" |
| #include "SwiftStdbool.h" |
| #include "Visibility.h" |
| |
| #if __has_feature(nullability) |
| #pragma clang assume_nonnull begin |
| #endif |
| |
| #ifdef __cplusplus |
| namespace swift { extern "C" { |
| #endif |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| const __swift_uint8_t *_swift_stdlib_GraphemeClusterBreakPropertyTrie; |
| |
| struct _swift_stdlib_GraphemeClusterBreakPropertyTrieMetadataTy { |
| unsigned BMPFirstLevelIndexBits; |
| unsigned BMPDataOffsetBits; |
| unsigned SuppFirstLevelIndexBits; |
| unsigned SuppSecondLevelIndexBits; |
| unsigned SuppDataOffsetBits; |
| |
| unsigned BMPLookupBytesPerEntry; |
| unsigned BMPDataBytesPerEntry; |
| unsigned SuppLookup1BytesPerEntry; |
| unsigned SuppLookup2BytesPerEntry; |
| unsigned SuppDataBytesPerEntry; |
| |
| unsigned TrieSize; |
| |
| unsigned BMPLookupBytesOffset; |
| unsigned BMPDataBytesOffset; |
| unsigned SuppLookup1BytesOffset; |
| unsigned SuppLookup2BytesOffset; |
| unsigned SuppDataBytesOffset; |
| }; |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| const struct _swift_stdlib_GraphemeClusterBreakPropertyTrieMetadataTy |
| _swift_stdlib_GraphemeClusterBreakPropertyTrieMetadata; |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| const __swift_uint16_t * |
| _swift_stdlib_ExtendedGraphemeClusterNoBoundaryRulesMatrix; |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| SWIFT_READONLY __swift_int32_t |
| _swift_stdlib_unicode_compare_utf16_utf16(const __swift_uint16_t *Left, |
| __swift_int32_t LeftLength, |
| const __swift_uint16_t *Right, |
| __swift_int32_t RightLength); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| SWIFT_READONLY __swift_int32_t |
| _swift_stdlib_unicode_compare_utf8_utf16(const unsigned char *Left, |
| __swift_int32_t LeftLength, |
| const __swift_uint16_t *Right, |
| __swift_int32_t RightLength); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| SWIFT_READONLY __swift_int32_t |
| _swift_stdlib_unicode_compare_utf8_utf8(const unsigned char *Left, |
| __swift_int32_t LeftLength, |
| const unsigned char *Right, |
| __swift_int32_t RightLength); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| void *_swift_stdlib_unicodeCollationIterator_create( |
| const __swift_uint16_t *Str, |
| __swift_uint32_t Length); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| __swift_int32_t _swift_stdlib_unicodeCollationIterator_next( |
| void *CollationIterator, __swift_bool *HitEnd); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| void _swift_stdlib_unicodeCollationIterator_delete( |
| void *CollationIterator); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| const __swift_int32_t *_swift_stdlib_unicode_getASCIICollationTable(); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| __swift_int32_t _swift_stdlib_unicode_strToUpper( |
| __swift_uint16_t *Destination, __swift_int32_t DestinationCapacity, |
| const __swift_uint16_t *Source, __swift_int32_t SourceLength); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| __swift_int32_t _swift_stdlib_unicode_strToLower( |
| __swift_uint16_t *Destination, __swift_int32_t DestinationCapacity, |
| const __swift_uint16_t *Source, __swift_int32_t SourceLength); |
| |
| typedef enum __swift_stdlib_UErrorCode { |
| __swift_stdlib_U_USING_FALLBACK_WARNING = -128, |
| __swift_stdlib_U_ERROR_WARNING_START = -128, |
| __swift_stdlib_U_USING_DEFAULT_WARNING = -127, |
| __swift_stdlib_U_SAFECLONE_ALLOCATED_WARNING = -126, |
| __swift_stdlib_U_STATE_OLD_WARNING = -125, |
| __swift_stdlib_U_STRING_NOT_TERMINATED_WARNING = -124, |
| __swift_stdlib_U_SORT_KEY_TOO_SHORT_WARNING = -123, |
| __swift_stdlib_U_AMBIGUOUS_ALIAS_WARNING = -122, |
| __swift_stdlib_U_DIFFERENT_UCA_VERSION = -121, |
| __swift_stdlib_U_PLUGIN_CHANGED_LEVEL_WARNING = -120, |
| __swift_stdlib_U_ERROR_WARNING_LIMIT, |
| __swift_stdlib_U_ZERO_ERROR = 0, |
| __swift_stdlib_U_ILLEGAL_ARGUMENT_ERROR = 1, |
| __swift_stdlib_U_MISSING_RESOURCE_ERROR = 2, |
| __swift_stdlib_U_INVALID_FORMAT_ERROR = 3, |
| __swift_stdlib_U_FILE_ACCESS_ERROR = 4, |
| __swift_stdlib_U_INTERNAL_PROGRAM_ERROR = 5, |
| __swift_stdlib_U_MESSAGE_PARSE_ERROR = 6, |
| __swift_stdlib_U_MEMORY_ALLOCATION_ERROR = 7, |
| __swift_stdlib_U_INDEX_OUTOFBOUNDS_ERROR = 8, |
| __swift_stdlib_U_PARSE_ERROR = 9, |
| __swift_stdlib_U_INVALID_CHAR_FOUND = 10, |
| __swift_stdlib_U_TRUNCATED_CHAR_FOUND = 11, |
| __swift_stdlib_U_ILLEGAL_CHAR_FOUND = 12, |
| __swift_stdlib_U_INVALID_TABLE_FORMAT = 13, |
| __swift_stdlib_U_INVALID_TABLE_FILE = 14, |
| __swift_stdlib_U_BUFFER_OVERFLOW_ERROR = 15, |
| __swift_stdlib_U_UNSUPPORTED_ERROR = 16, |
| __swift_stdlib_U_RESOURCE_TYPE_MISMATCH = 17, |
| __swift_stdlib_U_ILLEGAL_ESCAPE_SEQUENCE = 18, |
| __swift_stdlib_U_UNSUPPORTED_ESCAPE_SEQUENCE = 19, |
| __swift_stdlib_U_NO_SPACE_AVAILABLE = 20, |
| __swift_stdlib_U_CE_NOT_FOUND_ERROR = 21, |
| __swift_stdlib_U_PRIMARY_TOO_LONG_ERROR = 22, |
| __swift_stdlib_U_STATE_TOO_OLD_ERROR = 23, |
| __swift_stdlib_U_TOO_MANY_ALIASES_ERROR = 24, |
| __swift_stdlib_U_ENUM_OUT_OF_SYNC_ERROR = 25, |
| __swift_stdlib_U_INVARIANT_CONVERSION_ERROR = 26, |
| __swift_stdlib_U_INVALID_STATE_ERROR = 27, |
| __swift_stdlib_U_COLLATOR_VERSION_MISMATCH = 28, |
| __swift_stdlib_U_USELESS_COLLATOR_ERROR = 29, |
| __swift_stdlib_U_NO_WRITE_PERMISSION = 30, |
| __swift_stdlib_U_STANDARD_ERROR_LIMIT, |
| __swift_stdlib_U_BAD_VARIABLE_DEFINITION = 0x10000, |
| __swift_stdlib_U_PARSE_ERROR_START = 0x10000, |
| __swift_stdlib_U_MALFORMED_RULE, |
| __swift_stdlib_U_MALFORMED_SET, |
| __swift_stdlib_U_MALFORMED_SYMBOL_REFERENCE, |
| __swift_stdlib_U_MALFORMED_UNICODE_ESCAPE, |
| __swift_stdlib_U_MALFORMED_VARIABLE_DEFINITION, |
| __swift_stdlib_U_MALFORMED_VARIABLE_REFERENCE, |
| __swift_stdlib_U_MISMATCHED_SEGMENT_DELIMITERS, |
| __swift_stdlib_U_MISPLACED_ANCHOR_START, |
| __swift_stdlib_U_MISPLACED_CURSOR_OFFSET, |
| __swift_stdlib_U_MISPLACED_QUANTIFIER, |
| __swift_stdlib_U_MISSING_OPERATOR, |
| __swift_stdlib_U_MISSING_SEGMENT_CLOSE, |
| __swift_stdlib_U_MULTIPLE_ANTE_CONTEXTS, |
| __swift_stdlib_U_MULTIPLE_CURSORS, |
| __swift_stdlib_U_MULTIPLE_POST_CONTEXTS, |
| __swift_stdlib_U_TRAILING_BACKSLASH, |
| __swift_stdlib_U_UNDEFINED_SEGMENT_REFERENCE, |
| __swift_stdlib_U_UNDEFINED_VARIABLE, |
| __swift_stdlib_U_UNQUOTED_SPECIAL, |
| __swift_stdlib_U_UNTERMINATED_QUOTE, |
| __swift_stdlib_U_RULE_MASK_ERROR, |
| __swift_stdlib_U_MISPLACED_COMPOUND_FILTER, |
| __swift_stdlib_U_MULTIPLE_COMPOUND_FILTERS, |
| __swift_stdlib_U_INVALID_RBT_SYNTAX, |
| __swift_stdlib_U_INVALID_PROPERTY_PATTERN, |
| __swift_stdlib_U_MALFORMED_PRAGMA, |
| __swift_stdlib_U_UNCLOSED_SEGMENT, |
| __swift_stdlib_U_ILLEGAL_CHAR_IN_SEGMENT, |
| __swift_stdlib_U_VARIABLE_RANGE_EXHAUSTED, |
| __swift_stdlib_U_VARIABLE_RANGE_OVERLAP, |
| __swift_stdlib_U_ILLEGAL_CHARACTER, |
| __swift_stdlib_U_INTERNAL_TRANSLITERATOR_ERROR, |
| __swift_stdlib_U_INVALID_ID, |
| __swift_stdlib_U_INVALID_FUNCTION, |
| __swift_stdlib_U_PARSE_ERROR_LIMIT, |
| __swift_stdlib_U_UNEXPECTED_TOKEN = 0x10100, |
| __swift_stdlib_U_FMT_PARSE_ERROR_START = 0x10100, |
| __swift_stdlib_U_MULTIPLE_DECIMAL_SEPARATORS, |
| __swift_stdlib_U_MULTIPLE_DECIMAL_SEPERATORS = |
| __swift_stdlib_U_MULTIPLE_DECIMAL_SEPARATORS, |
| __swift_stdlib_U_MULTIPLE_EXPONENTIAL_SYMBOLS, |
| __swift_stdlib_U_MALFORMED_EXPONENTIAL_PATTERN, |
| __swift_stdlib_U_MULTIPLE_PERCENT_SYMBOLS, |
| __swift_stdlib_U_MULTIPLE_PERMILL_SYMBOLS, |
| __swift_stdlib_U_MULTIPLE_PAD_SPECIFIERS, |
| __swift_stdlib_U_PATTERN_SYNTAX_ERROR, |
| __swift_stdlib_U_ILLEGAL_PAD_POSITION, |
| __swift_stdlib_U_UNMATCHED_BRACES, |
| __swift_stdlib_U_UNSUPPORTED_PROPERTY, |
| __swift_stdlib_U_UNSUPPORTED_ATTRIBUTE, |
| __swift_stdlib_U_ARGUMENT_TYPE_MISMATCH, |
| __swift_stdlib_U_DUPLICATE_KEYWORD, |
| __swift_stdlib_U_UNDEFINED_KEYWORD, |
| __swift_stdlib_U_DEFAULT_KEYWORD_MISSING, |
| __swift_stdlib_U_DECIMAL_NUMBER_SYNTAX_ERROR, |
| __swift_stdlib_U_FORMAT_INEXACT_ERROR, |
| __swift_stdlib_U_FMT_PARSE_ERROR_LIMIT, |
| __swift_stdlib_U_BRK_INTERNAL_ERROR = 0x10200, |
| __swift_stdlib_U_BRK_ERROR_START = 0x10200, |
| __swift_stdlib_U_BRK_HEX_DIGITS_EXPECTED, |
| __swift_stdlib_U_BRK_SEMICOLON_EXPECTED, |
| __swift_stdlib_U_BRK_RULE_SYNTAX, |
| __swift_stdlib_U_BRK_UNCLOSED_SET, |
| __swift_stdlib_U_BRK_ASSIGN_ERROR, |
| __swift_stdlib_U_BRK_VARIABLE_REDFINITION, |
| __swift_stdlib_U_BRK_MISMATCHED_PAREN, |
| __swift_stdlib_U_BRK_NEW_LINE_IN_QUOTED_STRING, |
| __swift_stdlib_U_BRK_UNDEFINED_VARIABLE, |
| __swift_stdlib_U_BRK_INIT_ERROR, |
| __swift_stdlib_U_BRK_RULE_EMPTY_SET, |
| __swift_stdlib_U_BRK_UNRECOGNIZED_OPTION, |
| __swift_stdlib_U_BRK_MALFORMED_RULE_TAG, |
| __swift_stdlib_U_BRK_ERROR_LIMIT, |
| __swift_stdlib_U_REGEX_INTERNAL_ERROR = 0x10300, |
| __swift_stdlib_U_REGEX_ERROR_START = 0x10300, |
| __swift_stdlib_U_REGEX_RULE_SYNTAX, |
| __swift_stdlib_U_REGEX_INVALID_STATE, |
| __swift_stdlib_U_REGEX_BAD_ESCAPE_SEQUENCE, |
| __swift_stdlib_U_REGEX_PROPERTY_SYNTAX, |
| __swift_stdlib_U_REGEX_UNIMPLEMENTED, |
| __swift_stdlib_U_REGEX_MISMATCHED_PAREN, |
| __swift_stdlib_U_REGEX_NUMBER_TOO_BIG, |
| __swift_stdlib_U_REGEX_BAD_INTERVAL, |
| __swift_stdlib_U_REGEX_MAX_LT_MIN, |
| __swift_stdlib_U_REGEX_INVALID_BACK_REF, |
| __swift_stdlib_U_REGEX_INVALID_FLAG, |
| __swift_stdlib_U_REGEX_LOOK_BEHIND_LIMIT, |
| __swift_stdlib_U_REGEX_SET_CONTAINS_STRING, |
| #ifndef __swift_stdlib_U_HIDE_DEPRECATED_API |
| __swift_stdlib_U_REGEX_OCTAL_TOO_BIG, |
| #endif |
| __swift_stdlib_U_REGEX_MISSING_CLOSE_BRACKET = |
| __swift_stdlib_U_REGEX_SET_CONTAINS_STRING + 2, |
| __swift_stdlib_U_REGEX_INVALID_RANGE, |
| __swift_stdlib_U_REGEX_STACK_OVERFLOW, |
| __swift_stdlib_U_REGEX_TIME_OUT, |
| __swift_stdlib_U_REGEX_STOPPED_BY_CALLER, |
| #ifndef __swift_stdlib_U_HIDE_DRAFT_API |
| __swift_stdlib_U_REGEX_PATTERN_TOO_BIG, |
| __swift_stdlib_U_REGEX_INVALID_CAPTURE_GROUP_NAME, |
| #endif |
| __swift_stdlib_U_REGEX_ERROR_LIMIT = |
| __swift_stdlib_U_REGEX_STOPPED_BY_CALLER + 3, |
| __swift_stdlib_U_IDNA_PROHIBITED_ERROR = 0x10400, |
| __swift_stdlib_U_IDNA_ERROR_START = 0x10400, |
| __swift_stdlib_U_IDNA_UNASSIGNED_ERROR, |
| __swift_stdlib_U_IDNA_CHECK_BIDI_ERROR, |
| __swift_stdlib_U_IDNA_STD3_ASCII_RULES_ERROR, |
| __swift_stdlib_U_IDNA_ACE_PREFIX_ERROR, |
| __swift_stdlib_U_IDNA_VERIFICATION_ERROR, |
| __swift_stdlib_U_IDNA_LABEL_TOO_LONG_ERROR, |
| __swift_stdlib_U_IDNA_ZERO_LENGTH_LABEL_ERROR, |
| __swift_stdlib_U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR, |
| __swift_stdlib_U_IDNA_ERROR_LIMIT, |
| __swift_stdlib_U_STRINGPREP_PROHIBITED_ERROR = |
| __swift_stdlib_U_IDNA_PROHIBITED_ERROR, |
| __swift_stdlib_U_STRINGPREP_UNASSIGNED_ERROR = |
| __swift_stdlib_U_IDNA_UNASSIGNED_ERROR, |
| __swift_stdlib_U_STRINGPREP_CHECK_BIDI_ERROR = |
| __swift_stdlib_U_IDNA_CHECK_BIDI_ERROR, |
| __swift_stdlib_U_PLUGIN_ERROR_START = 0x10500, |
| __swift_stdlib_U_PLUGIN_TOO_HIGH = 0x10500, |
| __swift_stdlib_U_PLUGIN_DIDNT_SET_LEVEL, |
| __swift_stdlib_U_PLUGIN_ERROR_LIMIT, |
| __swift_stdlib_U_ERROR_LIMIT = __swift_stdlib_U_PLUGIN_ERROR_LIMIT |
| } __swift_stdlib_UErrorCode; |
| |
| typedef enum __swift_stdlib_UBreakIteratorType { |
| __swift_stdlib_UBRK_CHARACTER = 0, |
| __swift_stdlib_UBRK_WORD = 1, |
| __swift_stdlib_UBRK_LINE = 2, |
| __swift_stdlib_UBRK_SENTENCE = 3, |
| #ifndef U_HIDE_DEPRECATED_API |
| __swift_stdlib_UBRK_TITLE = 4, |
| #endif |
| __swift_stdlib_UBRK_COUNT = 5 |
| } __swift_stdlib_UBreakIteratorType; |
| |
| typedef struct __swift_stdlib_UBreakIterator __swift_stdlib_UBreakIterator; |
| typedef __swift_uint16_t __swift_stdlib_UChar; |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| void __swift_stdlib_ubrk_close(__swift_stdlib_UBreakIterator *bi); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| __swift_stdlib_UBreakIterator * |
| __swift_stdlib_ubrk_open(__swift_stdlib_UBreakIteratorType type, |
| const char *_Null_unspecified locale, |
| const __swift_stdlib_UChar *_Null_unspecified text, |
| __swift_int32_t textLength, |
| __swift_stdlib_UErrorCode *status); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| void __swift_stdlib_ubrk_setText(__swift_stdlib_UBreakIterator *bi, |
| const __swift_stdlib_UChar *text, |
| __swift_int32_t textLength, |
| __swift_stdlib_UErrorCode *status); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| __swift_int32_t __swift_stdlib_ubrk_preceding(__swift_stdlib_UBreakIterator *bi, |
| __swift_int32_t offset); |
| |
| SWIFT_RUNTIME_STDLIB_INTERFACE |
| __swift_int32_t __swift_stdlib_ubrk_following(__swift_stdlib_UBreakIterator *bi, |
| __swift_int32_t offset); |
| |
| #ifdef __cplusplus |
| }} // extern "C", namespace swift |
| #endif |
| |
| #if __has_feature(nullability) |
| #pragma clang assume_nonnull end |
| #endif |
| |
| #endif |