12#ifndef ROOT_TClingTypedefInfo
13#define ROOT_TClingTypedefInfo
31#include "cling/Interpreter/Interpreter.h"
32#include "clang/AST/ASTContext.h"
33#include "clang/AST/Decl.h"
34#include "clang/Frontend/CompilerInstance.h"
40 namespace TMetaUtils {
41 class TNormalizedCtxt;
52 clang::DeclContext::decl_iterator
fIter;
53 std::vector<clang::DeclContext::decl_iterator>
fIterStack;
61 const clang::TranslationUnitDecl *TU =
fInterp->getCI()->getASTContext().getTranslationUnitDecl();
62 const clang::DeclContext *DC = llvm::cast<clang::DeclContext>(TU);
63 cling::Interpreter::PushTransactionRAII RAII(
fInterp);
64 fIter = DC->decls_begin();
76 const char *
TrueName(
const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt)
const;
77 const char *
Name()
override;
The file contains a base class of TCling*Info classes.
Emulation of the CINT TypedefInfo class.
const char * Name() override
Get the name of the current typedef.
const char * TrueName(const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
Get the name of the underlying type of the current typedef.
long Property() const
Return a bit mask of metadata about the current typedef.
clang::DeclContext::decl_iterator fIter
TClingTypedefInfo(cling::Interpreter *interp)
void Init(const char *name)
Lookup named typedef and reset the iterator to point to it.
int InternalNext()
Increment the iterator, return true if new position is valid.
int Next()
Increment the iterator.
int Size() const
Return the size in bytes of the underlying type of the current typedef.
std::vector< clang::DeclContext::decl_iterator > fIterStack
cling::Interpreter * fInterp