diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-07-03 09:11:52 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2009-07-03 09:12:58 +0200 |
commit | 3cdd48067c8c865d050a19766948d05c86ec6e40 (patch) | |
tree | 339702b3a68d8703f87ab01b79cfb5f4894eb54c /src/shared/cplusplus/AST.h | |
parent | 16286b763d74b5793cf1b564252510d4a43ad71f (diff) | |
download | qt-creator-3cdd48067c8c865d050a19766948d05c86ec6e40.tar.gz |
Introduced ForeachStatementAST and the bits to parse foreach statements when qtMocRun is enabled.
Diffstat (limited to 'src/shared/cplusplus/AST.h')
-rw-r--r-- | src/shared/cplusplus/AST.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h index f345fd76b0..d22735eeb1 100644 --- a/src/shared/cplusplus/AST.h +++ b/src/shared/cplusplus/AST.h @@ -131,6 +131,7 @@ public: virtual ExpressionListAST *asExpressionList() { return 0; } virtual ExpressionOrDeclarationStatementAST *asExpressionOrDeclarationStatement() { return 0; } virtual ExpressionStatementAST *asExpressionStatement() { return 0; } + virtual ForeachStatementAST *asForeachStatement() { return 0; } virtual ForStatementAST *asForStatement() { return 0; } virtual FunctionDeclaratorAST *asFunctionDeclarator() { return 0; } virtual FunctionDefinitionAST *asFunctionDefinition() { return 0; } @@ -1135,6 +1136,37 @@ protected: virtual void accept0(ASTVisitor *visitor); }; +class CPLUSPLUS_EXPORT ForeachStatementAST: public StatementAST +{ +public: + unsigned foreach_token; + unsigned lparen_token; + // declaration + SpecifierAST *type_specifiers; + DeclaratorAST *declarator; + // or an expression + ExpressionAST *initializer; + unsigned comma_token; + ExpressionAST *expression; + unsigned rparen_token; + StatementAST *statement; + +public: // annotations + Block *symbol; + +public: + virtual ForeachStatementAST *asForeachStatement() + { return this; } + + virtual unsigned firstToken() const; + virtual unsigned lastToken() const; + + virtual ForeachStatementAST *clone(MemoryPool *pool) const; + +protected: + virtual void accept0(ASTVisitor *visitor); +}; + class CPLUSPLUS_EXPORT ForStatementAST: public StatementAST { public: |