#include "unicode/ustring.h"
#include "unicode/udata.h"
#include "unicode/utf16.h"
#include "utracimp.h"
#include "ucol_imp.h"
#include "ulocimp.h"
#include "bytesinkutil.h"
#include "cmemory.h"
#include "cstring.h"
#include "uresimp.h"
#include "unicode/coll.h"
#include "unicode/stringpiece.h"
#include "charstr.h"
U_NAMESPACE_USE
#ifdef UCOL_TRACE_SIT
# include <stdio.h>
#endif
#if !UCONFIG_NO_COLLATION
#include "unicode/tblcoll.h"
enum OptionsList { … };
static const char alternateHArg = …;
static const char variableTopValArg = …;
static const char caseFirstArg = …;
static const char numericCollArg = …;
static const char caseLevelArg = …;
static const char frenchCollArg = …;
static const char hiraganaQArg = …;
static const char keywordArg = …;
static const char languageArg = …;
static const char normArg = …;
static const char providerArg = …;
static const char regionArg = …;
static const char strengthArg = …;
static const char variableTopArg = …;
static const char variantArg = …;
static const char RFC3066Arg = …;
static const char scriptArg = …;
static const char collationKeyword[] = …;
static const char providerKeyword[] = …;
static const int32_t locElementCount = …;
static const int32_t locElementCapacity = …;
static const int32_t loc3066Capacity = …;
struct CollatorSpec { … };
CollatorSpec::CollatorSpec() : … { … }
struct AttributeConversion { … };
static const AttributeConversion conversions[12] = …;
static UColAttributeValue
ucol_sit_letterToAttributeValue(char letter, UErrorCode *status) { … }
U_CDECL_BEGIN
ActionFunction;
U_CDECL_END
U_CDECL_BEGIN
static const char* U_CALLCONV
_processLocaleElement(CollatorSpec *spec, uint32_t value, const char* string,
UErrorCode *status)
{ … }
U_CDECL_END
U_CDECL_BEGIN
static const char* U_CALLCONV
_processRFC3066Locale(CollatorSpec *spec, uint32_t, const char* string,
UErrorCode *status)
{ … }
U_CDECL_END
U_CDECL_BEGIN
static const char* U_CALLCONV
_processCollatorOption(CollatorSpec *spec, uint32_t option, const char* string,
UErrorCode *status)
{ … }
U_CDECL_END
static char16_t
readHexCodeUnit(const char **string, UErrorCode *status)
{ … }
U_CDECL_BEGIN
static const char* U_CALLCONV
_processVariableTop(CollatorSpec *spec, uint32_t value1, const char* string, UErrorCode *status)
{ … }
U_CDECL_END
struct ShortStringOptions { … };
static const ShortStringOptions options[UCOL_SIT_ITEMS_COUNT] = …;
static
const char* ucol_sit_readOption(const char *start, CollatorSpec *spec,
UErrorCode *status)
{ … }
static const char*
ucol_sit_readSpecs(CollatorSpec *s, const char *string,
UParseError *parseError, UErrorCode *status)
{ … }
static
int32_t ucol_sit_dumpSpecs(CollatorSpec *s, char *destination, int32_t capacity, UErrorCode *status)
{ … }
static void
ucol_sit_calculateWholeLocale(CollatorSpec *s, UErrorCode &status) { … }
U_CAPI void U_EXPORT2
ucol_prepareShortStringOpen( const char *definition,
UBool,
UParseError *parseError,
UErrorCode *status)
{ … }
U_CAPI UCollator* U_EXPORT2
ucol_openFromShortString( const char *definition,
UBool forceDefaults,
UParseError *parseError,
UErrorCode *status)
{ … }
U_CAPI int32_t U_EXPORT2
ucol_getShortDefinitionString(const UCollator *coll,
const char *locale,
char *dst,
int32_t capacity,
UErrorCode *status)
{ … }
U_CAPI int32_t U_EXPORT2
ucol_normalizeShortDefinitionString(const char *definition,
char *destination,
int32_t capacity,
UParseError *parseError,
UErrorCode *status)
{ … }
U_CAPI int32_t U_EXPORT2
ucol_getContractions( const UCollator *coll,
USet *contractions,
UErrorCode *status)
{ … }
U_CAPI void U_EXPORT2
ucol_getContractionsAndExpansions( const UCollator *coll,
USet *contractions,
USet *expansions,
UBool addPrefixes,
UErrorCode *status)
{ … }
#endif