Introduced ForeachStatementAST and the bits to parse foreach statements when qtMocRun is enabled.

This commit is contained in:
Roberto Raggi
2009-07-03 09:11:52 +02:00
parent 16286b763d
commit 3cdd48067c
16 changed files with 185 additions and 14 deletions

View File

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