TEST(StatRepo, SingletonsAreTheSame) { auto repo = StatRepo::Instance("namespace"); auto repo1 = StatRepo::Instance(); EXPECT_EQ(repo.get(), repo1.get()); EXPECT_EQ(repo->_namespace(), "namespace"); EXPECT_EQ(repo1->_namespace(), "namespace"); }
/** HasNamespaces **/ Namespace& Namespace::addNamespace(string name) { Namespace _namespace(name, *this); this->_namespaces.insert( pair<string, Namespace>(name, _namespace) ); return this->getNamespace(name); }
int main(int argc, char ** argv) { ::diagnostics::Logging_Config::init(); if(argc < 2){ usage(); return 1; } ::std::string root_dir(""); ::std::string _namespace(""); ::std::string include_prefix(""); ::std::string formula = (""); bool include_type = false; ::std::string bool_str("false"); ::std::string pos_nfa("Pos_Nfa"); ::std::string neg_nfa("Neg_Nfa"); ::std::string classname(""); while(argc > 1 && argv[1][0] == '-'){ switch(argv[1][1]){ case 'r': root_dir = argv[2]; --argc; ++argv; break; case 'n': _namespace = argv[2]; --argc; ++argv; break; case 'p': include_prefix = argv[2]; --argc; ++argv; break; case 'i': bool_str = argv[2]; --argc; ++argv; break; case 'c': classname = argv[2]; pos_nfa = ""; neg_nfa = ""; pos_nfa = "Pos_" + classname; neg_nfa = "Neg_" + classname; --argc; ++argv; break; case 'f': formula = argv[2]; --argc; ++argv; break; default: usage(); break; } --argc; ++argv; } if(formula == ""){ ::std::cout << "You must specify a formula! Exiting..." << ::std::endl; return 1; } if(bool_str == "true") include_type = true; typedef ::ltl2fsm::Graphviz_Representation Representation_t; typedef ::ltl2fsm::Ltl_To_Nfa_Pair_Module<Representation_t> Ltl_To_Nfa_Pair_Module_t; typedef ::ltl2fsm::Nfa_To_Cpp_Module<Representation_t> Nfa_To_Cpp_Module_t; Ltl_To_Nfa_Pair_Module_t ltl_to_nfa_pair_module; Ltl_To_Nfa_Pair_Module_t::Nfa_Pair_t nfa_pair; Nfa_To_Cpp_Module_t nfa_to_cpp_module; try{ nfa_pair = ltl_to_nfa_pair_module.execute(formula); } catch( ::ltl2fsm::Invalid_Ltl_Syntax const & ils){ ::std::cout << ils.what() << ::std::endl; return 1; } catch( ::ltl2fsm::Fork_Error const & fe ){ ::std::cout << fe.what() << ::std::endl; return 1; } if(root_dir != ""){ ::std::string root_dir_pos_nfa = root_dir + pos_nfa; ::std::ofstream pos_nfa_cpp((root_dir_pos_nfa + ".cpp").c_str()); ::std::ofstream pos_nfa_hpp((root_dir_pos_nfa + ".hpp").c_str()); nfa_to_cpp_module.execute(*nfa_pair.first, pos_nfa_cpp, pos_nfa_hpp, pos_nfa, _namespace, include_prefix, formula, include_type); ::std::string root_dir_neg_nfa = root_dir + neg_nfa; ::std::ofstream neg_nfa_cpp((root_dir_neg_nfa + ".cpp").c_str()); ::std::ofstream neg_nfa_hpp((root_dir_neg_nfa + ".hpp").c_str()); nfa_to_cpp_module.execute(*nfa_pair.second, neg_nfa_cpp, neg_nfa_hpp, neg_nfa, _namespace, include_prefix, ::std::string("!(" + formula + ")"), include_type); } else{ nfa_to_cpp_module.execute(*nfa_pair.first, ::std::cout, ::std::cout, pos_nfa, _namespace, include_prefix, formula, include_type); nfa_to_cpp_module.execute(*nfa_pair.second, ::std::cout, ::std::cout, neg_nfa, _namespace, include_prefix, ::std::string("!(" + formula + ")"), include_type); } return 0; }