diff options
author | Roberto Raggi <roberto.raggi@trolltech.com> | 2009-02-04 11:45:17 +0100 |
---|---|---|
committer | Roberto Raggi <qtc-committer@nokia.com> | 2009-02-05 14:30:24 +0100 |
commit | 40eabdd008c04a605999f518e47691fa79e7241a (patch) | |
tree | 64abde1b0abea661606270dceebf800572a12691 /src/shared/cplusplus/Parser.cpp | |
parent | 56b48c2362670189de95c3a992846f6671c46049 (diff) | |
download | qt-creator-40eabdd008c04a605999f518e47691fa79e7241a.tar.gz |
Improved parsing of objc message expressions.
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r-- | src/shared/cplusplus/Parser.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 0452b38ce1..4dfbcb995a 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -2556,6 +2556,7 @@ bool Parser::parsePrimaryExpression(ExpressionAST *&node) case T_SLOT: return parseQtMethod(node); + case T_LBRACKET: case T_AT_STRING_LITERAL: case T_AT_ENCODE: case T_AT_PROTOCOL: @@ -2680,16 +2681,19 @@ bool Parser::parseObjCMessageArguments() unsigned start = cursor(); if (parseObjCSelectorArgs()) { - while (LA() == T_COMMA) { - consumeToken(); // skip T_COMMA - ExpressionAST *expression = 0; - parseAssignmentExpression(expression); + while (parseObjCSelectorArgs()) { + // accept the selector args. } - return true; + } else { + rewind(start); + parseObjCSelector(); } - rewind(start); - parseObjCSelector(); + while (LA() == T_COMMA) { + consumeToken(); // skip T_COMMA + ExpressionAST *expression = 0; + parseAssignmentExpression(expression); + } return true; } |