cprover
parse_options.cpp
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
9 #include "parse_options.h"
10 
11 #include <iostream>
12 
13 #if defined (_WIN32)
14 #define EX_OK 0
15 #define EX_USAGE 1
16 #else
17 #include <sysexits.h>
18 #endif
19 
20 #include "cmdline.h"
21 #include "signal_catcher.h"
22 
24  const std::string &_optstring, int argc, const char **argv)
25 {
26  std::string optstring=std::string("?h(help)")+_optstring;
27  parse_result=cmdline.parse(argc, argv, optstring.c_str());
28 }
29 
31 {
32 }
33 
35 {
36  std::cerr << "Usage error!\n\n";
37  help();
38 }
39 
41 {
42  if(parse_result)
43  {
44  usage_error();
45  return EX_USAGE;
46  }
47 
48  if(cmdline.isset('?') || cmdline.isset('h') || cmdline.isset("help"))
49  {
50  help();
51  return EX_OK;
52  }
53 
54  // install signal catcher
56 
57  return doit();
58 }
virtual int doit()=0
virtual void help()
virtual int main()
virtual bool parse(int argc, const char **argv, const char *optstring)
Definition: cmdline.cpp:116
virtual bool isset(char option) const
Definition: cmdline.cpp:30
void install_signal_catcher()
virtual void usage_error()
parse_options_baset(const std::string &optstring, int argc, const char **argv)