1b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru/* 2b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru****************************************************************************** 3b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* 483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius* Copyright (C) 2008-2012, International Business Machines 5b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* Corporation and others. All Rights Reserved. 6b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* 7b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru****************************************************************************** 8b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* file name: uspoof_buildwsconf.h 9b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* encoding: US-ASCII 10b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* tab size: 8 (not used) 11b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* indentation:4 12b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* 13b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* created on: 2009Jan19 14b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* created by: Andy Heninger 15b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* 16b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* Internal classes and functions 17b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* for compiling whole script confusable data into its binary (runtime) form. 18b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru*/ 19b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 20b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#ifndef __USPOOF_BUILDWSCONF_H__ 21b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#define __USPOOF_BUILDWSCONF_H__ 22b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 23b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "unicode/utypes.h" 24b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 25b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#if !UCONFIG_NO_NORMALIZATION 26b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 27b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#if !UCONFIG_NO_REGULAR_EXPRESSIONS 28b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 29b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "uspoof_impl.h" 30b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "utrie2.h" 31b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 3250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 3350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_NAMESPACE_BEGIN 3450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 35b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru// 36b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru// class BuilderScriptSet. Represents the set of scripts (Script Codes) 37b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru// containing characters that are confusable with one specific 38b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru// code point. 39b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru// 4050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 41b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruclass BuilderScriptSet: public UMemory { 42b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru public: 43b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru UChar32 codePoint; // The source code point. 44b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru UTrie2 *trie; // Any-case or Lower-case Trie. 45b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // These Trie tables are the final result of the 46b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // build. This flag indicates which of the two 47b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // this set of data is for. 48b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru ScriptSet *sset; // The set of scripts itself. 49b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 50b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // Vectors of all B 51b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru uint32_t index; // Index of this set in the Build Time vector 52b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // of script sets. 53b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru uint32_t rindex; // Index of this set in the final (runtime) 54b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // array of sets. 55b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru UBool scriptSetOwned; // True if this BuilderScriptSet owns (should delete) 56b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // its underlying sset. 57b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 58b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru BuilderScriptSet(); 59b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru ~BuilderScriptSet(); 60b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru}; 61b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 6250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 63b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruvoid buildWSConfusableData(SpoofImpl *spImpl, const char * confusablesWS, 64b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru int32_t confusablesWSLen, UParseError *pe, UErrorCode &status); 65b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 6683a171d1a62abf406f7f44ae671823d5ec20db7dCraig CorneliusU_NAMESPACE_END 67b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 68b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#endif // !UCONFIG_NO_REGULAR_EXPRESSIONS 69b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#endif // !UCONFIG_NO_NORMALIZATION 70b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#endif 71