19390b346SJonas Devlieghere //===-- CommandObjectScript.h -----------------------------------*- C++ -*-===//
29390b346SJonas Devlieghere //
39390b346SJonas Devlieghere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
49390b346SJonas Devlieghere // See https://llvm.org/LICENSE.txt for license information.
59390b346SJonas Devlieghere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
69390b346SJonas Devlieghere //
79390b346SJonas Devlieghere //===----------------------------------------------------------------------===//
89390b346SJonas Devlieghere 
99390b346SJonas Devlieghere #ifndef LLDB_SOURCE_INTERPRETER_COMMANDOBJECTSCRIPT_H
109390b346SJonas Devlieghere #define LLDB_SOURCE_INTERPRETER_COMMANDOBJECTSCRIPT_H
119390b346SJonas Devlieghere 
129390b346SJonas Devlieghere #include "lldb/Interpreter/CommandObject.h"
139390b346SJonas Devlieghere 
149390b346SJonas Devlieghere namespace lldb_private {
159390b346SJonas Devlieghere 
169390b346SJonas Devlieghere class CommandObjectScript : public CommandObjectRaw {
179390b346SJonas Devlieghere public:
189390b346SJonas Devlieghere   CommandObjectScript(CommandInterpreter &interpreter);
199390b346SJonas Devlieghere   ~CommandObjectScript() override;
GetOptions()20127faae7SJonas Devlieghere   Options *GetOptions() override { return &m_options; }
21127faae7SJonas Devlieghere 
22127faae7SJonas Devlieghere   class CommandOptions : public Options {
23127faae7SJonas Devlieghere   public:
24*91688716SJonas Devlieghere     CommandOptions() = default;
25127faae7SJonas Devlieghere     ~CommandOptions() override = default;
26127faae7SJonas Devlieghere     Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_arg,
27127faae7SJonas Devlieghere                           ExecutionContext *execution_context) override;
28127faae7SJonas Devlieghere     void OptionParsingStarting(ExecutionContext *execution_context) override;
29127faae7SJonas Devlieghere     llvm::ArrayRef<OptionDefinition> GetDefinitions() override;
30127faae7SJonas Devlieghere     lldb::ScriptLanguage language = lldb::eScriptLanguageNone;
31127faae7SJonas Devlieghere   };
329390b346SJonas Devlieghere 
339390b346SJonas Devlieghere protected:
349390b346SJonas Devlieghere   bool DoExecute(llvm::StringRef command, CommandReturnObject &result) override;
35127faae7SJonas Devlieghere 
36127faae7SJonas Devlieghere private:
37127faae7SJonas Devlieghere   CommandOptions m_options;
389390b346SJonas Devlieghere };
399390b346SJonas Devlieghere 
409390b346SJonas Devlieghere } // namespace lldb_private
419390b346SJonas Devlieghere 
429390b346SJonas Devlieghere #endif // LLDB_SOURCE_INTERPRETER_COMMANDOBJECTSCRIPT_H
43