Index: icu46/source/i18n/ucol_elm.h |
=================================================================== |
--- icu46/source/i18n/ucol_elm.h (revision 0) |
+++ icu46/source/i18n/ucol_elm.h (revision 0) |
@@ -0,0 +1,146 @@ |
+/* |
+******************************************************************************* |
+* |
+* Copyright (C) 2000-2010, International Business Machines |
+* Corporation and others. All Rights Reserved. |
+* |
+******************************************************************************* |
+* file name: ucol_elm.h |
+* encoding: US-ASCII |
+* tab size: 8 (not used) |
+* indentation:4 |
+* |
+* created 02/22/2001 |
+* created by: Vladimir Weinstein |
+* |
+* This program reads the Franctional UCA table and generates |
+* internal format for UCA table as well as inverse UCA table. |
+* It then writes binary files containing the data: ucadata.dat |
+* & invuca.dat |
+*/ |
+#ifndef UCOL_UCAELEMS_H |
+#define UCOL_UCAELEMS_H |
+ |
+#include "unicode/utypes.h" |
+#include "unicode/uniset.h" |
+#include "ucol_tok.h" |
+ |
+#if !UCONFIG_NO_COLLATION |
+ |
+#include "ucol_imp.h" |
+ |
+#ifdef UCOL_DEBUG |
+#include "cmemory.h" |
+#include <stdio.h> |
+#endif |
+ |
+U_CDECL_BEGIN |
+ |
+/* This is the maximum trie capacity for the mapping trie. |
+Due to current limitations in genuca and the design of UTrie, |
+this number can't be more than 256K. |
+As of Unicode 5, it currently could safely go to 128K without |
+a problem. Normally, less than 32K are tailored. |
+*/ |
+#define UCOL_ELM_TRIE_CAPACITY 0x40000 |
+ |
+/* This is the maxmun capacity for temparay combining class |
+ * table. The table will be compacted after scanning all the |
+ * Unicode codepoints. |
+*/ |
+#define UCOL_MAX_CM_TAB 0x10000 |
+ |
+ |
+typedef struct { |
+ uint32_t *CEs; |
+ int32_t position; |
+ int32_t size; |
+} ExpansionTable; |
+ |
+typedef struct { |
+ UChar prefixChars[128]; |
+ UChar *prefix; |
+ uint32_t prefixSize; |
+ UChar uchars[128]; |
+ UChar *cPoints; |
+ uint32_t cSize; /* Number of characters in sequence - for contraction */ |
+ uint32_t noOfCEs; /* Number of collation elements */ |
+ uint32_t CEs[128]; /* These are collation elements - there could be more than one - in case of expansion */ |
+ uint32_t mapCE; /* This is the value element maps in original table */ |
+ uint32_t sizePrim[128]; |
+ uint32_t sizeSec[128]; |
+ uint32_t sizeTer[128]; |
+ UBool caseBit; |
+ UBool isThai; |
+} UCAElements; |
+ |
+typedef struct { |
+ uint32_t *endExpansionCE; |
+ UBool *isV; |
+ int32_t position; |
+ int32_t size; |
+ uint8_t maxLSize; |
+ uint8_t maxVSize; |
+ uint8_t maxTSize; |
+} MaxJamoExpansionTable; |
+ |
+typedef struct { |
+ uint32_t *endExpansionCE; |
+ uint8_t *expansionCESize; |
+ int32_t position; |
+ int32_t size; |
+} MaxExpansionTable; |
+ |
+typedef struct { |
+ uint16_t index[256]; /* index of cPoints by combining class 0-255. */ |
+ UChar *cPoints; /* code point array of all combining marks */ |
+ uint32_t size; /* total number of combining marks */ |
+} CombinClassTable; |
+ |
+typedef struct { |
+ /*CompactEIntArray *mapping; */ |
+ UNewTrie *mapping; |
+ ExpansionTable *expansions; |
+ struct CntTable *contractions; |
+ UCATableHeader *image; |
+ UColOptionSet *options; |
+ MaxExpansionTable *maxExpansions; |
+ MaxJamoExpansionTable *maxJamoExpansions; |
+ uint8_t *unsafeCP; |
+ uint8_t *contrEndCP; |
+ const UCollator *UCA; |
+ UHashtable *prefixLookup; |
+ CombinClassTable *cmLookup; /* combining class lookup for tailoring. */ |
+} tempUCATable; |
+ |
+typedef struct { |
+ UChar cp; |
+ uint16_t cClass; // combining class |
+}CompData; |
+ |
+typedef struct { |
+ CompData *precomp; |
+ int32_t precompLen; |
+ UChar *decomp; |
+ int32_t decompLen; |
+ UChar *comp; |
+ int32_t compLen; |
+ uint16_t curClass; |
+ uint16_t tailoringCM; |
+ int32_t cmPos; |
+}tempTailorContext; |
+ |
+U_CAPI tempUCATable * U_EXPORT2 uprv_uca_initTempTable(UCATableHeader *image, UColOptionSet *opts, const UCollator *UCA, UColCETags initTag, UColCETags supplementaryInitTag, UErrorCode *status); |
+U_CAPI void U_EXPORT2 uprv_uca_closeTempTable(tempUCATable *t); |
+U_CAPI uint32_t U_EXPORT2 uprv_uca_addAnElement(tempUCATable *t, UCAElements *element, UErrorCode *status); |
+U_CAPI UCATableHeader * U_EXPORT2 uprv_uca_assembleTable(tempUCATable *t, UErrorCode *status); |
+ |
+U_CAPI int32_t U_EXPORT2 |
+uprv_uca_canonicalClosure(tempUCATable *t, UColTokenParser *src, |
+ U_NAMESPACE_QUALIFIER UnicodeSet *closed, UErrorCode *status); |
+ |
+U_CDECL_END |
+ |
+#endif /* #if !UCONFIG_NO_COLLATION */ |
+ |
+#endif |
Property changes on: icu46/source/i18n/ucol_elm.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |