clang API Documentation

Public Member Functions | Public Attributes
clang::StringLiteralParser Class Reference

#include <LiteralSupport.h>

Collaboration diagram for clang::StringLiteralParser:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 StringLiteralParser (const Token *StringToks, unsigned NumStringToks, Preprocessor &PP, bool Complain=true)
 StringLiteralParser (const Token *StringToks, unsigned NumStringToks, const SourceManager &sm, const LangOptions &features, const TargetInfo &target, DiagnosticsEngine *diags=0)
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

Detailed Description

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 164 of file LiteralSupport.h.


Constructor & Destructor Documentation

StringLiteralParser::StringLiteralParser ( const Token StringToks,
unsigned  NumStringToks,
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 \' " \? \
octal-escape-sequence: \ octal-digit \ octal-digit octal-digit \ octal-digit octal-digit octal-digit hexadecimal-escape-sequence: hexadecimal-digit hexadecimal-escape-sequence hexadecimal-digit universal-character-name: hex-quad hex-quad hex-quad hex-quad: hex-digit hex-digit hex-digit hex-digit

Definition at line 1028 of file LiteralSupport.cpp.

clang::StringLiteralParser::StringLiteralParser ( const Token StringToks,
unsigned  NumStringToks,
const SourceManager sm,
const LangOptions features,
const TargetInfo target,
DiagnosticsEngine diags = 0 
) [inline]

Definition at line 182 of file LiteralSupport.h.


Member Function Documentation

unsigned clang::StringLiteralParser::GetNumStringChars ( ) const [inline]

Definition at line 200 of file LiteralSupport.h.

References GetStringLength().

Referenced by clang::Sema::ActOnStringLiteral().

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 1359 of file LiteralSupport.cpp.

References clang::Token::getLength(), clang::Token::getLocation(), clang::Lexer::getSpelling(), and ProcessCharEscape().

Referenced by clang::StringLiteral::getLocationOfByte().

StringRef clang::StringLiteralParser::GetString ( ) const [inline]

Definition at line 195 of file LiteralSupport.h.

References GetStringLength().

Referenced by clang::Sema::ActOnStringLiteral().

unsigned clang::StringLiteralParser::GetStringLength ( ) const [inline]
StringRef clang::StringLiteralParser::getUDSuffix ( ) const [inline]

Definition at line 218 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnStringLiteral().

unsigned clang::StringLiteralParser::getUDSuffixOffset ( ) const [inline]

Get the spelling offset of the first byte of the ud-suffix.

Definition at line 226 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnStringLiteral().

unsigned clang::StringLiteralParser::getUDSuffixToken ( ) const [inline]

Get the index of a token containing a ud-suffix.

Definition at line 221 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnStringLiteral().

bool clang::StringLiteralParser::isAscii ( ) const [inline]

Definition at line 211 of file LiteralSupport.h.

bool clang::StringLiteralParser::isPascal ( ) const [inline]

Definition at line 216 of file LiteralSupport.h.

References Pascal.

Referenced by clang::Sema::ActOnStringLiteral().

bool clang::StringLiteralParser::isUTF16 ( ) const [inline]

Definition at line 214 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnStringLiteral().

bool clang::StringLiteralParser::isUTF32 ( ) const [inline]

Definition at line 215 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnStringLiteral().

bool clang::StringLiteralParser::isUTF8 ( ) const [inline]

Definition at line 213 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnStringLiteral().

bool clang::StringLiteralParser::isWide ( ) const [inline]

Definition at line 212 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnStringLiteral().


Member Data Documentation

Definition at line 192 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnStringLiteral().

Definition at line 193 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnStringLiteral(), and isPascal().


The documentation for this class was generated from the following files: