#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Unicode.h"
namespace llvm {
namespace sys {
namespace unicode {
extern const char *UnicodeNameToCodepointDict;
extern const uint8_t *UnicodeNameToCodepointIndex;
extern const std::size_t UnicodeNameToCodepointIndexSize;
extern const std::size_t UnicodeNameToCodepointLargestNameSize;
BufferType;
struct Node { … };
static Node createRoot() { … }
static Node readNode(uint32_t Offset, const Node *Parent = nullptr) { … }
static bool startsWith(StringRef Name, StringRef Needle, bool Strict,
std::size_t &Consummed, char &PreviousCharInName,
bool IsPrefix = false) { … }
static std::tuple<Node, bool, uint32_t>
compareNode(uint32_t Offset, StringRef Name, bool Strict,
char PreviousCharInName, BufferType &Buffer,
const Node *Parent = nullptr) { … }
static std::tuple<Node, bool, uint32_t>
compareNode(uint32_t Offset, StringRef Name, bool Strict, BufferType &Buffer) { … }
constexpr const char *const HangulSyllables[][3] = …;
constexpr const char32_t SBase = …;
constexpr const uint32_t LCount = …;
constexpr const uint32_t VCount = …;
constexpr const uint32_t TCount = …;
static std::size_t findSyllable(StringRef Name, bool Strict,
char &PreviousInName, int &Pos, int Column) { … }
static std::optional<char32_t>
nameToHangulCodePoint(StringRef Name, bool Strict, BufferType &Buffer) { … }
struct GeneratedNamesData { … };
static const GeneratedNamesData GeneratedNamesDataTable[] = …;
static std::optional<char32_t>
nameToGeneratedCodePoint(StringRef Name, bool Strict, BufferType &Buffer) { … }
static std::optional<char32_t> nameToCodepoint(StringRef Name, bool Strict,
BufferType &Buffer) { … }
std::optional<char32_t> nameToCodepointStrict(StringRef Name) { … }
std::optional<LooseMatchingResult>
nameToCodepointLooseMatching(StringRef Name) { … }
llvm::SmallVector<MatchForCodepointName>
nearestMatchesForCodepointName(StringRef Pattern, std::size_t MaxMatchesCount) { … }
}
}
}