Implement parsing and code generation of Objective-C string literals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41238 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Parse/ParseObjc.cpp b/Parse/ParseObjc.cpp
index 192f199..e093f19 100644
--- a/Parse/ParseObjc.cpp
+++ b/Parse/ParseObjc.cpp
@@ -310,3 +310,27 @@
void Parser::ParseObjCClassMethodDeclaration() {
assert(0 && "Unimp");
}
+
+Parser::ExprResult Parser::ParseObjCExpression() {
+ SourceLocation AtLoc = ConsumeToken(); // the "@"
+
+ switch (Tok.getKind()) {
+ case tok::string_literal: // primary-expression: string-literal
+ case tok::wide_string_literal:
+ return ParseObjCStringLiteral();
+ default:
+ Diag(AtLoc, diag::err_unexpected_at);
+ SkipUntil(tok::semi);
+ break;
+ }
+
+ return 0;
+}
+
+Parser::ExprResult Parser::ParseObjCStringLiteral() {
+ ExprResult Res = ParseStringLiteralExpression();
+
+ if (Res.isInvalid) return Res;
+
+ return Actions.ParseObjCStringLiteral(Res.Val);
+}