| //===-- 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; |
| }; |