/* ******************************************************************************* * * Copyright (C) 2004, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* * file name: gencase.h * encoding: US-ASCII * tab size: 8 (not used) * indentation:4 * * created on: 2004aug28 * created by: Markus W. Scherer */ #ifndef __GENCASE_H__ #define __GENCASE_H__ #include "unicode/utypes.h" #include "utrie.h" #include "ucase.h" U_CDECL_BEGIN /* gencase ------------------------------------------------------------------ */ #define UGENCASE_EXC_SHIFT 16 #define UGENCASE_EXC_MASK 0xffff0000 /* special casing data */ typedef struct { UChar32 code; UBool isComplex; UChar lowerCase[32], upperCase[32], titleCase[32]; } SpecialCasing; /* case folding data */ typedef struct { UChar32 code, simple; char status; UChar full[32]; } CaseFolding; /* case mapping properties */ typedef struct { UChar32 code, lowerCase, upperCase, titleCase; SpecialCasing *specialCasing; CaseFolding *caseFolding; uint8_t gc, cc; } Props; /* global flags */ extern UBool beVerbose, haveCopyright; /* properties vectors in gencase.c */ extern uint32_t *pv; /* prototypes */ U_CFUNC void writeUCDFilename(char *basename, const char *filename, const char *suffix); U_CFUNC UBool isToken(const char *token, const char *s); extern void setUnicodeVersion(const char *v); extern void setProps(Props *p); U_CFUNC uint32_t U_EXPORT2 getFoldedPropsValue(UNewTrie *trie, UChar32 start, int32_t offset); extern void addCaseSensitive(UChar32 first, UChar32 last); extern void makeCaseClosure(void); extern void makeExceptions(void); extern void generateData(const char *dataDir); U_CDECL_END #endif