clang: include/clang/Basic/IdentifierTable.h File Reference (original) (raw)

Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces. More...

#include "[clang/Basic/Builtins.h](Builtins%5F8h%5Fsource.html)"
#include "[clang/Basic/DiagnosticIDs.h](DiagnosticIDs%5F8h%5Fsource.html)"
#include "[clang/Basic/LLVM.h](LLVM%5F8h%5Fsource.html)"
#include "[clang/Basic/TokenKinds.h](TokenKinds%5F8h%5Fsource.html)"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/PointerLikeTypeTraits.h"
#include "llvm/Support/type_traits.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <string>
#include <utility>
#include "clang/Basic/TokenKinds.def"
#include "clang/Basic/Builtins.inc"

Go to the source code of this file.

Classes
class clang::IdentifierInfo
One of these records is kept for each identifier that is lexed. More...
class clang::PoisonIdentifierRAIIObject
An RAII object for [un]poisoning an identifier within a scope. More...
class clang::IdentifierIterator
An iterator that walks over all of the known identifiers in the lookup table. More...
class clang::IdentifierInfoLookup
Provides lookups to, and iteration over, IdentiferInfo objects. More...
class clang::IdentifierTable
Implements an efficient mapping from strings to IdentifierInfo nodes. More...
class clang::detail::DeclarationNameExtra
DeclarationNameExtra is used as a base of various uncommon special names. More...
class clang::MultiKeywordSelector
One of these variable length records is kept for each selector containing more than one keyword. More...
class clang::Selector
Smart pointer class that efficiently represents Objective-C method names. More...
class clang::SelectorTable
This table allows us to fully hide how we implement multi-keyword caching. More...
struct llvm::DenseMapInfo< clang::Selector >
Define DenseMapInfo so that Selectors can be used as keys in DenseMap and DenseSets. More...
struct llvm::PointerLikeTypeTraits< clang::Selector >
Namespaces
namespace clang
The JSON file list parser is used to communicate input to InstallAPI.
namespace clang::detail
namespace llvm
Diagnostic wrappers for TextAPI types for error reporting.
Macros
#define OBJC_AT_KEYWORD(X) objc_##X,
#define NOTABLE_IDENTIFIER(X) X,
#define BUILTIN(ID, TYPE, ATTRS) BI##ID,
Typedefs
using clang::IdentifierLocPair = std::pair< IdentifierInfo *, SourceLocation >
A simple pair of identifier info and location.
Enumerations
enum class clang::ReservedIdentifierStatus { clang::NotReserved = 0 , clang::StartsWithUnderscoreAtGlobalScope, clang::StartsWithUnderscoreAndIsExternC, clang::StartsWithDoubleUnderscore, clang::StartsWithUnderscoreFollowedByCapitalLetter, clang::ContainsDoubleUnderscore }
enum class clang::ReservedLiteralSuffixIdStatus { clang::NotReserved = 0 , clang::NotStartsWithUnderscore, clang::ContainsDoubleUnderscore }
enum { clang::IdentifierInfoAlignment = 8 }
IdentifierInfo and other related classes are aligned to 8 bytes so that DeclarationName can use the lower 3 bits of a pointer to one of these classes. More...
enum class clang::InterestingIdentifier { clang::OBJC_AT_KEYWORD, clang::NUM_OBJC_KEYWORDS, clang::NOTABLE_IDENTIFIER, clang::NUM_OBJC_KEYWORDS_AND_NOTABLE_IDENTIFIERS, clang::NotBuiltin, clang::BUILTIN, clang::FirstTSBuiltin, clang::NotInterestingIdentifier = 65534 }
The "layout" of InterestingIdentifier is: More...
enum clang::ObjCMethodFamily { clang::OMF_None, clang::OMF_alloc, clang::OMF_copy, clang::OMF_init, clang::OMF_mutableCopy, clang::OMF_new, clang::OMF_autorelease, clang::OMF_dealloc, clang::OMF_finalize, clang::OMF_release, clang::OMF_retain, clang::OMF_retainCount, clang::OMF_self, clang::OMF_initialize, clang::OMF_performSelector }
A family of Objective-C methods. More...
enum { clang::ObjCMethodFamilyBitWidth = 4 }
Enough bits to store any enumerator in ObjCMethodFamily or InvalidObjCMethodFamily. More...
enum { clang::InvalidObjCMethodFamily = (1 << ObjCMethodFamilyBitWidth) - 1 }
An invalid value of ObjCMethodFamily. More...
enum clang::ObjCInstanceTypeFamily { clang::OIT_None, clang::OIT_Array, clang::OIT_Dictionary, clang::OIT_Singleton, clang::OIT_Init, clang::OIT_ReturnsSelf }
A family of Objective-C methods. More...
enum clang::ObjCStringFormatFamily { clang::SFF_None, clang::SFF_NSString, clang::SFF_CFString }
Functions
bool clang::isReservedAtGlobalScope (ReservedIdentifierStatus Status)
Determine whether an identifier is reserved for use as a name at global scope.
bool clang::isReservedInAllContexts (ReservedIdentifierStatus Status)
Determine whether an identifier is reserved in all contexts.

BUILTIN

| #define BUILTIN | ( | | ID, | | -------------------------------------------------------------- | -------------------------------------------------------------- | | ---------------------------------------------------------- | | | TYPE, | | | | | | ATTRS | | | | | ) | BI##ID, | | |

NOTABLE_IDENTIFIER

| #define NOTABLE_IDENTIFIER | ( | | X | ) | X, | | --------------------------- | - | | --------------------------------------------------------------------- | - | ---------------------------------------------------------------------- |

OBJC_AT_KEYWORD

| #define OBJC_AT_KEYWORD | ( | | X | ) | objc_##X, | | ------------------------- | - | | --------------------------------------------------------------------- | - | ------------------------------------------------------------------------------ |