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/Interpreter/CommandObject.h"
18 #include "lldb/Interpreter/OptionGroupFormat.h"
19 #include "lldb/Interpreter/OptionGroupValueObjectDisplay.h"
20 #include "lldb/Target/ExecutionContext.h"
22 namespace lldb_private {
24 class CommandObjectExpression : public CommandObjectRaw
28 class CommandOptions : public OptionGroup
40 virtual const OptionDefinition*
44 SetOptionValue (CommandInterpreter &interpreter,
46 const char *option_value);
49 OptionParsingStarting (CommandInterpreter &interpreter);
51 // Options table: Required for subclasses of Options.
53 static OptionDefinition g_option_table[];
55 bool ignore_breakpoints;
62 CommandObjectExpression (CommandInterpreter &interpreter);
65 ~CommandObjectExpression ();
73 DoExecute (const char *command,
74 CommandReturnObject &result);
77 MultiLineExpressionCallback (void *baton,
79 lldb::InputReaderAction notification,
84 EvaluateExpression (const char *expr,
85 Stream *output_stream,
87 CommandReturnObject *result = NULL);
89 OptionGroupOptions m_option_group;
90 OptionGroupFormat m_format_options;
91 OptionGroupValueObjectDisplay m_varobj_options;
92 CommandOptions m_command_options;
93 uint32_t m_expr_line_count;
94 std::string m_expr_lines; // Multi-line expression support
97 } // namespace lldb_private
99 #endif // liblldb_CommandObjectExpression_h_