blob: 01a7c761e16623a7b40107ef8906d8fc7fa16d6e [file] [log] [blame]
//===--- Confusables.h - Swift Confusable Character Diagnostics -*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
#ifndef SWIFT_CONFUSABLES_H
#define SWIFT_CONFUSABLES_H
#include "llvm/ADT/StringRef.h"
#include <stdint.h>
namespace swift {
namespace confusable {
/// Given a UTF-8 codepoint, determines whether it appears on the Unicode
/// specification table of confusable characters and maps to punctuation,
/// and either returns either the expected ASCII character or 0.
char tryConvertConfusableCharacterToASCII(uint32_t codepoint);
/// Given a UTF-8 codepoint which is previously determined to be confusable,
/// return the name of the confusable character and the name of the base
/// character.
std::pair<llvm::StringRef, llvm::StringRef>
getConfusableAndBaseCodepointNames(uint32_t codepoint);
}
}
#endif