diff options
Diffstat (limited to 'lldb/source/Interpreter/CommandObjectRegexCommand.cpp')
| -rw-r--r-- | lldb/source/Interpreter/CommandObjectRegexCommand.cpp | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/lldb/source/Interpreter/CommandObjectRegexCommand.cpp b/lldb/source/Interpreter/CommandObjectRegexCommand.cpp deleted file mode 100644 index 7f2e8c0323c8..000000000000 --- a/lldb/source/Interpreter/CommandObjectRegexCommand.cpp +++ /dev/null @@ -1,119 +0,0 @@ -//===-- CommandObjectRegexCommand.cpp ---------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "lldb/Interpreter/CommandObjectRegexCommand.h" - -// C Includes -// C++ Includes -// Other libraries and framework includes -// Project includes -#include "lldb/Interpreter/CommandInterpreter.h" -#include "lldb/Interpreter/CommandReturnObject.h" - -using namespace lldb; -using namespace lldb_private; - -//---------------------------------------------------------------------- -// CommandObjectRegexCommand constructor -//---------------------------------------------------------------------- -CommandObjectRegexCommand::CommandObjectRegexCommand -( - CommandInterpreter &interpreter, - const char *name, - const char *help, - const char *syntax, - uint32_t max_matches -) : - CommandObject (interpreter, name, help, syntax), - m_max_matches (max_matches), - m_entries () -{ -} - -//---------------------------------------------------------------------- -// Destructor -//---------------------------------------------------------------------- -CommandObjectRegexCommand::~CommandObjectRegexCommand() -{ -} - - -bool -CommandObjectRegexCommand::Execute -( - Args& command, - CommandReturnObject &result -) -{ - return false; -} - - -bool -CommandObjectRegexCommand::ExecuteRawCommandString -( - const char *command, - CommandReturnObject &result -) -{ - if (command) - { - EntryCollection::const_iterator pos, end = m_entries.end(); - for (pos = m_entries.begin(); pos != end; ++pos) - { - if (pos->regex.Execute (command, m_max_matches)) - { - std::string new_command(pos->command); - std::string match_str; - char percent_var[8]; - size_t idx, percent_var_idx; - for (uint32_t match_idx=1; match_idx <= m_max_matches; ++match_idx) - { - if (pos->regex.GetMatchAtIndex (command, match_idx, match_str)) - { - const int percent_var_len = ::snprintf (percent_var, sizeof(percent_var), "%%%u", match_idx); - for (idx = 0; (percent_var_idx = new_command.find(percent_var, idx)) != std::string::npos; ) - { - new_command.erase(percent_var_idx, percent_var_len); - new_command.insert(percent_var_idx, match_str); - idx += percent_var_idx + match_str.size(); - } - } - } - // Interpret the new command and return this as the result! - result.GetOutputStream().Printf("%s\n", new_command.c_str()); - return m_interpreter.HandleCommand(new_command.c_str(), true, result); - } - } - result.SetStatus(eReturnStatusFailed); - result.AppendErrorWithFormat ("Command contents '%s' failed to match any regular expression in the '%s' regex command.\n", - command, - m_cmd_name.c_str()); - return false; - } - result.AppendError("empty command passed to regular expression command"); - result.SetStatus(eReturnStatusFailed); - return false; -} - - -bool -CommandObjectRegexCommand::AddRegexCommand (const char *re_cstr, const char *command_cstr) -{ - m_entries.resize(m_entries.size() + 1); - // Only add the regular expression if it compiles - if (m_entries.back().regex.Compile (re_cstr, REG_EXTENDED)) - { - m_entries.back().command.assign (command_cstr); - return true; - } - // The regex didn't compile... - m_entries.pop_back(); - return false; -} |
