|  | //===-- MICmdArgValConsume.h ------------------------------------*- C++ -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #pragma once | 
|  |  | 
|  | // In-house headers: | 
|  | #include "MICmdArgValBase.h" | 
|  |  | 
|  | // Declarations: | 
|  | class CMICmdArgContext; | 
|  |  | 
|  | //++ | 
|  | //============================================================================ | 
|  | // Details: MI common code class. Command argument class. Arguments object | 
|  | //          needing specialization derived from the CMICmdArgValBase class. | 
|  | //          An argument knows what type of argument it is and how it is to | 
|  | //          interpret the options (context) string to find and validate a | 
|  | //          matching | 
|  | //          argument. This type having recognised its argument name just | 
|  | //          consumes | 
|  | //          that argument or option (ignores it). This is the so the validation | 
|  | //          process can then ask if all arguments or options have been | 
|  | //          recognised | 
|  | //          other an error will occurred "argument not recognised". For example | 
|  | //          this can be used to consume the "--" text which is not an argument | 
|  | //          in | 
|  | //          itself. Normally the GetValue() function (in base class) would | 
|  | //          return | 
|  | //          a value for the argument but is not the case for *this argument type | 
|  | //          object. | 
|  | //          Based on the Interpreter pattern. | 
|  | //-- | 
|  | class CMICmdArgValConsume : public CMICmdArgValBaseTemplate<CMIUtilString> { | 
|  | // Methods: | 
|  | public: | 
|  | /* ctor */ CMICmdArgValConsume(); | 
|  | /* ctor */ CMICmdArgValConsume(const CMIUtilString &vrArgName, | 
|  | const bool vbMandatory); | 
|  | // | 
|  | bool IsOk() const; | 
|  |  | 
|  | // Overridden: | 
|  | public: | 
|  | // From CMICmdArgValBase | 
|  | /* dtor */ ~CMICmdArgValConsume() override; | 
|  | // From CMICmdArgSet::IArg | 
|  | bool Validate(CMICmdArgContext &vwArgContext) override; | 
|  | }; |