12#ifndef R__BASESELECTIONRULE_H
13#define R__BASESELECTIONRULE_H
25#include <unordered_map>
89 BaseSelectionRule(
long index, cling::Interpreter &interp,
const char* selFileName =
"",
long lineno=-1) :
fIndex(
index),
fLineNumber(lineno),
fSelFileName(selFileName),
fIsSelected(
kNo),
fMatchFound(false),
fCXXRecordDecl(nullptr),
fRequestedType(nullptr),
fInterp(&interp) {}
91 BaseSelectionRule(
long index,
ESelect sel,
const std::string& attributeName,
const std::string& attributeValue, cling::Interpreter &interp,
const char* selFileName =
"",
long lineno=-1);
96 virtual void Print(std::ostream &out)
const = 0;
108 bool GetAttributeValue(
const std::string& attributeName, std::string& returnValue)
const;
133 void SetAttributeValue(
const std::string& attributeName,
const std::string& attributeValue);
145 EMatchType Match(
const clang::NamedDecl *decl,
const std::string&
name,
const std::string& prototype,
bool isLinkdef)
const;
152 void SetCXXRecordDecl(
const clang::CXXRecordDecl *decl,
const clang::Type *typeptr);
158 inline bool CheckPattern(
const std::string&
test,
const std::string& pattern,
const std::list<std::string>& patterns_list,
bool isLinkdef)
const;
160 inline void ProcessPattern(
const std::string& pattern, std::list<std::string>& out)
const;
TBuffer & operator<<(TBuffer &buf, const Tmpl *obj)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t sel
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
void SetAttributeValue(const std::string &attributeName, const std::string &attributeValue)
bool fHasFilePatternAttribute
bool HasAttributeFileName() const
BaseSelectionRule(long index, cling::Interpreter &interp, const char *selFileName="", long lineno=-1)
bool HasAttributePattern() const
const std::string & GetAttributePattern() const
bool HasAttributeFilePattern() const
bool GetAttributeValue(const std::string &attributeName, std::string &returnValue) const
virtual ~BaseSelectionRule()=default
bool CheckPattern(const std::string &test, const std::string &pattern, const std::list< std::string > &patterns_list, bool isLinkdef) const
bool fHasPatternAttribute
bool HasInterpreter() const
void SetSelected(ESelect sel)
void ProcessPattern(const std::string &pattern, std::list< std::string > &out) const
const std::string & GetAttributeFileName() const
const clang::CXXRecordDecl * fCXXRecordDecl
const std::string & GetAttributeNArgsToKeep() const
bool fHasProtoNameAttribute
std::list< std::string > fSubPatterns
bool HasAttributeProtoPattern() const
const clang::CXXRecordDecl * GetCXXRecordDecl() const
virtual void DebugPrint() const
EMatchType Match(const clang::NamedDecl *decl, const std::string &name, const std::string &prototype, bool isLinkdef) const
void SetCXXRecordDecl(const clang::CXXRecordDecl *decl, const clang::Type *typeptr)
void SetIndex(long index)
void SetInterpreter(cling::Interpreter &interp)
const std::string & GetAttributeName() const
bool GetMatchFound() const
const clang::Type * GetRequestedType() const
long GetLineNumber() const
std::string fProtoPattern
const AttributesMap_t & GetAttributes() const
const std::string & GetAttributeProtoName() const
const std::string & GetAttributeProtoPattern() const
ESelect GetSelected() const
bool HasAttributeWithName(const std::string &attributeName) const
bool HasAttributeName() const
AttributesMap_t fAttributes
bool fHasProtoPatternAttribute
bool HasAttributeFromTypedef() const
cling::Interpreter * fInterp
bool IsFromTypedef() const
const clang::Type * fRequestedType
bool fHasFileNameAttribute
void SetMatchFound(bool match)
std::unordered_map< std::string, std::string > AttributesMap_t
void PrintAttributes(int level) const
std::list< std::string > fFileSubPatterns
bool HasAttributeProtoName() const
BaseSelectionRule(ESelect sel)
const char * GetSelFileName() const
virtual void Print(std::ostream &out) const =0
const std::string & GetAttributeFilePattern() const
bool fHasFromTypedefAttribute