Postpone the parsing of function definitions.

This commit is contained in:
Roberto Raggi
2010-03-30 16:52:20 +02:00
parent aff7d3fdf8
commit e421d32147
5 changed files with 108 additions and 23 deletions

View File

@@ -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;