/*
******************************************************************************
*
* Copyright (C) 2008-2009, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
* file name: uspoof_buildwsconf.h
* encoding: US-ASCII
* tab size: 8 (not used)
* indentation:4
*
* created on: 2009Jan19
* created by: Andy Heninger
*
* Internal classes and functions
* for compiling whole script confusable data into its binary (runtime) form.
*/
#ifndef __USPOOF_BUILDWSCONF_H__
#define __USPOOF_BUILDWSCONF_H__
#include "unicode/utypes.h"
#if !UCONFIG_NO_NORMALIZATION
#if !UCONFIG_NO_REGULAR_EXPRESSIONS
#include "uspoof_impl.h"
#include "utrie2.h"
U_NAMESPACE_BEGIN
//
// class BuilderScriptSet. Represents the set of scripts (Script Codes)
// containing characters that are confusable with one specific
// code point.
//
class BuilderScriptSet: public UMemory {
public:
UChar32 codePoint; // The source code point.
UTrie2 *trie; // Any-case or Lower-case Trie.
// These Trie tables are the final result of the
// build. This flag indicates which of the two
// this set of data is for.
ScriptSet *sset; // The set of scripts itself.
// Vectors of all B
uint32_t index; // Index of this set in the Build Time vector
// of script sets.
uint32_t rindex; // Index of this set in the final (runtime)
// array of sets.
UBool scriptSetOwned; // True if this BuilderScriptSet owns (should delete)
// its underlying sset.
BuilderScriptSet();
~BuilderScriptSet();
};
U_NAMESPACE_END
void buildWSConfusableData(SpoofImpl *spImpl, const char * confusablesWS,
int32_t confusablesWSLen, UParseError *pe, UErrorCode &status);
#endif // !UCONFIG_NO_REGULAR_EXPRESSIONS
#endif // !UCONFIG_NO_NORMALIZATION
#endif