summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-03-16 16:38:02 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-03-17 10:30:17 +0100
commit61132f260c029c868e1971771424c62f36cef638 (patch)
treea59169e2f032b9c9436ae1b75d5410becbace007 /src/shared/cplusplus/Parser.cpp
parentfd81a276ca5b400d33f8f9749d9fca04a78debb3 (diff)
downloadqt-creator-61132f260c029c868e1971771424c62f36cef638.tar.gz
Fixed Q_ENUMS/Q_FLAGS parsing of enum names.
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r--src/shared/cplusplus/Parser.cpp35
1 files changed, 2 insertions, 33 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 494f477ec8..93b30251c7 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -1899,7 +1899,7 @@ bool Parser::parseQtEnumDeclaration(DeclarationAST *&node)
match(T_LPAREN, &ast->lparen_token);
for (NameListAST **iter = &ast->enumerator_list; LA() && LA() != T_RPAREN; iter = &(*iter)->next) {
NameAST *name_ast = 0;
- if (!parseEnumName(name_ast))
+ if (!parseName(name_ast))
break;
*iter = new (_pool) NameListAST;
(*iter)->value = name_ast;
@@ -1909,37 +1909,6 @@ bool Parser::parseQtEnumDeclaration(DeclarationAST *&node)
return true;
}
-bool Parser::parseEnumName(NameAST *&node)
-{
- DEBUG_THIS_RULE();
-
- unsigned global_scope_token = 0;
- if (LA() == T_COLON_COLON)
- global_scope_token = consumeToken();
-
- NestedNameSpecifierListAST *nested_name_specifier = 0;
- parseNestedNameSpecifierOpt(nested_name_specifier,
- /*acceptTemplateId=*/ true);
-
- unsigned identifier_token = 0;
- match(T_IDENTIFIER, &identifier_token);
- if (global_scope_token == 0 && nested_name_specifier == 0
- && identifier_token == 0)
- return false;
-
- SimpleNameAST *name_ast = new (_pool) SimpleNameAST;
- name_ast->identifier_token = identifier_token;
- if (nested_name_specifier || global_scope_token) {
- QualifiedNameAST *q_name_ast = new (_pool) QualifiedNameAST;
- q_name_ast->nested_name_specifier_list = nested_name_specifier;
- q_name_ast->unqualified_name = name_ast;
- q_name_ast->global_scope_token = global_scope_token;
- } else {
- node = name_ast;
- }
- return true;
-}
-
// q-flags-decl ::= 'Q_FLAGS' '(' q-flags-list? ')'
// q-flags-list ::= identifier
// q-flags-list ::= q-flags-list identifier
@@ -1963,7 +1932,7 @@ bool Parser::parseQtFlags(DeclarationAST *&node)
match(T_LPAREN, &ast->lparen_token);
for (NameListAST **iter = &ast->flag_enums_list; LA() && LA() != T_RPAREN; iter = &(*iter)->next) {
NameAST *name_ast = 0;
- if (!parseEnumName(name_ast))
+ if (!parseName(name_ast))
break;
*iter = new (_pool) NameListAST;
(*iter)->value = name_ast;