#ifndef PROLOGPARSE_HH #define PROLOGPARSE_HH #include #include #include #include #include #include #include //template class prologparse{ private: std::vector gEvents; //unsigned int cpt=0; //template // template // void unstack(Value element){ // if(typeid(element)==typeid(int)){ // variadic_types.push_back("int"); // }else{ // if(typeid(element)==typeid(const char*)){ // variadic_types.push_back("string"); // } // } // //std::cout<(element.c_str()))); } void unstack(float element){ gEvents.push_back(Mk_Float(element)); } template void unstack(int element,Values... elements){ gEvents.push_back(Mk_Integer(element)); unstack(elements...); } template void unstack(const char* element,Values... elements){ gEvents.push_back(Mk_String(element)); unstack(elements...); } template void unstack(std::string element,Values... elements){ gEvents.push_back(Mk_String(const_cast(element.c_str()))); unstack(elements...); } template void unstack(float element,Values... elements){ gEvents.push_back(Mk_Float(element)); unstack(elements...); } public: /** \brief Void constructor * * add desc * */ prologparse(){ std::cout<<"lol"<(name.c_str())); Pl_Query_Begin(PL_FALSE); std::cout< int rule(std::string name,Value val,Values... vals){ Pl_Reset_Prolog (); unstack(val,vals...); std::tuple tupl(val,vals...); //gEvents.push_back(Mk_Variable()); PlTerm* plt=&gEvents[0]; std::cout<(name.c_str())); std::cout< void process_one_type(){ std::cout< void unpack(){ int _[]={0,(process_one_type(),0)...}; (void)_; std::cout<