COIN-OR::LEMON - Graph Library

Changes in / [215:17c644f5f98d:213:56579d12575b] in lemon-main


Ignore:
Location:
lemon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lemon/arg_parser.cc

    r214 r210  
    240240  }
    241241
    242   void ArgParser::show(std::ostream &os,Opts::const_iterator i) const
     242  void ArgParser::show(std::ostream &os,Opts::iterator i)
    243243  {
    244244    os << "-" << i->first;
    245245    if(i->second.has_syn)
    246       for(Opts::const_iterator j=_opts.begin();j!=_opts.end();++j)
     246      for(Opts::iterator j=_opts.begin();j!=_opts.end();++j)
    247247        if(j->second.syn&&j->second.help==i->first)
    248248          os << "|-" << j->first;
     
    262262  }
    263263
    264   void ArgParser::show(std::ostream &os,Groups::const_iterator i) const
    265   {
    266     GroupData::Opts::const_iterator o=i->second.opts.begin();
     264  void ArgParser::show(std::ostream &os,Groups::iterator i)
     265  {
     266    GroupData::Opts::iterator o=i->second.opts.begin();
    267267    while(o!=i->second.opts.end()) {
    268268      show(os,_opts.find(*o));
     
    272272  }
    273273
    274   void ArgParser::showHelp(Opts::const_iterator i) const
     274  void ArgParser::showHelp(Opts::iterator i)
    275275  {
    276276    if(i->second.help.size()==0||i->second.syn) return;
     
    280280    std::cerr << "     " << i->second.help << std::endl;
    281281  }
    282   void ArgParser::showHelp(std::vector<ArgParser::OtherArg>::const_iterator i)
    283     const
     282  void ArgParser::showHelp(std::vector<ArgParser::OtherArg>::iterator i)
    284283  {
    285284    if(i->help.size()==0) return;
     
    288287  }
    289288
    290   void ArgParser::shortHelp() const
     289  void ArgParser::shortHelp()
    291290  {
    292291    const unsigned int LINE_LEN=77;
     
    294293    std::cerr << "Usage:\n  " << _command_name;
    295294    int pos=_command_name.size()+2;
    296     for(Groups::const_iterator g=_groups.begin();g!=_groups.end();++g) {
     295    for(Groups::iterator g=_groups.begin();g!=_groups.end();++g) {
    297296      std::ostringstream cstr;
    298297      cstr << ' ';
     
    307306      pos+=cstr.str().size();
    308307    }
    309     for(Opts::const_iterator i=_opts.begin();i!=_opts.end();++i)
     308    for(Opts::iterator i=_opts.begin();i!=_opts.end();++i)
    310309      if(!i->second.ingroup&&!i->second.syn) {
    311310        std::ostringstream cstr;
     
    321320        pos+=cstr.str().size();
    322321      }
    323     for(std::vector<OtherArg>::const_iterator i=_others_help.begin();
     322    for(std::vector<OtherArg>::iterator i=_others_help.begin();
    324323        i!=_others_help.end();++i)
    325324      {
     
    337336  }
    338337
    339   void ArgParser::showHelp() const
     338  void ArgParser::showHelp()
    340339  {
    341340    shortHelp();
    342341    std::cerr << "Where:\n";
    343     for(std::vector<OtherArg>::const_iterator i=_others_help.begin();
     342    for(std::vector<OtherArg>::iterator i=_others_help.begin();
    344343        i!=_others_help.end();++i) showHelp(i);
    345     for(Opts::const_iterator i=_opts.begin();i!=_opts.end();++i) showHelp(i);
     344    for(Opts::iterator i=_opts.begin();i!=_opts.end();++i) showHelp(i);
    346345    exit(1);
    347346  }
    348347
    349348
    350   void ArgParser::unknownOpt(std::string arg) const
     349  void ArgParser::unknownOpt(std::string arg)
    351350  {
    352351    std::cerr << "\nUnknown option: " << arg << "\n";
     
    356355  }
    357356
    358   void ArgParser::requiresValue(std::string arg, OptType t) const
     357  void ArgParser::requiresValue(std::string arg, OptType t)
    359358  {
    360359    std::cerr << "Argument '" << arg << "' requires a";
     
    377376
    378377
    379   void ArgParser::checkMandatories() const
     378  void ArgParser::checkMandatories()
    380379  {
    381380    bool ok=true;
    382     for(Opts::const_iterator i=_opts.begin();i!=_opts.end();++i)
     381    for(Opts::iterator i=_opts.begin();i!=_opts.end();++i)
    383382      if(i->second.mandatory&&!i->second.set)
    384383        {
     
    389388          showHelp(i);
    390389        }
    391     for(Groups::const_iterator i=_groups.begin();i!=_groups.end();++i)
     390    for(Groups::iterator i=_groups.begin();i!=_groups.end();++i)
    392391      if(i->second.mandatory||i->second.only_one)
    393392        {
    394393          int set=0;
    395           for(GroupData::Opts::const_iterator o=i->second.opts.begin();
     394          for(GroupData::Opts::iterator o=i->second.opts.begin();
    396395              o!=i->second.opts.end();++o)
    397396            if(_opts.find(*o)->second.set) ++set;
     
    400399              ": At least one of the following arguments is mandatory.\n";
    401400            ok=false;
    402             for(GroupData::Opts::const_iterator o=i->second.opts.begin();
     401            for(GroupData::Opts::iterator o=i->second.opts.begin();
    403402                o!=i->second.opts.end();++o)
    404403              showHelp(_opts.find(*o));
     
    408407              ": At most one of the following arguments can be given.\n";
    409408            ok=false;
    410             for(GroupData::Opts::const_iterator o=i->second.opts.begin();
     409            for(GroupData::Opts::iterator o=i->second.opts.begin();
    411410                o!=i->second.opts.end();++o)
    412411              showHelp(_opts.find(*o));
  • lemon/arg_parser.h

    r214 r209  
    272272    ///@}
    273273
    274   private:
    275     void show(std::ostream &os,Opts::const_iterator i) const;
    276     void show(std::ostream &os,Groups::const_iterator i) const;
    277     void showHelp(Opts::const_iterator i) const;
    278     void showHelp(std::vector<OtherArg>::const_iterator i) const;
    279 
    280     void unknownOpt(std::string arg) const;
    281 
    282     void requiresValue(std::string arg, OptType t) const;
    283     void checkMandatories() const;
    284 
    285     void shortHelp() const;
    286     void showHelp() const;
    287   public:
     274    void show(std::ostream &os,Opts::iterator i);
     275    void show(std::ostream &os,Groups::iterator i);
     276    void showHelp(Opts::iterator i);
     277    void showHelp(std::vector<OtherArg>::iterator i);
     278    void shortHelp();
     279    void showHelp();
     280
     281    void unknownOpt(std::string arg);
     282
     283    void requiresValue(std::string arg, OptType t);
     284    void checkMandatories();
    288285
    289286    ///Start the parsing process
     
    297294
    298295    ///Give back the command name (the 0th argument)
    299     const std::string &commandName() const { return _command_name; }
     296    const std::string &commandName() { return _command_name; }
    300297
    301298    ///Check if an opion has been given to the command.
    302     bool given(std::string op) const
    303     {
    304       Opts::const_iterator i = _opts.find(op);
     299    bool given(std::string op)
     300    {
     301      Opts::iterator i = _opts.find(op);
    305302      return i!=_opts.end()?i->second.set:false;
    306303    }
     
    315312    class RefType
    316313    {
    317       const ArgParser &_parser;
     314      ArgParser &_parser;
    318315      std::string _name;
    319316    public:
    320317      ///\e
    321       RefType(const ArgParser &p,const std::string &n) :_parser(p),_name(n) {}
     318      RefType(ArgParser &p,const std::string &n) :_parser(p),_name(n) {}
    322319      ///\e
    323320      operator bool()
    324321      {
    325         Opts::const_iterator i = _parser._opts.find(_name);
     322        Opts::iterator i = _parser._opts.find(_name);
    326323        LEMON_ASSERT(i!=_parser._opts.end(),
    327324                     std::string()+"Unkown option: '"+_name+"'");
     
    333330      operator std::string()
    334331      {
    335         Opts::const_iterator i = _parser._opts.find(_name);
     332        Opts::iterator i = _parser._opts.find(_name);
    336333        LEMON_ASSERT(i!=_parser._opts.end(),
    337334                     std::string()+"Unkown option: '"+_name+"'");
     
    343340      operator double()
    344341      {
    345         Opts::const_iterator i = _parser._opts.find(_name);
     342        Opts::iterator i = _parser._opts.find(_name);
    346343        LEMON_ASSERT(i!=_parser._opts.end(),
    347344                     std::string()+"Unkown option: '"+_name+"'");
     
    355352      operator int()
    356353      {
    357         Opts::const_iterator i = _parser._opts.find(_name);
     354        Opts::iterator i = _parser._opts.find(_name);
    358355        LEMON_ASSERT(i!=_parser._opts.end(),
    359356                     std::string()+"Unkown option: '"+_name+"'");
     
    369366    ///Give back the value of an option.
    370367    ///\sa RefType
    371     RefType operator[](const std::string &n) const
     368    RefType operator[](const std::string &n)
    372369    {
    373370      return RefType(*this, n);
     
    378375    ///Give back a reference to a vector consisting of the program arguments
    379376    ///not starting with a '-' character.
    380     const std::vector<std::string> &files() const { return _file_args; }
     377    std::vector<std::string> &files() { return _file_args; }
    381378
    382379  };
Note: See TracChangeset for help on using the changeset viewer.