12 #ifndef ROOT_TClingDataMemberInfo 13 #define ROOT_TClingDataMemberInfo 31 #include "cling/Interpreter/Interpreter.h" 33 #include "clang/AST/ASTContext.h" 34 #include "clang/AST/Decl.h" 35 #include "clang/Frontend/CompilerInstance.h" 46 namespace TMetaUtils {
47 class TNormalizedCtxt;
60 clang::DeclContext::decl_iterator
fIter;
61 std::vector<clang::DeclContext::decl_iterator>
fIterStack;
65 llvm::SmallVector<clang::DeclContext *, 2>
fContexts;
75 inline void CheckForIoTypeAndName ()
const;
82 : fInterp(interp), fClassInfo(0), fFirstTime(true), fSingleDecl(0), fContextIdx(0U)
85 fIter = fInterp->getCI()->getASTContext().getTranslationUnitDecl()->decls_begin();
126 int ArrayDim()
const;
128 const clang::Decl *
GetDecl()
const {
return fSingleDecl ? fSingleDecl : *fIter; }
129 DeclId_t GetDeclId()
const;
131 int MaxIndex(
int dim)
const;
133 bool Next() {
return InternalNext(); }
135 long Property()
const;
136 long TypeProperty()
const;
137 int TypeSize()
const;
138 const char *TypeName()
const;
140 const char *
Name()
const;
142 llvm::StringRef ValidArrayIndex()
const;
146 #endif // ROOT_TClingDataMemberInfo
RooCmdArg Offset(Bool_t flag=kTRUE)
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
Emulation of the CINT DataMemberInfo class.
TClingDataMemberInfo(cling::Interpreter *interp)
clang::DeclContext::decl_iterator fIter
std::vector< clang::DeclContext::decl_iterator > fIterStack
llvm::SmallVector< clang::DeclContext *, 2 > fContexts
TClingClassInfo * GetClassInfo() const
TClingDataMemberInfo & operator=(const TClingDataMemberInfo &rhs)
cling::Interpreter * fInterp
TDictionary::DeclId_t DeclId_t
TClingDataMemberInfo(const TClingDataMemberInfo &rhs)
const clang::ValueDecl * fSingleDecl
Emulation of the CINT ClassInfo class.
TClingClassInfo * fClassInfo
const clang::Decl * GetDecl() const