clang  14.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 isAscii () 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 180 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 1418 of file LiteralSupport.cpp.

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

Member Function Documentation

◆ getUDSuffix()

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

Definition at line 200 of file LiteralSupport.h.

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

◆ getUDSuffixOffset()

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

Definition at line 201 of file LiteralSupport.h.

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

◆ getValue()

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

Definition at line 199 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnCharacterConstant(), and EvaluateValue().

◆ hadError()

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

Definition at line 192 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnCharacterConstant(), and EvaluateValue().

◆ isAscii()

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

Definition at line 193 of file LiteralSupport.h.

Referenced by CharLiteralParser().

◆ isMultiChar()

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

◆ isUTF16()

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

Definition at line 196 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnCharacterConstant(), and EvaluateValue().

◆ isUTF32()

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

Definition at line 197 of file LiteralSupport.h.

Referenced by clang::Sema::ActOnCharacterConstant(), and EvaluateValue().

◆ isUTF8()

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

Definition at line 195 of file LiteralSupport.h.

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

◆ isWide()

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

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