From da817310c2c07a107d21e743370a09d4adfc4852 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Wed, 23 Jun 2010 14:38:41 +0200 Subject: Get rid of PostfixExpressionAST and store the base expression together with the PostfixAST nodes. --- src/shared/cplusplus/ASTMatcher.cpp | 38 +++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) (limited to 'src/shared/cplusplus/ASTMatcher.cpp') 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; -- cgit v1.2.1