llvm-project/lldb/source/Commands/CommandObjectExpression.h
Greg Clayton e0d378b334 Fixed the LLDB build so that we can have private types, private enums and
public types and public enums. This was done to keep the SWIG stuff from
parsing all sorts of enums and types that weren't needed, and allows us to
abstract our API better.

llvm-svn: 128239
2011-03-24 21:19:54 +00:00

104 lines
2.6 KiB
C++

//===-- CommandObjectExpression.h -------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef liblldb_CommandObjectExpression_h_
#define liblldb_CommandObjectExpression_h_
// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes
#include "lldb/Interpreter/CommandObject.h"
#include "lldb/Interpreter/Options.h"
#include "lldb/Core/Language.h"
#include "lldb/Target/ExecutionContext.h"
namespace lldb_private {
class CommandObjectExpression : public CommandObject
{
public:
class CommandOptions : public Options
{
public:
CommandOptions ();
virtual
~CommandOptions ();
virtual Error
SetOptionValue (int option_idx, const char *option_arg);
void
ResetOptionValues ();
const OptionDefinition*
GetDefinitions ();
// Options table: Required for subclasses of Options.
static OptionDefinition g_option_table[];
//Language language;
lldb::Encoding encoding;
lldb::Format format;
bool debug;
bool print_object;
bool unwind_on_error;
bool show_types;
bool show_summary;
};
CommandObjectExpression (CommandInterpreter &interpreter);
virtual
~CommandObjectExpression ();
virtual
Options *
GetOptions ();
virtual bool
Execute (Args& command,
CommandReturnObject &result);
virtual bool
WantsRawCommandString() { return true; }
virtual bool
ExecuteRawCommandString (const char *command,
CommandReturnObject &result);
protected:
static size_t
MultiLineExpressionCallback (void *baton,
InputReader &reader,
lldb::InputReaderAction notification,
const char *bytes,
size_t bytes_len);
bool
EvaluateExpression (const char *expr,
Stream &output_stream,
Stream &error_stream,
CommandReturnObject *result = NULL);
CommandOptions m_options;
ExecutionContext m_exe_ctx;
uint32_t m_expr_line_count;
std::string m_expr_lines; // Multi-line expression support
};
} // namespace lldb_private
#endif // liblldb_CommandObjectExpression_h_