diff options
author | Roberto Raggi <roberto.raggi@trolltech.com> | 2009-02-05 12:41:57 +0100 |
---|---|---|
committer | Roberto Raggi <qtc-committer@nokia.com> | 2009-02-05 14:30:25 +0100 |
commit | c00e30187c85267645feeb5ad854020272b8a41e (patch) | |
tree | 0b1442476d31abdf7729a5b2b2aed6e853a2d0da /src/shared/cplusplus/Parser.cpp | |
parent | f9737ddc4124653067ec0c9b48f0f68f8d9b2f4b (diff) | |
download | qt-creator-c00e30187c85267645feeb5ad854020272b8a41e.tar.gz |
Fixes: Parsing objc method definitions.
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r-- | src/shared/cplusplus/Parser.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 32d9b0ac7f..5268ce9e32 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -3744,6 +3744,42 @@ bool Parser::parseObjCImplementation(DeclarationAST *&) } parseObjClassInstanceVariables(); + parseObjCMethodDefinitionList(); + return true; +} + +bool Parser::parseObjCMethodDefinitionList() +{ + while (LA() && LA() != T_AT_END) { + unsigned start = cursor(); + + switch (LA()) { + case T_PLUS: + case T_MINUS: + parseObjCMethodDefinition(); + + if (start == cursor()) + consumeToken(); + break; + + default: + // ### warning message + consumeToken(); + break; + } // switch + } + + return true; +} + +bool Parser::parseObjCMethodDefinition() +{ + if (LA() != T_MINUS && LA() != T_PLUS) + return false; + + parseObjCMethodSignature(); + StatementAST *function_body = 0; + parseFunctionBody(function_body); return true; } |