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/ASTMatcher.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/ASTMatcher.cpp')
-rw-r--r-- | src/shared/cplusplus/ASTMatcher.cpp | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/src/shared/cplusplus/ASTMatcher.cpp b/src/shared/cplusplus/ASTMatcher.cpp index 4be5014abd..e0b6af2591 100644 --- a/src/shared/cplusplus/ASTMatcher.cpp +++ b/src/shared/cplusplus/ASTMatcher.cpp @@ -1560,6 +1560,11 @@ bool ASTMatcher::match(CallAST *node, CallAST *pattern) (void) node; (void) pattern; + if (! pattern->base_expression) + pattern->base_expression = node->base_expression; + else if (! AST::match(node->base_expression, pattern->base_expression, this)) + return false; + pattern->lparen_token = node->lparen_token; if (! pattern->expression_list) @@ -1577,6 +1582,11 @@ bool ASTMatcher::match(ArrayAccessAST *node, ArrayAccessAST *pattern) (void) node; (void) pattern; + if (! pattern->base_expression) + pattern->base_expression = node->base_expression; + else if (! AST::match(node->base_expression, pattern->base_expression, this)) + return false; + pattern->lbracket_token = node->lbracket_token; if (! pattern->expression) @@ -1594,6 +1604,11 @@ bool ASTMatcher::match(PostIncrDecrAST *node, PostIncrDecrAST *pattern) (void) node; (void) pattern; + if (! pattern->base_expression) + pattern->base_expression = node->base_expression; + else if (! AST::match(node->base_expression, pattern->base_expression, this)) + return false; + pattern->incr_decr_token = node->incr_decr_token; return true; @@ -1604,6 +1619,11 @@ bool ASTMatcher::match(MemberAccessAST *node, MemberAccessAST *pattern) (void) node; (void) pattern; + if (! pattern->base_expression) + pattern->base_expression = node->base_expression; + else if (! AST::match(node->base_expression, pattern->base_expression, this)) + return false; + pattern->access_token = node->access_token; pattern->template_token = node->template_token; @@ -1681,24 +1701,6 @@ bool ASTMatcher::match(TypeConstructorCallAST *node, TypeConstructorCallAST *pat return true; } -bool ASTMatcher::match(PostfixExpressionAST *node, PostfixExpressionAST *pattern) -{ - (void) node; - (void) pattern; - - if (! pattern->base_expression) - pattern->base_expression = node->base_expression; - else if (! AST::match(node->base_expression, pattern->base_expression, this)) - return false; - - if (! pattern->postfix_expression_list) - pattern->postfix_expression_list = node->postfix_expression_list; - else if (! AST::match(node->postfix_expression_list, pattern->postfix_expression_list, this)) - return false; - - return true; -} - bool ASTMatcher::match(PointerToMemberAST *node, PointerToMemberAST *pattern) { (void) node; |