#ifndef LLDB_CORE_FORMATENTITY_H
#define LLDB_CORE_FORMATENTITY_H
#include "lldb/lldb-enumerations.h"
#include "lldb/lldb-types.h"
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <string>
#include <vector>
namespace lldb_private {
class Address;
class CompletionRequest;
class ExecutionContext;
class FileSpec;
class Status;
class Stream;
class StringList;
class SymbolContext;
class ValueObject;
}
namespace llvm {
class StringRef;
}
namespace lldb_private {
namespace FormatEntity {
struct Entry { … };
bool Format(const Entry &entry, Stream &s, const SymbolContext *sc,
const ExecutionContext *exe_ctx, const Address *addr,
ValueObject *valobj, bool function_changed, bool initial_function);
bool FormatStringRef(const llvm::StringRef &format, Stream &s,
const SymbolContext *sc, const ExecutionContext *exe_ctx,
const Address *addr, ValueObject *valobj,
bool function_changed, bool initial_function);
bool FormatCString(const char *format, Stream &s, const SymbolContext *sc,
const ExecutionContext *exe_ctx, const Address *addr,
ValueObject *valobj, bool function_changed,
bool initial_function);
Status Parse(const llvm::StringRef &format, Entry &entry);
Status ExtractVariableInfo(llvm::StringRef &format_str,
llvm::StringRef &variable_name,
llvm::StringRef &variable_format);
void AutoComplete(lldb_private::CompletionRequest &request);
bool FormatFileSpec(const FileSpec &file, Stream &s, llvm::StringRef elements,
llvm::StringRef element_format);
void PrettyPrintFunctionArguments(Stream &out_stream, VariableList const &args,
ExecutionContextScope *exe_scope);
}
}
#endif