|
LLDB mainline
|
Classes | |
| struct | DataStack |
Typedefs | |
| using | ControlStackElement = llvm::StringRef |
| using | ControlStack = std::vector<ControlStackElement> |
| using | DataStackElement |
Enumerations | |
| enum | DataType : uint8_t { Any , String , Int , UInt , Object , Type , Selector , Integer } |
| enum | OpCodes : uint8_t |
| enum | Selectors : uint8_t |
| enum | Signatures : uint8_t |
Functions | |
| llvm::Error | Interpret (ControlStack &control, DataStack &data, Signatures sig) |
| 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) |
| template<typename T> | |
| static DataStackElement | WrapAPSIntResult (T result, unsigned bit_width, bool is_unsigned) |
| Wrap the result of a binary operator applied to two APSInts back into a DataStackElement. | |
| using lldb_private::FormatterBytecode::ControlStack = std::vector<ControlStackElement> |
Definition at line 50 of file FormatterBytecode.h.
| using lldb_private::FormatterBytecode::ControlStackElement = llvm::StringRef |
Definition at line 49 of file FormatterBytecode.h.
Definition at line 53 of file FormatterBytecode.h.
| enum lldb_private::FormatterBytecode::DataType : uint8_t |
| Enumerator | |
|---|---|
| Any | |
| String | |
| Int | Deprecated: use Integer. |
| UInt | Deprecated: use Integer. |
| Object | |
| Type | |
| Selector | |
| Integer | |
Definition at line 20 of file FormatterBytecode.h.
| enum lldb_private::FormatterBytecode::OpCodes : uint8_t |
Definition at line 31 of file FormatterBytecode.h.
| enum lldb_private::FormatterBytecode::Selectors : uint8_t |
Definition at line 37 of file FormatterBytecode.h.
| enum lldb_private::FormatterBytecode::Signatures : uint8_t |
Definition at line 43 of file FormatterBytecode.h.
|
static |
Implement the @format function.
Definition at line 92 of file FormatterBytecode.cpp.
References lldb_private::Align(), lldb_private::FormatterBytecode::DataStack::Pop(), lldb_private::FormatterBytecode::DataStack::Push(), and lldb_private::toString().
Referenced by Interpret().
| llvm::Error lldb_private::FormatterBytecode::Interpret | ( | ControlStack & | control, |
| DataStack & | data, | ||
| Signatures | sig ) |
Activate the top most block from the control stack.
Fetch the next byte in the instruction stream.
Definition at line 208 of file FormatterBytecode.cpp.
References Any, BINOP, BINOP_CHECKZERO, BITOP, lldb_private::bits(), CMPOP, lldb_private::DataFormatters, error(), FormatImpl(), lldb_private::GetLog(), Int, LLDB_LOG_VERBOSE, Object, pc, lldb_private::FormatterBytecode::DataStack::Pop(), POP_VALOBJ, lldb_private::FormatterBytecode::DataStack::PopAny(), lldb_private::FormatterBytecode::DataStack::Push(), Selector, SHIFTOP, String, lldb_private::toString(), Type, TYPE_CHECK, and UInt.
Referenced by lldb_private::BytecodeSyntheticChildren::FrontEnd::CalculateNumChildren(), lldb_private::BytecodeSummaryFormat::FormatObject(), lldb_private::BytecodeSyntheticChildren::FrontEnd::FrontEnd(), lldb_private::BytecodeSyntheticChildren::FrontEnd::GetChildAtIndex(), lldb_private::BytecodeSyntheticChildren::FrontEnd::GetIndexOfChildWithName(), and lldb_private::BytecodeSyntheticChildren::FrontEnd::Update().
|
static |
Definition at line 140 of file FormatterBytecode.cpp.
References Any, Int, Integer, Object, Selector, String, Type, and UInt.
Referenced by TypeCheck(), and TypeCheck().
|
static |
Definition at line 181 of file FormatterBytecode.cpp.
References error(), and TypeCheck().
|
static |
Definition at line 188 of file FormatterBytecode.cpp.
References error(), and TypeCheck().
|
static |
Wrap the result of a binary operator applied to two APSInts back into a DataStackElement.
Comparison operators yield bool and need bit_width/ is_unsigned to construct the boolean's APSInt representation; arithmetic operators already yield a correctly-tagged APSInt and ignore them.
Definition at line 200 of file FormatterBytecode.cpp.