clang 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
clang::LangStandard Struct Reference

LangStandard - Information about the properties of a particular language standard. More...

#include "clang/Basic/LangStandard.h"

Public Types

enum  Kind { lang_unspecified }
 

Public Member Functions

const char * getName () const
 getName - Get the name of this standard.
 
const char * getDescription () const
 getDescription - Get the description of this standard.
 
clang::Language getLanguage () const
 Get the language that this standard describes.
 
bool hasLineComments () const
 Language supports '//' comments.
 
bool isC99 () const
 isC99 - Language is a superset of C99.
 
bool isC11 () const
 isC11 - Language is a superset of C11.
 
bool isC17 () const
 isC17 - Language is a superset of C17.
 
bool isC23 () const
 isC23 - Language is a superset of C23.
 
bool isC2y () const
 isC2y - Language is a superset of C2y.
 
bool isCPlusPlus () const
 isCPlusPlus - Language is a C++ variant.
 
bool isCPlusPlus11 () const
 isCPlusPlus11 - Language is a C++11 variant (or later).
 
bool isCPlusPlus14 () const
 isCPlusPlus14 - Language is a C++14 variant (or later).
 
bool isCPlusPlus17 () const
 isCPlusPlus17 - Language is a C++17 variant (or later).
 
bool isCPlusPlus20 () const
 isCPlusPlus20 - Language is a C++20 variant (or later).
 
bool isCPlusPlus23 () const
 isCPlusPlus23 - Language is a post-C++23 variant (or later).
 
bool isCPlusPlus26 () const
 isCPlusPlus26 - Language is a post-C++26 variant (or later).
 
bool hasDigraphs () const
 hasDigraphs - Language supports digraphs.
 
bool hasRawStringLiterals () const
 hasRawStringLiterals - Language supports R"()" raw string literals.
 
bool isGNUMode () const
 isGNUMode - Language includes GNU extensions.
 
bool hasHexFloats () const
 hasHexFloats - Language supports hexadecimal float constants.
 
bool isOpenCL () const
 isOpenCL - Language is a OpenCL variant.
 

Static Public Member Functions

static Kind getLangKind (StringRef Name)
 
static Kind getHLSLLangKind (StringRef Name)
 
static const LangStandardgetLangStandardForKind (Kind K)
 
static const LangStandardgetLangStandardForName (StringRef Name)
 

Public Attributes

const char * ShortName
 
const char * Description
 
unsigned Flags
 
clang::Language Language
 

Detailed Description

LangStandard - Information about the properties of a particular language standard.

Definition at line 72 of file LangStandard.h.

Member Enumeration Documentation

◆ Kind

Enumerator
lang_unspecified 

Definition at line 73 of file LangStandard.h.

Member Function Documentation

◆ getDescription()

const char * clang::LangStandard::getDescription ( ) const
inline

getDescription - Get the description of this standard.

Definition at line 90 of file LangStandard.h.

References Description.

◆ getHLSLLangKind()

LangStandard::Kind LangStandard::getHLSLLangKind ( StringRef  Name)
static

◆ getLangKind()

LangStandard::Kind LangStandard::getLangKind ( StringRef  Name)
static

Definition at line 66 of file LangStandards.cpp.

References lang_unspecified.

Referenced by getLangStandardForName().

◆ getLangStandardForKind()

const LangStandard & LangStandard::getLangStandardForKind ( Kind  K)
static

◆ getLangStandardForName()

const LangStandard * LangStandard::getLangStandardForName ( StringRef  Name)
static

◆ getLanguage()

clang::Language clang::LangStandard::getLanguage ( ) const
inline

Get the language that this standard describes.

Definition at line 93 of file LangStandard.h.

References Language.

Referenced by clang::driver::tools::solaris::Linker::ConstructJob().

◆ getName()

const char * clang::LangStandard::getName ( ) const
inline

getName - Get the name of this standard.

Definition at line 87 of file LangStandard.h.

References ShortName.

Referenced by clang::driver::toolchains::HLSLToolChain::TranslateArgs().

◆ hasDigraphs()

bool clang::LangStandard::hasDigraphs ( ) const
inline

hasDigraphs - Language supports digraphs.

Definition at line 135 of file LangStandard.h.

References clang::Digraphs, and Flags.

◆ hasHexFloats()

bool clang::LangStandard::hasHexFloats ( ) const
inline

hasHexFloats - Language supports hexadecimal float constants.

Definition at line 148 of file LangStandard.h.

References Flags, and clang::HexFloat.

◆ hasLineComments()

bool clang::LangStandard::hasLineComments ( ) const
inline

Language supports '//' comments.

Definition at line 96 of file LangStandard.h.

References Flags, and clang::LineComment.

◆ hasRawStringLiterals()

bool clang::LangStandard::hasRawStringLiterals ( ) const
inline

hasRawStringLiterals - Language supports R"()" raw string literals.

Definition at line 138 of file LangStandard.h.

References isC99(), isCPlusPlus(), isCPlusPlus11(), and isGNUMode().

◆ isC11()

bool clang::LangStandard::isC11 ( ) const
inline

isC11 - Language is a superset of C11.

Definition at line 102 of file LangStandard.h.

References clang::C11, and Flags.

◆ isC17()

bool clang::LangStandard::isC17 ( ) const
inline

isC17 - Language is a superset of C17.

Definition at line 105 of file LangStandard.h.

References clang::C17, and Flags.

◆ isC23()

bool clang::LangStandard::isC23 ( ) const
inline

isC23 - Language is a superset of C23.

Definition at line 108 of file LangStandard.h.

References clang::C23, and Flags.

◆ isC2y()

bool clang::LangStandard::isC2y ( ) const
inline

isC2y - Language is a superset of C2y.

Definition at line 111 of file LangStandard.h.

References clang::C2y, and Flags.

◆ isC99()

bool clang::LangStandard::isC99 ( ) const
inline

isC99 - Language is a superset of C99.

Definition at line 99 of file LangStandard.h.

References clang::C99, and Flags.

Referenced by clang::driver::tools::solaris::Linker::ConstructJob(), and hasRawStringLiterals().

◆ isCPlusPlus()

bool clang::LangStandard::isCPlusPlus ( ) const
inline

isCPlusPlus - Language is a C++ variant.

Definition at line 114 of file LangStandard.h.

References clang::CPlusPlus, and Flags.

Referenced by hasRawStringLiterals().

◆ isCPlusPlus11()

bool clang::LangStandard::isCPlusPlus11 ( ) const
inline

isCPlusPlus11 - Language is a C++11 variant (or later).

Definition at line 117 of file LangStandard.h.

References clang::CPlusPlus11, and Flags.

Referenced by hasRawStringLiterals().

◆ isCPlusPlus14()

bool clang::LangStandard::isCPlusPlus14 ( ) const
inline

isCPlusPlus14 - Language is a C++14 variant (or later).

Definition at line 120 of file LangStandard.h.

References clang::CPlusPlus14, and Flags.

◆ isCPlusPlus17()

bool clang::LangStandard::isCPlusPlus17 ( ) const
inline

isCPlusPlus17 - Language is a C++17 variant (or later).

Definition at line 123 of file LangStandard.h.

References clang::CPlusPlus17, and Flags.

◆ isCPlusPlus20()

bool clang::LangStandard::isCPlusPlus20 ( ) const
inline

isCPlusPlus20 - Language is a C++20 variant (or later).

Definition at line 126 of file LangStandard.h.

References clang::CPlusPlus20, and Flags.

◆ isCPlusPlus23()

bool clang::LangStandard::isCPlusPlus23 ( ) const
inline

isCPlusPlus23 - Language is a post-C++23 variant (or later).

Definition at line 129 of file LangStandard.h.

References clang::CPlusPlus23, and Flags.

◆ isCPlusPlus26()

bool clang::LangStandard::isCPlusPlus26 ( ) const
inline

isCPlusPlus26 - Language is a post-C++26 variant (or later).

Definition at line 132 of file LangStandard.h.

References clang::CPlusPlus26, and Flags.

◆ isGNUMode()

bool clang::LangStandard::isGNUMode ( ) const
inline

isGNUMode - Language includes GNU extensions.

Definition at line 145 of file LangStandard.h.

References Flags, and clang::GNUMode.

Referenced by clang::driver::tools::solaris::Linker::ConstructJob(), and hasRawStringLiterals().

◆ isOpenCL()

bool clang::LangStandard::isOpenCL ( ) const
inline

isOpenCL - Language is a OpenCL variant.

Definition at line 151 of file LangStandard.h.

References Flags, and clang::OpenCL.

Member Data Documentation

◆ Description

const char* clang::LangStandard::Description

Definition at line 81 of file LangStandard.h.

Referenced by getDescription().

◆ Flags

unsigned clang::LangStandard::Flags

◆ Language

clang::Language clang::LangStandard::Language

Definition at line 83 of file LangStandard.h.

Referenced by getLanguage(), and clang::CodeGen::CodeGenModule::Release().

◆ ShortName

const char* clang::LangStandard::ShortName

Definition at line 80 of file LangStandard.h.

Referenced by getName().


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