ROOT
6.06/09
Reference Guide
|
Namespaces | |
AST2SourceTools | |
propNames | |
Classes | |
class | AnnotatedRecordDecl |
class | RConstructorType |
class | TClingLookupHelper |
class | TNormalizedCtxt |
Typedefs | |
typedef void(* | CallWriteStreamer_t) (const AnnotatedRecordDecl &cl, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt, std::ostream &dictStream, bool isAutoStreamer) |
typedef std::list< RConstructorType > | RConstructorTypes |
Enumerations | |
enum | DataMemberInfo__ValidArrayIndex_error_code { VALID, NOT_INT, NOT_DEF, IS_PRIVATE, UNKNOWN } |
enum | EIOCtorCategory : short { EIOCtorCategory::kAbsent, EIOCtorCategory::kDefault, EIOCtorCategory::kIOPtrType, EIOCtorCategory::kIORefType } |
Functions | |
unsigned int | GetNumberOfWarningsAndErrors () |
int | extractAttrString (clang::Attr *attribute, std::string &attrString) |
Extract attr string. More... | |
int | extractPropertyNameValFromString (const std::string attributeStr, std::string &attrName, std::string &attrValue) |
int | extractPropertyNameVal (clang::Attr *attribute, std::string &attrName, std::string &attrValue) |
bool | ExtractAttrPropertyFromName (const clang::Decl &decl, const std::string &propName, std::string &propValue) |
This routine counts on the "propName<separator>propValue" format. More... | |
bool | ExtractAttrIntPropertyFromName (const clang::Decl &decl, const std::string &propName, int &propValue) |
This routine counts on the "propName<separator>propValue" format. More... | |
bool | RequireCompleteType (const cling::Interpreter &interp, const clang::CXXRecordDecl *cl) |
bool | RequireCompleteType (const cling::Interpreter &interp, clang::SourceLocation Loc, clang::QualType Type) |
clang::QualType | AddDefaultParameters (clang::QualType instanceType, const cling::Interpreter &interpret, const TNormalizedCtxt &normCtxt) |
Add any unspecified template parameters to the class template instance, mentioned anywhere in the type. More... | |
llvm::StringRef | DataMemberInfo__ValidArrayIndex (const clang::DeclaratorDecl &m, int *errnum=0, llvm::StringRef *errstr=0) |
ValidArrayIndex return a static string (so use it or copy it immediatly, do not call GrabIndex twice in the same expression) containing the size of the array data member. More... | |
std::string | GetROOTIncludeDir (bool rootbuild) |
EIOCtorCategory | CheckConstructor (const clang::CXXRecordDecl *, const RConstructorType &, const cling::Interpreter &interp) |
const clang::FunctionDecl * | ClassInfo__HasMethod (const clang::DeclContext *cl, char const *, const cling::Interpreter &interp) |
void | CreateNameTypeMap (clang::CXXRecordDecl const &, std::map< std::string, ROOT::Internal::TSchemaType, std::less< std::string >, std::allocator< std::pair< std::string const, ROOT::Internal::TSchemaType > > > &) |
int | ElementStreamer (std::ostream &finalString, const clang::NamedDecl &forcontext, const clang::QualType &qti, const char *t, int rwmode, const cling::Interpreter &interp, const char *tcl=0) |
bool | IsBase (const clang::CXXRecordDecl *cl, const clang::CXXRecordDecl *base, const clang::CXXRecordDecl *context, const cling::Interpreter &interp) |
bool | IsBase (const clang::FieldDecl &m, const char *basename, const cling::Interpreter &interp) |
bool | HasCustomOperatorNewArrayPlacement (clang::RecordDecl const &, const cling::Interpreter &interp) |
return true if we can find a custom operator new with placement More... | |
bool | HasCustomOperatorNewPlacement (char const *, clang::RecordDecl const &, const cling::Interpreter &) |
return true if we can find a custom operator new with placement More... | |
bool | HasCustomOperatorNewPlacement (clang::RecordDecl const &, const cling::Interpreter &) |
return true if we can find a custom operator new with placement More... | |
bool | HasDirectoryAutoAdd (clang::CXXRecordDecl const *, const cling::Interpreter &) |
Return true if the class has a method DirectoryAutoAdd(TDirectory *) More... | |
bool | HasIOConstructor (clang::CXXRecordDecl const *, std::string &, const RConstructorTypes &, const cling::Interpreter &) |
return true if we can find an constructor calleable without any arguments or with one the IOCtor special types. More... | |
bool | HasNewMerge (clang::CXXRecordDecl const *, const cling::Interpreter &) |
Return true if the class has a method Merge(TCollection*,TFileMergeInfo*) More... | |
bool | HasOldMerge (clang::CXXRecordDecl const *, const cling::Interpreter &) |
Return true if the class has a method Merge(TCollection*) More... | |
bool | hasOpaqueTypedef (clang::QualType instanceType, const TNormalizedCtxt &normCtxt) |
Return true if the type is a Double32_t or Float16_t or is a instance template that depends on Double32_t or Float16_t. More... | |
bool | hasOpaqueTypedef (const AnnotatedRecordDecl &cl, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt) |
Return true if any of the argument is or contains a double32. More... | |
bool | HasResetAfterMerge (clang::CXXRecordDecl const *, const cling::Interpreter &) |
Return true if the class has a method ResetAfterMerge(TFileMergeInfo *) More... | |
bool | NeedDestructor (clang::CXXRecordDecl const *) |
bool | NeedTemplateKeyword (clang::CXXRecordDecl const *) |
bool | CheckPublicFuncWithProto (clang::CXXRecordDecl const *, char const *, char const *, const cling::Interpreter &, bool diagnose) |
Return true, if the function (defined by the name and prototype) exists and is public. More... | |
long | GetLineNumber (clang::Decl const *) |
It looks like the template specialization decl actually contains less information on the location of the code than the decl (in case where there is forward declaration, that is what the specialization points to. More... | |
bool | GetNameWithinNamespace (std::string &, std::string &, std::string &, clang::CXXRecordDecl const *) |
Return true if one of the class' enclosing scope is a namespace and set fullname to the fully qualified name, clsname to the name within a namespace and nsname to the namespace fully qualified name. More... | |
void | GetQualifiedName (std::string &qual_name, const clang::QualType &type, const clang::NamedDecl &forcontext) |
Main implementation relying on GetFullyQualifiedTypeName All other GetQualifiedName functions leverage this one except the one for namespaces. More... | |
std::string | GetQualifiedName (const clang::QualType &type, const clang::NamedDecl &forcontext) |
void | GetQualifiedName (std::string &qual_name, const clang::Type &type, const clang::NamedDecl &forcontext) |
std::string | GetQualifiedName (const clang::Type &type, const clang::NamedDecl &forcontext) |
void | GetQualifiedName (std::string &qual_name, const clang::NamedDecl &nd) |
This implementation does not rely on GetFullyQualifiedTypeName. More... | |
std::string | GetQualifiedName (const clang::NamedDecl &nd) |
void | GetQualifiedName (std::string &qual_name, const AnnotatedRecordDecl &annotated) |
std::string | GetQualifiedName (const AnnotatedRecordDecl &annotated) |
void | GetQualifiedName (std::string &qual_name, const clang::RecordDecl &recordDecl) |
std::string | GetQualifiedName (const clang::RecordDecl &recordDecl) |
int | WriteNamespaceHeader (std::ostream &, const clang::RecordDecl *) |
int | WriteNamespaceHeader (std::ostream &, const clang::DeclContext *) |
Write all the necessary opening part of the namespace and return the number of closing brackets needed For example for Space1::Space2 we write: namespace Space1 { namespace Space2 { and return 2. More... | |
void | WritePointersSTL (const AnnotatedRecordDecl &cl, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt) |
Write interface function for STL members. More... | |
int | GetClassVersion (const clang::RecordDecl *cl, const cling::Interpreter &interp) |
Return the version number of the class or -1 if the function Class_Version does not exist. More... | |
int | IsSTLContainer (const AnnotatedRecordDecl &annotated) |
Is this an STL container. More... | |
ROOT::ESTLType | IsSTLContainer (const clang::FieldDecl &m) |
Is this an STL container? More... | |
int | IsSTLContainer (const clang::CXXBaseSpecifier &base) |
Is this an STL container? More... | |
const char * | ShortTypeName (const char *typeDesc) |
Return the absolute type of typeDesc. More... | |
std::string | ShortTypeName (const clang::FieldDecl &m) |
Return the absolute type of typeDesc. More... | |
bool | IsStreamableObject (const clang::FieldDecl &m, const cling::Interpreter &interp) |
clang::RecordDecl * | GetUnderlyingRecordDecl (clang::QualType type) |
std::string | TrueName (const clang::FieldDecl &m) |
TrueName strips the typedefs and array dimensions. More... | |
const clang::CXXRecordDecl * | ScopeSearch (const char *name, const cling::Interpreter &gInterp, bool diagnose, const clang::Type **resultType) |
Return the scope corresponding to 'name' or std::'name'. More... | |
void | WriteAuxFunctions (std::ostream &finalString, const AnnotatedRecordDecl &cl, const clang::CXXRecordDecl *decl, const cling::Interpreter &interp, const RConstructorTypes &ctorTypes, const TNormalizedCtxt &normCtxt) |
std::string NormalizedName; GetNormalizedName(NormalizedName, decl->getASTContext().getTypeDeclType(decl), interp, normCtxt); More... | |
const clang::FunctionDecl * | GetFuncWithProto (const clang::Decl *cinfo, const char *method, const char *proto, const cling::Interpreter &gInterp, bool diagnose) |
void | WriteClassCode (CallWriteStreamer_t WriteStreamerFunc, const AnnotatedRecordDecl &cl, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt, std::ostream &finalString, const RConstructorTypes &ctorTypes, bool isGenreflex) |
Generate the code of the class If the requestor is genreflex, request the new streamer format. More... | |
void | WriteClassInit (std::ostream &finalString, const AnnotatedRecordDecl &cl, const clang::CXXRecordDecl *decl, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt, const RConstructorTypes &ctorTypes, bool &needCollectionProxy) |
FIXME: a function of ~300 lines! More... | |
bool | HasCustomStreamerMemberFunction (const AnnotatedRecordDecl &cl, const clang::CXXRecordDecl *clxx, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt) |
Return true if the class has a custom member function streamer. More... | |
bool | HasCustomConvStreamerMemberFunction (const AnnotatedRecordDecl &cl, const clang::CXXRecordDecl *clxx, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt) |
Return true if the class has a custom member function streamer. More... | |
llvm::StringRef | GetFileName (const clang::Decl &decl, const cling::Interpreter &interp) |
Return the header file to be included to declare the Decl. More... | |
std::string | GetModuleFileName (const char *moduleName) |
Return the dictionary file name for a module. More... | |
clang::Module * | declareModuleMap (clang::CompilerInstance *CI, const char *moduleFileName, const char *headers[]) |
Declare a virtual module.map to clang. Returns Module on success. More... | |
std::string | GetInterpreterExtraIncludePath (bool rootbuild) |
Return the -I needed to find RuntimeUniverse.h. More... | |
std::string | GetLLVMResourceDir (bool rootbuild) |
Return the LLVM / clang resource directory. More... | |
void | GetCppName (std::string &output, const char *input) |
Return (in the argument 'output') a mangled version of the C++ symbol/type (pass as 'input') that can be used in C++ as a variable name. More... | |
void | GetFullyQualifiedTypeName (std::string &name, const clang::QualType &type, const cling::Interpreter &interpreter) |
void | GetFullyQualifiedTypeName (std::string &name, const clang::QualType &type, const clang::ASTContext &) |
clang::QualType | GetNormalizedType (const clang::QualType &type, const cling::Interpreter &interpreter, const TNormalizedCtxt &normCtxt) |
Return the type normalized for ROOT, keeping only the ROOT opaque typedef (Double32_t, etc.) and adding default template argument for all types except those explicitly requested to be drop by the user. More... | |
void | GetNormalizedName (std::string &norm_name, const clang::QualType &type, const cling::Interpreter &interpreter, const TNormalizedCtxt &normCtxt) |
Return the type name normalized for ROOT, keeping only the ROOT opaque typedef (Double32_t, etc.) and adding default template argument for all types except the STL collections where we remove the default template argument if any. More... | |
void | GetNormalizedName (std::string &norm_name, const clang::TypeDecl *typeDecl, const cling::Interpreter &interpreter) |
llvm::StringRef | GetComment (const clang::Decl &decl, clang::SourceLocation *loc=0) |
Returns the comment (// striped away), annotating declaration in a meaningful for ROOT IO way. More... | |
llvm::StringRef | GetClassComment (const clang::CXXRecordDecl &decl, clang::SourceLocation *loc, const cling::Interpreter &interpreter) |
Return the class comment after the ClassDef: class MyClass { ... More... | |
const clang::Type * | GetUnderlyingType (clang::QualType type) |
Return the base/underlying type of a chain of array or pointers type. More... | |
template<typename T > | |
const T * | GetAnnotatedRedeclarable (const T *Redecl) |
const clang::TypedefNameDecl * | GetAnnotatedRedeclarable (const clang::TypedefNameDecl *TND) |
const clang::TagDecl * | GetAnnotatedRedeclarable (const clang::TagDecl *TND) |
bool | IsStdClass (const clang::RecordDecl &cl) |
Return true, if the decl is part of the std namespace. More... | |
bool | IsStdDropDefaultClass (const clang::RecordDecl &cl) |
Return true, if the decl is part of the std namespace and we want its default parameter dropped. More... | |
bool | MatchWithDeclOrAnyOfPrevious (const clang::CXXRecordDecl &cl, const clang::CXXRecordDecl ¤tCl) |
This is a recursive function. More... | |
bool | IsOfType (const clang::CXXRecordDecl &cl, const std::string &type, const cling::LookupHelper &lh) |
ROOT::ESTLType | IsSTLCont (const clang::RecordDecl &cl) |
type : type name: vector<list<classA,allocator>,allocator> result: 0 : not stl container abs(result): code of container 1=vector,2=list,3=deque,4=map 5=multimap,6=set,7=multiset More... | |
clang::QualType | ReSubstTemplateArg (clang::QualType input, const clang::Type *instance) |
Check if 'input' or any of its template parameter was substituted when instantiating the class template instance and replace it with the partially sugared types we have from 'instance'. More... | |
int | RemoveTemplateArgsFromName (std::string &name, unsigned int) |
Remove the last n template arguments from the name. More... | |
clang::TemplateName | ExtractTemplateNameFromQualType (const clang::QualType &qt) |
These manipulations are necessary because a template specialisation type does not inherit from a record type (there is an asymmetry between the decls and the types in the clang interface). More... | |
bool | QualType2Template (const clang::QualType &qt, clang::ClassTemplateDecl *&ctd, clang::ClassTemplateSpecializationDecl *&ctsd) |
Get the template specialisation decl and template decl behind the qualtype Returns true if successfully found, false otherwise. More... | |
clang::ClassTemplateDecl * | QualType2ClassTemplateDecl (const clang::QualType &qt) |
Extract from a qualtype the class template if this makes sense. More... | |
void | ExtractCtxtEnclosingNameSpaces (const clang::DeclContext &, std::list< std::pair< std::string, bool > > &) |
Extract enclosing namespaces recusrively. More... | |
void | ExtractEnclosingNameSpaces (const clang::Decl &, std::list< std::pair< std::string, bool > > &) |
Extract the immediately outer namespace and then launch the recursion. More... | |
const clang::RecordDecl * | ExtractEnclosingScopes (const clang::Decl &decl, std::list< std::pair< std::string, unsigned int > > &enclosingSc) |
Extract the names and types of containing scopes. More... | |
ROOT::ESTLType | STLKind (const llvm::StringRef type) |
Converts STL container name to number. vector -> 1, etc.. More... | |
void | SetPathsForRelocatability (std::vector< std::string > &clingArgs) |
Organise the parameters for cling in order to guarantee relocatability It treats the gcc toolchain and the root include path FIXME: enables relocatability for experiments' framework headers until PCMs are available. More... | |
void | ReplaceAll (std::string &str, const std::string &from, const std::string &to, bool recurse=false) |
void | LevelPrint (bool prefix, int level, const char *location, const char *fmt, va_list ap) |
void | Error (const char *location, const char *va_(fmt),...) |
Use this function in case an error occured. More... | |
void | SysError (const char *location, const char *va_(fmt),...) |
Use this function in case a system (OS or GUI) related error occured. More... | |
void | Info (const char *location, const char *va_(fmt),...) |
Use this function for informational messages. More... | |
void | Warning (const char *location, const char *va_(fmt),...) |
Use this function in warning situations. More... | |
void | Fatal (const char *location, const char *va_(fmt),...) |
Use this function in case of a fatal error. It will abort the program. More... | |
const std::string & | GetPathSeparator () |
Return the separator suitable for this platform. More... | |
bool | EndsWith (const std::string &theString, const std::string &theSubstring) |
bool | BeginsWith (const std::string &theString, const std::string &theSubstring) |
Variables | |
int | gErrorIgnoreLevel = ROOT::TMetaUtils::kError |
const int | kInfo = 0 |
const int | kNote = 500 |
const int | kThrowOnWarning = 999 |
const int | kWarning = 1000 |
const int | kError = 2000 |
const int | kSysError = 3000 |
const int | kFatal = 4000 |
const int | kMaxLen = 1024 |
typedef void(* ROOT::TMetaUtils::CallWriteStreamer_t) (const AnnotatedRecordDecl &cl, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt, std::ostream &dictStream, bool isAutoStreamer) |
Definition at line 106 of file TMetaUtils.h.
typedef std::list<RConstructorType> ROOT::TMetaUtils::RConstructorTypes |
Definition at line 301 of file TMetaUtils.h.
Enumerator | |
---|---|
VALID | |
NOT_INT | |
NOT_DEF | |
IS_PRIVATE | |
UNKNOWN |
Definition at line 104 of file TMetaUtils.h.
|
strong |
Enumerator | |
---|---|
kAbsent | |
kDefault | |
kIOPtrType | |
kIORefType |
Definition at line 346 of file TMetaUtils.h.
clang::QualType ROOT::TMetaUtils::AddDefaultParameters | ( | clang::QualType | instanceType, |
const cling::Interpreter & | interpreter, | ||
const TNormalizedCtxt & | normCtxt | ||
) |
Add any unspecified template parameters to the class template instance, mentioned anywhere in the type.
Note: this does not strip any typedef but could be merged with cling::utils::Transform::GetPartiallyDesugaredType if we can safely replace TClassEdit::IsStd with a test on the declaring scope and if we can resolve the fact that the added parameter do not take into account possible use/dependences on Double32_t and if we decide that adding the default is the right long term solution or not. Whether it is or not depend on the I/O on whether the default template argument might change or not and whether they (should) affect the on disk layout (for STL containers, we do know they do not).
Definition at line 2809 of file TMetaUtils.cxx.
Referenced by GetNormalizedType().
bool ROOT::TMetaUtils::BeginsWith | ( | const std::string & | theString, |
const std::string & | theSubstring | ||
) |
Definition at line 4950 of file TMetaUtils.cxx.
Referenced by RooAbsStudy::aggregateSummaryOutput(), ClassImp(), TMVA::deviations(), TTreeViewer::ExecuteDraw(), TTreeViewer::ExecuteSpider(), TDataSetManagerAliEn::GetFindCommandsFromUri(), TProofBench::GetGraph(), TMVA::TMVAGlob::GetListOfJobs(), TMVA::TMVAGlob::GetListOfMethods(), TMVA::Reader::GetMethodTypeFromFile(), TProofBench::MakeDataSet(), TMVA::mvas(), TMVA::mvasMulticlass(), TMVA::network(), TDataSetManagerAliEn::ParseOfficialDataUri(), RooTFnPdfBinding::printArgs(), RooTFnBinding::printArgs(), RooFunctor1DBinding::printArgs(), RooFunctorBinding::printArgs(), RooFunctor1DPdfBinding::printArgs(), RooFunctorPdfBinding::printArgs(), RooCFunction1Binding< VO, VI >::printArgs(), RooCFunction4Binding< VO, VI1, VI2, VI3, VI4 >::printArgs(), RooCFunction2Binding< VO, VI1, VI2 >::printArgs(), RooAbsArg::printArgs(), RooCFunction3Binding< VO, VI1, VI2, VI3 >::printArgs(), RooCFunction1PdfBinding< VO, VI >::printArgs(), RooCFunction2PdfBinding< VO, VI1, VI2 >::printArgs(), RooCFunction4PdfBinding< VO, VI1, VI2, VI3, VI4 >::printArgs(), RooCFunction3PdfBinding< VO, VI1, VI2, VI3 >::printArgs(), TMVA::StatDialogMVAEffs::ReadHistograms(), TMVA::MethodBase::ReadStateFromStream(), TMVA::VariableTransformBase::SelectInput(), and TProof::VerifyDataSetParallel().
ROOT::TMetaUtils::EIOCtorCategory ROOT::TMetaUtils::CheckConstructor | ( | const clang::CXXRecordDecl * | cl, |
const RConstructorType & | ioctortype, | ||
const cling::Interpreter & | interp | ||
) |
Definition at line 973 of file TMetaUtils.cxx.
Referenced by HasIOConstructor().
bool ROOT::TMetaUtils::CheckPublicFuncWithProto | ( | clang::CXXRecordDecl const * | cl, |
char const * | methodname, | ||
char const * | proto, | ||
const cling::Interpreter & | interp, | ||
bool | diagnose | ||
) |
Return true, if the function (defined by the name and prototype) exists and is public.
Definition at line 1144 of file TMetaUtils.cxx.
Referenced by HasDirectoryAutoAdd(), HasNewMerge(), HasOldMerge(), and HasResetAfterMerge().
const clang::FunctionDecl * ROOT::TMetaUtils::ClassInfo__HasMethod | ( | const clang::DeclContext * | cl, |
char const * | name, | ||
const cling::Interpreter & | interp | ||
) |
Definition at line 696 of file TMetaUtils.cxx.
Referenced by ElementStreamer(), GetClassVersion(), IsStreamableObject(), WriteClassCode(), and WriteClassInit().
void ROOT::TMetaUtils::CreateNameTypeMap | ( | clang::CXXRecordDecl const & | , |
std::map< std::string, ROOT::Internal::TSchemaType, std::less< std::string >, std::allocator< std::pair< std::string const, ROOT::Internal::TSchemaType > > > & | |||
) |
Referenced by WriteClassInit().
llvm::StringRef ROOT::TMetaUtils::DataMemberInfo__ValidArrayIndex | ( | const clang::DeclaratorDecl & | m, |
int * | errnum = 0 , |
||
llvm::StringRef * | errstr = 0 |
||
) |
ValidArrayIndex return a static string (so use it or copy it immediatly, do not call GrabIndex twice in the same expression) containing the size of the array data member.
In case of error, or if the size is not specified, GrabIndex returns 0. If errnum is not null, *errnum updated with the error number: Cint::G__DataMemberInfo::G__VALID : valid array index Cint::G__DataMemberInfo::G__NOT_INT : array index is not an int Cint::G__DataMemberInfo::G__NOT_DEF : index not defined before array (this IS an error for streaming to disk) Cint::G__DataMemberInfo::G__IS_PRIVATE: index exist in a parent class but is private Cint::G__DataMemberInfo::G__UNKNOWN : index is not known If errstr is not null, *errstr is updated with the address of a static string containing the part of the index with is invalid.
Definition at line 3035 of file TMetaUtils.cxx.
Referenced by TClingDataMemberInfo::ValidArrayIndex().
clang::Module * ROOT::TMetaUtils::declareModuleMap | ( | clang::CompilerInstance * | CI, |
const char * | moduleFileName, | ||
const char * | headers[] | ||
) |
Declare a virtual module.map to clang. Returns Module on success.
Definition at line 3987 of file TMetaUtils.cxx.
int ROOT::TMetaUtils::ElementStreamer | ( | std::ostream & | finalString, |
const clang::NamedDecl & | forcontext, | ||
const clang::QualType & | qti, | ||
const char * | t, | ||
int | rwmode, | ||
const cling::Interpreter & | interp, | ||
const char * | tcl = 0 |
||
) |
Definition at line 795 of file TMetaUtils.cxx.
bool ROOT::TMetaUtils::EndsWith | ( | const std::string & | theString, |
const std::string & | theSubstring | ||
) |
Definition at line 4939 of file TMetaUtils.cxx.
Referenced by ClassImp(), TStructViewer::CountMembers(), TApplication::GetOptions(), TDocMacroDirective::GetResult(), and TDataSetManagerFile::InitLocalCache().
void ROOT::TMetaUtils::Error | ( | const char * | location, |
const char * | va_fmt, | ||
... | |||
) |
Use this function in case an error occured.
Use this function in case an error occured.
Definition at line 2746 of file TMetaUtils.cxx.
Referenced by AddDefaultParameters(), areEqualTypes(), SelectionRules::CheckDuplicates(), XMLReader::CheckIsTagOK(), ROOT::TMetaUtils::AST2SourceTools::FwdDeclFromTmplDecl(), ROOT::Internal::RStl::GenerateTClassFor(), XMLReader::GetAttributes(), GetROOTIncludeDir(), IsBase(), SelectionRules::IsClassSelected(), IsOfType(), KeepNParams(), XMLReader::Parse(), ROOT::TMetaUtils::AST2SourceTools::PrepareArgsForFwdDecl(), replaceEnvVars(), and RScanner::TreatRecordDeclOrTypedefNameDecl().
bool ROOT::TMetaUtils::ExtractAttrIntPropertyFromName | ( | const clang::Decl & | decl, |
const std::string & | propName, | ||
int & | propValue | ||
) |
This routine counts on the "propName<separator>propValue" format.
Definition at line 1620 of file TMetaUtils.cxx.
bool ROOT::TMetaUtils::ExtractAttrPropertyFromName | ( | const clang::Decl & | decl, |
const std::string & | propName, | ||
std::string & | propValue | ||
) |
This routine counts on the "propName<separator>propValue" format.
Definition at line 1597 of file TMetaUtils.cxx.
Referenced by TClingDataMemberInfo::CheckForIoTypeAndName(), TCling::GetDataMember(), TCling::InspectMembers(), and TClingClassInfo::Title().
int ROOT::TMetaUtils::extractAttrString | ( | clang::Attr * | attribute, |
std::string & | attrString | ||
) |
Extract attr string.
Definition at line 1556 of file TMetaUtils.cxx.
Referenced by extractPropertyNameVal(), TClingDataMemberInfo::Title(), and WriteClassInit().
void ROOT::TMetaUtils::ExtractCtxtEnclosingNameSpaces | ( | const clang::DeclContext & | ctxt, |
std::list< std::pair< std::string, bool > > & | enclosingNamespaces | ||
) |
Extract enclosing namespaces recusrively.
Definition at line 4783 of file TMetaUtils.cxx.
Referenced by ExtractEnclosingNameSpaces().
void ROOT::TMetaUtils::ExtractEnclosingNameSpaces | ( | const clang::Decl & | decl, |
std::list< std::pair< std::string, bool > > & | enclosingNamespaces | ||
) |
Extract the immediately outer namespace and then launch the recursion.
Definition at line 4763 of file TMetaUtils.cxx.
Referenced by ExtractCtxtEnclosingNameSpaces().
const clang::RecordDecl * ROOT::TMetaUtils::ExtractEnclosingScopes | ( | const clang::Decl & | decl, |
std::list< std::pair< std::string, unsigned int > > & | enclosingSc | ||
) |
Extract the names and types of containing scopes.
Stop if a class is met and return its pointer.
Definition at line 4810 of file TMetaUtils.cxx.
Referenced by ROOT::TMetaUtils::AST2SourceTools::EncloseInScopes().
int ROOT::TMetaUtils::extractPropertyNameVal | ( | clang::Attr * | attribute, |
std::string & | attrName, | ||
std::string & | attrValue | ||
) |
Definition at line 1586 of file TMetaUtils.cxx.
int ROOT::TMetaUtils::extractPropertyNameValFromString | ( | const std::string | attributeStr, |
std::string & | attrName, | ||
std::string & | attrValue | ||
) |
Definition at line 1569 of file TMetaUtils.cxx.
Referenced by extractPropertyNameVal(), and WriteClassInit().
clang::TemplateName ROOT::TMetaUtils::ExtractTemplateNameFromQualType | ( | const clang::QualType & | qt | ) |
These manipulations are necessary because a template specialisation type does not inherit from a record type (there is an asymmetry between the decls and the types in the clang interface).
We may need therefore to step into the "Decl dimension" to then get back to the "type dimension".
Definition at line 3499 of file TMetaUtils.cxx.
Referenced by KeepNParams().
void ROOT::TMetaUtils::Fatal | ( | const char * | location, |
const char * | va_fmt, | ||
... | |||
) |
Use this function in case of a fatal error. It will abort the program.
Definition at line 2790 of file TMetaUtils.cxx.
const T* ROOT::TMetaUtils::GetAnnotatedRedeclarable | ( | const T * | Redecl | ) |
Definition at line 617 of file TMetaUtils.h.
Referenced by TCling::FuncTempInfo_Title(), TClingDataMemberInfo::TClingDataMemberInfo(), TClingTypedefInfo::Title(), TClingMethodInfo::Title(), and TClingClassInfo::Title().
const clang::TypedefNameDecl * ROOT::TMetaUtils::GetAnnotatedRedeclarable | ( | const clang::TypedefNameDecl * | TND | ) |
Definition at line 4734 of file TMetaUtils.cxx.
const clang::TagDecl * ROOT::TMetaUtils::GetAnnotatedRedeclarable | ( | const clang::TagDecl * | TND | ) |
Definition at line 4748 of file TMetaUtils.cxx.
llvm::StringRef ROOT::TMetaUtils::GetClassComment | ( | const clang::CXXRecordDecl & | decl, |
clang::SourceLocation * | loc, | ||
const cling::Interpreter & | interpreter | ||
) |
Return the class comment after the ClassDef: class MyClass { ...
ClassDef(MyClass, 1) // class comment
Definition at line 4203 of file TMetaUtils.cxx.
Referenced by TClingClassInfo::Title().
int ROOT::TMetaUtils::GetClassVersion | ( | const clang::RecordDecl * | cl, |
const cling::Interpreter & | interp | ||
) |
Return the version number of the class or -1 if the function Class_Version does not exist.
Definition at line 2465 of file TMetaUtils.cxx.
Referenced by TSQLFile::DirWriteHeader(), TCling::GenerateTClass(), IsStreamableObject(), and WritePointersSTL().
llvm::StringRef ROOT::TMetaUtils::GetComment | ( | const clang::Decl & | decl, |
clang::SourceLocation * | loc = 0 |
||
) |
Returns the comment (// striped away), annotating declaration in a meaningful for ROOT IO way.
Takes optional out parameter clang::SourceLocation returning the source location of the comment.
CXXMethodDecls, FieldDecls and TagDecls are annotated. CXXMethodDecls declarations and FieldDecls are annotated as follows: Eg. void f(); // comment1 int member; // comment2 Inline definitions of CXXMethodDecls after the closing }
. Eg: void f() {...} // comment3 TagDecls are annotated in the end of the ClassDef macro. Eg. class MyClass { ... ClassDef(MyClass, 1) // comment4
Definition at line 4077 of file TMetaUtils.cxx.
Referenced by DataMemberInfo__ValidArrayIndex(), TCling::FuncTempInfo_Title(), GetClassComment(), IsStreamableObject(), TClingTypedefInfo::Title(), TClingMethodInfo::Title(), and TClingDataMemberInfo::Title().
void ROOT::TMetaUtils::GetCppName | ( | std::string & | out, |
const char * | in | ||
) |
Return (in the argument 'output') a mangled version of the C++ symbol/type (pass as 'input') that can be used in C++ as a variable name.
Definition at line 3184 of file TMetaUtils.cxx.
Referenced by TCling::MapCppName(), WriteAuxFunctions(), WriteClassInit(), and WritePointersSTL().
llvm::StringRef ROOT::TMetaUtils::GetFileName | ( | const clang::Decl & | decl, |
const cling::Interpreter & | interp | ||
) |
Return the header file to be included to declare the Decl.
Definition at line 3245 of file TMetaUtils.cxx.
Referenced by TClingClassInfo::FileName(), THtml::TFileDefinition::GetDeclFileName(), THtml::TFileDefinition::GetFileName(), THtml::TFileDefinition::GetImplFileName(), WriteClassInit(), and WritePointersSTL().
void ROOT::TMetaUtils::GetFullyQualifiedTypeName | ( | std::string & | name, |
const clang::QualType & | type, | ||
const cling::Interpreter & | interpreter | ||
) |
Definition at line 3392 of file TMetaUtils.cxx.
Referenced by TClingBaseClassInfo::GenerateBaseOffsetFunction(), TClingMethodInfo::GetPrototype(), GetQualifiedName(), TClingTypeInfo::Name(), TClingTypedefInfo::Name(), ROOT::TMetaUtils::AST2SourceTools::PrepareArgsForFwdDecl(), and TClingDataMemberInfo::TypeName().
void ROOT::TMetaUtils::GetFullyQualifiedTypeName | ( | std::string & | name, |
const clang::QualType & | type, | ||
const clang::ASTContext & | astContext | ||
) |
Definition at line 3380 of file TMetaUtils.cxx.
const clang::FunctionDecl * ROOT::TMetaUtils::GetFuncWithProto | ( | const clang::Decl * | cinfo, |
const char * | method, | ||
const char * | proto, | ||
const cling::Interpreter & | gInterp, | ||
bool | diagnose | ||
) |
Definition at line 1418 of file TMetaUtils.cxx.
Referenced by HasCustomOperatorNewPlacement(), and WriteClassInit().
std::string ROOT::TMetaUtils::GetInterpreterExtraIncludePath | ( | bool | rootbuild | ) |
Return the -I needed to find RuntimeUniverse.h.
Definition at line 3404 of file TMetaUtils.cxx.
Referenced by GetLLVMResourceDir(), and TCling::TCling().
long ROOT::TMetaUtils::GetLineNumber | ( | clang::Decl const * | decl | ) |
It looks like the template specialization decl actually contains less information on the location of the code than the decl (in case where there is forward declaration, that is what the specialization points to.
const clang::CXXRecordDecl* clxx = llvm::dyn_cast<clang::CXXRecordDecl>(decl); if (clxx) { switch(clxx->getTemplateSpecializationKind()) { case clang::TSK_Undeclared: // We want the default behavior break; case clang::TSK_ExplicitInstantiationDeclaration: case clang::TSK_ExplicitInstantiationDefinition: case clang::TSK_ImplicitInstantiation: { // We want the location of the template declaration: const clang::ClassTemplateSpecializationDecl *tmplt_specialization = llvm::dyn_cast<clang::ClassTemplateSpecializationDecl> (clxx); if (tmplt_specialization) { return GetLineNumber(const_cast< clang::ClassTemplateSpecializationDecl *>(tmplt_specialization)->getSpecializedTemplate()); } break; } case clang::TSK_ExplicitSpecialization: // We want the default behavior break; default: break; } }
Definition at line 1458 of file TMetaUtils.cxx.
Referenced by WriteClassInit().
std::string ROOT::TMetaUtils::GetLLVMResourceDir | ( | bool | rootbuild | ) |
Return the LLVM / clang resource directory.
Definition at line 3425 of file TMetaUtils.cxx.
Referenced by TCling::TCling().
std::string ROOT::TMetaUtils::GetModuleFileName | ( | const char * | moduleName | ) |
Return the dictionary file name for a module.
Definition at line 3977 of file TMetaUtils.cxx.
Referenced by TWinNTSystem::Init(), TCling::RegisterModule(), and TWinNTSystem::TWinNTSystem().
bool ROOT::TMetaUtils::GetNameWithinNamespace | ( | std::string & | fullname, |
std::string & | clsname, | ||
std::string & | nsname, | ||
clang::CXXRecordDecl const * | cl | ||
) |
Return true if one of the class' enclosing scope is a namespace and set fullname to the fully qualified name, clsname to the name within a namespace and nsname to the namespace fully qualified name.
Definition at line 2091 of file TMetaUtils.cxx.
void ROOT::TMetaUtils::GetNormalizedName | ( | std::string & | norm_name, |
const clang::QualType & | type, | ||
const cling::Interpreter & | interpreter, | ||
const TNormalizedCtxt & | normCtxt | ||
) |
Return the type name normalized for ROOT, keeping only the ROOT opaque typedef (Double32_t, etc.) and adding default template argument for all types except the STL collections where we remove the default template argument if any.
This routine might actually belong in the interpreter because cache the clang::Type might be intepreter specific.
Definition at line 3899 of file TMetaUtils.cxx.
Referenced by ROOT::TMetaUtils::AnnotatedRecordDecl::AnnotatedRecordDecl(), TClingCallFunc::collect_type_info(), ConstructorName(), TClingClassInfo::FullName(), ROOT::TMetaUtils::AST2SourceTools::FwdDeclFromTypeDefNameDecl(), SelectionRules::GetFunctionPrototype(), GetNormalizedName(), TCling::InspectMembers(), TClingCallbacks::LookupObject(), TClingCallFunc::make_ctor_wrapper(), TClingCallFunc::make_dtor_wrapper(), TClingCallFunc::make_wrapper(), TClingTypeInfo::NormalizedName(), TClingTypeInfo::TrueName(), TClingTypedefInfo::TrueName(), TClingDataMemberInfo::TypeTrueName(), and TCling::UpdateClassInfoWithDecl().
void ROOT::TMetaUtils::GetNormalizedName | ( | std::string & | norm_name, |
const clang::TypeDecl * | typeDecl, | ||
const cling::Interpreter & | interpreter | ||
) |
Definition at line 3936 of file TMetaUtils.cxx.
clang::QualType ROOT::TMetaUtils::GetNormalizedType | ( | const clang::QualType & | type, |
const cling::Interpreter & | interpreter, | ||
const TNormalizedCtxt & | normCtxt | ||
) |
Return the type normalized for ROOT, keeping only the ROOT opaque typedef (Double32_t, etc.) and adding default template argument for all types except those explicitly requested to be drop by the user.
Default template for STL collections are not yet removed by this routine.
Definition at line 3875 of file TMetaUtils.cxx.
Referenced by GetNormalizedName(), and ROOT::TMetaUtils::TClingLookupHelper::GetPartiallyDesugaredNameWithScopeHandling().
unsigned int ROOT::TMetaUtils::GetNumberOfWarningsAndErrors | ( | ) |
Definition at line 67 of file TMetaUtils.cxx.
const std::string & ROOT::TMetaUtils::GetPathSeparator | ( | ) |
Return the separator suitable for this platform.
To be replaced at the next llvm upgrade by const StringRef llvm::sys::path::get_separator()
Definition at line 4927 of file TMetaUtils.cxx.
void ROOT::TMetaUtils::GetQualifiedName | ( | std::string & | qual_name, |
const clang::QualType & | type, | ||
const clang::NamedDecl & | forcontext | ||
) |
Main implementation relying on GetFullyQualifiedTypeName All other GetQualifiedName functions leverage this one except the one for namespaces.
Definition at line 1261 of file TMetaUtils.cxx.
Referenced by ElementStreamer(), ROOT::Internal::RStl::GenerateTClassFor(), GetNameWithinNamespace(), GetQualifiedName(), TCling::InspectMembers(), ROOT::Internal::RStl::Print(), ShortTypeName(), TrueName(), WriteClassCode(), WriteClassInit(), and WritePointersSTL().
std::string ROOT::TMetaUtils::GetQualifiedName | ( | const clang::QualType & | type, |
const clang::NamedDecl & | forcontext | ||
) |
Definition at line 1267 of file TMetaUtils.cxx.
void ROOT::TMetaUtils::GetQualifiedName | ( | std::string & | qual_name, |
const clang::Type & | type, | ||
const clang::NamedDecl & | forcontext | ||
) |
Definition at line 1279 of file TMetaUtils.cxx.
std::string ROOT::TMetaUtils::GetQualifiedName | ( | const clang::Type & | type, |
const clang::NamedDecl & | forcontext | ||
) |
Definition at line 1288 of file TMetaUtils.cxx.
void ROOT::TMetaUtils::GetQualifiedName | ( | std::string & | qual_name, |
const clang::NamedDecl & | nd | ||
) |
This implementation does not rely on GetFullyQualifiedTypeName.
Definition at line 1311 of file TMetaUtils.cxx.
std::string ROOT::TMetaUtils::GetQualifiedName | ( | const clang::NamedDecl & | nd | ) |
Definition at line 1328 of file TMetaUtils.cxx.
void ROOT::TMetaUtils::GetQualifiedName | ( | std::string & | qual_name, |
const AnnotatedRecordDecl & | annotated | ||
) |
Definition at line 1356 of file TMetaUtils.cxx.
std::string ROOT::TMetaUtils::GetQualifiedName | ( | const AnnotatedRecordDecl & | annotated | ) |
Definition at line 1362 of file TMetaUtils.cxx.
void ROOT::TMetaUtils::GetQualifiedName | ( | std::string & | qual_name, |
const clang::RecordDecl & | recordDecl | ||
) |
Definition at line 1337 of file TMetaUtils.cxx.
std::string ROOT::TMetaUtils::GetQualifiedName | ( | const clang::RecordDecl & | recordDecl | ) |
Definition at line 1347 of file TMetaUtils.cxx.
std::string ROOT::TMetaUtils::GetROOTIncludeDir | ( | bool | rootbuild | ) |
Definition at line 3953 of file TMetaUtils.cxx.
Referenced by TCling::TCling().
clang::RecordDecl * ROOT::TMetaUtils::GetUnderlyingRecordDecl | ( | clang::QualType | type | ) |
Definition at line 2653 of file TMetaUtils.cxx.
Referenced by IsBase(), SelectionRules::IsClassSelected(), IsSTLContainer(), BaseSelectionRule::Match(), RScanner::TreatRecordDeclOrTypedefNameDecl(), and RScanner::VisitTypedefNameDecl().
const clang::Type * ROOT::TMetaUtils::GetUnderlyingType | ( | clang::QualType | type | ) |
Return the base/underlying type of a chain of array or pointers type.
Does not yet support the array and pointer part being intermixed.
Definition at line 4237 of file TMetaUtils.cxx.
Referenced by ElementStreamer(), GetUnderlyingRecordDecl(), and WritePointersSTL().
bool ROOT::TMetaUtils::HasCustomConvStreamerMemberFunction | ( | const AnnotatedRecordDecl & | cl, |
const clang::CXXRecordDecl * | clxx, | ||
const cling::Interpreter & | interp, | ||
const TNormalizedCtxt & | normCtxt | ||
) |
Return true if the class has a custom member function streamer.
Definition at line 1239 of file TMetaUtils.cxx.
Referenced by WriteAuxFunctions(), and WriteClassInit().
bool ROOT::TMetaUtils::HasCustomOperatorNewArrayPlacement | ( | clang::RecordDecl const & | cl, |
const cling::Interpreter & | interp | ||
) |
return true if we can find a custom operator new with placement
Definition at line 2276 of file TMetaUtils.cxx.
Referenced by WriteAuxFunctions().
bool ROOT::TMetaUtils::HasCustomOperatorNewPlacement | ( | char const * | which, |
clang::RecordDecl const & | cl, | ||
const cling::Interpreter & | interp | ||
) |
return true if we can find a custom operator new with placement
Definition at line 2188 of file TMetaUtils.cxx.
Referenced by HasCustomOperatorNewArrayPlacement(), HasCustomOperatorNewPlacement(), and WriteAuxFunctions().
bool ROOT::TMetaUtils::HasCustomOperatorNewPlacement | ( | clang::RecordDecl const & | cl, |
const cling::Interpreter & | interp | ||
) |
return true if we can find a custom operator new with placement
Definition at line 2268 of file TMetaUtils.cxx.
bool ROOT::TMetaUtils::HasCustomStreamerMemberFunction | ( | const AnnotatedRecordDecl & | cl, |
const clang::CXXRecordDecl * | clxx, | ||
const cling::Interpreter & | interp, | ||
const TNormalizedCtxt & | normCtxt | ||
) |
Return true if the class has a custom member function streamer.
Definition at line 1220 of file TMetaUtils.cxx.
Referenced by WriteAuxFunctions(), and WriteClassInit().
bool ROOT::TMetaUtils::HasDirectoryAutoAdd | ( | clang::CXXRecordDecl const * | cl, |
const cling::Interpreter & | interp | ||
) |
Return true if the class has a method DirectoryAutoAdd(TDirectory *)
Definition at line 1160 of file TMetaUtils.cxx.
Referenced by WriteAuxFunctions(), and WriteClassInit().
bool ROOT::TMetaUtils::HasIOConstructor | ( | clang::CXXRecordDecl const * | cl, |
std::string & | arg, | ||
const RConstructorTypes & | ctorTypes, | ||
const cling::Interpreter & | interp | ||
) |
return true if we can find an constructor calleable without any arguments or with one the IOCtor special types.
Definition at line 1078 of file TMetaUtils.cxx.
Referenced by WriteAuxFunctions(), and WriteClassInit().
bool ROOT::TMetaUtils::HasNewMerge | ( | clang::CXXRecordDecl const * | cl, |
const cling::Interpreter & | interp | ||
) |
Return true if the class has a method Merge(TCollection*,TFileMergeInfo*)
Definition at line 1175 of file TMetaUtils.cxx.
Referenced by WriteAuxFunctions(), and WriteClassInit().
bool ROOT::TMetaUtils::HasOldMerge | ( | clang::CXXRecordDecl const * | cl, |
const cling::Interpreter & | interp | ||
) |
Return true if the class has a method Merge(TCollection*)
Definition at line 1189 of file TMetaUtils.cxx.
Referenced by WriteAuxFunctions(), and WriteClassInit().
bool ROOT::TMetaUtils::hasOpaqueTypedef | ( | clang::QualType | instanceType, |
const TNormalizedCtxt & | normCtxt | ||
) |
Return true if the type is a Double32_t or Float16_t or is a instance template that depends on Double32_t or Float16_t.
Definition at line 1483 of file TMetaUtils.cxx.
Referenced by hasOpaqueTypedef(), and WriteClassInit().
bool ROOT::TMetaUtils::hasOpaqueTypedef | ( | const AnnotatedRecordDecl & | cl, |
const cling::Interpreter & | interp, | ||
const TNormalizedCtxt & | normCtxt | ||
) |
Return true if any of the argument is or contains a double32.
Definition at line 1536 of file TMetaUtils.cxx.
bool ROOT::TMetaUtils::HasResetAfterMerge | ( | clang::CXXRecordDecl const * | cl, |
const cling::Interpreter & | interp | ||
) |
Return true if the class has a method ResetAfterMerge(TFileMergeInfo *)
Definition at line 1204 of file TMetaUtils.cxx.
Referenced by WriteAuxFunctions(), and WriteClassInit().
void ROOT::TMetaUtils::Info | ( | const char * | location, |
const char * | va_fmt, | ||
... | |||
) |
Use this function for informational messages.
Definition at line 2768 of file TMetaUtils.cxx.
Referenced by XMLReader::GetAttributes(), Implies(), XMLReader::Parse(), RScanner::TreatRecordDeclOrTypedefNameDecl(), and WriteClassCode().
bool ROOT::TMetaUtils::IsBase | ( | const clang::CXXRecordDecl * | cl, |
const clang::CXXRecordDecl * | base, | ||
const clang::CXXRecordDecl * | context, | ||
const cling::Interpreter & | interp | ||
) |
Definition at line 752 of file TMetaUtils.cxx.
Referenced by ElementStreamer(), and IsBase().
bool ROOT::TMetaUtils::IsBase | ( | const clang::FieldDecl & | m, |
const char * | basename, | ||
const cling::Interpreter & | interp | ||
) |
Definition at line 776 of file TMetaUtils.cxx.
bool ROOT::TMetaUtils::IsOfType | ( | const clang::CXXRecordDecl & | cl, |
const std::string & | type, | ||
const cling::LookupHelper & | lh | ||
) |
Definition at line 4319 of file TMetaUtils.cxx.
Referenced by WriteClassInit().
bool ROOT::TMetaUtils::IsStdClass | ( | const clang::RecordDecl & | cl | ) |
Return true, if the decl is part of the std namespace.
Definition at line 4272 of file TMetaUtils.cxx.
Referenced by ROOT::TMetaUtils::AST2SourceTools::FwdDeclFromRcdDecl(), IsSTLCont(), and RScanner::TreatRecordDeclOrTypedefNameDecl().
bool ROOT::TMetaUtils::IsStdDropDefaultClass | ( | const clang::RecordDecl & | cl | ) |
Return true, if the decl is part of the std namespace and we want its default parameter dropped.
Definition at line 4281 of file TMetaUtils.cxx.
Referenced by AddDefaultParameters(), and KeepNParams().
ROOT::ESTLType ROOT::TMetaUtils::IsSTLCont | ( | const clang::RecordDecl & | cl | ) |
type : type name: vector<list<classA,allocator>,allocator> result: 0 : not stl container abs(result): code of container 1=vector,2=list,3=deque,4=map 5=multimap,6=set,7=multiset
Definition at line 4349 of file TMetaUtils.cxx.
Referenced by TCling::CheckClassInfo().
int ROOT::TMetaUtils::IsSTLContainer | ( | const AnnotatedRecordDecl & | annotated | ) |
Is this an STL container.
Definition at line 2510 of file TMetaUtils.cxx.
Referenced by IsStreamableObject(), and WritePointersSTL().
ROOT::ESTLType ROOT::TMetaUtils::IsSTLContainer | ( | const clang::FieldDecl & | m | ) |
Is this an STL container?
Definition at line 2518 of file TMetaUtils.cxx.
int ROOT::TMetaUtils::IsSTLContainer | ( | const clang::CXXBaseSpecifier & | base | ) |
Is this an STL container?
Definition at line 2530 of file TMetaUtils.cxx.
bool ROOT::TMetaUtils::IsStreamableObject | ( | const clang::FieldDecl & | m, |
const cling::Interpreter & | interp | ||
) |
Definition at line 2577 of file TMetaUtils.cxx.
Referenced by WritePointersSTL().
void ROOT::TMetaUtils::LevelPrint | ( | bool | prefix, |
int | level, | ||
const char * | location, | ||
const char * | fmt, | ||
va_list | ap | ||
) |
Definition at line 2705 of file TMetaUtils.cxx.
Referenced by Error(), Fatal(), Info(), SysError(), and Warning().
bool ROOT::TMetaUtils::MatchWithDeclOrAnyOfPrevious | ( | const clang::CXXRecordDecl & | cl, |
const clang::CXXRecordDecl & | currentCl | ||
) |
This is a recursive function.
Definition at line 4299 of file TMetaUtils.cxx.
Referenced by IsOfType().
bool ROOT::TMetaUtils::NeedDestructor | ( | clang::CXXRecordDecl const * | cl | ) |
Definition at line 1125 of file TMetaUtils.cxx.
Referenced by WriteAuxFunctions(), and WriteClassInit().
bool ROOT::TMetaUtils::NeedTemplateKeyword | ( | clang::CXXRecordDecl const * | cl | ) |
Definition at line 2170 of file TMetaUtils.cxx.
clang::ClassTemplateDecl * ROOT::TMetaUtils::QualType2ClassTemplateDecl | ( | const clang::QualType & | qt | ) |
Extract from a qualtype the class template if this makes sense.
Retuns the ClassTemplateDecl or nullptr otherwise.
Definition at line 3483 of file TMetaUtils.cxx.
Referenced by ExtractTemplateNameFromQualType().
bool ROOT::TMetaUtils::QualType2Template | ( | const clang::QualType & | qt, |
clang::ClassTemplateDecl *& | ctd, | ||
clang::ClassTemplateSpecializationDecl *& | ctsd | ||
) |
Get the template specialisation decl and template decl behind the qualtype Returns true if successfully found, false otherwise.
Definition at line 3439 of file TMetaUtils.cxx.
Referenced by KeepNParams(), and QualType2ClassTemplateDecl().
int ROOT::TMetaUtils::RemoveTemplateArgsFromName | ( | std::string & | name, |
unsigned int | nArgsToRemove | ||
) |
Remove the last n template arguments from the name.
Definition at line 4683 of file TMetaUtils.cxx.
Referenced by ROOT::TMetaUtils::AnnotatedRecordDecl::AnnotatedRecordDecl().
void ROOT::TMetaUtils::ReplaceAll | ( | std::string & | str, |
const std::string & | from, | ||
const std::string & | to, | ||
bool | recurse = false |
||
) |
Definition at line 4905 of file TMetaUtils.cxx.
Referenced by TMVA::CorrGui(), TCling::Execute(), ROOT::TMetaUtils::AST2SourceTools::GetDefArg(), SelectionRules::GetFunctionPrototype(), and TMVA::plot_efficiencies().
bool ROOT::TMetaUtils::RequireCompleteType | ( | const cling::Interpreter & | interp, |
const clang::CXXRecordDecl * | cl | ||
) |
Definition at line 733 of file TMetaUtils.cxx.
Referenced by ROOT::Internal::RStl::GenerateTClassFor(), and IsBase().
bool ROOT::TMetaUtils::RequireCompleteType | ( | const cling::Interpreter & | interp, |
clang::SourceLocation | Loc, | ||
clang::QualType | Type | ||
) |
Definition at line 741 of file TMetaUtils.cxx.
clang::QualType ROOT::TMetaUtils::ReSubstTemplateArg | ( | clang::QualType | input, |
const clang::Type * | instance | ||
) |
Check if 'input' or any of its template parameter was substituted when instantiating the class template instance and replace it with the partially sugared types we have from 'instance'.
Definition at line 4427 of file TMetaUtils.cxx.
Referenced by TCling::InspectMembers(), TClingBaseClassInfo::InternalNext(), TClingDataMemberInfo::TypeName(), and TClingDataMemberInfo::TypeTrueName().
const clang::CXXRecordDecl * ROOT::TMetaUtils::ScopeSearch | ( | const char * | name, |
const cling::Interpreter & | gInterp, | ||
bool | diagnose, | ||
const clang::Type ** | resultType | ||
) |
Return the scope corresponding to 'name' or std::'name'.
Definition at line 710 of file TMetaUtils.cxx.
Referenced by ElementStreamer(), IsBase(), BaseSelectionRule::Match(), and SelectionRules::SearchNames().
void ROOT::TMetaUtils::SetPathsForRelocatability | ( | std::vector< std::string > & | clingArgs | ) |
Organise the parameters for cling in order to guarantee relocatability It treats the gcc toolchain and the root include path FIXME: enables relocatability for experiments' framework headers until PCMs are available.
Definition at line 4885 of file TMetaUtils.cxx.
Referenced by TCling::TCling().
const char * ROOT::TMetaUtils::ShortTypeName | ( | const char * | typeDesc | ) |
Return the absolute type of typeDesc.
E.g.: typeDesc = "class TNamed**", returns "TNamed". we remove * and const keywords. (we do not want to remove & ). You need to use the result immediately before it is being overwritten.
Definition at line 2545 of file TMetaUtils.cxx.
Referenced by ElementStreamer(), and WritePointersSTL().
std::string ROOT::TMetaUtils::ShortTypeName | ( | const clang::FieldDecl & | m | ) |
Return the absolute type of typeDesc.
E.g.: typeDesc = "class TNamed**", returns "TNamed". we remove * and const keywords. (we do not want to remove & ). You need to use the result immediately before it is being overwritten.
Definition at line 2635 of file TMetaUtils.cxx.
ROOT::ESTLType ROOT::TMetaUtils::STLKind | ( | const llvm::StringRef | type | ) |
Converts STL container name to number. vector -> 1, etc..
Definition at line 4711 of file TMetaUtils.cxx.
Referenced by IsSTLCont().
void ROOT::TMetaUtils::SysError | ( | const char * | location, |
const char * | va_fmt, | ||
... | |||
) |
Use this function in case a system (OS or GUI) related error occured.
Use this function in case a system (OS or GUI) related error occured.
Definition at line 2757 of file TMetaUtils.cxx.
std::string ROOT::TMetaUtils::TrueName | ( | const clang::FieldDecl & | m | ) |
TrueName strips the typedefs and array dimensions.
Definition at line 2449 of file TMetaUtils.cxx.
void ROOT::TMetaUtils::Warning | ( | const char * | location, |
const char * | va_fmt, | ||
... | |||
) |
Use this function in warning situations.
Definition at line 2779 of file TMetaUtils.cxx.
Referenced by AbstractMethod(), ROOT::TMetaUtils::AnnotatedRecordDecl::AnnotatedRecordDecl(), SelectionRules::AreAllSelectionRulesUsed(), ROOT::TMetaUtils::AST2SourceTools::FwdDeclFromTmplDecl(), ROOT::Internal::RStl::GenerateTClassFor(), XMLReader::GetAttributes(), HasDuplicate(), SelectionRules::IsMemberSelected(), MayNotUse(), Obsolete(), ROOT::TMetaUtils::AST2SourceTools::PrepareArgsForFwdDecl(), and RScanner::TreatRecordDeclOrTypedefNameDecl().
void ROOT::TMetaUtils::WriteAuxFunctions | ( | std::ostream & | finalString, |
const AnnotatedRecordDecl & | cl, | ||
const clang::CXXRecordDecl * | decl, | ||
const cling::Interpreter & | interp, | ||
const RConstructorTypes & | ctorTypes, | ||
const TNormalizedCtxt & | normCtxt | ||
) |
std::string NormalizedName; GetNormalizedName(NormalizedName, decl->getASTContext().getTypeDeclType(decl), interp, normCtxt);
Definition at line 2285 of file TMetaUtils.cxx.
Referenced by WriteClassCode(), and ROOT::Internal::RStl::WriteClassInit().
void ROOT::TMetaUtils::WriteClassCode | ( | CallWriteStreamer_t | WriteStreamerFunc, |
const AnnotatedRecordDecl & | cl, | ||
const cling::Interpreter & | interp, | ||
const TNormalizedCtxt & | normCtxt, | ||
std::ostream & | finalString, | ||
const RConstructorTypes & | ctorTypes, | ||
bool | isGenreflex = false |
||
) |
Generate the code of the class If the requestor is genreflex, request the new streamer format.
Definition at line 2668 of file TMetaUtils.cxx.
void ROOT::TMetaUtils::WriteClassInit | ( | std::ostream & | finalString, |
const AnnotatedRecordDecl & | cl, | ||
const clang::CXXRecordDecl * | decl, | ||
const cling::Interpreter & | interp, | ||
const TNormalizedCtxt & | normCtxt, | ||
const RConstructorTypes & | ctorTypes, | ||
bool & | needCollectionProxy | ||
) |
FIXME: a function of ~300 lines!
Definition at line 1642 of file TMetaUtils.cxx.
Referenced by ROOT::Internal::RStl::WriteClassInit().
int ROOT::TMetaUtils::WriteNamespaceHeader | ( | std::ostream & | out, |
const clang::RecordDecl * | cl | ||
) |
Definition at line 2163 of file TMetaUtils.cxx.
Referenced by WriteNamespaceHeader().
int ROOT::TMetaUtils::WriteNamespaceHeader | ( | std::ostream & | out, |
const clang::DeclContext * | ctxt | ||
) |
Write all the necessary opening part of the namespace and return the number of closing brackets needed For example for Space1::Space2 we write: namespace Space1 { namespace Space2 { and return 2.
Definition at line 2140 of file TMetaUtils.cxx.
void ROOT::TMetaUtils::WritePointersSTL | ( | const AnnotatedRecordDecl & | cl, |
const cling::Interpreter & | interp, | ||
const TNormalizedCtxt & | normCtxt | ||
) |
Write interface function for STL members.
Definition at line 2392 of file TMetaUtils.cxx.
Referenced by WriteClassCode().
int ROOT::TMetaUtils::gErrorIgnoreLevel = ROOT::TMetaUtils::kError |
Definition at line 60 of file TMetaUtils.cxx.
Referenced by PyROOT::BindCppObject(), TTreeSQL::CheckTable(), TClassDocOutput::ClassTree(), compareFunctions(), TRootCanvas::CreateCanvas(), DefaultErrorHandler(), TProtoClass::Delete(), PyROOT::Utility::ErrMsgHandler(), TApplicationServer::ErrorHandler(), TProofServ::ErrorHandler(), TWinNTSystem::ExpandPathName(), ROOT::TMetaUtils::AST2SourceTools::FwdDeclFromRcdDecl(), ROOT::TMetaUtils::AST2SourceTools::FwdDeclFromTypeDefNameDecl(), TDSetElement::GetEntries(), TDSet::GetEntries(), TGFontPool::GetFont(), TGFontDialog::GetFontName(), Cppyy::IsComplete(), LevelPrint(), TTabCom::NoMsg(), TProofMgr::Ping(), TPad::Print(), PyROOT::Pythonize(), R__GenerateTClassForPair(), TProofPlayer::ReinitSelector(), TGMainFrame::SaveFrameAsCodeOrImage(), TDataSetManager::ScanFile(), TCling_GenerateDictionary(), testCont1D(), testDisc1D(), testIntegration(), unuranDiscrete(), unuranDistr(), unuranHist(), unuranMulti2D(), and unuranMultiDim().
const int ROOT::TMetaUtils::kError = 2000 |
Definition at line 116 of file TMetaUtils.h.
Referenced by Error(), and LevelPrint().
const int ROOT::TMetaUtils::kFatal = 4000 |
Definition at line 118 of file TMetaUtils.h.
Referenced by Fatal(), and LevelPrint().
const int ROOT::TMetaUtils::kInfo = 0 |
Definition at line 112 of file TMetaUtils.h.
Referenced by ROOT::TMetaUtils::AST2SourceTools::FwdDeclFromRcdDecl(), ROOT::TMetaUtils::AST2SourceTools::FwdDeclFromTypeDefNameDecl(), Info(), and LevelPrint().
const int ROOT::TMetaUtils::kMaxLen = 1024 |
Definition at line 119 of file TMetaUtils.h.
const int ROOT::TMetaUtils::kNote = 500 |
Definition at line 113 of file TMetaUtils.h.
Referenced by LevelPrint().
const int ROOT::TMetaUtils::kSysError = 3000 |
Definition at line 117 of file TMetaUtils.h.
Referenced by LevelPrint(), and SysError().
const int ROOT::TMetaUtils::kThrowOnWarning = 999 |
Definition at line 114 of file TMetaUtils.h.
Referenced by LevelPrint().
const int ROOT::TMetaUtils::kWarning = 1000 |
Definition at line 115 of file TMetaUtils.h.
Referenced by Warning().