diff options
author | Chris Lattner <sabre@nondot.org> | 2008-10-20 06:15:13 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-10-20 06:15:13 +0000 |
commit | a1fed7e3beebf9bb1bc85123f283be3eb631c120 (patch) | |
tree | 2aa57c4e27d0f846d26bb9dac37f96941643080b /lib/Parse/ParseObjc.cpp | |
parent | bc662afa1cb9b61cb1e7808bb1463dd6291b8095 (diff) |
simplify some code by using ExpectAndConsume. When an error
occurs, skip to an @ or ; instead of to a } or ;. Properties
don't necessarily live in {}'s.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57804 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseObjc.cpp')
-rw-r--r-- | lib/Parse/ParseObjc.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp index 6369817ad5..cc5a74d7c6 100644 --- a/lib/Parse/ParseObjc.cpp +++ b/lib/Parse/ParseObjc.cpp @@ -310,20 +310,17 @@ void Parser::ParseObjCInterfaceDeclList(DeclTy *interfaceDecl, llvm::SmallVector<FieldDeclarator, 8> FieldDeclarators; ParseStructDeclaration(DS, FieldDeclarators); - if (Tok.is(tok::semi)) - ConsumeToken(); - else { - Diag(Tok, diag::err_expected_semi_decl_list); - SkipUntil(tok::r_brace, true, true); - } + ExpectAndConsume(tok::semi, diag::err_expected_semi_decl_list, "", + tok::at); + // Convert them all to property declarations. for (unsigned i = 0, e = FieldDeclarators.size(); i != e; ++i) { FieldDeclarator &FD = FieldDeclarators[i]; // Install the property declarator into interfaceDecl. Selector GetterSel = - PP.getSelectorTable().getNullarySelector(OCDS.getGetterName() - ? OCDS.getGetterName() - : FD.D.getIdentifier()); + PP.getSelectorTable().getNullarySelector(OCDS.getGetterName() + ? OCDS.getGetterName() + : FD.D.getIdentifier()); IdentifierInfo *SetterName = OCDS.getSetterName(); if (!SetterName) SetterName = constructSetterName(PP.getIdentifierTable(), |