summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Symbols.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2009-07-28 16:34:15 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2009-07-28 16:34:15 +0200
commit26267c03445266233159b2f61bbc3a4d5864c01a (patch)
tree8b7536d8f41fea63adc180d56830a73aae1192ad /src/shared/cplusplus/Symbols.h
parenta9b521f80af025ac11f9735fc070606952894b60 (diff)
downloadqt-creator-26267c03445266233159b2f61bbc3a4d5864c01a.tar.gz
Improved ObjC parsing, and added semantic checks.
Diffstat (limited to 'src/shared/cplusplus/Symbols.h')
-rw-r--r--src/shared/cplusplus/Symbols.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/src/shared/cplusplus/Symbols.h b/src/shared/cplusplus/Symbols.h
index 03a66778d7..a35dbf30b5 100644
--- a/src/shared/cplusplus/Symbols.h
+++ b/src/shared/cplusplus/Symbols.h
@@ -463,6 +463,133 @@ private:
Array<BaseClass *> _baseClasses;
};
+class CPLUSPLUS_EXPORT ObjCForwardProtocolDeclaration: public Symbol, public Type
+{
+public:
+ ObjCForwardProtocolDeclaration(TranslationUnit *translationUnit, unsigned sourceLocation, Name *name);
+ virtual ~ObjCForwardProtocolDeclaration();
+
+ // Symbol's interface
+ virtual FullySpecifiedType type() const;
+
+ // Type's interface
+ virtual bool isEqualTo(const Type *other) const;
+
+ virtual const ObjCForwardProtocolDeclaration *asObjCForwardProtocolDeclaration() const
+ { return this; }
+
+ virtual ObjCForwardProtocolDeclaration *asObjCForwardProtocolDeclaration()
+ { return this; }
+
+ virtual const ObjCForwardProtocolDeclaration *asObjCForwardProtocolDeclarationType() const
+ { return this; }
+
+ virtual ObjCForwardProtocolDeclaration *asObjCForwardProtocolDeclarationType()
+ { return this; }
+
+protected:
+ virtual void visitSymbol0(SymbolVisitor *visitor);
+ virtual void accept0(TypeVisitor *visitor);
+
+private:
+};
+
+class CPLUSPLUS_EXPORT ObjCProtocol: public ScopedSymbol, public Type
+{
+public:
+ ObjCProtocol(TranslationUnit *translationUnit, unsigned sourceLocation, Name *name);
+ virtual ~ObjCProtocol();
+
+ // Symbol's interface
+ virtual FullySpecifiedType type() const;
+
+ // Type's interface
+ virtual bool isEqualTo(const Type *other) const;
+
+ virtual const ObjCProtocol *asObjCProtocol() const
+ { return this; }
+
+ virtual ObjCProtocol *asObjCProtocol()
+ { return this; }
+
+ virtual const ObjCProtocol *asObjCProtocolType() const
+ { return this; }
+
+ virtual ObjCProtocol *asObjCProtocolType()
+ { return this; }
+
+protected:
+ virtual void visitSymbol0(SymbolVisitor *visitor);
+ virtual void accept0(TypeVisitor *visitor);
+
+private:
+ Array<ObjCProtocol *> _protocols;
+};
+
+class CPLUSPLUS_EXPORT ObjCForwardClassDeclaration: public Symbol, public Type
+{
+public:
+ ObjCForwardClassDeclaration(TranslationUnit *translationUnit, unsigned sourceLocation, Name *name);
+ virtual ~ObjCForwardClassDeclaration();
+
+ // Symbol's interface
+ virtual FullySpecifiedType type() const;
+
+ // Type's interface
+ virtual bool isEqualTo(const Type *other) const;
+
+ virtual const ObjCForwardClassDeclaration *asObjCForwardClassDeclaration() const
+ { return this; }
+
+ virtual ObjCForwardClassDeclaration *asObjCForwardClassDeclaration()
+ { return this; }
+
+ virtual const ObjCForwardClassDeclaration *asObjCForwardClassDeclarationType() const
+ { return this; }
+
+ virtual ObjCForwardClassDeclaration *asObjCForwardClassDeclarationType()
+ { return this; }
+
+protected:
+ virtual void visitSymbol0(SymbolVisitor *visitor);
+ virtual void accept0(TypeVisitor *visitor);
+
+private:
+};
+
+class CPLUSPLUS_EXPORT ObjCClass: public ScopedSymbol, public Type
+{
+public:
+ ObjCClass(TranslationUnit *translationUnit, unsigned sourceLocation, Name *name);
+ virtual ~ObjCClass();
+
+ // Symbol's interface
+ virtual FullySpecifiedType type() const;
+
+ // Type's interface
+ virtual bool isEqualTo(const Type *other) const;
+
+ virtual const ObjCClass *asObjCClass() const
+ { return this; }
+
+ virtual ObjCClass *asObjCClass()
+ { return this; }
+
+ virtual const ObjCClass *asObjCClassType() const
+ { return this; }
+
+ virtual ObjCClass *asObjCClassType()
+ { return this; }
+
+protected:
+ virtual void visitSymbol0(SymbolVisitor *visitor);
+ virtual void accept0(TypeVisitor *visitor);
+
+private:
+ Array<ObjCClass *> _baseClasses;
+ Array<ObjCProtocol *> _protocols;
+};
+
CPLUSPLUS_END_NAMESPACE
CPLUSPLUS_END_HEADER