![]() |
ROOT
6.06/09
Reference Guide
|
Classes | |
| class | AnnotatedNamespaceDecl |
Public Types | |
| enum | EScanType : char { EScanType::kNormal, EScanType::kTwoPasses, EScanType::kOnePCM } |
| typedef std::vector< AnnotatedNamespaceDecl > | NamespaceColl_t |
| typedef std::vector< ROOT::TMetaUtils::AnnotatedRecordDecl > | ClassColl_t |
| typedef std::vector< clang::TypedefNameDecl * > | TypedefColl_t |
| typedef std::vector< clang::FunctionDecl * > | FunctionColl_t |
| typedef std::vector< clang::VarDecl * > | VariableColl_t |
| typedef std::vector< clang::EnumDecl * > | EnumColl_t |
| typedef void(* | DeclCallback) (const char *type) |
| typedef std::map< clang::Decl *, const BaseSelectionRule * > | DeclsSelRulesMap_t |
Public Member Functions | |
| RScanner (SelectionRules &rules, EScanType stype, const cling::Interpreter &interpret, ROOT::TMetaUtils::TNormalizedCtxt &normCtxt, unsigned int verbose=0) | |
| Regular constructor setting up the scanner to search for entities matching the 'rules'. More... | |
| bool | shouldVisitTemplateInstantiations () const |
| bool | TraverseStmt (clang::Stmt *) |
| bool | TraverseClassTemplatePartialSpecializationDecl (clang::ClassTemplatePartialSpecializationDecl *) |
| bool | VisitEnumDecl (clang::EnumDecl *D) |
| bool | VisitFieldDecl (clang::FieldDecl *D) |
| Nothing to be done here. More... | |
| bool | VisitFunctionDecl (clang::FunctionDecl *D) |
| bool | VisitNamespaceDecl (clang::NamespaceDecl *D) |
| This method visits a namespace node. More... | |
| bool | VisitRecordDecl (clang::RecordDecl *D) |
| bool | VisitTypedefNameDecl (clang::TypedefNameDecl *D) |
| Visitor for every TypedefNameDecl, i.e. More... | |
| bool | VisitVarDecl (clang::VarDecl *D) |
| bool | TreatRecordDeclOrTypedefNameDecl (clang::TypeDecl *typeDecl) |
| bool | TraverseDeclContextHelper (clang::DeclContext *DC) |
| DeclCallback | SetRecordDeclCallback (DeclCallback callback) |
| Set the callback to the RecordDecl and return the previous one. More... | |
| void | Scan (const clang::ASTContext &C) |
| std::string | GetClassName (clang::DeclContext *DC) const |
| bool | GetDeclName (clang::Decl *D, std::string &name) const |
| bool | GetDeclQualName (clang::Decl *D, std::string &qual_name) const |
| bool | GetFunctionPrototype (clang::Decl *D, std::string &prototype) const |
| const DeclsSelRulesMap_t & | GetDeclsSelRulesMap () const |
| virtual | ~RScanner () |
Static Public Attributes | |
| static const char * | fgClangDeclKey = "ClangDecl" |
| static const char * | fgClangFuncKey = "ClangFunc" |
Private Member Functions | |
| std::string | ConvTemplateArguments (const clang::TemplateArgumentList &list) const |
| std::string | ConvTemplateName (clang::TemplateName &N) const |
| std::string | ConvTemplateParameterList (clang::TemplateParameterList *list) const |
| std::string | ConvTemplateParams (clang::TemplateDecl *D) const |
| void | DeclInfo (clang::Decl *D) const |
| std::string | ExprToStr (clang::Expr *expr) const |
| std::string | FuncParameterList (clang::FunctionDecl *D) const |
| std::string | FuncParameters (clang::FunctionDecl *D) const |
| std::string | GetClassName (clang::RecordDecl *D) const |
| std::string | GetEnumName (clang::EnumDecl *D) const |
| std::string | GetLocation (clang::Decl *D) const |
| std::string | GetName (clang::Decl *D) const |
| std::string | GetSrcLocation (clang::SourceLocation L) const |
| unsigned int | FuncModifiers (clang::FunctionDecl *D) const |
| unsigned int | VarModifiers (clang::VarDecl *D) const |
| unsigned int | Visibility (clang::Decl *D) const |
| unsigned int | VisibilityModifiers (clang::AccessSpecifier access) const |
| void | ShowError (const std::string &msg, const std::string &location="") const |
| void | ShowInfo (const std::string &msg, const std::string &location="") const |
| void | ShowTemplateInfo (const std::string &msg, const std::string &location="") const |
| void | ShowWarning (const std::string &msg, const std::string &location="") const |
| void | UnexpectedDecl (clang::Decl *D, const std::string &txt="") const |
| unexpected - this kind of declaration is unexpected (in concrete place) More... | |
| void | UnimplementedDecl (clang::Decl *D, const std::string &txt="") |
| information about item, that should be implemented More... | |
| void | UnimplementedType (clang::QualType qual_type) |
| void | UnimplementedType (const clang::Type *T) |
| void | UnimportantDecl (clang::Decl *D, const std::string &txt="") const |
| unimportant - this kind of declaration is not stored into reflex More... | |
| void | UnimportantType (clang::QualType qual_type) const |
| unimportant - this kind of declaration is not stored into reflex More... | |
| void | UnknownDecl (clang::Decl *D, const std::string &txt="") const |
| unknown - this kind of declaration was not known to programmer More... | |
| void | UnknownType (clang::QualType qual_type) const |
| void | UnsupportedDecl (clang::Decl *D, const std::string &txt="") const |
| unsupported - this kind of declaration is probably not used (in current version of C++) More... | |
| void | UnsupportedType (clang::QualType qual_type) const |
Private Attributes | |
| unsigned int | fVerboseLevel |
| const clang::SourceManager * | fSourceManager |
| const cling::Interpreter & | fInterpreter |
| bool | fDeclTable [fgDeclLast+1] |
| clang::Decl * | fLastDecl |
| DeclCallback | fRecordDeclCallback |
| bool | fTypeTable [fgTypeLast+1] |
| ROOT::TMetaUtils::TNormalizedCtxt & | fNormCtxt |
| SelectionRules & | fSelectionRules |
| std::set< clang::RecordDecl * > | fselectedRecordDecls |
| EScanType | fScanType |
| bool | fFirstPass |
| DeclsSelRulesMap_t | fDeclSelRuleMap |
Static Private Attributes | |
| static std::map< clang::Decl *, std::string > | fgAnonymousClassMap |
| static std::map< clang::Decl *, std::string > | fgAnonymousEnumMap |
| static const int | fgDeclLast = clang::Decl::Var |
| static const int | fgTypeLast = clang::Type::TemplateTypeParm |
| static int | fgAnonymousClassCounter = 0 |
| static int | fgAnonymousEnumCounter = 0 |
| static int | fgBadClassCounter = 0 |
Inheritance diagram for RScanner:
Collaboration diagram for RScanner:| typedef std::vector<ROOT::TMetaUtils::AnnotatedRecordDecl> RScanner::ClassColl_t |
| typedef std::map<clang::Decl*,const BaseSelectionRule*> RScanner::DeclsSelRulesMap_t |
| typedef std::vector<clang::EnumDecl*> RScanner::EnumColl_t |
| typedef std::vector<clang::FunctionDecl*> RScanner::FunctionColl_t |
| typedef std::vector<AnnotatedNamespaceDecl> RScanner::NamespaceColl_t |
| typedef std::vector<clang::TypedefNameDecl*> RScanner::TypedefColl_t |
| typedef std::vector<clang::VarDecl*> RScanner::VariableColl_t |
|
strong |
| RScanner::RScanner | ( | SelectionRules & | rules, |
| EScanType | stype, | ||
| const cling::Interpreter & | interpret, | ||
| ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt, | ||
| unsigned int | verbose = 0 |
||
| ) |
Regular constructor setting up the scanner to search for entities matching the 'rules'.
Definition at line 94 of file Scanner.cxx.
|
virtual |
Definition at line 122 of file Scanner.cxx.
|
private |
|
private |
Definition at line 521 of file Scanner.cxx.
|
private |
|
private |
|
private |
Definition at line 296 of file Scanner.cxx.
|
private |
Definition at line 506 of file Scanner.cxx.
Referenced by FuncParameters().
|
private |
|
private |
Definition at line 644 of file Scanner.cxx.
|
private |
Definition at line 617 of file Scanner.cxx.
| std::string RScanner::GetClassName | ( | clang::DeclContext * | DC | ) | const |
Definition at line 1099 of file Scanner.cxx.
|
private |
Definition at line 455 of file Scanner.cxx.
| bool RScanner::GetDeclName | ( | clang::Decl * | D, |
| std::string & | name | ||
| ) | const |
Definition at line 1111 of file Scanner.cxx.
| bool RScanner::GetDeclQualName | ( | clang::Decl * | D, |
| std::string & | qual_name | ||
| ) | const |
Definition at line 1127 of file Scanner.cxx.
Referenced by TreatRecordDeclOrTypedefNameDecl(), and VisitNamespaceDecl().
|
inline |
|
private |
Definition at line 482 of file Scanner.cxx.
| bool RScanner::GetFunctionPrototype | ( | clang::Decl * | D, |
| std::string & | prototype | ||
| ) | const |
Definition at line 1143 of file Scanner.cxx.
|
private |
Definition at line 255 of file Scanner.cxx.
Referenced by DeclInfo(), ShowTemplateInfo(), UnexpectedDecl(), UnimplementedDecl(), UnimplementedType(), UnknownDecl(), UnknownType(), UnsupportedDecl(), and UnsupportedType().
|
private |
Definition at line 272 of file Scanner.cxx.
Referenced by DeclInfo(), UnexpectedDecl(), UnimplementedDecl(), UnknownDecl(), and UnsupportedDecl().
|
private |
Definition at line 245 of file Scanner.cxx.
| void RScanner::Scan | ( | const clang::ASTContext & | C | ) |
Definition at line 1179 of file Scanner.cxx.
| RScanner::DeclCallback RScanner::SetRecordDeclCallback | ( | RScanner::DeclCallback | callback | ) |
Set the callback to the RecordDecl and return the previous one.
Definition at line 1207 of file Scanner.cxx.
|
inline |
|
private |
Definition at line 221 of file Scanner.cxx.
|
private |
Definition at line 195 of file Scanner.cxx.
Referenced by DeclInfo().
|
private |
Definition at line 233 of file Scanner.cxx.
|
private |
Definition at line 207 of file Scanner.cxx.
Referenced by GetFunctionPrototype(), ShowTemplateInfo(), UnexpectedDecl(), UnimplementedDecl(), UnimplementedType(), UnknownDecl(), UnknownType(), UnsupportedDecl(), and UnsupportedType().
|
inline |
| bool RScanner::TraverseDeclContextHelper | ( | clang::DeclContext * | DC | ) |
Definition at line 1069 of file Scanner.cxx.
| bool RScanner::TreatRecordDeclOrTypedefNameDecl | ( | clang::TypeDecl * | typeDecl | ) |
Definition at line 723 of file Scanner.cxx.
Referenced by VisitRecordDecl(), and VisitTypedefNameDecl().
|
private |
unexpected - this kind of declaration is unexpected (in concrete place)
Definition at line 318 of file Scanner.cxx.
|
private |
information about item, that should be implemented
Definition at line 347 of file Scanner.cxx.
|
private |
Definition at line 407 of file Scanner.cxx.
|
private |
Definition at line 431 of file Scanner.cxx.
|
private |
unimportant - this kind of declaration is not stored into reflex
Definition at line 340 of file Scanner.cxx.
|
private |
unimportant - this kind of declaration is not stored into reflex
Definition at line 401 of file Scanner.cxx.
|
private |
unknown - this kind of declaration was not known to programmer
Definition at line 307 of file Scanner.cxx.
|
private |
Definition at line 382 of file Scanner.cxx.
|
private |
unsupported - this kind of declaration is probably not used (in current version of C++)
Definition at line 329 of file Scanner.cxx.
|
private |
Definition at line 391 of file Scanner.cxx.
|
private |
|
private |
|
private |
| bool RScanner::VisitEnumDecl | ( | clang::EnumDecl * | D | ) |
Definition at line 993 of file Scanner.cxx.
| bool RScanner::VisitFieldDecl | ( | clang::FieldDecl * | D | ) |
Nothing to be done here.
Definition at line 1024 of file Scanner.cxx.
| bool RScanner::VisitFunctionDecl | ( | clang::FunctionDecl * | D | ) |
Definition at line 1052 of file Scanner.cxx.
| bool RScanner::VisitNamespaceDecl | ( | clang::NamespaceDecl * | D | ) |
This method visits a namespace node.
Definition at line 664 of file Scanner.cxx.
| bool RScanner::VisitRecordDecl | ( | clang::RecordDecl * | D | ) |
Definition at line 713 of file Scanner.cxx.
| bool RScanner::VisitTypedefNameDecl | ( | clang::TypedefNameDecl * | D | ) |
Visitor for every TypedefNameDecl, i.e.
aliases and typedefs We check three conditions before trying to match the name: 1) If we are creating a big PCM 2) If the underlying decl is a RecordDecl 3) If the typedef is eventually contained in the std namespace
Definition at line 970 of file Scanner.cxx.
| bool RScanner::VisitVarDecl | ( | clang::VarDecl * | D | ) |
Definition at line 1008 of file Scanner.cxx.
|
private |
Definition at line 185 of file Scanner.h.
Referenced by GetDeclsSelRulesMap(), and TreatRecordDeclOrTypedefNameDecl().
|
private |
Definition at line 173 of file Scanner.h.
Referenced by RScanner(), and UnimplementedDecl().
|
private |
Definition at line 184 of file Scanner.h.
Referenced by Scan(), and TreatRecordDeclOrTypedefNameDecl().
|
staticprivate |
Definition at line 177 of file Scanner.h.
Referenced by GetClassName().
|
staticprivate |
Definition at line 156 of file Scanner.h.
Referenced by GetClassName().
|
staticprivate |
Definition at line 178 of file Scanner.h.
Referenced by GetEnumName().
|
staticprivate |
Definition at line 157 of file Scanner.h.
Referenced by GetEnumName().
|
static |
|
static |
|
staticprivate |
Definition at line 171 of file Scanner.h.
Referenced by RScanner(), and UnimplementedDecl().
|
staticprivate |
Definition at line 172 of file Scanner.h.
Referenced by RScanner(), and UnimplementedType().
|
private |
Definition at line 170 of file Scanner.h.
Referenced by TreatRecordDeclOrTypedefNameDecl().
|
private |
Definition at line 174 of file Scanner.h.
Referenced by RScanner(), ShowTemplateInfo(), UnimplementedType(), UnknownType(), and UnsupportedType().
|
private |
Definition at line 180 of file Scanner.h.
Referenced by TreatRecordDeclOrTypedefNameDecl().
|
private |
Definition at line 175 of file Scanner.h.
Referenced by SetRecordDeclCallback(), and TreatRecordDeclOrTypedefNameDecl().
|
private |
Definition at line 183 of file Scanner.h.
Referenced by Scan(), TraverseDeclContextHelper(), TreatRecordDeclOrTypedefNameDecl(), VisitEnumDecl(), VisitFunctionDecl(), VisitNamespaceDecl(), VisitTypedefNameDecl(), and VisitVarDecl().
| ClassColl_t RScanner::fSelectedClasses |
Definition at line 118 of file Scanner.h.
Referenced by Scan(), and TreatRecordDeclOrTypedefNameDecl().
| EnumColl_t RScanner::fSelectedEnums |
Definition at line 126 of file Scanner.h.
Referenced by Scan(), and VisitEnumDecl().
| FunctionColl_t RScanner::fSelectedFunctions |
Definition at line 124 of file Scanner.h.
Referenced by Scan(), and VisitFunctionDecl().
| NamespaceColl_t RScanner::fSelectedNamespaces |
Definition at line 122 of file Scanner.h.
Referenced by VisitNamespaceDecl().
|
private |
Definition at line 182 of file Scanner.h.
Referenced by Scan(), and TreatRecordDeclOrTypedefNameDecl().
| TypedefColl_t RScanner::fSelectedTypedefs |
Definition at line 123 of file Scanner.h.
Referenced by Scan(), and TreatRecordDeclOrTypedefNameDecl().
| VariableColl_t RScanner::fSelectedVariables |
Definition at line 125 of file Scanner.h.
Referenced by VisitVarDecl().
|
private |
Definition at line 181 of file Scanner.h.
Referenced by RScanner(), Scan(), TreatRecordDeclOrTypedefNameDecl(), VisitEnumDecl(), VisitFunctionDecl(), VisitNamespaceDecl(), and VisitVarDecl().
|
private |
Definition at line 169 of file Scanner.h.
Referenced by GetLocation(), GetSrcLocation(), and Scan().
|
private |
Definition at line 176 of file Scanner.h.
Referenced by RScanner(), and UnimplementedType().
|
private |
Definition at line 148 of file Scanner.h.
Referenced by Scan(), TreatRecordDeclOrTypedefNameDecl(), and VisitNamespaceDecl().