@@ -62,23 +62,37 @@ void parseEvalProgramFromFile(std::string fname, Impl impl, bool debug)
6262 std::cout << " Parsing succeeded\n " ;
6363 std::cout << " -------------------------\n " ;
6464 std::cout << " >>>>>> Eval result <<<<<<\n " ;
65- std::cout << " -------------------------\n\n " ;
65+ std::cout << " -------------------------\n " ;
6666
6767 std::shared_ptr<SBG ::LIB ::SetAF> set_fact
6868 = std::make_shared<SBG ::LIB ::UnordAF>();
69-
7069 switch (impl.set_impl_ ) {
70+ case 1 :
71+ std::cout << " >>>>>> Ordered Sets <<<<<<\n " ;
72+ std::cout << " -------------------------\n\n " ;
73+ set_fact = std::make_shared<SBG ::LIB ::OrdAF>();
74+ break ;
7175 case 2 :
76+ std::cout << " >>>>>> Ordered Dense Sets <<<<<<\n " ;
77+ std::cout << " -------------------------\n\n " ;
7278 set_fact = std::make_shared<SBG ::LIB ::OrdDenseAF>();
79+ break ;
7380
7481 default :
82+ std::cout << " >>>>>> Unordered Sets <<<<<<\n " ;
83+ std::cout << " -------------------------\n\n " ;
7584 break ;
7685 }
7786
7887 SBG ::LIB ::MapAF map_fact (*set_fact);
7988 std::shared_ptr<SBG ::LIB ::PWMapAF> fact
8089 = std::make_shared<SBG ::LIB ::UnordPWMapAF>(map_fact);
8190 switch (impl.pw_impl_ ) {
91+ case 1 :
92+ std::cout << " >>>>>> Ordered PWMaps <<<<<<\n " ;
93+ std::cout << " -------------------------\n\n " ;
94+ fact = std::make_shared<SBG ::LIB ::OrdPWMapAF>(map_fact);
95+ break ;
8296 default :
8397 break ;
8498 }
@@ -106,6 +120,8 @@ void usage()
106120 std::cout << " -f, --file SBG program file used as input\n " ;
107121 std::cout << " -s, --set_impl Choose set implementation: 0 unordered sets,\n " ;
108122 std::cout << " 1 ordered sets, 2 ordered dense sets.\n " ;
123+ std::cout << " -p, --pwmap_impl Choose pwmap implementation: 0 unordered,\n " ;
124+ std::cout << " 1 ordered.\n " ;
109125 std::cout << " -h, --help Display this information and exit\n " ;
110126 std::cout << " -d, --debug Activate debug info\n " ;
111127 std::cout << " -v, --version Display version information and exit\n\n " ;
@@ -232,18 +248,19 @@ void version()
232248int main (int argc, char **argv)
233249{
234250 std::string filename;
235- int opt, set_impl = 0 , pw_impl = 0 ;
251+ int opt, set_impl = 0 , pwmap_impl = 0 ;
236252 extern char * optarg;
237253 bool debug = false ;
238254
239255 while (true ) {
240256 static struct option long_options[] = {{" file" , required_argument, 0 , ' f' }
241257 , {" set_impl" , required_argument, 0 , ' s' }
258+ , {" pwmap_impl" , required_argument, 0 , ' p' }
242259 , {" help" , no_argument, 0 , ' h' }
243260 , {" debug" , no_argument, 0 , ' d' }
244261 , {" version" , no_argument, 0 , ' v' }
245262 , {0 , 0 , 0 , 0 }};
246- opt = getopt_long (argc, argv, " f:s:hdv" , long_options, nullptr );
263+ opt = getopt_long (argc, argv, " f:s:p: hdv" , long_options, nullptr );
247264 if (opt == EOF )
248265 break ;
249266 switch (opt) {
@@ -253,6 +270,9 @@ int main(int argc, char**argv)
253270 case ' s' :
254271 set_impl = std::stoi (optarg);
255272 break ;
273+ case ' p' :
274+ pwmap_impl = std::stoi (optarg);
275+ break ;
256276 case ' h' :
257277 usage ();
258278 exit (0 );
@@ -272,7 +292,7 @@ int main(int argc, char**argv)
272292 }
273293
274294 if (!filename.empty ())
275- parseEvalProgramFromFile (filename, Impl (set_impl, pw_impl ), debug);
295+ parseEvalProgramFromFile (filename, Impl (set_impl, pwmap_impl ), debug);
276296 else
277297 SBG::Util::ERROR (" A filename should be provided\n " );
278298
0 commit comments