clang 22.0.0git
clang::CharLiteralParser Class Reference

CharLiteralParser - Perform interpretation and semantic analysis of a character literal. More...

#include "clang/Lex/LiteralSupport.h"

Public Member Functions

 CharLiteralParser (const char *begin, const char *end, SourceLocation Loc, Preprocessor &PP, tok::TokenKind kind)
bool hadError () const
bool isOrdinary () const
bool isWide () const
bool isUTF8 () const
bool isUTF16 () const
bool isUTF32 () const
bool isMultiChar () const
uint64_t getValue () const
StringRef getUDSuffix () const
unsigned getUDSuffixOffset () const

Detailed Description

CharLiteralParser - Perform interpretation and semantic analysis of a character literal.

Definition at line 196 of file LiteralSupport.h.

Constructor & Destructor Documentation

◆ CharLiteralParser()

CharLiteralParser::CharLiteralParser ( const char * begin,
const char * end,
SourceLocation Loc,
Preprocessor & PP,
tok::TokenKind kind )
///       user-defined-character-literal: [C++11 lex.ext]
///         character-literal ud-suffix
///       ud-suffix:
///         identifier
///       character-literal: [C++11 lex.ccon]
///         ' c-char-sequence '
///         u' c-char-sequence '
///         U' c-char-sequence '
///         L' c-char-sequence '
///         u8' c-char-sequence ' [C++1z lex.ccon]
///       c-char-sequence:
///         c-char
///         c-char-sequence c-char
///       c-char:
///         any member of the source character set except the single-quote ',
///           backslash \, or new-line character
///         escape-sequence
///         universal-character-name
///       escape-sequence:
///         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: [C++11 lex.charset]
///         \u hex-quad
///         \U hex-quad hex-quad
///       hex-quad:
///         hex-digit hex-digit hex-digit hex-digit
/// 

Definition at line 1747 of file LiteralSupport.cpp.

References clang::Preprocessor::Diag(), clang::Evaluated, clang::expandUCNs(), clang::TargetInfo::getCharWidth(), getCharWidth(), clang::Preprocessor::getDiagnostics(), clang::TargetInfo::getIntWidth(), clang::Preprocessor::getLangOpts(), clang::Preprocessor::getSourceManager(), clang::Preprocessor::getTargetInfo(), clang::TargetInfo::getWCharWidth(), isMultiChar(), isOrdinary(), isWide(), ProcessCharEscape(), and ProcessUCNEscape().

Member Function Documentation

◆ getUDSuffix()

StringRef clang::CharLiteralParser::getUDSuffix ( ) const
inline

Definition at line 216 of file LiteralSupport.h.

◆ getUDSuffixOffset()

unsigned clang::CharLiteralParser::getUDSuffixOffset ( ) const
inline

Definition at line 217 of file LiteralSupport.h.

◆ getValue()

uint64_t clang::CharLiteralParser::getValue ( ) const
inline

Definition at line 215 of file LiteralSupport.h.

◆ hadError()

bool clang::CharLiteralParser::hadError ( ) const
inline

Definition at line 208 of file LiteralSupport.h.

◆ isMultiChar()

bool clang::CharLiteralParser::isMultiChar ( ) const
inline

Definition at line 214 of file LiteralSupport.h.

Referenced by CharLiteralParser().

◆ isOrdinary()

bool clang::CharLiteralParser::isOrdinary ( ) const
inline

Definition at line 209 of file LiteralSupport.h.

Referenced by CharLiteralParser().

◆ isUTF16()

bool clang::CharLiteralParser::isUTF16 ( ) const
inline

Definition at line 212 of file LiteralSupport.h.

◆ isUTF32()

bool clang::CharLiteralParser::isUTF32 ( ) const
inline

Definition at line 213 of file LiteralSupport.h.

◆ isUTF8()

bool clang::CharLiteralParser::isUTF8 ( ) const
inline

Definition at line 211 of file LiteralSupport.h.

◆ isWide()

bool clang::CharLiteralParser::isWide ( ) const
inline

Definition at line 210 of file LiteralSupport.h.

Referenced by CharLiteralParser().


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