1 #ifndef CHUFFED_MDDOPTS__H
2 #define CHUFFED_MDDOPTS__H
3 #include <string>
4 
5 class MDDOpts {
6 public:
7   enum ExplAlg { E_MINIMAL, E_GREEDY, E_NAIVE };
8   enum ExplStrat { E_TEMP, E_KEEP };
9   enum Decomp { D_PROP, D_DOMAIN, D_TSEITIN };
10 
MDDOpts(void)11   MDDOpts(void)
12     : expl_alg(E_GREEDY), expl_strat(E_KEEP), decomp(D_PROP)
13   { }
14 
MDDOpts(const MDDOpts & o)15   MDDOpts(const MDDOpts& o)
16     : expl_alg(o.expl_alg), expl_strat(o.expl_strat), decomp(o.decomp)
17   { }
18 
parse_arg(const std::string & arg)19   void parse_arg(const std::string& arg)
20   {
21     if(arg == "explain_minimal")
22       expl_alg = E_MINIMAL;
23     else if(arg == "explain_greedy")
24       expl_alg = E_GREEDY;
25     else if(arg == "discard_explanations")
26       expl_strat = E_TEMP;
27     else if(arg == "store_explanations")
28       expl_strat = E_KEEP;
29   }
30   ExplAlg expl_alg;
31   ExplStrat expl_strat;
32   Decomp decomp;
33 };
34 
35 #endif
36