1 //===-- MICmdArgValConsume.cpp -------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
11 #include "MICmdArgValConsume.h"
12 #include "MICmdArgContext.h"
14 //++ ------------------------------------------------------------------------------------
15 // Details: CMICmdArgValConsume constructor.
21 CMICmdArgValConsume::CMICmdArgValConsume(void)
25 //++ ------------------------------------------------------------------------------------
26 // Details: CMICmdArgValConsume constructor.
28 // Args: vrArgName - (R) Argument's name to search by.
29 // vbMandatory - (R) True = Yes must be present, false = optional argument.
33 CMICmdArgValConsume::CMICmdArgValConsume(const CMIUtilString &vrArgName, const bool vbMandatory)
34 : CMICmdArgValBaseTemplate(vrArgName, vbMandatory, true)
38 //++ ------------------------------------------------------------------------------------
39 // Details: CMICmdArgValConsume destructor.
45 CMICmdArgValConsume::~CMICmdArgValConsume(void)
49 //++ ------------------------------------------------------------------------------------
50 // Details: Parse the command's argument options string and try to extract the value *this
51 // argument is looking for.
53 // Args: vwArgContext - (R) The command's argument options string.
54 // Return: MIstatus::success - Functional succeeded.
55 // MIstatus::failure - Functional failed.
59 CMICmdArgValConsume::Validate(CMICmdArgContext &vwArgContext)
61 if (vwArgContext.IsEmpty())
62 return m_bMandatory ? MIstatus::failure : MIstatus::success;
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())
69 const CMIUtilString & rTxt( *it );
71 if ( rTxt.compare( "--" ) == 0 )
75 return MIstatus::success;
78 if ( !vwArgContext.RemoveArg( rTxt ) )
79 return MIstatus::failure;
85 return MIstatus::failure;
88 //++ ------------------------------------------------------------------------------------
89 // Details: Nothing to examine as we just want to consume the argument or option (ignore
93 // Return: bool - True = yes ok, false = not ok.
97 CMICmdArgValConsume::IsOk(void) const