LLVM 22.0.0git
llvm::ExpressionFormat Struct Reference

Type representing the format an expression value should be textualized into for matching. More...

#include "FileCheck/FileCheckImpl.h"

Public Types

enum class  Kind {
  NoFormat , Unsigned , Signed , HexUpper ,
  HexLower
}

Public Member Functions

 operator bool () const
 Evaluates a format to true if it can be used in a match.
bool operator== (const ExpressionFormat &Other) const
 Define format equality: formats are equal if neither is NoFormat and their kinds and precision are the same.
bool operator!= (const ExpressionFormat &Other) const
bool operator== (Kind OtherValue) const
bool operator!= (Kind OtherValue) const
StringRef toString () const
 ExpressionFormat ()=default
 ExpressionFormat (Kind Value)
 ExpressionFormat (Kind Value, unsigned Precision)
 ExpressionFormat (Kind Value, unsigned Precision, bool AlternateForm)
LLVM_ABI_FOR_TEST Expected< std::string > getWildcardRegex () const
LLVM_ABI_FOR_TEST Expected< std::string > getMatchingString (APInt Value) const
LLVM_ABI_FOR_TEST APInt valueFromStringRepr (StringRef StrVal, const SourceMgr &SM) const

Detailed Description

Type representing the format an expression value should be textualized into for matching.

Used to represent both explicit format specifiers as well as implicit format from using numeric variables.

Definition at line 39 of file FileCheckImpl.h.

Member Enumeration Documentation

◆ Kind

enum class llvm::ExpressionFormat::Kind
strong
Enumerator
NoFormat 

Denote absence of format.

Used for implicit format of literals and empty expressions.

Unsigned 

Value is an unsigned integer and should be printed as a decimal number.

Signed 

Value is a signed integer and should be printed as a decimal number.

HexUpper 

Value should be printed as an uppercase hex number.

HexLower 

Value should be printed as a lowercase hex number.

Definition at line 40 of file FileCheckImpl.h.

Constructor & Destructor Documentation

◆ ExpressionFormat() [1/4]

llvm::ExpressionFormat::ExpressionFormat ( )
default

Referenced by operator!=(), and operator==().

◆ ExpressionFormat() [2/4]

llvm::ExpressionFormat::ExpressionFormat ( Kind Value)
inlineexplicit

Definition at line 83 of file FileCheckImpl.h.

◆ ExpressionFormat() [3/4]

llvm::ExpressionFormat::ExpressionFormat ( Kind Value,
unsigned Precision )
inlineexplicit

Definition at line 84 of file FileCheckImpl.h.

◆ ExpressionFormat() [4/4]

llvm::ExpressionFormat::ExpressionFormat ( Kind Value,
unsigned Precision,
bool AlternateForm )
inlineexplicit

Definition at line 86 of file FileCheckImpl.h.

Member Function Documentation

◆ getMatchingString()

Expected< std::string > ExpressionFormat::getMatchingString ( APInt Value) const
Returns
the string representation of Value in the format represented by this instance, or an error if conversion to this format failed or the format is NoFormat.

Definition at line 80 of file FileCheck.cpp.

References llvm::APInt::abs(), llvm::createStringError(), HexLower, HexUpper, llvm::APInt::isNegative(), llvm::make_error(), Signed, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::APInt::toString(), and Unsigned.

◆ getWildcardRegex()

Expected< std::string > ExpressionFormat::getWildcardRegex ( ) const
Returns
a wildcard regular expression string that matches any value in the format represented by this instance and no other value, or an error if the format is NoFormat.

Definition at line 47 of file FileCheck.cpp.

References llvm::createStringError(), HexLower, HexUpper, Signed, and Unsigned.

◆ operator bool()

llvm::ExpressionFormat::operator bool ( ) const
inlineexplicit

Evaluates a format to true if it can be used in a match.

Definition at line 62 of file FileCheckImpl.h.

References NoFormat.

◆ operator!=() [1/2]

bool llvm::ExpressionFormat::operator!= ( const ExpressionFormat & Other) const
inline

Definition at line 71 of file FileCheckImpl.h.

References ExpressionFormat(), and llvm::Other.

◆ operator!=() [2/2]

bool llvm::ExpressionFormat::operator!= ( Kind OtherValue) const
inline

Definition at line 77 of file FileCheckImpl.h.

◆ operator==() [1/2]

bool llvm::ExpressionFormat::operator== ( const ExpressionFormat & Other) const
inline

Define format equality: formats are equal if neither is NoFormat and their kinds and precision are the same.

Definition at line 66 of file FileCheckImpl.h.

References ExpressionFormat(), NoFormat, and llvm::Other.

◆ operator==() [2/2]

bool llvm::ExpressionFormat::operator== ( Kind OtherValue) const
inline

Definition at line 75 of file FileCheckImpl.h.

◆ toString()

StringRef ExpressionFormat::toString ( ) const
Returns
the format specifier corresponding to this format as a string.

Definition at line 31 of file FileCheck.cpp.

References HexLower, HexUpper, llvm_unreachable, NoFormat, Signed, and Unsigned.

◆ valueFromStringRepr()

APInt ExpressionFormat::valueFromStringRepr ( StringRef StrVal,
const SourceMgr & SM ) const
Returns
the value corresponding to string representation StrVal according to the matching format represented by this instance.

Definition at line 136 of file FileCheck.cpp.

References assert(), HexLower, HexUpper, Signed, and toSigned().


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