You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.0 KiB

#ifndef NFC_SETS_HH
#define NFC_SETS_HH
#include <set>
#include <map>
// These data structures are filled by code generated automatically
// from Unicode's DerivedNormalizationProps.txt and UnicodeData.txt.
// see scripts/ subdirectory
// TODO: (maybe) Replace them by flat_map or sorted arrays, because these might be faster. But make benchmarks first!
// Contains all codepoints with NFC_No property.
extern const std::set<unsigned> NFC_No;
// Contains all codepoints with NFC_Maybe property.
extern const std::set<unsigned> NFC_Maybe;
// Contains CanonicalCombiningClass for given codepoints. All others have value 0.
extern const std::map<unsigned, unsigned char> NFC_CombiningClass;
// Contains the canonical decomposing pairs. second member might be -1 for single decompositions.
extern const std::map<unsigned, std::pair<int,int>> NFC_Decompose;
// canonical composing mapping, except excluded ones according to Unicode TR-15
extern const std::map< std::pair<unsigned, unsigned>, unsigned> NFC_Compose;
#endif // NFC_SETS_HH