C++: Split designator AST

Change-Id: I9bfed2023624c818c0f35f24476693cffeaf2bbc
Reviewed-by: Wang Hoi <wanghoi@126.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
Orgad Shaneh
2014-06-20 09:57:46 +03:00
committed by Nikolai Kosjar
parent cb079c5319
commit ea4b4bff40
14 changed files with 177 additions and 79 deletions

View File

@@ -2999,11 +2999,32 @@ bool ASTMatcher::match(BracedInitializerAST *node, BracedInitializerAST *pattern
return true;
}
bool ASTMatcher::match(DesignatorAST *node, DesignatorAST *pattern)
bool ASTMatcher::match(DotDesignatorAST *node, DotDesignatorAST *pattern)
{
(void) node;
(void) pattern;
pattern->dot_token = node->dot_token;
pattern->identifier_token = node->identifier_token;
return true;
}
bool ASTMatcher::match(BracketDesignatorAST *node, BracketDesignatorAST *pattern)
{
(void) node;
(void) pattern;
pattern->lbracket_token = node->lbracket_token;
if (! pattern->expression)
pattern->expression = node->expression;
else if (! AST::match(node->expression, pattern->expression, this))
return false;
pattern->rbracket_token = node->rbracket_token;
return true;
}