]> granicus.if.org Git - clang/commitdiff
simplify some code by using ExpectAndConsume. When an error
authorChris Lattner <sabre@nondot.org>
Mon, 20 Oct 2008 06:15:13 +0000 (06:15 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 20 Oct 2008 06:15:13 +0000 (06:15 +0000)
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

lib/Parse/ParseObjc.cpp

index 6369817ad5467b40cb45612fdb6d8ee8fa8abf9c..cc5a74d7c6f8870aa2f1929dcd9cb1ae8f03cfb1 100644 (file)
@@ -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(),