COIN-OR::LEMON - Graph Library

Changeset 2410:fe46b61da4e3 in lemon-0.x for lemon/arg_parser.cc


Ignore:
Timestamp:
03/14/07 19:01:04 (13 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3241
Message:

dim_to_lgf

  • use the argparser class

arg_parser improvments

  • usage of assert in cc
  • const char argv

error

  • handling the string parameter
File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/arg_parser.cc

    r2406 r2410  
    2727  }
    2828
    29   ArgParser::ArgParser(int argc, char **argv) :_argc(argc), _argv(argv),
    30                                                _command_name(argv[0]) {
     29  ArgParser::ArgParser(int argc, const char **argv) :_argc(argc), _argv(argv),
     30                                                     _command_name(argv[0]) {
    3131    funcOption("-help","Print a short help message",_showHelp,this);
    3232    synonym("help","-help");
     
    135135
    136136  ArgParser &ArgParser::refOption(const std::string &name,
    137                                const std::string &help,
    138                                double &ref, bool obl)
     137                                  const std::string &help,
     138                                  double &ref, bool obl)
    139139  {
    140140    ParData p;
     
    149149
    150150  ArgParser &ArgParser::refOption(const std::string &name,
    151                                const std::string &help,
    152                                bool &ref, bool obl)
     151                                  const std::string &help,
     152                                  bool &ref, bool obl)
    153153  {
    154154    ParData p;
     
    198198  {
    199199    Opts::iterator i = _opts.find(opt);
    200     if(i==_opts.end()) throw LogicError();
    201     else if(i->second.ingroup) throw LogicError();
    202     else {
    203       GroupData &g=_groups[group];
    204       g.opts.push_back(opt);
    205       i->second.ingroup=true;
    206     }
     200    LEMON_ASSERT(i!=_opts.end(), "Unknown option: '"+opt+"'");
     201    LEMON_ASSERT(!(i->second.ingroup),
     202                 "Option already in option group: '"+opt+"'");
     203    GroupData &g=_groups[group];
     204    g.opts.push_back(opt);
     205    i->second.ingroup=true;
    207206    return *this;
    208207  }
     
    220219    Opts::iterator o = _opts.find(opt);
    221220    Opts::iterator s = _opts.find(syn);
    222     if(o==_opts.end()||s!=_opts.end())
    223       throw LogicError();
    224     else {
    225       ParData p;
    226       p.help=opt;
    227       p.mandatory=false;
    228       p.syn=true;
    229       _opts[syn]=p;
    230       o->second.has_syn=true;
    231     }
     221    LEMON_ASSERT(o!=_opts.end(), "Unknown option: '"+opt+"'");
     222    LEMON_ASSERT(s==_opts.end(), "Option already used: '"+syn+"'");
     223    ParData p;
     224    p.help=opt;
     225    p.mandatory=false;
     226    p.syn=true;
     227    _opts[syn]=p;
     228    o->second.has_syn=true;
    232229    return *this;
    233230  }
Note: See TracChangeset for help on using the changeset viewer.