aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lldb-mi/MICmdArgContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmdArgContext.cpp')
-rw-r--r--tools/lldb-mi/MICmdArgContext.cpp221
1 files changed, 0 insertions, 221 deletions
diff --git a/tools/lldb-mi/MICmdArgContext.cpp b/tools/lldb-mi/MICmdArgContext.cpp
deleted file mode 100644
index 18da5b5d67a3..000000000000
--- a/tools/lldb-mi/MICmdArgContext.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-//===-- MICmdArgContext.cpp -------------------------------------*- 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
-//
-//===----------------------------------------------------------------------===//
-
-// In-house headers:
-#include "MICmdArgContext.h"
-
-//++
-// Details: CMICmdArgContext constructor.
-// Type: Method.
-// Args: None.
-// Return: None.
-// Throws: None.
-//--
-CMICmdArgContext::CMICmdArgContext() {}
-
-//++
-// Details: CMICmdArgContext constructor.
-// Type: Method.
-// Args: vrCmdLineArgsRaw - (R) The text description of the arguments
-// options.
-// Return: None.
-// Throws: None.
-//--
-CMICmdArgContext::CMICmdArgContext(const CMIUtilString &vrCmdLineArgsRaw)
- : m_strCmdArgsAndOptions(vrCmdLineArgsRaw) {}
-
-//++
-// Details: CMICmdArgContext destructor.
-// Type: Method.
-// Args: None.
-// Return: None.
-// Throws: None.
-//--
-CMICmdArgContext::~CMICmdArgContext() {}
-
-//++
-// Details: Retrieve the remainder of the command's argument options left to
-// parse.
-// Type: Method.
-// Args: None.
-// Return: CMIUtilString & - Argument options text.
-// Throws: None.
-//--
-const CMIUtilString &CMICmdArgContext::GetArgsLeftToParse() const {
- return m_strCmdArgsAndOptions;
-}
-
-//++
-// Details: Ask if this arguments string has any arguments.
-// Type: Method.
-// Args: None.
-// Return: bool - True = Has one or more arguments present, false = no
-// arguments.
-// Throws: None.
-//--
-bool CMICmdArgContext::IsEmpty() const {
- return m_strCmdArgsAndOptions.empty();
-}
-
-//++
-// Details: Remove the argument from the options text and any space after the
-// argument
-// if applicable.
-// Type: Method.
-// Args: vArg - (R) The name of the argument.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
-//--
-bool CMICmdArgContext::RemoveArg(const CMIUtilString &vArg) {
- if (vArg.empty())
- return MIstatus::success;
-
- const size_t nLen = vArg.length();
- const size_t nLenCntxt = m_strCmdArgsAndOptions.length();
- if (nLen > nLenCntxt)
- return MIstatus::failure;
-
- size_t nExtraSpace = 0;
- size_t nPos = m_strCmdArgsAndOptions.find(vArg);
- while (1) {
- if (nPos == std::string::npos)
- return MIstatus::success;
-
- bool bPass1 = false;
- if (nPos != 0) {
- if (m_strCmdArgsAndOptions[nPos - 1] == ' ')
- bPass1 = true;
- } else
- bPass1 = true;
-
- const size_t nEnd = nPos + nLen;
-
- if (bPass1) {
- bool bPass2 = false;
- if (nEnd < nLenCntxt) {
- if (m_strCmdArgsAndOptions[nEnd] == ' ') {
- bPass2 = true;
- nExtraSpace = 1;
- }
- } else
- bPass2 = true;
-
- if (bPass2)
- break;
- }
-
- nPos = m_strCmdArgsAndOptions.find(vArg, nEnd);
- }
-
- const size_t nPosEnd = nLen + nExtraSpace;
- m_strCmdArgsAndOptions = m_strCmdArgsAndOptions.replace(nPos, nPosEnd, "");
- m_strCmdArgsAndOptions = m_strCmdArgsAndOptions.Trim();
-
- return MIstatus::success;
-}
-
-//++
-// Details: Remove the argument at the Nth word position along in the context
-// string.
-// Any space after the argument is removed if applicable. A search is
-// not
-// performed as there may be more than one vArg with the same 'name' in
-// the
-// context string.
-// Type: Method.
-// Args: vArg - (R) The name of the argument.
-// nArgIndex - (R) The word count position to which to remove the
-// vArg word.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
-//--
-bool CMICmdArgContext::RemoveArgAtPos(const CMIUtilString &vArg,
- size_t nArgIndex) {
- size_t nWordIndex = 0;
- CMIUtilString strBuildContextUp;
- const CMIUtilString::VecString_t vecWords(GetArgs());
- const bool bSpaceRequired(GetNumberArgsPresent() > 2);
-
- CMIUtilString::VecString_t::const_iterator it = vecWords.begin();
- const CMIUtilString::VecString_t::const_iterator itEnd = vecWords.end();
- while (it != itEnd) {
- const CMIUtilString &rWord(*it);
- if (nWordIndex++ != nArgIndex) {
- // Single words
- strBuildContextUp += rWord;
- if (bSpaceRequired)
- strBuildContextUp += " ";
- } else {
- // If quoted loose quoted text
- if (++it != itEnd) {
- CMIUtilString words = rWord;
- while (vArg != words) {
- if (bSpaceRequired)
- words += " ";
- words += *it;
- if (++it == itEnd)
- break;
- }
- if (it != itEnd)
- --it;
- }
- }
-
- // Next
- if (it != itEnd)
- ++it;
- }
-
- m_strCmdArgsAndOptions = strBuildContextUp;
- m_strCmdArgsAndOptions = m_strCmdArgsAndOptions.Trim();
-
- return MIstatus::success;
-}
-
-//++
-// Details: Retrieve number of arguments or options present in the command's
-// option text.
-// Type: Method.
-// Args: None.
-// Return: size_t - 0 to n arguments present.
-// Throws: None.
-//--
-size_t CMICmdArgContext::GetNumberArgsPresent() const {
- CMIUtilString::VecString_t vecOptions;
- return m_strCmdArgsAndOptions.SplitConsiderQuotes(" ", vecOptions);
-}
-
-//++
-// Details: Retrieve all the arguments or options remaining in *this context.
-// Type: Method.
-// Args: None.
-// Return: MIUtilString::VecString_t - List of args remaining.
-// Throws: None.
-//--
-CMIUtilString::VecString_t CMICmdArgContext::GetArgs() const {
- CMIUtilString::VecString_t vecOptions;
- m_strCmdArgsAndOptions.SplitConsiderQuotes(" ", vecOptions);
- return vecOptions;
-}
-
-//++
-// Details: Copy assignment operator.
-// Type: Method.
-// Args: vOther - (R) The variable to copy from.
-// Return: CMIUtilString & - this object.
-// Throws: None.
-//--
-CMICmdArgContext &CMICmdArgContext::operator=(const CMICmdArgContext &vOther) {
- if (this != &vOther) {
- m_strCmdArgsAndOptions = vOther.m_strCmdArgsAndOptions;
- }
-
- return *this;
-}