summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/ASTMatcher.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-06-23 14:38:41 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-06-23 14:39:14 +0200
commitda817310c2c07a107d21e743370a09d4adfc4852 (patch)
treeac7efd8d5e9bebf5dd3dbf9a4b3e385a6bc44376 /src/shared/cplusplus/ASTMatcher.cpp
parented2862acce3f22bd1d7c83203eb445696426d438 (diff)
downloadqt-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.cpp38
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;