diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-06-23 14:38:41 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-06-23 14:39:14 +0200 |
commit | da817310c2c07a107d21e743370a09d4adfc4852 (patch) | |
tree | ac7efd8d5e9bebf5dd3dbf9a4b3e385a6bc44376 /src/shared/cplusplus/ASTClone.cpp | |
parent | ed2862acce3f22bd1d7c83203eb445696426d438 (diff) | |
download | qt-creator-da817310c2c07a107d21e743370a09d4adfc4852.tar.gz |
Get rid of PostfixExpressionAST and store the base expression together with the PostfixAST nodes.
Diffstat (limited to 'src/shared/cplusplus/ASTClone.cpp')
-rw-r--r-- | src/shared/cplusplus/ASTClone.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp index 73237e1765..2ddcfcd126 100644 --- a/src/shared/cplusplus/ASTClone.cpp +++ b/src/shared/cplusplus/ASTClone.cpp @@ -928,6 +928,8 @@ ParameterDeclarationClauseAST *ParameterDeclarationClauseAST::clone(MemoryPool * CallAST *CallAST::clone(MemoryPool *pool) const { CallAST *ast = new (pool) CallAST; + if (base_expression) + ast->base_expression = base_expression->clone(pool); ast->lparen_token = lparen_token; for (ExpressionListAST *iter = expression_list, **ast_iter = &ast->expression_list; iter; iter = iter->next, ast_iter = &(*ast_iter)->next) @@ -939,6 +941,8 @@ CallAST *CallAST::clone(MemoryPool *pool) const ArrayAccessAST *ArrayAccessAST::clone(MemoryPool *pool) const { ArrayAccessAST *ast = new (pool) ArrayAccessAST; + if (base_expression) + ast->base_expression = base_expression->clone(pool); ast->lbracket_token = lbracket_token; if (expression) ast->expression = expression->clone(pool); @@ -949,6 +953,8 @@ ArrayAccessAST *ArrayAccessAST::clone(MemoryPool *pool) const PostIncrDecrAST *PostIncrDecrAST::clone(MemoryPool *pool) const { PostIncrDecrAST *ast = new (pool) PostIncrDecrAST; + if (base_expression) + ast->base_expression = base_expression->clone(pool); ast->incr_decr_token = incr_decr_token; return ast; } @@ -956,6 +962,8 @@ PostIncrDecrAST *PostIncrDecrAST::clone(MemoryPool *pool) const MemberAccessAST *MemberAccessAST::clone(MemoryPool *pool) const { MemberAccessAST *ast = new (pool) MemberAccessAST; + if (base_expression) + ast->base_expression = base_expression->clone(pool); ast->access_token = access_token; ast->template_token = template_token; if (member_name) @@ -1002,17 +1010,6 @@ TypeConstructorCallAST *TypeConstructorCallAST::clone(MemoryPool *pool) const return ast; } -PostfixExpressionAST *PostfixExpressionAST::clone(MemoryPool *pool) const -{ - PostfixExpressionAST *ast = new (pool) PostfixExpressionAST; - if (base_expression) - ast->base_expression = base_expression->clone(pool); - for (PostfixListAST *iter = postfix_expression_list, **ast_iter = &ast->postfix_expression_list; - iter; iter = iter->next, ast_iter = &(*ast_iter)->next) - *ast_iter = new (pool) PostfixListAST((iter->value) ? iter->value->clone(pool) : 0); - return ast; -} - PointerToMemberAST *PointerToMemberAST::clone(MemoryPool *pool) const { PointerToMemberAST *ast = new (pool) PointerToMemberAST; |