|
LLVM
4.0.0
|
A switch()-like statement whose cases are string literals. More...
#include <StringSwitch.h>
Public Member Functions | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE | StringSwitch (StringRef S) |
| StringSwitch (const StringSwitch &)=delete | |
| void | operator= (const StringSwitch &)=delete |
| StringSwitch (StringSwitch &&other) | |
| StringSwitch & | operator= (StringSwitch &&other) |
| ~StringSwitch ()=default | |
| template<unsigned N> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Case (const char(&S)[N], const T &Value) |
| template<unsigned N> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | EndsWith (const char(&S)[N], const T &Value) |
| template<unsigned N> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | StartsWith (const char(&S)[N], const T &Value) |
| template<unsigned N0, unsigned N1> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Cases (const char(&S0)[N0], const char(&S1)[N1], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Cases (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2, unsigned N3> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Cases (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const char(&S3)[N3], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Cases (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const char(&S3)[N3], const char(&S4)[N4], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4, unsigned N5> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Cases (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const char(&S3)[N3], const char(&S4)[N4], const char(&S5)[N5], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4, unsigned N5, unsigned N6> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Cases (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const char(&S3)[N3], const char(&S4)[N4], const char(&S5)[N5], const char(&S6)[N6], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4, unsigned N5, unsigned N6, unsigned N7> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Cases (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const char(&S3)[N3], const char(&S4)[N4], const char(&S5)[N5], const char(&S6)[N6], const char(&S7)[N7], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4, unsigned N5, unsigned N6, unsigned N7, unsigned N8> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Cases (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const char(&S3)[N3], const char(&S4)[N4], const char(&S5)[N5], const char(&S6)[N6], const char(&S7)[N7], const char(&S8)[N8], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4, unsigned N5, unsigned N6, unsigned N7, unsigned N8, unsigned N9> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | Cases (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const char(&S3)[N3], const char(&S4)[N4], const char(&S5)[N5], const char(&S6)[N6], const char(&S7)[N7], const char(&S8)[N8], const char(&S9)[N9], const T &Value) |
| template<unsigned N> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | CaseLower (const char(&S)[N], const T &Value) |
| template<unsigned N> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | EndsWithLower (const char(&S)[N], const T &Value) |
| template<unsigned N> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | StartsWithLower (const char(&S)[N], const T &Value) |
| template<unsigned N0, unsigned N1> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | CasesLower (const char(&S0)[N0], const char(&S1)[N1], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | CasesLower (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2, unsigned N3> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | CasesLower (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const char(&S3)[N3], const T &Value) |
| template<unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & | CasesLower (const char(&S0)[N0], const char(&S1)[N1], const char(&S2)[N2], const char(&S3)[N3], const char(&S4)[N4], const T &Value) |
| LLVM_ATTRIBUTE_ALWAYS_INLINE R | Default (const T &Value) const |
| LLVM_ATTRIBUTE_ALWAYS_INLINE | operator R () const |
A switch()-like statement whose cases are string literals.
The StringSwitch class is a simple form of a switch() statement that determines whether the given string matches one of the given string literals. The template type parameter T is the type of the value that will be returned from the string-switch expression. For example, the following code switches on the name of a color in argv[i]:
Definition at line 43 of file StringSwitch.h.
|
inlineexplicit |
Definition at line 53 of file StringSwitch.h.
|
delete |
|
inline |
Definition at line 60 of file StringSwitch.h.
|
default |
|
inline |
Definition at line 74 of file StringSwitch.h.
References assert(), llvm::StringRef::data(), and llvm::StringRef::size().
Referenced by llvm::AArch64StringToVectorLayout(), llvm::StringSwitch< T, R >::Cases(), llvm::classifyEHPersonality(), llvm::DWARFContextInMemory::DWARFContextInMemory(), getArchSynonym(), llvm::Triple::getArchTypeForLLVMName(), getBankedRegisterMask(), llvm::DIFile::getChecksumKind(), llvm::DICompileUnit::getEmissionKind(), llvm::objcarc::GetFunctionClass(), getIdentifierKind(), llvm::dwarf::getMacinfo(), getMClassFlagsMask(), getMClassRegisterSYSmValueMask(), getMetadataKeywordKind(), llvm::LanaiTargetLowering::getRegisterByName(), llvm::SparcTargetLowering::getRegisterByName(), llvm::AVRTargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterByName(), llvm::PPCTargetLowering::getRegisterByName(), llvm::X86TargetLowering::getRegisterByName(), getRuntimeMDForKernel(), getRuntimeMDForKernelArg(), getSpecialRegForName(), llvm::object::MachOObjectFile::isValidArch(), parseAttrKind(), llvm::SparcMCExpr::parseVariantKind(), parseVendor(), and llvm::LPAC::stringToLanaiAluCode().
|
inline |
Definition at line 191 of file StringSwitch.h.
References llvm::StringRef::equals_lower().
Referenced by llvm::StringSwitch< T, R >::CasesLower().
|
inline |
Definition at line 107 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::Case().
Referenced by llvm::StringSwitch< T, R >::Cases(), getArchSynonym(), and getRuntimeMDForKernel().
|
inline |
Definition at line 114 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::Case(), and llvm::StringSwitch< T, R >::Cases().
|
inline |
Definition at line 121 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::Case(), and llvm::StringSwitch< T, R >::Cases().
|
inline |
Definition at line 129 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::Case(), and llvm::StringSwitch< T, R >::Cases().
|
inline |
Definition at line 138 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::Case(), and llvm::StringSwitch< T, R >::Cases().
|
inline |
Definition at line 148 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::Case(), and llvm::StringSwitch< T, R >::Cases().
|
inline |
Definition at line 158 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::Case(), and llvm::StringSwitch< T, R >::Cases().
|
inline |
Definition at line 169 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::Case(), and llvm::StringSwitch< T, R >::Cases().
|
inline |
Definition at line 180 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::Case(), and llvm::StringSwitch< T, R >::Cases().
|
inline |
Definition at line 218 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::CaseLower().
Referenced by llvm::StringSwitch< T, R >::CasesLower().
|
inline |
Definition at line 224 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::CaseLower(), and llvm::StringSwitch< T, R >::CasesLower().
|
inline |
Definition at line 231 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::CaseLower(), and llvm::StringSwitch< T, R >::CasesLower().
|
inline |
Definition at line 238 of file StringSwitch.h.
References llvm::StringSwitch< T, R >::CaseLower(), and llvm::StringSwitch< T, R >::CasesLower().
|
inline |
Definition at line 244 of file StringSwitch.h.
Referenced by llvm::AArch64StringToVectorLayout(), llvm::classifyEHPersonality(), llvm::createX86_64AsmBackend(), llvm::DWARFContextInMemory::DWARFContextInMemory(), getArchSynonym(), llvm::Triple::getArchTypeForLLVMName(), getBankedRegisterMask(), llvm::DIFile::getChecksumKind(), llvm::DICompileUnit::getEmissionKind(), llvm::MipsAsmBackend::getFixupKind(), llvm::objcarc::GetFunctionClass(), getHWDivSynonym(), getIdentifierKind(), llvm::dwarf::getMacinfo(), getMClassFlagsMask(), getMClassRegisterSYSmValueMask(), getMetadataKeywordKind(), llvm::LanaiTargetLowering::getRegisterByName(), llvm::SparcTargetLowering::getRegisterByName(), llvm::AVRTargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterByName(), llvm::MipsTargetLowering::getRegisterByName(), llvm::PPCTargetLowering::getRegisterByName(), llvm::X86TargetLowering::getRegisterByName(), getRuntimeMDForKernel(), getRuntimeMDForKernelArg(), getSpecialRegForName(), llvm::object::MachOObjectFile::isValidArch(), llvm::MaybePredicatedInst(), llvm::ARM::parseArchISA(), parseAttrKind(), parseEnvironment(), parseFormat(), parseOS(), parseSubArch(), llvm::SparcMCExpr::parseVariantKind(), parseVendor(), llvm::SizeForSuffix(), llvm::LPAC::stringToLanaiAluCode(), and llvm::LPCC::suffixToLanaiCondCode().
|
inline |
Definition at line 85 of file StringSwitch.h.
References assert(), llvm::StringRef::data(), N, and llvm::StringRef::size().
Referenced by parseFormat(), parseSubArch(), llvm::SizeForSuffix(), and llvm::LPCC::suffixToLanaiCondCode().
|
inline |
Definition at line 200 of file StringSwitch.h.
References llvm::StringRef::endswith_lower().
|
inline |
Definition at line 251 of file StringSwitch.h.
References assert().
|
delete |
|
inline |
Definition at line 63 of file StringSwitch.h.
|
inline |
Definition at line 96 of file StringSwitch.h.
References assert(), llvm::StringRef::data(), and llvm::StringRef::size().
Referenced by llvm::Triple::getArchTypeForLLVMName(), llvm::MaybePredicatedInst(), llvm::ARM::parseArchISA(), parseEnvironment(), and parseOS().
|
inline |
Definition at line 209 of file StringSwitch.h.
References llvm::StringRef::startswith_lower().
1.8.6