clang 20.0.0git
Public Member Functions | List of all members
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 1709 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(), Kind, Loc, 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: