LLDB mainline
Classes | Typedefs | Enumerations | Functions
lldb_private::FormatterBytecode Namespace Reference

Classes

struct  DataStack
 

Typedefs

using ControlStackElement = llvm::StringRef
 
using DataStackElement = std::variant< std::string, uint64_t, int64_t, lldb::ValueObjectSP, CompilerType, Selectors >
 

Enumerations

enum  DataType : uint8_t {
  Any , String , Int , UInt ,
  Object , Type , Selector
}
 
enum  OpCodes : uint8_t
 
enum  Selectors : uint8_t
 
enum  Signatures : uint8_t
 

Functions

static llvm::Error FormatImpl (DataStack &data)
 Implement the @format function.
 
static llvm::Error TypeCheck (llvm::ArrayRef< DataStackElement > data, DataType type)
 
static llvm::Error TypeCheck (llvm::ArrayRef< DataStackElement > data, DataType type1, DataType type2)
 
static llvm::Error TypeCheck (llvm::ArrayRef< DataStackElement > data, DataType type1, DataType type2, DataType type3)
 
llvm::Error Interpret (std::vector< ControlStackElement > &control, DataStack &data, Selectors sel)
 

Typedef Documentation

◆ ControlStackElement

Definition at line 36 of file FormatterBytecode.h.

◆ DataStackElement

using lldb_private::FormatterBytecode::DataStackElement = typedef std::variant<std::string, uint64_t, int64_t, lldb::ValueObjectSP, CompilerType, Selectors>

Definition at line 37 of file FormatterBytecode.h.

Enumeration Type Documentation

◆ DataType

Enumerator
Any 
String 
Int 
UInt 
Object 
Type 
Selector 

Definition at line 16 of file FormatterBytecode.h.

◆ OpCodes

Definition at line 18 of file FormatterBytecode.h.

◆ Selectors

Definition at line 24 of file FormatterBytecode.h.

◆ Signatures

Definition at line 30 of file FormatterBytecode.h.

Function Documentation

◆ FormatImpl()

static llvm::Error lldb_private::FormatterBytecode::FormatImpl ( DataStack data)
static

◆ Interpret()

llvm::Error lldb_private::FormatterBytecode::Interpret ( std::vector< ControlStackElement > &  control,
DataStack data,
Selectors  sel 
)

◆ TypeCheck() [1/3]

static llvm::Error lldb_private::FormatterBytecode::TypeCheck ( llvm::ArrayRef< DataStackElement data,
DataType  type 
)
static

Definition at line 132 of file FormatterBytecode.cpp.

References Any, Int, Object, Selector, String, Type, and UInt.

Referenced by TypeCheck().

◆ TypeCheck() [2/3]

static llvm::Error lldb_private::FormatterBytecode::TypeCheck ( llvm::ArrayRef< DataStackElement data,
DataType  type1,
DataType  type2 
)
static

Definition at line 169 of file FormatterBytecode.cpp.

References error(), and TypeCheck().

◆ TypeCheck() [3/3]

static llvm::Error lldb_private::FormatterBytecode::TypeCheck ( llvm::ArrayRef< DataStackElement data,
DataType  type1,
DataType  type2,
DataType  type3 
)
static

Definition at line 176 of file FormatterBytecode.cpp.

References error(), and TypeCheck().