From 3cdd48067c8c865d050a19766948d05c86ec6e40 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 3 Jul 2009 09:11:52 +0200 Subject: Introduced ForeachStatementAST and the bits to parse foreach statements when qtMocRun is enabled. --- src/shared/cplusplus/AST.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/shared/cplusplus/AST.h') 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: -- cgit v1.2.1