Namespaces | |
| namespace | AST2SourceTools |
| namespace | propNames |
Classes | |
| class | AnnotatedRecordDecl |
| class | RConstructorType |
| class | TClingLookupHelper |
| class | TNormalizedCtxt |
| class | TNormalizedCtxtImpl |
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 class | EIOCtorCategory : short { kAbsent , kDefault , kIOPtrType , kIORefType } |
Functions | |
| 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. | |
| bool | BeginsWith (const std::string &theString, const std::string &theSubstring) |
| EIOCtorCategory | CheckConstructor (const clang::CXXRecordDecl *, const RConstructorType &, const cling::Interpreter &interp) |
| Check if class has constructor of provided type - either default or with single argument. | |
| bool | CheckDefaultConstructor (const clang::CXXRecordDecl *, const cling::Interpreter &interp) |
| Checks if default constructor exists and accessible. | |
| EIOCtorCategory | CheckIOConstructor (const clang::CXXRecordDecl *, const char *, const clang::CXXRecordDecl *, const cling::Interpreter &interp) |
| Checks IO constructor - must be public and with specified argument. | |
| 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. | |
| const clang::FunctionDecl * | ClassInfo__HasMethod (const clang::DeclContext *cl, char const *, const cling::Interpreter &interp) |
| llvm::StringRef | DataMemberInfo__ValidArrayIndex (const cling::Interpreter &interp, const clang::DeclaratorDecl &m, int *errnum=nullptr, llvm::StringRef *errstr=nullptr) |
| 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. | |
| static std::string | DemangleNameForDlsym (const std::string &name) |
| 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=nullptr) |
| bool | EndsWith (const std::string &theString, const std::string &theSubstring) |
| void | Error (const char *location, const char *fmt,...) |
| bool | ExtractAttrIntPropertyFromName (const clang::Decl &decl, const std::string &propName, int &propValue) |
| This routine counts on the "propName<separator>propValue" format. | |
| bool | ExtractAttrPropertyFromName (const clang::Decl &decl, const std::string &propName, std::string &propValue) |
| This routine counts on the "propName<separator>propValue" format. | |
| int | extractAttrString (clang::Attr *attribute, std::string &attrString) |
| Extract attr string. | |
| void | ExtractCtxtEnclosingNameSpaces (const clang::DeclContext &, std::list< std::pair< std::string, bool > > &) |
| Extract enclosing namespaces recursively. | |
| void | ExtractEnclosingNameSpaces (const clang::Decl &, std::list< std::pair< std::string, bool > > &) |
| Extract the immediately outer namespace and then launch the recursion. | |
| 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. | |
| int | extractPropertyNameVal (clang::Attr *attribute, std::string &attrName, std::string &attrValue) |
| int | extractPropertyNameValFromString (const std::string attributeStr, std::string &attrName, std::string &attrValue) |
| 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). | |
| void | Fatal (const char *location, const char *fmt,...) |
| void | foreachHeaderInModule (const clang::Module &module, const std::function< void(const clang::Module::Header &)> &closure, bool includeDirectlyUsedModules=true) |
| Calls the given lambda on every header in the given module. | |
| const clang::TagDecl * | GetAnnotatedRedeclarable (const clang::TagDecl *TND) |
| const clang::TypedefNameDecl * | GetAnnotatedRedeclarable (const clang::TypedefNameDecl *TND) |
| template<typename T > | |
| const T * | GetAnnotatedRedeclarable (const T *Redecl) |
| llvm::StringRef | 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. | |
| 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. | |
| llvm::StringRef | GetComment (const clang::Decl &decl, clang::SourceLocation *loc=nullptr) |
| Returns the comment (// striped away), annotating declaration in a meaningful for ROOT IO way. | |
| void | GetCppName (std::string &output, const char *input) |
| Return (in the argument 'output') a valid name of the C++ symbol/type (pass as 'input') that can be used in C++ as a variable name. | |
| int & | GetErrorIgnoreLevel () |
| std::string | GetFileName (const clang::Decl &decl, const cling::Interpreter &interp) |
| Return the header file to be included to declare the Decl. | |
| void | GetFullyQualifiedTypeName (std::string &name, const clang::QualType &type, const clang::ASTContext &) |
| void | GetFullyQualifiedTypeName (std::string &name, const clang::QualType &type, const cling::Interpreter &interpreter) |
| const clang::FunctionDecl * | GetFuncWithProto (const clang::Decl *cinfo, const char *method, const char *proto, const cling::Interpreter &gInterp, bool diagnose) |
| 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. | |
| std::string | GetModuleFileName (const char *moduleName) |
| Return the dictionary file name for a module. | |
| std::pair< std::string, clang::QualType > | GetNameTypeForIO (const clang::QualType &templateInstanceType, const cling::Interpreter &interpreter, const TNormalizedCtxt &normCtxt, TClassEdit::EModType mode=TClassEdit::kNone) |
| 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. | |
| 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. | |
| void | GetNormalizedName (std::string &norm_name, const clang::TypeDecl *typeDecl, const cling::Interpreter &interpreter) |
| 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. | |
| unsigned int & | GetNumberOfErrors () |
| const std::string & | GetPathSeparator () |
| Return the separator suitable for this platform. | |
| std::string | GetQualifiedName (const AnnotatedRecordDecl &annotated) |
| std::string | GetQualifiedName (const clang::NamedDecl &nd) |
| std::string | GetQualifiedName (const clang::QualType &type, const clang::NamedDecl &forcontext) |
| std::string | GetQualifiedName (const clang::RecordDecl &recordDecl) |
| std::string | GetQualifiedName (const clang::Type &type, const clang::NamedDecl &forcontext) |
| void | GetQualifiedName (std::string &qual_name, const AnnotatedRecordDecl &annotated) |
| void | GetQualifiedName (std::string &qual_name, const clang::NamedDecl &nd) |
| This implementation does not rely on GetFullyQualifiedTypeName. | |
| 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. | |
| void | GetQualifiedName (std::string &qual_name, const clang::RecordDecl &recordDecl) |
| void | GetQualifiedName (std::string &qual_name, const clang::Type &type, const clang::NamedDecl &forcontext) |
| std::string | GetRealPath (const std::string &path) |
| std::pair< bool, int > | GetTrivialIntegralReturnValue (const clang::FunctionDecl *funcCV, const cling::Interpreter &interp) |
| If the function contains 'just': return SomeValue; this routine will extract this value and return it. | |
| clang::QualType | GetTypeForIO (const clang::QualType &templateInstanceType, const cling::Interpreter &interpreter, const TNormalizedCtxt &normCtxt, TClassEdit::EModType mode=TClassEdit::kNone) |
| clang::RecordDecl * | GetUnderlyingRecordDecl (clang::QualType type) |
| const clang::Type * | GetUnderlyingType (clang::QualType type) |
| Return the base/underlying type of a chain of array or pointers type. | |
| bool & | GetWarningsAreErrors () |
| bool | HasClassDefMacro (const clang::Decl *decl, const cling::Interpreter &interpreter) |
| Return true if class has any of class declarations like ClassDef, ClassDefNV, ClassDefOverride. | |
| 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. | |
| bool | HasCustomOperatorNewArrayPlacement (clang::RecordDecl const &, const cling::Interpreter &interp) |
| return true if we can find a custom operator new with placement | |
| bool | HasCustomOperatorNewPlacement (char const *, clang::RecordDecl const &, const cling::Interpreter &) |
| return true if we can find a custom operator new with placement | |
| bool | HasCustomOperatorNewPlacement (clang::RecordDecl const &, const cling::Interpreter &) |
| return true if we can find a custom operator new with placement | |
| 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. | |
| bool | HasDirectoryAutoAdd (clang::CXXRecordDecl const *, const cling::Interpreter &) |
| Return true if the class has a method DirectoryAutoAdd(TDirectory *) | |
| 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. | |
| bool | HasNewMerge (clang::CXXRecordDecl const *, const cling::Interpreter &) |
| Return true if the class has a method Merge(TCollection*,TFileMergeInfo*) | |
| bool | HasOldMerge (clang::CXXRecordDecl const *, const cling::Interpreter &) |
| Return true if the class has a method Merge(TCollection*) | |
| 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. | |
| bool | hasOpaqueTypedef (const AnnotatedRecordDecl &cl, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt) |
| Return true if any of the argument is or contains a double32. | |
| bool | HasResetAfterMerge (clang::CXXRecordDecl const *, const cling::Interpreter &) |
| Return true if the class has a method ResetAfterMerge(TFileMergeInfo *) | |
| void | Info (const char *location, const char *fmt,...) |
| 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 | IsCtxtReacheable (const clang::DeclContext &ctxt) |
| Return true if the DeclContext is representing an entity reacheable from the global namespace. | |
| bool | IsDeclReacheable (const clang::Decl &decl) |
| Return true if the decl is representing an entity reacheable from the global namespace. | |
| bool | IsHeaderName (const std::string &filename) |
| bool | IsLinkdefFile (const char *filename) |
| bool | IsOfType (const clang::CXXRecordDecl &cl, const std::string &type, const cling::LookupHelper &lh) |
| bool | IsStdClass (const clang::RecordDecl &cl) |
| Return true, if the decl is part of the std namespace. | |
| bool | IsStdDropDefaultClass (const clang::RecordDecl &cl) |
| Return true, if the decl is part of the std namespace and we want its default parameter dropped. | |
| 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 | |
| int | IsSTLContainer (const AnnotatedRecordDecl &annotated) |
| Is this an STL container. | |
| int | IsSTLContainer (const clang::CXXBaseSpecifier &base) |
| Is this an STL container? | |
| ROOT::ESTLType | IsSTLContainer (const clang::FieldDecl &m) |
| Is this an STL container? | |
| bool | IsStreamableObject (const clang::FieldDecl &m, const cling::Interpreter &interp) |
| void | LevelPrint (bool prefix, int level, const char *location, const char *fmt, va_list ap) |
| bool | MatchWithDeclOrAnyOfPrevious (const clang::CXXRecordDecl &cl, const clang::CXXRecordDecl ¤tCl) |
| This is a recursive function. | |
| bool | NeedDestructor (clang::CXXRecordDecl const *, const cling::Interpreter &) |
| bool | NeedTemplateKeyword (clang::CXXRecordDecl const *) |
| clang::ClassTemplateDecl * | QualType2ClassTemplateDecl (const clang::QualType &qt) |
| Extract from a qualtype the class template if this makes sense. | |
| 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. | |
| int | RemoveTemplateArgsFromName (std::string &name, unsigned int) |
| Remove the last n template arguments from the name. | |
| void | ReplaceAll (std::string &str, const std::string &from, const std::string &to, bool recurse=false) |
| bool | RequireCompleteType (const cling::Interpreter &interp, clang::SourceLocation Loc, clang::QualType Type) |
| bool | RequireCompleteType (const cling::Interpreter &interp, const clang::CXXRecordDecl *cl) |
| 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'. | |
| 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'. | |
| 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. | |
| const char * | ShortTypeName (const char *typeDesc) |
| Return the absolute type of typeDesc. | |
| std::string | ShortTypeName (const clang::FieldDecl &m) |
| Return the absolute type of typeDesc. | |
| ROOT::ESTLType | STLKind (const llvm::StringRef type) |
| Converts STL container name to number. vector -> 1, etc.. | |
| void | SysError (const char *location, const char *fmt,...) |
| std::string | TrueName (const clang::FieldDecl &m) |
| TrueName strips the typedefs and array dimensions. | |
| void | Warning (const char *location, const char *fmt,...) |
| 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); | |
| 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. | |
| 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 450+ lines! | |
| 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. | |
| int | WriteNamespaceHeader (std::ostream &, const clang::RecordDecl *) |
| void | WritePointersSTL (const AnnotatedRecordDecl &cl, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt) |
| Write interface function for STL members. | |
| void | WriteRulesRegistration (std::ostream &finalString, const std::string &dictName, const std::vector< std::string > &standaloneTargets) |
| void | WriteStandaloneReadRules (std::ostream &finalString, bool rawrules, std::vector< std::string > &standaloneTargets, const cling::Interpreter &interp) |
Variables | |
| const int | kError = 2000 |
| const int | kFatal = 4000 |
| const int | kInfo = 0 |
| const int | kMaxLen = 1024 |
| const int | kNote = 500 |
| const int | kSysError = 3000 |
| const int | kWarning = 1000 |
| typedef void(* ROOT::TMetaUtils::CallWriteStreamer_t) (const AnnotatedRecordDecl &cl, const cling::Interpreter &interp, const TNormalizedCtxt &normCtxt, std::ostream &dictStream, bool isAutoStreamer) |
Definition at line 118 of file TClingUtils.h.
Definition at line 349 of file TClingUtils.h.
| Enumerator | |
|---|---|
| VALID | |
| NOT_INT | |
| NOT_DEF | |
| IS_PRIVATE | |
| UNKNOWN | |
Definition at line 116 of file TClingUtils.h.
|
strong |
| Enumerator | |
|---|---|
| kAbsent | |
| kDefault | |
| kIOPtrType | |
| kIORefType | |
Definition at line 387 of file TClingUtils.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 3042 of file TClingUtils.cxx.
| bool ROOT::TMetaUtils::BeginsWith | ( | const std::string & | theString, |
| const std::string & | theSubstring ) |
Definition at line 5312 of file TClingUtils.cxx.
| ROOT::TMetaUtils::EIOCtorCategory ROOT::TMetaUtils::CheckConstructor | ( | const clang::CXXRecordDecl * | cl, |
| const RConstructorType & | ioctortype, | ||
| const cling::Interpreter & | interp ) |
Check if class has constructor of provided type - either default or with single argument.
Definition at line 1151 of file TClingUtils.cxx.
| bool ROOT::TMetaUtils::CheckDefaultConstructor | ( | const clang::CXXRecordDecl * | cl, |
| const cling::Interpreter & | interp ) |
Checks if default constructor exists and accessible.
Definition at line 1071 of file TClingUtils.cxx.
| ROOT::TMetaUtils::EIOCtorCategory ROOT::TMetaUtils::CheckIOConstructor | ( | const clang::CXXRecordDecl * | cl, |
| const char * | typeOfArg, | ||
| const clang::CXXRecordDecl * | expectedArgType, | ||
| const cling::Interpreter & | interp ) |
Checks IO constructor - must be public and with specified argument.
Definition at line 1091 of file TClingUtils.cxx.
| 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 1274 of file TClingUtils.cxx.
| const clang::FunctionDecl * ROOT::TMetaUtils::ClassInfo__HasMethod | ( | const clang::DeclContext * | cl, |
| char const * | name, | ||
| const cling::Interpreter & | interp ) |
Definition at line 794 of file TClingUtils.cxx.
| llvm::StringRef ROOT::TMetaUtils::DataMemberInfo__ValidArrayIndex | ( | const cling::Interpreter & | interp, |
| const clang::DeclaratorDecl & | m, | ||
| int * | errnum = nullptr, | ||
| llvm::StringRef * | errstr = nullptr ) |
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 3273 of file TClingUtils.cxx.
Definition at line 610 of file TClingUtils.h.
| 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 = nullptr ) |
Definition at line 893 of file TClingUtils.cxx.
Definition at line 5301 of file TClingUtils.cxx.
Definition at line 853 of file TClingUtils.h.
| 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 1744 of file TClingUtils.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 1721 of file TClingUtils.cxx.
| int ROOT::TMetaUtils::extractAttrString | ( | clang::Attr * | attribute, |
| std::string & | attrString ) |
Extract attr string.
Definition at line 1680 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::ExtractCtxtEnclosingNameSpaces | ( | const clang::DeclContext & | ctxt, |
| std::list< std::pair< std::string, bool > > & | enclosingNamespaces ) |
Extract enclosing namespaces recursively.
Definition at line 5147 of file TClingUtils.cxx.
| 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 5127 of file TClingUtils.cxx.
| 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 5174 of file TClingUtils.cxx.
| int ROOT::TMetaUtils::extractPropertyNameVal | ( | clang::Attr * | attribute, |
| std::string & | attrName, | ||
| std::string & | attrValue ) |
Definition at line 1710 of file TClingUtils.cxx.
| int ROOT::TMetaUtils::extractPropertyNameValFromString | ( | const std::string | attributeStr, |
| std::string & | attrName, | ||
| std::string & | attrValue ) |
Definition at line 1693 of file TClingUtils.cxx.
| 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 3734 of file TClingUtils.cxx.
Definition at line 893 of file TClingUtils.h.
| void ROOT::TMetaUtils::foreachHeaderInModule | ( | const clang::Module & | module, |
| const std::function< void(const clang::Module::Header &)> & | closure, | ||
| bool | includeDirectlyUsedModules = true ) |
Calls the given lambda on every header in the given module.
includeDirectlyUsedModules designates if the foreach should also loop over the headers in all modules that are directly used via a use declaration in the modulemap.
Definition at line 2828 of file TClingUtils.cxx.
Definition at line 5112 of file TClingUtils.cxx.
| const clang::TypedefNameDecl * ROOT::TMetaUtils::GetAnnotatedRedeclarable | ( | const clang::TypedefNameDecl * | TND | ) |
Definition at line 5098 of file TClingUtils.cxx.
Definition at line 695 of file TClingUtils.h.
| 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 4522 of file TClingUtils.cxx.
| 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 2732 of file TClingUtils.cxx.
| llvm::StringRef ROOT::TMetaUtils::GetComment | ( | const clang::Decl & | decl, |
| clang::SourceLocation * | loc = nullptr ) |
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 4367 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::GetCppName | ( | std::string & | output, |
| const char * | input ) |
Return (in the argument 'output') a valid name of the C++ symbol/type (pass as 'input') that can be used in C++ as a variable name.
Definition at line 3424 of file TClingUtils.cxx.
|
inline |
Definition at line 808 of file TClingUtils.h.
| std::string 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 3489 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::GetFullyQualifiedTypeName | ( | std::string & | name, |
| const clang::QualType & | type, | ||
| const clang::ASTContext & | astContext ) |
Definition at line 3644 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::GetFullyQualifiedTypeName | ( | std::string & | name, |
| const clang::QualType & | type, | ||
| const cling::Interpreter & | interpreter ) |
Definition at line 3656 of file TClingUtils.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 1548 of file TClingUtils.cxx.
| 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 1588 of file TClingUtils.cxx.
| std::string ROOT::TMetaUtils::GetModuleFileName | ( | const char * | moduleName | ) |
Return the dictionary file name for a module.
Definition at line 4335 of file TClingUtils.cxx.
| std::pair< std::string, clang::QualType > ROOT::TMetaUtils::GetNameTypeForIO | ( | const clang::QualType & | templateInstanceType, |
| const cling::Interpreter & | interpreter, | ||
| const TNormalizedCtxt & | normCtxt, | ||
| TClassEdit::EModType | mode = TClassEdit::kNone ) |
Definition at line 4276 of file TClingUtils.cxx.
| 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 2357 of file TClingUtils.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 4210 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::GetNormalizedName | ( | std::string & | norm_name, |
| const clang::TypeDecl * | typeDecl, | ||
| const cling::Interpreter & | interpreter ) |
Definition at line 4259 of file TClingUtils.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 4184 of file TClingUtils.cxx.
|
inline |
Definition at line 792 of file TClingUtils.h.
| const std::string & ROOT::TMetaUtils::GetPathSeparator | ( | ) |
Return the separator suitable for this platform.
Definition at line 5294 of file TClingUtils.cxx.
| std::string ROOT::TMetaUtils::GetQualifiedName | ( | const AnnotatedRecordDecl & | annotated | ) |
Definition at line 1492 of file TClingUtils.cxx.
| std::string ROOT::TMetaUtils::GetQualifiedName | ( | const clang::NamedDecl & | nd | ) |
Definition at line 1458 of file TClingUtils.cxx.
| std::string ROOT::TMetaUtils::GetQualifiedName | ( | const clang::QualType & | type, |
| const clang::NamedDecl & | forcontext ) |
Definition at line 1397 of file TClingUtils.cxx.
| std::string ROOT::TMetaUtils::GetQualifiedName | ( | const clang::RecordDecl & | recordDecl | ) |
Definition at line 1477 of file TClingUtils.cxx.
| std::string ROOT::TMetaUtils::GetQualifiedName | ( | const clang::Type & | type, |
| const clang::NamedDecl & | forcontext ) |
Definition at line 1418 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::GetQualifiedName | ( | std::string & | qual_name, |
| const AnnotatedRecordDecl & | annotated ) |
Definition at line 1486 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::GetQualifiedName | ( | std::string & | qual_name, |
| const clang::NamedDecl & | nd ) |
This implementation does not rely on GetFullyQualifiedTypeName.
Definition at line 1441 of file TClingUtils.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 1391 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::GetQualifiedName | ( | std::string & | qual_name, |
| const clang::RecordDecl & | recordDecl ) |
Definition at line 1467 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::GetQualifiedName | ( | std::string & | qual_name, |
| const clang::Type & | type, | ||
| const clang::NamedDecl & | forcontext ) |
Definition at line 1409 of file TClingUtils.cxx.
| std::string ROOT::TMetaUtils::GetRealPath | ( | const std::string & | path | ) |
Definition at line 75 of file TClingUtils.cxx.
| std::pair< bool, int > ROOT::TMetaUtils::GetTrivialIntegralReturnValue | ( | const clang::FunctionDecl * | funcCV, |
| const cling::Interpreter & | interp ) |
If the function contains 'just': return SomeValue; this routine will extract this value and return it.
The first element is set to true we have the body of the function and it is indeed a trivial function with just a return of a value. The second element contains the value (or -1 is case of failure)
Definition at line 2759 of file TClingUtils.cxx.
| clang::QualType ROOT::TMetaUtils::GetTypeForIO | ( | const clang::QualType & | templateInstanceType, |
| const cling::Interpreter & | interpreter, | ||
| const TNormalizedCtxt & | normCtxt, | ||
| TClassEdit::EModType | mode = TClassEdit::kNone ) |
Definition at line 4324 of file TClingUtils.cxx.
| clang::RecordDecl * ROOT::TMetaUtils::GetUnderlyingRecordDecl | ( | clang::QualType | type | ) |
Definition at line 2978 of file TClingUtils.cxx.
| 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 4550 of file TClingUtils.cxx.
|
inline |
Definition at line 800 of file TClingUtils.h.
| bool ROOT::TMetaUtils::HasClassDefMacro | ( | const clang::Decl * | decl, |
| const cling::Interpreter & | interpreter ) |
Return true if class has any of class declarations like ClassDef, ClassDefNV, ClassDefOverride.
Definition at line 4496 of file TClingUtils.cxx.
| 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 1369 of file TClingUtils.cxx.
| 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 2543 of file TClingUtils.cxx.
| 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 2455 of file TClingUtils.cxx.
| 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 2535 of file TClingUtils.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 1350 of file TClingUtils.cxx.
| 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 1290 of file TClingUtils.cxx.
| 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 1207 of file TClingUtils.cxx.
| 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 1305 of file TClingUtils.cxx.
| 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 1319 of file TClingUtils.cxx.
| 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 1613 of file TClingUtils.cxx.
| 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 1660 of file TClingUtils.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 1334 of file TClingUtils.cxx.
Definition at line 873 of file TClingUtils.h.
| bool ROOT::TMetaUtils::IsBase | ( | const clang::CXXRecordDecl * | cl, |
| const clang::CXXRecordDecl * | base, | ||
| const clang::CXXRecordDecl * | context, | ||
| const cling::Interpreter & | interp ) |
Definition at line 850 of file TClingUtils.cxx.
| bool ROOT::TMetaUtils::IsBase | ( | const clang::FieldDecl & | m, |
| const char * | basename, | ||
| const cling::Interpreter & | interp ) |
Definition at line 874 of file TClingUtils.cxx.
Return true if the DeclContext is representing an entity reacheable from the global namespace.
Definition at line 4586 of file TClingUtils.cxx.
Return true if the decl is representing an entity reacheable from the global namespace.
Definition at line 4601 of file TClingUtils.cxx.
Definition at line 5350 of file TClingUtils.cxx.
Definition at line 5325 of file TClingUtils.cxx.
| bool ROOT::TMetaUtils::IsOfType | ( | const clang::CXXRecordDecl & | cl, |
| const std::string & | type, | ||
| const cling::LookupHelper & | lh ) |
Definition at line 4670 of file TClingUtils.cxx.
Return true, if the decl is part of the std namespace.
Definition at line 4623 of file TClingUtils.cxx.
Return true, if the decl is part of the std namespace and we want its default parameter dropped.
Definition at line 4632 of file TClingUtils.cxx.
| 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 4700 of file TClingUtils.cxx.
| int ROOT::TMetaUtils::IsSTLContainer | ( | const AnnotatedRecordDecl & | annotated | ) |
Is this an STL container.
Definition at line 2794 of file TClingUtils.cxx.
Is this an STL container?
Definition at line 2814 of file TClingUtils.cxx.
| ROOT::ESTLType ROOT::TMetaUtils::IsSTLContainer | ( | const clang::FieldDecl & | m | ) |
Is this an STL container?
Definition at line 2802 of file TClingUtils.cxx.
| bool ROOT::TMetaUtils::IsStreamableObject | ( | const clang::FieldDecl & | m, |
| const cling::Interpreter & | interp ) |
Definition at line 2901 of file TClingUtils.cxx.
|
inline |
Definition at line 814 of file TClingUtils.h.
| bool ROOT::TMetaUtils::MatchWithDeclOrAnyOfPrevious | ( | const clang::CXXRecordDecl & | cl, |
| const clang::CXXRecordDecl & | currentCl ) |
This is a recursive function.
Definition at line 4650 of file TClingUtils.cxx.
| bool ROOT::TMetaUtils::NeedDestructor | ( | clang::CXXRecordDecl const * | cl, |
| const cling::Interpreter & | interp ) |
Definition at line 1253 of file TClingUtils.cxx.
Definition at line 2437 of file TClingUtils.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 3718 of file TClingUtils.cxx.
| 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 3674 of file TClingUtils.cxx.
Remove the last n template arguments from the name.
Definition at line 5043 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::ReplaceAll | ( | std::string & | str, |
| const std::string & | from, | ||
| const std::string & | to, | ||
| bool | recurse = false ) |
Definition at line 5275 of file TClingUtils.cxx.
| bool ROOT::TMetaUtils::RequireCompleteType | ( | const cling::Interpreter & | interp, |
| clang::SourceLocation | Loc, | ||
| clang::QualType | Type ) |
Definition at line 839 of file TClingUtils.cxx.
| bool ROOT::TMetaUtils::RequireCompleteType | ( | const cling::Interpreter & | interp, |
| const clang::CXXRecordDecl * | cl ) |
Definition at line 831 of file TClingUtils.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 4782 of file TClingUtils.cxx.
| 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 808 of file TClingUtils.cxx.
| 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 5248 of file TClingUtils.cxx.
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 2869 of file TClingUtils.cxx.
| 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 2960 of file TClingUtils.cxx.
| ROOT::ESTLType ROOT::TMetaUtils::STLKind | ( | const llvm::StringRef | type | ) |
Converts STL container name to number. vector -> 1, etc..
Definition at line 5071 of file TClingUtils.cxx.
Definition at line 863 of file TClingUtils.h.
| std::string ROOT::TMetaUtils::TrueName | ( | const clang::FieldDecl & | m | ) |
TrueName strips the typedefs and array dimensions.
Definition at line 2716 of file TClingUtils.cxx.
Definition at line 883 of file TClingUtils.h.
| 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 2552 of file TClingUtils.cxx.
| 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 2993 of file TClingUtils.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 450+ lines!
Definition at line 1766 of file TClingUtils.cxx.
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 2406 of file TClingUtils.cxx.
Definition at line 2430 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::WritePointersSTL | ( | const AnnotatedRecordDecl & | cl, |
| const cling::Interpreter & | interp, | ||
| const TNormalizedCtxt & | normCtxt ) |
Write interface function for STL members.
Definition at line 2659 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::WriteRulesRegistration | ( | std::ostream & | finalString, |
| const std::string & | dictName, | ||
| const std::vector< std::string > & | standaloneTargets ) |
Definition at line 2305 of file TClingUtils.cxx.
| void ROOT::TMetaUtils::WriteStandaloneReadRules | ( | std::ostream & | finalString, |
| bool | rawrules, | ||
| std::vector< std::string > & | standaloneTargets, | ||
| const cling::Interpreter & | interp ) |
Definition at line 2239 of file TClingUtils.cxx.
Definition at line 127 of file TClingUtils.h.
Definition at line 129 of file TClingUtils.h.
Definition at line 124 of file TClingUtils.h.
Definition at line 130 of file TClingUtils.h.
Definition at line 125 of file TClingUtils.h.
Definition at line 128 of file TClingUtils.h.
Definition at line 126 of file TClingUtils.h.