LLDB mainline
lldb_private::FormatterBytecode Namespace Reference

Classes

struct  DataStack

Typedefs

using ControlStackElement = llvm::StringRef
using DataStackElement

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

Initial value:
std::variant<std::string, uint64_t, int64_t, lldb::ValueObjectSP,
Generic representation of a type in a programming language.
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP

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()

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]

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

Definition at line 133 of file FormatterBytecode.cpp.

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

Referenced by TypeCheck(), and TypeCheck().

◆ TypeCheck() [2/3]

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

Definition at line 170 of file FormatterBytecode.cpp.

References error(), and TypeCheck().

◆ TypeCheck() [3/3]

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

Definition at line 177 of file FormatterBytecode.cpp.

References error(), and TypeCheck().