summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/ASTMatcher.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-02-06 11:38:54 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-02-07 10:49:03 +0100
commitac6aba5ec34e2b2f7f83105e9a986e629e00ad14 (patch)
tree78f62f21381b749ed9c81939a9284a4cc5c29a20 /src/shared/cplusplus/ASTMatcher.cpp
parent8d8b05da5a93bcd8f45a2d1b796ff1e4b1102ff5 (diff)
downloadqt-creator-ac6aba5ec34e2b2f7f83105e9a986e629e00ad14.tar.gz
Simplified Q_FLAGS and Q_DECLARE_FLAGS parsing.
Diffstat (limited to 'src/shared/cplusplus/ASTMatcher.cpp')
-rw-r--r--src/shared/cplusplus/ASTMatcher.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/shared/cplusplus/ASTMatcher.cpp b/src/shared/cplusplus/ASTMatcher.cpp
index 25b0ef3d2d..75ff5eceb8 100644
--- a/src/shared/cplusplus/ASTMatcher.cpp
+++ b/src/shared/cplusplus/ASTMatcher.cpp
@@ -318,13 +318,13 @@ bool ASTMatcher::match(QtFlagsDeclarationAST *node, QtFlagsDeclarationAST *patte
pattern->lparen_token = node->lparen_token;
- pattern->rparen_token = node->rparen_token;
-
- if (! pattern->enumerator_list)
- pattern->enumerator_list = node->enumerator_list;
- else if (! AST::match(node->enumerator_list, pattern->enumerator_list, this))
+ if (! pattern->flag_enums_list)
+ pattern->flag_enums_list = node->flag_enums_list;
+ else if (! AST::match(node->flag_enums_list, pattern->flag_enums_list, this))
return false;
+ pattern->rparen_token = node->rparen_token;
+
return true;
}
@@ -337,9 +337,17 @@ bool ASTMatcher::match(QtDeclareFlagsDeclarationAST *node, QtDeclareFlagsDeclara
pattern->lparen_token = node->lparen_token;
- pattern->flag_token = node->flag_token;
+ if (! pattern->flags_name)
+ pattern->flags_name = node->flags_name;
+ else if (! AST::match(node->flags_name, pattern->flags_name, this))
+ return false;
- pattern->enum_token = node->enum_token;
+ pattern->comma_token = node->comma_token;
+
+ if (! pattern->enum_name)
+ pattern->enum_name = node->enum_name;
+ else if (! AST::match(node->enum_name, pattern->enum_name, this))
+ return false;
pattern->rparen_token = node->rparen_token;