diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-03-16 16:38:02 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-03-17 10:30:17 +0100 |
commit | 61132f260c029c868e1971771424c62f36cef638 (patch) | |
tree | a59169e2f032b9c9436ae1b75d5410becbace007 /src/shared/cplusplus/Parser.cpp | |
parent | fd81a276ca5b400d33f8f9749d9fca04a78debb3 (diff) | |
download | qt-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.cpp | 35 |
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; |