00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef COMMA_BASIC_IDENTIFIERINFO_HDR_GUARD
00010 #define COMMA_BASIC_IDENTIFIERINFO_HDR_GUARD
00011
00012 #include "llvm/ADT/StringMap.h"
00013 #include <cassert>
00014
00015 namespace comma {
00016
00033 class IdentifierInfo {
00034
00035 public:
00038 const char *getString() const {
00039 return llvm::StringMapEntry<IdentifierInfo>::
00040 GetStringMapEntryFromValue(*this).getKeyData();
00041 }
00042
00045 template<typename T>
00046 T* getMetadata() const { return static_cast<T*>(metadata); }
00047
00052 void setMetadata(void *mdata) { metadata = mdata; }
00053
00055 bool hasMetadata() const { return metadata != 0; }
00056
00057 private:
00058 void *metadata;
00059 };
00060
00061 }
00062
00063 #endif