12 #ifndef ROOT_TClingTypedefInfo
13 #define ROOT_TClingTypedefInfo
29 #include "cling/Interpreter/Interpreter.h"
30 #include "clang/AST/ASTContext.h"
31 #include "clang/AST/Decl.h"
32 #include "clang/Frontend/CompilerInstance.h"
38 namespace TMetaUtils {
39 class TNormalizedCtxt;
50 clang::DeclContext::decl_iterator
fIter;
52 std::vector<clang::DeclContext::decl_iterator>
fIterStack;
58 : fInterp(interp), fFirstTime(true), fDescend(
false), fDecl(0), fTitle(
"")
60 const clang::TranslationUnitDecl *TU = fInterp->getCI()->getASTContext().getTranslationUnitDecl();
61 const clang::DeclContext *DC = llvm::cast<clang::DeclContext>(TU);
62 fIter = DC->decls_begin();
69 const clang::Decl *
GetDecl()
const;
77 const char *
Name()
const;
82 #endif // ROOT_TClingTypedefInfo
int InternalNext()
Increment the iterator, return true if new position is valid.
Namespace for new ROOT classes and functions.
void Init(const char *name)
Lookup named typedef and reset the iterator to point to it.
const clang::Decl * fDecl
std::vector< clang::DeclContext::decl_iterator > fIterStack
clang::DeclContext::decl_iterator fIter
const char * TrueName(const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
Get the name of the underlying type of the current typedef.
ClassImp(TIterator) Bool_t TIterator return false
Compare two iterator objects.
int Next()
Increment the iterator.
long Property() const
Return a bit mask of metadata about the current typedef.
TClingTypedefInfo(cling::Interpreter *interp)
const clang::Decl * GetDecl() const
Get the current typedef declaration.
const char * Name() const
Get the name of the current typedef.
int Size() const
Return the size in bytes of the underlying type of the current typedef.
Emulation of the CINT TypedefInfo class.
bool IsValid() const
Return true if the current iterator position is valid.
cling::Interpreter * fInterp