Parser fix for ObjC methods.

This commit is contained in:
Erik Verbruggen
2009-08-06 13:44:33 +02:00
parent 2e1811275e
commit 4e7881577d

View File

@@ -4347,14 +4347,16 @@ bool Parser::parseObjCMethodDefinition(DeclarationAST *&node)
ObjCMethodDeclarationAST *ast = new (_pool) ObjCMethodDeclarationAST;
ast->method_prototype = method_prototype;
// Objective-C allows you to write:
// - (void) foo; { body; }
// so a method is a forward declaration when it doesn't have a _body_.
// However, we still need to read the semicolon.
if (LA() == T_SEMICOLON) {
// method declaration:
ast->semicolon_token = consumeToken();
} else {
// method definition:
parseFunctionBody(ast->function_body);
}
parseFunctionBody(ast->function_body);
node = ast;
return true;
}