summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Names.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus/Names.h')
-rw-r--r--src/shared/cplusplus/Names.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/shared/cplusplus/Names.h b/src/shared/cplusplus/Names.h
index c5758ba738..b0dc395630 100644
--- a/src/shared/cplusplus/Names.h
+++ b/src/shared/cplusplus/Names.h
@@ -271,6 +271,39 @@ private:
FullySpecifiedType _type;
};
+class CPLUSPLUS_EXPORT SelectorNameId: public Name
+{
+public:
+ SelectorNameId(Name *const names[],
+ unsigned nameCount,
+ bool hasArguments);
+ virtual ~SelectorNameId();
+
+ virtual Identifier *identifier() const;
+
+ unsigned nameCount() const;
+ Name *nameAt(unsigned index) const;
+ Name *const *names() const;
+
+ bool hasArguments() const;
+
+ virtual bool isEqualTo(const Name *other) const;
+
+ virtual const SelectorNameId *asSelectorNameId() const
+ { return this; }
+
+ virtual SelectorNameId *asSelectorNameId()
+ { return this; }
+
+protected:
+ virtual void accept0(NameVisitor *visitor);
+
+private:
+ Name **_names;
+ unsigned _nameCount;
+ bool _hasArguments;
+};
+
CPLUSPLUS_END_NAMESPACE
CPLUSPLUS_END_HEADER