diff options
Diffstat (limited to 'lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h')
-rw-r--r-- | lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h b/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h new file mode 100644 index 00000000000..0c38f5b4fab --- /dev/null +++ b/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h @@ -0,0 +1,73 @@ +//===-- CommandObjectRegexCommand.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_CommandObjectRegexCommand_h_ +#define liblldb_CommandObjectRegexCommand_h_ + +// C Includes +// C++ Includes +#include <list> + +// Other libraries and framework includes +// Project includes +#include "lldb/Interpreter/CommandObject.h" +#include "lldb/Core/RegularExpression.h" + +namespace lldb_private { + +//------------------------------------------------------------------------- +// CommandObjectRegexCommand +//------------------------------------------------------------------------- + +class CommandObjectRegexCommand : public CommandObject +{ +public: + + CommandObjectRegexCommand (const char *name, const char *help, const char *syntax, uint32_t max_matches); + + virtual + ~CommandObjectRegexCommand (); + + virtual bool + Execute (Args& command, + CommandContext *context, + CommandInterpreter *interpreter, + CommandReturnObject &result); + + virtual bool + WantsRawCommandString() { return true; } + + virtual bool + ExecuteRawCommandString (const char *command, + CommandContext *context, + CommandInterpreter *interpreter, + CommandReturnObject &result); + + + bool + AddRegexCommand (const char *re_cstr, const char *command_cstr); + +protected: + typedef struct Entry + { + RegularExpression regex; + std::string command; + }; + + typedef std::list<Entry> EntryCollection; + const uint32_t m_max_matches; + EntryCollection m_entries; + +private: + DISALLOW_COPY_AND_ASSIGN (CommandObjectRegexCommand); +}; + +} // namespace lldb_private + +#endif // liblldb_CommandObjectRegexCommand_h_ |