Simplify the parser a bit by looking at the next token without consuming it (by Preprocessor::LookNext):

-Remove ParseExpressionWithLeadingIdentifier and ParseAssignmentExprWithLeadingIdentifier.
-Separate ParseLabeledStatement from ParseIdentifierStatement.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53376 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseInit.cpp b/lib/Parse/ParseInit.cpp
index a1fe04b..c7c08dc 100644
--- a/lib/Parse/ParseInit.cpp
+++ b/lib/Parse/ParseInit.cpp
@@ -142,19 +142,18 @@
       // assignment-expression or if it is an old-style structure field
       // designator.
       // TODO: Check that this is the first designator.
-      Token Ident = Tok;
-      ConsumeToken();
       
       // If this is the gross GNU extension, handle it now.
-      if (Tok.is(tok::colon)) {
-        Diag(Ident, diag::ext_gnu_old_style_field_designator);
+      if (NextToken().is(tok::colon)) {
+        Diag(Tok, diag::ext_gnu_old_style_field_designator);
+        ConsumeToken(); // The identifier.
+        assert(Tok.is(tok::colon) && "NextToken() not working properly!");
         ConsumeToken();
         return ParseInitializer();
       }
       
-      // Otherwise, we just consumed the first token of an expression.  Parse
-      // the rest of it now.
-      return ParseAssignmentExprWithLeadingIdentifier(Ident);
+      // Otherwise, parse the assignment-expression.
+      return ParseAssignmentExpression();
     }
     }
   }