llvm-mc: Support quoted identifiers.
 - Uses MCAsmToken::getIdentifier which returns the (sub)string representing the
   meaningfull contents a string or identifier token.

 - Directives aren't done yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77739 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvm-mc/AsmParser.cpp b/tools/llvm-mc/AsmParser.cpp
index 90a9a33..15a7f33 100644
--- a/tools/llvm-mc/AsmParser.cpp
+++ b/tools/llvm-mc/AsmParser.cpp
@@ -97,10 +97,11 @@
       return true;
     Res = new AsmUnaryExpr(AsmUnaryExpr::LNot, Res);
     return false;
+  case AsmToken::String:
   case AsmToken::Identifier: {
     // This is a label, this should be parsed as part of an expression, to
     // handle things like LFOO+4.
-    MCSymbol *Sym = Ctx.GetOrCreateSymbol(Lexer.getTok().getString());
+    MCSymbol *Sym = Ctx.GetOrCreateSymbol(Lexer.getTok().getIdentifier());
 
     // If this is use of an undefined symbol then mark it external.
     if (!Sym->getSection() && !Ctx.GetSymbolValue(Sym))
@@ -112,7 +113,7 @@
   }
   case AsmToken::Integer:
     Res = new AsmConstantExpr(Lexer.getTok().getIntVal());
-    Lexer.Lex(); // Eat identifier.
+    Lexer.Lex(); // Eat token.
     return false;
   case AsmToken::LParen:
     Lexer.Lex(); // Eat the '('.
@@ -309,6 +310,7 @@
     Lexer.Lex();
     return false;
   case AsmToken::Identifier:
+  case AsmToken::String:
     break;
   // TODO: Recurse on local labels etc.
   }
@@ -316,7 +318,7 @@
   // If we have an identifier, handle it as the key symbol.
   AsmToken ID = Lexer.getTok();
   SMLoc IDLoc = ID.getLoc();
-  StringRef IDVal = ID.getString();
+  StringRef IDVal = ID.getIdentifier();
   
   // Consume the identifier, see what is after it.
   switch (Lexer.Lex().getKind()) {
@@ -970,7 +972,7 @@
   if (Lexer.isNot(AsmToken::Identifier))
     return TokError("expected identifier in directive");
   
-  // handle the identifier as the key symbol.
+  // Handle the identifier as the key symbol.
   SMLoc IDLoc = Lexer.getLoc();
   MCSymbol *Sym = Ctx.GetOrCreateSymbol(Lexer.getTok().getString());
   Lexer.Lex();
@@ -1172,7 +1174,7 @@
   if (Lexer.isNot(AsmToken::Identifier))
     return TokError("expected identifier in directive");
   
-  // handle the identifier as the key symbol.
+  // Handle the identifier as the key symbol.
   SMLoc IDLoc = Lexer.getLoc();
   MCSymbol *Sym = Ctx.GetOrCreateSymbol(Lexer.getTok().getString());
   Lexer.Lex();