![]() |
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 |
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().