// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * * Copyright (C) 2008-2016, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** * file name: uspoof_conf.h * encoding: UTF-8 * tab size: 8 (not used) * indentation:4 * * created on: 2009Jan05 * created by: Andy Heninger * * Internal classes for compiling confusable data into its binary (runtime) form. */ #ifndef __USPOOF_BUILDCONF_H__ #define __USPOOF_BUILDCONF_H__ #include "unicode/utypes.h" #if !UCONFIG_NO_NORMALIZATION #if !UCONFIG_NO_REGULAR_EXPRESSIONS #include "unicode/uregex.h" #include "uhash.h" #include "uspoof_impl.h" U_NAMESPACE_BEGIN // SPUString // Holds a string that is the result of one of the mappings defined // by the confusable mapping data (confusables.txt from Unicode.org) // Instances of SPUString exist during the compilation process only. struct SPUString : public UMemory { … }; // String Pool A utility class for holding the strings that are the result of // the spoof mappings. These strings will utimately end up in the // run-time String Table. // This is sort of like a sorted set of strings, except that ICU's anemic // built-in collections don't support those, so it is implemented with a // combination of a uhash and a UVector. class SPUStringPool : public UMemory { … }; // class ConfusabledataBuilder // An instance of this class exists while the confusable data is being built from source. // It encapsulates the intermediate data structures that are used for building. // It exports one static function, to do a confusable data build. class ConfusabledataBuilder : public UMemory { … }; U_NAMESPACE_END #endif #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS #endif // __USPOOF_BUILDCONF_H__