A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/ucptrie_8h_source.html below:

ICU 77.1: common/unicode/ucptrie.h Source File

14 #if U_SHOW_CPLUSPLUS_API 30 typedef union

UCPTrieData {

34  const

uint16_t *ptr16;

36  const

uint32_t *ptr32;

62  const

uint16_t *index;

73

uint16_t shifted12HighStart;

90

uint16_t index3NullOffset;

96

int32_t dataNullOffset;

206  const void

*data, int32_t length, int32_t *pActualLength,

326 #define UCPTRIE_16(trie, i) ((trie)->data.ptr16[i]) 336 #define UCPTRIE_32(trie, i) ((trie)->data.ptr32[i]) 346 #define UCPTRIE_8(trie, i) ((trie)->data.ptr8[i]) 358 #define UCPTRIE_FAST_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_CP_INDEX(trie, 0xffff, c)) 370 #define UCPTRIE_SMALL_GET(trie, dataAccess, c) \ 371  dataAccess(trie, _UCPTRIE_CP_INDEX(trie, UCPTRIE_SMALL_MAX, c)) 386 #define UCPTRIE_FAST_U16_NEXT(trie, dataAccess, src, limit, c, result) UPRV_BLOCK_MACRO_BEGIN { \ 389  if (!U16_IS_SURROGATE(c)) { \ 390  __index = _UCPTRIE_FAST_INDEX(trie, c); \ 393  if (U16_IS_SURROGATE_LEAD(c) && (src) != (limit) && U16_IS_TRAIL(__c2 = *(src))) { \ 395  (c) = U16_GET_SUPPLEMENTARY((c), __c2); \ 396  __index = _UCPTRIE_SMALL_INDEX(trie, c); \ 398  __index = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; \ 401  (result) = dataAccess(trie, __index); \ 402 } UPRV_BLOCK_MACRO_END 417 #define UCPTRIE_FAST_U16_PREV(trie, dataAccess, start, src, c, result) UPRV_BLOCK_MACRO_BEGIN { \ 420  if (!U16_IS_SURROGATE(c)) { \ 421  __index = _UCPTRIE_FAST_INDEX(trie, c); \ 424  if (U16_IS_SURROGATE_TRAIL(c) && (src) != (start) && U16_IS_LEAD(__c2 = *((src) - 1))) { \ 426  (c) = U16_GET_SUPPLEMENTARY(__c2, (c)); \ 427  __index = _UCPTRIE_SMALL_INDEX(trie, c); \ 429  __index = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; \ 432  (result) = dataAccess(trie, __index); \ 433 } UPRV_BLOCK_MACRO_END 451 #define UCPTRIE_FAST_U8_NEXT(trie, dataAccess, src, limit, result) UPRV_BLOCK_MACRO_BEGIN { \ 452  int32_t __lead = (uint8_t)*(src)++; \ 453  if (!U8_IS_SINGLE(__lead)) { \ 454  uint8_t __t1, __t2, __t3; \ 455  if ((src) != (limit) && \ 458  U8_LEAD3_T1_BITS[__lead &= 0xf] & (1 << ((__t1 = *(src)) >> 5)) && \ 459  ++(src) != (limit) && (__t2 = *(src) - 0x80) <= 0x3f && \ 460  (__lead = ((int32_t)(trie)->index[(__lead << 6) + (__t1 & 0x3f)]) + __t2, 1) \ 462  (__lead -= 0xf0) <= 4 && \ 463  U8_LEAD4_T1_BITS[(__t1 = *(src)) >> 4] & (1 << __lead) && \ 464  (__lead = (__lead << 6) | (__t1 & 0x3f), ++(src) != (limit)) && \ 465  (__t2 = *(src) - 0x80) <= 0x3f && \ 466  ++(src) != (limit) && (__t3 = *(src) - 0x80) <= 0x3f && \ 467  (__lead = __lead >= (trie)->shifted12HighStart ? \ 468  (trie)->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET : \ 469  ucptrie_internalSmallU8Index((trie), __lead, __t2, __t3), 1) \ 471  __lead >= 0xc2 && (__t1 = *(src) - 0x80) <= 0x3f && \ 472  (__lead = (int32_t)(trie)->index[__lead & 0x1f] + __t1, 1))) { \ 475  __lead = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; \ 478  (result) = dataAccess(trie, __lead); \ 479 } UPRV_BLOCK_MACRO_END 497 #define UCPTRIE_FAST_U8_PREV(trie, dataAccess, start, src, result) UPRV_BLOCK_MACRO_BEGIN { \ 498  int32_t __index = (uint8_t)*--(src); \ 499  if (!U8_IS_SINGLE(__index)) { \ 500  __index = ucptrie_internalU8PrevIndex((trie), __index, (const uint8_t *)(start), \ 501  (const uint8_t *)(src)); \ 502  (src) -= __index & 7; \ 505  (result) = dataAccess(trie, __index); \ 506 } UPRV_BLOCK_MACRO_END 517 #define UCPTRIE_ASCII_GET(trie, dataAccess, c) dataAccess(trie, c) 530 #define UCPTRIE_FAST_BMP_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_FAST_INDEX(trie, c)) 542 #define UCPTRIE_FAST_SUPP_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_SMALL_INDEX(trie, c)) 555

UCPTRIE_FAST_SHIFT = 6,

558

UCPTRIE_FAST_DATA_BLOCK_LENGTH = 1 << UCPTRIE_FAST_SHIFT,

561

UCPTRIE_FAST_DATA_MASK = UCPTRIE_FAST_DATA_BLOCK_LENGTH - 1,

564

UCPTRIE_SMALL_MAX = 0xfff,

571

UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET = 1,

577

UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET = 2

589

ucptrie_internalSmallU8Index(

const UCPTrie

*trie, int32_t lt1, uint8_t t2, uint8_t t3);

598  const

uint8_t *start,

const

uint8_t *src);

601 #define _UCPTRIE_FAST_INDEX(trie, c) \ 602  ((int32_t)(trie)->index[(c) >> UCPTRIE_FAST_SHIFT] + ((c) & UCPTRIE_FAST_DATA_MASK)) 605 #define _UCPTRIE_SMALL_INDEX(trie, c) \ 606  ((c) >= (trie)->highStart ? \ 607  (trie)->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET : \ 608  ucptrie_internalSmallIndex(trie, c)) 615 #define _UCPTRIE_CP_INDEX(trie, fastMax, c) \ 616  ((uint32_t)(c) <= (uint32_t)(fastMax) ? \ 617  _UCPTRIE_FAST_INDEX(trie, c) : \ 618  (uint32_t)(c) <= 0x10ffff ? \ 619  _UCPTRIE_SMALL_INDEX(trie, c) : \ 620  (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET) 626 #if U_SHOW_CPLUSPLUS_API

"Smart pointer" class, closes a UCPTrie via ucptrie_close().

C++ API: "Smart pointers" for use with and in ICU4C C++ code.

#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)

"Smart pointer" definition macro, deletes objects via the closeFunction.

Immutable Unicode code point trie structure.

C API: This file defines an abstract map from Unicode code points to integer values.

uint32_t UCPMapValueFilter(const void *context, uint32_t value)

Callback function type: Modifies a map value.

UCPMapRangeOption

Selectors for how ucpmap_getRange() etc.

UCPTrieType

Selectors for the type of a UCPTrie.

@ UCPTRIE_TYPE_FAST

Fast/simple/larger BMP data structure.

@ UCPTRIE_TYPE_SMALL

Small/slower BMP data structure.

@ UCPTRIE_TYPE_ANY

For ucptrie_openFromBinary() to accept any type.

U_CAPI void ucptrie_close(UCPTrie *trie)

Closes a trie and releases associated memory.

U_CAPI UCPTrieValueWidth ucptrie_getValueWidth(const UCPTrie *trie)

Returns the number of bits in a trie data value.

U_CAPI UChar32 ucptrie_getRange(const UCPTrie *trie, UChar32 start, UCPMapRangeOption option, uint32_t surrogateValue, UCPMapValueFilter *filter, const void *context, uint32_t *pValue)

Returns the last code point such that all those from start to there have the same value.

U_CAPI UCPTrie * ucptrie_openFromBinary(UCPTrieType type, UCPTrieValueWidth valueWidth, const void *data, int32_t length, int32_t *pActualLength, UErrorCode *pErrorCode)

Opens a trie from its binary form, stored in 32-bit-aligned memory.

U_CAPI int32_t ucptrie_toBinary(const UCPTrie *trie, void *data, int32_t capacity, UErrorCode *pErrorCode)

Writes a memory-mappable form of the trie into 32-bit aligned memory.

U_CAPI UCPTrieType ucptrie_getType(const UCPTrie *trie)

Returns the trie type.

UCPTrieValueWidth

Selectors for the number of bits in a UCPTrie data value.

@ UCPTRIE_VALUE_BITS_ANY

For ucptrie_openFromBinary() to accept any data value width.

@ UCPTRIE_VALUE_BITS_8

The trie stores 8 bits per data value.

@ UCPTRIE_VALUE_BITS_16

The trie stores 16 bits per data value.

@ UCPTRIE_VALUE_BITS_32

The trie stores 32 bits per data value.

U_CAPI uint32_t ucptrie_get(const UCPTrie *trie, UChar32 c)

Returns the value for a code point as stored in the trie, with range checking.

int32_t UChar32

Define UChar32 as a type for single Unicode code points.

#define U_CDECL_END

This is used to end a declaration of a library private ICU C API.

#define U_CAPI

This is used to declare a function as a public ICU C API.

#define U_CDECL_BEGIN

This is used to begin a declaration of a library private ICU C API.

C API: 8-bit Unicode handling macros.

Basic definitions for ICU, for both C and C++ APIs.

UErrorCode

Standard ICU4C error code type, a substitute for exceptions.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4