12 #ifndef R__BASESELECTIONRULE_H
13 #define R__BASESELECTIONRULE_H
26 #include <unordered_map>
92 BaseSelectionRule(
long index, cling::Interpreter &interp,
const char* selFileName =
"",
long lineno=-1) : fIndex(index),fLineNumber(lineno),fSelFileName(selFileName),fIsSelected(
kNo),fMatchFound(
false),fCXXRecordDecl(0),fRequestedType(0),fInterp(&interp) {}
94 BaseSelectionRule(
long index,
ESelect sel,
const std::string& attributeName,
const std::string& attributeValue, cling::Interpreter &interp,
const char* selFileName =
"",
long lineno=-1);
97 virtual void Print(std::ostream &
out)
const = 0;
109 bool GetAttributeValue(
const std::string& attributeName, std::string& returnValue)
const;
134 void SetAttributeValue(
const std::string& attributeName,
const std::string& attributeValue);
146 EMatchType Match(
const clang::NamedDecl *decl,
const std::string&
name,
const std::string& prototype,
bool isLinkdef)
const;
160 static bool CheckPattern(
const std::string&
test,
const std::string&
pattern,
const std::list<std::string>& patterns_list,
bool isLinkdef);
bool fHasProtoNameAttribute
const AttributesMap_t & GetAttributes() const
const std::string & GetAttributeNArgsToKeep() const
bool HasAttributeName() const
bool GetAttributeValue(const std::string &attributeName, std::string &returnValue) const
void PrintAttributes(int level) const
bool fHasProtoPatternAttribute
std::list< std::string > fSubPatterns
std::list< std::string > fFileSubPatterns
const std::string & GetAttributeFileName() const
const clang::Type * fRequestedType
bool GetMatchFound() const
static bool BeginsWithStar(const std::string &pattern)
ClassImp(TIterator) Bool_t TIterator return false
Compare two iterator objects.
const std::string & GetAttributeFilePattern() const
bool fHasPatternAttribute
bool HasAttributeWithName(const std::string &attributeName) const
virtual void DebugPrint() const
virtual void Print(std::ostream &out) const =0
static bool CheckPattern(const std::string &test, const std::string &pattern, const std::list< std::string > &patterns_list, bool isLinkdef)
bool fHasFromTypedefAttribute
static bool EndsWithStar(const std::string &pattern)
bool HasAttributeFilePattern() const
const clang::Type * GetRequestedType() const
AttributesMap_t fAttributes
bool HasAttributeFromTypedef() const
bool HasAttributeProtoPattern() const
void SetIndex(long index)
std::string fProtoPattern
bool fHasFilePatternAttribute
bool IsFromTypedef() const
const std::string & GetAttributeProtoName() const
std::unordered_map< std::string, std::string > AttributesMap_t
bool HasAttributeFileName() const
ESelect GetSelected() const
bool HasInterpreter() const
Type
enumeration specifying the integration types.
EMatchType Match(const clang::NamedDecl *decl, const std::string &name, const std::string &prototype, bool isLinkdef) const
const std::string & GetAttributePattern() const
const clang::CXXRecordDecl * GetCXXRecordDecl() const
bool HasAttributeProtoName() const
const std::string & GetAttributeName() const
cling::Interpreter * fInterp
bool HasAttributePattern() const
const char * GetSelFileName() const
std::ostream & operator<<(std::ostream &out, const BaseSelectionRule &obj)
void SetSelected(ESelect sel)
BaseSelectionRule(ESelect sel)
void SetAttributeValue(const std::string &attributeName, const std::string &attributeValue)
void SetCXXRecordDecl(const clang::CXXRecordDecl *decl, const clang::Type *typeptr)
const std::string & GetAttributeProtoPattern() const
void SetMatchFound(bool match)
const clang::CXXRecordDecl * fCXXRecordDecl
long GetLineNumber() const
void SetInterpreter(cling::Interpreter &interp)
BaseSelectionRule(long index, cling::Interpreter &interp, const char *selFileName="", long lineno=-1)
static void ProcessPattern(const std::string &pattern, std::list< std::string > &out)
bool fHasFileNameAttribute