1 //===-- CommandObjectExpression.h -------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_CommandObjectExpression_h_
11 #define liblldb_CommandObjectExpression_h_
15 // Other libraries and framework includes
17 #include "lldb/Core/IOHandler.h"
18 #include "lldb/Interpreter/CommandObject.h"
19 #include "lldb/Interpreter/OptionGroupFormat.h"
20 #include "lldb/Interpreter/OptionGroupValueObjectDisplay.h"
21 #include "lldb/Target/ExecutionContext.h"
23 namespace lldb_private {
25 class CommandObjectExpression :
26 public CommandObjectRaw,
27 public IOHandlerDelegate
31 class CommandOptions : public OptionGroup
43 virtual const OptionDefinition*
47 SetOptionValue (CommandInterpreter &interpreter,
49 const char *option_value);
52 OptionParsingStarting (CommandInterpreter &interpreter);
54 // Options table: Required for subclasses of Options.
56 static OptionDefinition g_option_table[];
58 bool ignore_breakpoints;
64 LanguageRuntimeDescriptionDisplayVerbosity m_verbosity;
67 CommandObjectExpression (CommandInterpreter &interpreter);
70 ~CommandObjectExpression ();
78 //------------------------------------------------------------------
79 // IOHandler::Delegate functions
80 //------------------------------------------------------------------
82 IOHandlerInputComplete (IOHandler &io_handler,
86 IOHandlerLinesUpdated (IOHandler &io_handler,
91 DoExecute (const char *command,
92 CommandReturnObject &result);
95 EvaluateExpression (const char *expr,
96 Stream *output_stream,
98 CommandReturnObject *result = NULL);
100 OptionGroupOptions m_option_group;
101 OptionGroupFormat m_format_options;
102 OptionGroupValueObjectDisplay m_varobj_options;
103 CommandOptions m_command_options;
104 uint32_t m_expr_line_count;
105 std::string m_expr_lines; // Multi-line expression support
108 } // namespace lldb_private
110 #endif // liblldb_CommandObjectExpression_h_