00001 #include "OBTOptionArgExtra.h" 00002 #include "OBT_ASSERT.h" 00003 00004 using namespace OBT ; 00005 //============================================================================= 00006 bool OptionLastArg::argMatch() 00007 { 00008 OBT_ASSERT( !_flag && "Unable to parse the arguments " ) ; 00009 _prm = peekArg() ; 00010 return atLastArg() ; 00011 } 00012 //----------------------------------------------------------------------------- 00013 bool OptionFlag::parseArg() 00014 { 00015 if( _flag ) throwError( "This option cannot be used more than once" ) ; 00016 return true ; 00017 } 00018 //----------------------------------------------------------------------------- 00019 bool OptionNPrm::parseArg() 00020 { 00021 if( _flag ) throwError( "This option cannot be used more than once" ) ; 00022 for( int i = 0; i < _n ; i++ ) _prm.push_back( OptionArg::getNextArg() ) ; 00023 return true ; 00024 } 00025 //----------------------------------------------------------------------------- 00026 bool OptionMultiNPrm::parseArg() 00027 { 00028 std::vector< std::string > prm ; 00029 for( int i = 0; i < _n ; i++ ) prm.push_back( OptionArg::getNextArg() ) ; 00030 _prm.push_back( prm ) ; 00031 return true ; 00032 } 00033 //=============================================================================