| /* |
| ******************************************************************************* |
| * |
| * Copyright (C) 2002, International Business Machines |
| * Corporation and others. All Rights Reserved. |
| * |
| ******************************************************************************* |
| * file name: propsvec.h |
| * encoding: US-ASCII |
| * tab size: 8 (not used) |
| * indentation:4 |
| * |
| * created on: 2002feb22 |
| * created by: Markus W. Scherer |
| * |
| * Store additional Unicode character properties in bit set vectors. |
| */ |
| |
| #ifndef __UPROPSVEC_H__ |
| #define __UPROPSVEC_H__ |
| |
| #include "unicode/utypes.h" |
| #include "utrie.h" |
| |
| /* |
| * Unicode Properties Vectors associated with code point ranges. |
| * Stored in an array of uint32_t. |
| * |
| * The array starts with a header, then rows of integers store |
| * the range limits and the properties vectors. |
| * |
| * In each row, row[0] contains the start code point and |
| * row[1] contains the limit code point, |
| * which is the start of the next range. |
| * |
| * Initially, there is only one range [0..0x110000[ with values 0. |
| * |
| * It would be possible to store only one range boundary per row, |
| * but self-contained rows allow to later sort them by contents. |
| */ |
| enum { |
| UPVEC_COLUMNS, |
| UPVEC_MAXROWS, |
| UPVEC_ROWS, |
| UPVEC_RESERVED, |
| UPVEC_HEADER_LENGTH |
| }; |
| |
| U_CFUNC uint32_t * |
| upvec_open(int32_t columns, int32_t maxRows); |
| |
| U_CFUNC void |
| upvec_close(uint32_t *pv); |
| |
| U_CFUNC UBool |
| upvec_setValue(uint32_t *pv, |
| uint32_t start, uint32_t limit, |
| int32_t column, |
| uint32_t value, uint32_t mask, |
| UErrorCode *pErrorCode); |
| |
| U_CFUNC uint32_t * |
| upvec_getRow(uint32_t *pv, int32_t rowIndex, |
| uint32_t *pRangeStart, uint32_t *pRangeLimit); |
| |
| U_CFUNC int32_t |
| upvec_toTrie(uint32_t *pv, UNewTrie *trie, UErrorCode *pErrorCode); |
| |
| #endif |