diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2009-07-13 11:15:45 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2009-07-13 11:16:22 +0200 |
commit | 08a85a51bf6dac834dba3fdb0431db25742a91b6 (patch) | |
tree | 2dae2fe89b67cf5a4237f94699de914aaac924ef /src/shared/cplusplus | |
parent | 78cceecc28f06cf2c23e01e8daef4ceb6a5842d4 (diff) | |
download | qt-creator-08a85a51bf6dac834dba3fdb0431db25742a91b6.tar.gz |
Added @synthesize and fixed @property.
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/Parser.cpp | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index c3faca243f..c8a354811f 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -4061,6 +4061,39 @@ bool Parser::parseObjCMethodDefinitionList() consumeToken(); break; + case T_AT_SYNTHESIZE: { + consumeToken(); + unsigned identifier_token = 0; + match(T_IDENTIFIER, &identifier_token); + + if (LA() == T_EQUAL) { + consumeToken(); + + unsigned aliassed_identifier_token = 0; + match(T_IDENTIFIER, &aliassed_identifier_token); + } + + while (LA() == T_COMMA) { + consumeToken(); + + match(T_IDENTIFIER, &identifier_token); + + if (LA() == T_EQUAL) { + consumeToken(); + + unsigned aliassed_identifier_token = 0; + match(T_IDENTIFIER, &aliassed_identifier_token); + } + } + + unsigned semicolon_token = 0; + match(T_SEMICOLON, &semicolon_token); + + break; + } + + // TODO: @dynamic + default: if (LA() == T_EXTERN && LA(2) == T_STRING_LITERAL) { DeclarationAST *declaration = 0; @@ -4235,7 +4268,11 @@ bool Parser::parseObjCPropertyDeclaration(DeclarationAST *&, SpecifierAST *) if (LA() == T_LPAREN) { unsigned lparen_token = 0, rparen_token = 0; match(T_LPAREN, &lparen_token); - while (parseObjCPropertyAttribute()) { + if (parseObjCPropertyAttribute()) { + while (LA() == T_COMMA) { + consumeToken(); + parseObjCPropertyAttribute(); + } } match(T_RPAREN, &rparen_token); } |