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