diff options
author | Craig Topper <craig.topper@gmail.com> | 2011-08-11 04:06:15 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2011-08-11 04:06:15 +0000 |
commit | 2fa4e86b4fdada3b9ecbbbd99965b83ed879f69b (patch) | |
tree | a57887c9c34ac5314596b5a98d0850a58c3aa295 /include | |
parent | 777d6e56ad9b1fed9866daf3ee6486d85c5b7d32 (diff) |
Add support for C++0x raw string literals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137298 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/clang/Basic/DiagnosticLexKinds.td | 9 | ||||
-rw-r--r-- | include/clang/Lex/Lexer.h | 2 | ||||
-rw-r--r-- | include/clang/Lex/LiteralSupport.h | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/include/clang/Basic/DiagnosticLexKinds.td b/include/clang/Basic/DiagnosticLexKinds.td index e23921be0b..1347ceb8c9 100644 --- a/include/clang/Basic/DiagnosticLexKinds.td +++ b/include/clang/Basic/DiagnosticLexKinds.td @@ -55,6 +55,15 @@ def err_unterminated___pragma : Error<"missing terminating ')' character">; def err_conflict_marker : Error<"version control conflict marker in file">; +def err_raw_delim_too_long : Error< + "raw string delimiter longer than 16 characters" + "; use PREFIX( )PREFIX to delimit raw string">; +def err_invalid_char_raw_delim : Error< + "invalid character '%0' character in raw string delimiter" + "; use PREFIX( )PREFIX to delimit raw string">; +def err_unterminated_raw_string : Error< + "raw string missing terminating delimiter )%0\"">; + def ext_multichar_character_literal : ExtWarn< "multi-character character constant">, InGroup<MultiChar>; def ext_four_char_character_literal : Extension< diff --git a/include/clang/Lex/Lexer.h b/include/clang/Lex/Lexer.h index e24fe9c9ab..3bc44b192a 100644 --- a/include/clang/Lex/Lexer.h +++ b/include/clang/Lex/Lexer.h @@ -485,6 +485,8 @@ private: void LexNumericConstant (Token &Result, const char *CurPtr); void LexStringLiteral (Token &Result, const char *CurPtr, tok::TokenKind Kind); + void LexRawStringLiteral (Token &Result, const char *CurPtr, + tok::TokenKind Kind); void LexAngledStringLiteral(Token &Result, const char *CurPtr); void LexCharConstant (Token &Result, const char *CurPtr, tok::TokenKind Kind); diff --git a/include/clang/Lex/LiteralSupport.h b/include/clang/Lex/LiteralSupport.h index 15057299b2..3a3782a3b2 100644 --- a/include/clang/Lex/LiteralSupport.h +++ b/include/clang/Lex/LiteralSupport.h @@ -197,6 +197,7 @@ public: private: void init(const Token *StringToks, unsigned NumStringToks); + void CopyStringFragment(const StringRef &Fragment); }; } // end namespace clang |