diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-02 12:04:59 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-02 12:52:12 +0200 |
commit | 6324bf4460132225f682a59bc59794610c25924e (patch) | |
tree | 669c452d5867f3caf71a1a53d7eb9fb67a6785ff /src/shared/cplusplus/AST.h | |
parent | 6226cfe1fcbe33175e62950df656ff144e5276c0 (diff) | |
download | qt-creator-6324bf4460132225f682a59bc59794610c25924e.tar.gz |
Introduced IdExpressionAST.
Diffstat (limited to 'src/shared/cplusplus/AST.h')
-rw-r--r-- | src/shared/cplusplus/AST.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h index 5eaa6624e5..2bbe99e2c6 100644 --- a/src/shared/cplusplus/AST.h +++ b/src/shared/cplusplus/AST.h @@ -201,6 +201,7 @@ public: virtual FunctionDeclaratorAST *asFunctionDeclarator() { return 0; } virtual FunctionDefinitionAST *asFunctionDefinition() { return 0; } virtual GotoStatementAST *asGotoStatement() { return 0; } + virtual IdExpressionAST *asIdExpression() { return 0; } virtual IfStatementAST *asIfStatement() { return 0; } virtual LabeledStatementAST *asLabeledStatement() { return 0; } virtual LambdaCaptureAST *asLambdaCapture() { return 0; } @@ -337,7 +338,7 @@ public: virtual DeclarationAST *clone(MemoryPool *pool) const = 0; }; -class CPLUSPLUS_EXPORT NameAST: public ExpressionAST +class CPLUSPLUS_EXPORT NameAST: public AST { public: // annotations const Name *name; @@ -965,6 +966,28 @@ protected: virtual bool match0(AST *, ASTMatcher *); }; +class CPLUSPLUS_EXPORT IdExpressionAST: public ExpressionAST +{ +public: + NameAST *name; + +public: + IdExpressionAST() + : name(0) + {} + + virtual IdExpressionAST *asIdExpression() { return this; } + + virtual unsigned firstToken() const; + virtual unsigned lastToken() const; + + virtual IdExpressionAST *clone(MemoryPool *pool) const; + +protected: + virtual void accept0(ASTVisitor *visitor); + virtual bool match0(AST *, ASTMatcher *); +}; + class CPLUSPLUS_EXPORT CompoundExpressionAST: public ExpressionAST { public: |