|
clang
5.0.0
|
StringLiteralParser - This decodes string escape characters and performs wide string analysis and Translation Phase #6 (concatenation of string literals) (C99 5.1.1.2p1). More...
#include "clang/Lex/LiteralSupport.h"
Public Member Functions | |
| StringLiteralParser (ArrayRef< Token > StringToks, Preprocessor &PP, bool Complain=true) | |
| StringLiteralParser (ArrayRef< Token > StringToks, const SourceManager &sm, const LangOptions &features, const TargetInfo &target, DiagnosticsEngine *diags=nullptr) | |
| StringRef | GetString () const |
| unsigned | GetStringLength () const |
| unsigned | GetNumStringChars () const |
| unsigned | getOffsetOfStringByte (const Token &TheTok, unsigned ByteNo) const |
| getOffsetOfStringByte - This function returns the offset of the specified byte of the string data represented by Token. More... | |
| bool | isAscii () const |
| bool | isWide () const |
| bool | isUTF8 () const |
| bool | isUTF16 () const |
| bool | isUTF32 () const |
| bool | isPascal () const |
| StringRef | getUDSuffix () const |
| unsigned | getUDSuffixToken () const |
| Get the index of a token containing a ud-suffix. More... | |
| unsigned | getUDSuffixOffset () const |
| Get the spelling offset of the first byte of the ud-suffix. More... | |
Static Public Member Functions | |
| static bool | isValidUDSuffix (const LangOptions &LangOpts, StringRef Suffix) |
| Determine whether a suffix is a valid ud-suffix. More... | |
Public Attributes | |
| bool | hadError |
| bool | Pascal |
StringLiteralParser - This decodes string escape characters and performs wide string analysis and Translation Phase #6 (concatenation of string literals) (C99 5.1.1.2p1).
Definition at line 194 of file LiteralSupport.h.
| StringLiteralParser::StringLiteralParser | ( | ArrayRef< Token > | StringToks, |
| Preprocessor & | PP, | ||
| bool | Complain = true |
||
| ) |
/// string-literal: [C++0x lex.string] /// encoding-prefix " [s-char-sequence] " /// encoding-prefix R raw-string /// encoding-prefix: /// u8 /// u /// U /// L /// s-char-sequence: /// s-char /// s-char-sequence s-char /// s-char: /// any member of the source character set except the double-quote ", /// backslash \, or new-line character /// escape-sequence /// universal-character-name /// raw-string: /// " d-char-sequence ( r-char-sequence ) d-char-sequence " /// r-char-sequence: /// r-char /// r-char-sequence r-char /// r-char: /// any member of the source character set, except a right parenthesis ) /// followed by the initial d-char-sequence (which may be empty) /// followed by a double quote ". /// d-char-sequence: /// d-char /// d-char-sequence d-char /// d-char: /// any member of the basic source character set except: /// space, the left parenthesis (, the right parenthesis ), /// the backslash \, and the control characters representing horizontal /// tab, vertical tab, form feed, and newline. /// escape-sequence: [C++0x lex.ccon] /// simple-escape-sequence /// octal-escape-sequence /// hexadecimal-escape-sequence /// simple-escape-sequence: /// one of \' \" \? \\ \a \b \f \n \r \t \v /// octal-escape-sequence: /// \ octal-digit /// \ octal-digit octal-digit /// \ octal-digit octal-digit octal-digit /// hexadecimal-escape-sequence: /// \x hexadecimal-digit /// hexadecimal-escape-sequence hexadecimal-digit /// universal-character-name: /// \u hex-quad /// \U hex-quad hex-quad /// hex-quad: /// hex-digit hex-digit hex-digit hex-digit ///
Definition at line 1281 of file LiteralSupport.cpp.
|
inline |
Definition at line 212 of file LiteralSupport.h.
|
inline |
Definition at line 231 of file LiteralSupport.h.
References GetStringLength().
getOffsetOfStringByte - This function returns the offset of the specified byte of the string data represented by Token.
This handles advancing over escape sequences in the string.
If the Diagnostics pointer is non-null, then this will do semantic checking of the string literal and emit errors and warnings.
This handles advancing over escape sequences in the string.
Definition at line 1640 of file LiteralSupport.cpp.
References clang::Token::getLength(), clang::Token::getLocation(), clang::Lexer::getSpelling(), MeasureUCNEscape(), and ProcessCharEscape().
Referenced by clang::StringLiteral::getLocationOfByte().
|
inline |
Definition at line 226 of file LiteralSupport.h.
References GetStringLength().
Referenced by clang::Preprocessor::FinishLexStringLiteral(), and LexModuleNameComponent().
|
inline |
Definition at line 229 of file LiteralSupport.h.
Referenced by clang::StringLiteral::getLocationOfByte(), GetNumStringChars(), and GetString().
|
inline |
Definition at line 249 of file LiteralSupport.h.
|
inline |
Get the spelling offset of the first byte of the ud-suffix.
Definition at line 257 of file LiteralSupport.h.
|
inline |
Get the index of a token containing a ud-suffix.
Definition at line 252 of file LiteralSupport.h.
|
inline |
Definition at line 242 of file LiteralSupport.h.
Referenced by clang::Preprocessor::FinishLexStringLiteral().
|
inline |
Definition at line 247 of file LiteralSupport.h.
References Pascal.
|
inline |
Definition at line 245 of file LiteralSupport.h.
|
inline |
Definition at line 246 of file LiteralSupport.h.
|
inline |
Definition at line 244 of file LiteralSupport.h.
|
static |
Determine whether a suffix is a valid ud-suffix.
We avoid treating reserved suffixes as ud-suffixes, because the diagnostic experience is better if we treat it as an invalid suffix.
Definition at line 1719 of file LiteralSupport.cpp.
References clang::NumericLiteralParser::isValidUDSuffix().
Referenced by clang::Sema::CheckLiteralOperatorDeclaration().
|
inline |
Definition at line 243 of file LiteralSupport.h.
| bool clang::StringLiteralParser::hadError |
Definition at line 223 of file LiteralSupport.h.
Referenced by clang::Preprocessor::FinishLexStringLiteral(), and LexModuleNameComponent().
| bool clang::StringLiteralParser::Pascal |
Definition at line 224 of file LiteralSupport.h.
Referenced by clang::Preprocessor::FinishLexStringLiteral(), and isPascal().
1.8.6