summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Semantic.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus/Semantic.h')
-rw-r--r--src/shared/cplusplus/Semantic.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/shared/cplusplus/Semantic.h b/src/shared/cplusplus/Semantic.h
index a804a72328..6aace93f75 100644
--- a/src/shared/cplusplus/Semantic.h
+++ b/src/shared/cplusplus/Semantic.h
@@ -55,6 +55,22 @@
namespace CPlusPlus {
+class CPLUSPLUS_EXPORT SemanticClient
+{
+ SemanticClient(const SemanticClient &other);
+ void operator = (const SemanticClient &other);
+
+public:
+ SemanticClient(Semantic *semantic);
+ virtual ~SemanticClient();
+
+ Semantic *semantic() const;
+
+private:
+ Semantic *_semantic;
+};
+
+
class CPLUSPLUS_EXPORT Semantic
{
Semantic(const Semantic &other);
@@ -67,6 +83,9 @@ public:
TranslationUnit *translationUnit() const;
Control *control() const;
+ SemanticClient *semanticClient() const;
+ void setSemanticClient(SemanticClient *client);
+
FullySpecifiedType check(SpecifierListAST *specifier, Scope *scope,
const FullySpecifiedType &type = FullySpecifiedType());
@@ -93,6 +112,9 @@ public:
void check(ObjCMessageArgumentDeclarationAST *arg, Scope *scope);
+ void checkFunctionDefinition(FunctionDefinitionAST *ast);
+ void finishFunctionDefinition(FunctionDefinitionAST *ast);
+
bool skipFunctionBodies() const;
void setSkipFunctionBodies(bool skipFunctionBodies);
@@ -105,6 +127,9 @@ public:
int currentMethodKey() const;
int switchMethodKey(int methodKey);
+ ClassSpecifierAST *declatingClass() const;
+ ClassSpecifierAST *switchDeclaringClass(ClassSpecifierAST *ast);
+
int visibilityForClassKey(int tokenKind) const;
int visibilityForAccessSpecifier(int tokenKind) const;
int visibilityForObjCAccessSpecifier(int tokenKind) const;