Changeset 214:60eecd3fe37a in lemon-main for lemon/arg_parser.cc
- Timestamp:
- 07/13/08 23:05:25 (17 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/arg_parser.cc
r210 r214 240 240 } 241 241 242 void ArgParser::show(std::ostream &os,Opts:: iterator i)242 void ArgParser::show(std::ostream &os,Opts::const_iterator i) const 243 243 { 244 244 os << "-" << i->first; 245 245 if(i->second.has_syn) 246 for(Opts:: iterator j=_opts.begin();j!=_opts.end();++j)246 for(Opts::const_iterator j=_opts.begin();j!=_opts.end();++j) 247 247 if(j->second.syn&&j->second.help==i->first) 248 248 os << "|-" << j->first; … … 262 262 } 263 263 264 void ArgParser::show(std::ostream &os,Groups:: iterator i)265 { 266 GroupData::Opts:: iterator o=i->second.opts.begin();264 void ArgParser::show(std::ostream &os,Groups::const_iterator i) const 265 { 266 GroupData::Opts::const_iterator o=i->second.opts.begin(); 267 267 while(o!=i->second.opts.end()) { 268 268 show(os,_opts.find(*o)); … … 272 272 } 273 273 274 void ArgParser::showHelp(Opts:: iterator i)274 void ArgParser::showHelp(Opts::const_iterator i) const 275 275 { 276 276 if(i->second.help.size()==0||i->second.syn) return; … … 280 280 std::cerr << " " << i->second.help << std::endl; 281 281 } 282 void ArgParser::showHelp(std::vector<ArgParser::OtherArg>::iterator i) 282 void ArgParser::showHelp(std::vector<ArgParser::OtherArg>::const_iterator i) 283 const 283 284 { 284 285 if(i->help.size()==0) return; … … 287 288 } 288 289 289 void ArgParser::shortHelp() 290 void ArgParser::shortHelp() const 290 291 { 291 292 const unsigned int LINE_LEN=77; … … 293 294 std::cerr << "Usage:\n " << _command_name; 294 295 int pos=_command_name.size()+2; 295 for(Groups:: iterator g=_groups.begin();g!=_groups.end();++g) {296 for(Groups::const_iterator g=_groups.begin();g!=_groups.end();++g) { 296 297 std::ostringstream cstr; 297 298 cstr << ' '; … … 306 307 pos+=cstr.str().size(); 307 308 } 308 for(Opts:: iterator i=_opts.begin();i!=_opts.end();++i)309 for(Opts::const_iterator i=_opts.begin();i!=_opts.end();++i) 309 310 if(!i->second.ingroup&&!i->second.syn) { 310 311 std::ostringstream cstr; … … 320 321 pos+=cstr.str().size(); 321 322 } 322 for(std::vector<OtherArg>:: iterator i=_others_help.begin();323 for(std::vector<OtherArg>::const_iterator i=_others_help.begin(); 323 324 i!=_others_help.end();++i) 324 325 { … … 336 337 } 337 338 338 void ArgParser::showHelp() 339 void ArgParser::showHelp() const 339 340 { 340 341 shortHelp(); 341 342 std::cerr << "Where:\n"; 342 for(std::vector<OtherArg>:: iterator i=_others_help.begin();343 for(std::vector<OtherArg>::const_iterator i=_others_help.begin(); 343 344 i!=_others_help.end();++i) showHelp(i); 344 for(Opts:: iterator i=_opts.begin();i!=_opts.end();++i) showHelp(i);345 for(Opts::const_iterator i=_opts.begin();i!=_opts.end();++i) showHelp(i); 345 346 exit(1); 346 347 } 347 348 348 349 349 void ArgParser::unknownOpt(std::string arg) 350 void ArgParser::unknownOpt(std::string arg) const 350 351 { 351 352 std::cerr << "\nUnknown option: " << arg << "\n"; … … 355 356 } 356 357 357 void ArgParser::requiresValue(std::string arg, OptType t) 358 void ArgParser::requiresValue(std::string arg, OptType t) const 358 359 { 359 360 std::cerr << "Argument '" << arg << "' requires a"; … … 376 377 377 378 378 void ArgParser::checkMandatories() 379 void ArgParser::checkMandatories() const 379 380 { 380 381 bool ok=true; 381 for(Opts:: iterator i=_opts.begin();i!=_opts.end();++i)382 for(Opts::const_iterator i=_opts.begin();i!=_opts.end();++i) 382 383 if(i->second.mandatory&&!i->second.set) 383 384 { … … 388 389 showHelp(i); 389 390 } 390 for(Groups:: iterator i=_groups.begin();i!=_groups.end();++i)391 for(Groups::const_iterator i=_groups.begin();i!=_groups.end();++i) 391 392 if(i->second.mandatory||i->second.only_one) 392 393 { 393 394 int set=0; 394 for(GroupData::Opts:: iterator o=i->second.opts.begin();395 for(GroupData::Opts::const_iterator o=i->second.opts.begin(); 395 396 o!=i->second.opts.end();++o) 396 397 if(_opts.find(*o)->second.set) ++set; … … 399 400 ": At least one of the following arguments is mandatory.\n"; 400 401 ok=false; 401 for(GroupData::Opts:: iterator o=i->second.opts.begin();402 for(GroupData::Opts::const_iterator o=i->second.opts.begin(); 402 403 o!=i->second.opts.end();++o) 403 404 showHelp(_opts.find(*o)); … … 407 408 ": At most one of the following arguments can be given.\n"; 408 409 ok=false; 409 for(GroupData::Opts:: iterator o=i->second.opts.begin();410 for(GroupData::Opts::const_iterator o=i->second.opts.begin(); 410 411 o!=i->second.opts.end();++o) 411 412 showHelp(_opts.find(*o));
Note: See TracChangeset
for help on using the changeset viewer.