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"
15 //------------------------------------------------------------------------------------
16 // Details: CMICmdArgValConsume constructor.
22 CMICmdArgValConsume::CMICmdArgValConsume() {}
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
34 CMICmdArgValConsume::CMICmdArgValConsume(const CMIUtilString &vrArgName,
35 const bool vbMandatory)
36 : CMICmdArgValBaseTemplate(vrArgName, vbMandatory, true) {}
39 //------------------------------------------------------------------------------------
40 // Details: CMICmdArgValConsume destructor.
46 CMICmdArgValConsume::~CMICmdArgValConsume() {}
49 //------------------------------------------------------------------------------------
50 // Details: Parse the command's argument options string and try to extract the
52 // argument is looking for.
54 // Args: vwArgContext - (R) The command's argument options string.
55 // Return: MIstatus::success - Functional succeeded.
56 // MIstatus::failure - Functional failed.
59 bool CMICmdArgValConsume::Validate(CMICmdArgContext &vwArgContext) {
60 if (vwArgContext.IsEmpty())
61 return m_bMandatory ? MIstatus::failure : MIstatus::success;
63 // Consume the optional file, line, linenum arguments till the mode '--'
65 const CMIUtilString::VecString_t vecOptions(vwArgContext.GetArgs());
66 CMIUtilString::VecString_t::const_iterator it = vecOptions.begin();
67 while (it != vecOptions.end()) {
68 const CMIUtilString &rTxt(*it);
70 if (rTxt.compare("--") == 0) {
73 if (!vwArgContext.RemoveArg(rTxt))
74 return MIstatus::failure;
75 return MIstatus::success;
81 return MIstatus::failure;
85 //------------------------------------------------------------------------------------
86 // Details: Nothing to examine as we just want to consume the argument or option
91 // Return: bool - True = yes ok, false = not ok.
94 bool CMICmdArgValConsume::IsOk() const { return true; }