]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.cpp
Update LLDB snapshot to upstream r241361
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / tools / lldb-mi / MICmdArgValConsume.cpp
1 //===-- MICmdArgValConsume.cpp -------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 // In-house headers:
11 #include "MICmdArgValConsume.h"
12 #include "MICmdArgContext.h"
13
14 //++ ------------------------------------------------------------------------------------
15 // Details: CMICmdArgValConsume constructor.
16 // Type:    Method.
17 // Args:    None.
18 // Return:  None.
19 // Throws:  None.
20 //--
21 CMICmdArgValConsume::CMICmdArgValConsume(void)
22 {
23 }
24
25 //++ ------------------------------------------------------------------------------------
26 // Details: CMICmdArgValConsume constructor.
27 // Type:    Method.
28 // Args:    vrArgName       - (R) Argument's name to search by.
29 //          vbMandatory     - (R) True = Yes must be present, false = optional argument.
30 // Return:  None.
31 // Throws:  None.
32 //--
33 CMICmdArgValConsume::CMICmdArgValConsume(const CMIUtilString &vrArgName, const bool vbMandatory)
34     : CMICmdArgValBaseTemplate(vrArgName, vbMandatory, true)
35 {
36 }
37
38 //++ ------------------------------------------------------------------------------------
39 // Details: CMICmdArgValConsume destructor.
40 // Type:    Overidden.
41 // Args:    None.
42 // Return:  None.
43 // Throws:  None.
44 //--
45 CMICmdArgValConsume::~CMICmdArgValConsume(void)
46 {
47 }
48
49 //++ ------------------------------------------------------------------------------------
50 // Details: Parse the command's argument options string and try to extract the value *this
51 //          argument is looking for.
52 // Type:    Overridden.
53 // Args:    vwArgContext    - (R) The command's argument options string.
54 // Return:  MIstatus::success - Functional succeeded.
55 //          MIstatus::failure - Functional failed.
56 // Throws:  None.
57 //--
58 bool
59 CMICmdArgValConsume::Validate(CMICmdArgContext &vwArgContext)
60 {
61     if (vwArgContext.IsEmpty())
62         return m_bMandatory ? MIstatus::failure : MIstatus::success;
63
64     // Consume the optional file, line, linenum arguments till the mode '--' argument
65     const CMIUtilString::VecString_t vecOptions(vwArgContext.GetArgs());
66     CMIUtilString::VecString_t::const_iterator it = vecOptions.begin();
67     while (it != vecOptions.end())
68     {
69         const CMIUtilString & rTxt( *it );
70         
71         if ( rTxt.compare( "--" ) == 0 )
72         {
73             m_bFound = true;
74             m_bValid = true;
75             return MIstatus::success;
76         }
77         
78         if ( !vwArgContext.RemoveArg( rTxt ) )
79             return MIstatus::failure;
80
81         // Next
82         ++it;
83     }
84
85     return MIstatus::failure;
86 }
87
88 //++ ------------------------------------------------------------------------------------
89 // Details: Nothing to examine as we just want to consume the argument or option (ignore
90 //          it).
91 // Type:    Method.
92 // Args:    None.
93 // Return:  bool -  True = yes ok, false = not ok.
94 // Throws:  None.
95 //--
96 bool
97 CMICmdArgValConsume::IsOk(void) const
98 {
99     return true;
100 }