clang API Documentation
#include <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 |
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. | |
unsigned | getUDSuffixOffset () const |
Get the spelling offset of the first byte of the ud-suffix. | |
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 183 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 1262 of file LiteralSupport.cpp.
clang::StringLiteralParser::StringLiteralParser | ( | ArrayRef< Token > | StringToks, |
const SourceManager & | sm, | ||
const LangOptions & | features, | ||
const TargetInfo & | target, | ||
DiagnosticsEngine * | diags = nullptr |
||
) | [inline] |
Definition at line 201 of file LiteralSupport.h.
unsigned clang::StringLiteralParser::GetNumStringChars | ( | ) | const [inline] |
Definition at line 220 of file LiteralSupport.h.
References GetStringLength().
unsigned StringLiteralParser::getOffsetOfStringByte | ( | const Token & | Tok, |
unsigned | ByteNo | ||
) | const |
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.
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.
Definition at line 1608 of file LiteralSupport.cpp.
References clang::Token::getLength(), clang::Token::getLocation(), clang::Lexer::getSpelling(), MeasureUCNEscape(), and ProcessCharEscape().
Referenced by clang::StringLiteral::getLocationOfByte().
StringRef clang::StringLiteralParser::GetString | ( | ) | const [inline] |
Definition at line 215 of file LiteralSupport.h.
References GetStringLength().
Referenced by clang::Preprocessor::FinishLexStringLiteral().
unsigned clang::StringLiteralParser::GetStringLength | ( | ) | const [inline] |
Definition at line 218 of file LiteralSupport.h.
Referenced by clang::StringLiteral::getLocationOfByte(), GetNumStringChars(), and GetString().
StringRef clang::StringLiteralParser::getUDSuffix | ( | ) | const [inline] |
Definition at line 238 of file LiteralSupport.h.
unsigned clang::StringLiteralParser::getUDSuffixOffset | ( | ) | const [inline] |
Get the spelling offset of the first byte of the ud-suffix.
Definition at line 246 of file LiteralSupport.h.
unsigned clang::StringLiteralParser::getUDSuffixToken | ( | ) | const [inline] |
Get the index of a token containing a ud-suffix.
Definition at line 241 of file LiteralSupport.h.
bool clang::StringLiteralParser::isAscii | ( | ) | const [inline] |
Definition at line 231 of file LiteralSupport.h.
Referenced by clang::Preprocessor::FinishLexStringLiteral().
bool clang::StringLiteralParser::isPascal | ( | ) | const [inline] |
Definition at line 236 of file LiteralSupport.h.
References Pascal.
bool clang::StringLiteralParser::isUTF16 | ( | ) | const [inline] |
Definition at line 234 of file LiteralSupport.h.
bool clang::StringLiteralParser::isUTF32 | ( | ) | const [inline] |
Definition at line 235 of file LiteralSupport.h.
bool clang::StringLiteralParser::isUTF8 | ( | ) | const [inline] |
Definition at line 233 of file LiteralSupport.h.
bool clang::StringLiteralParser::isWide | ( | ) | const [inline] |
Definition at line 232 of file LiteralSupport.h.
Definition at line 212 of file LiteralSupport.h.
Referenced by clang::Preprocessor::FinishLexStringLiteral().
Definition at line 213 of file LiteralSupport.h.
Referenced by clang::Preprocessor::FinishLexStringLiteral(), and isPascal().