//===-- CommandObjectScript.h -----------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_SOURCE_INTERPRETER_COMMANDOBJECTSCRIPT_H #define LLDB_SOURCE_INTERPRETER_COMMANDOBJECTSCRIPT_H #include "lldb/Interpreter/CommandObject.h" namespace lldb_private { class CommandObjectScript : public CommandObjectRaw { public: CommandObjectScript(CommandInterpreter &interpreter); ~CommandObjectScript() override; Options *GetOptions() override { return &m_options; } class CommandOptions : public Options { public: CommandOptions() : Options() {} ~CommandOptions() override = default; Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_arg, ExecutionContext *execution_context) override; void OptionParsingStarting(ExecutionContext *execution_context) override; llvm::ArrayRef GetDefinitions() override; lldb::ScriptLanguage language = lldb::eScriptLanguageNone; }; protected: bool DoExecute(llvm::StringRef command, CommandReturnObject &result) override; private: CommandOptions m_options; }; } // namespace lldb_private #endif // LLDB_SOURCE_INTERPRETER_COMMANDOBJECTSCRIPT_H