Jelajahi Sumber

refactor prolog parser

lildurden 7 tahun lalu
induk
melakukan
aab5b3ac1d
1 mengubah file dengan 0 tambahan dan 160 penghapusan
  1. 0 160
      includes/prologparse.hh

+ 0 - 160
includes/prologparse.hh

@@ -1,160 +0,0 @@
-#ifndef PROLOGPARSE_HH
-#define PROLOGPARSE_HH
-#include <gprolog.h>
-#include <string>
-#include <iostream>
-#include <tuple>
-#include <vector>
-#include <typeinfo>
-
-#include <cstddef>
-
-//template<class Value, class ...Values>
-
-class prologparse{
-
-private:
-  std::vector<PlTerm> gEvents;
-  //unsigned int cpt=0;
-  //template<typename Value>
-  
-  
-  // template<typename Value>
-  // 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<<" "<<typeid(element).name()<<std::endl;
-  // }
-  void unstack(int element){
-    gEvents.push_back(Mk_Integer(element));
-  }
-  void unstack(const char* element){
-    gEvents.push_back(Mk_String(element));
-  }
-  void unstack(std::string element){
-    gEvents.push_back(Mk_String(const_cast<char*>(element.c_str())));
-  }
-  void unstack(float element){
-    gEvents.push_back(Mk_Float(element));
-  }
-  template<typename ...Values>
-  void unstack(int element,Values... elements){
-    gEvents.push_back(Mk_Integer(element));
-    unstack(elements...);
-  }
-  template<typename ...Values>
-  void unstack(const char* element,Values... elements){
-    gEvents.push_back(Mk_String(element));
-    unstack(elements...);
-  }
-  template<typename ...Values>
-  void unstack(std::string element,Values... elements){
-    gEvents.push_back(Mk_String(const_cast<char*>(element.c_str())));
-    unstack(elements...);
-  }
-  template<typename ...Values>
-  void unstack(float element,Values... elements){
-    gEvents.push_back(Mk_Float(element));
-    unstack(elements...);
-  }
-  
-public:
-  /** \brief Void constructor
-   * 
-   * add desc 
-   * 
-   */
-  prologparse(){
-    std::cout<<"lol"<<std::endl;
-    //
-     // int stt=Start_Prolog(1, new char*());
-     // std::cout<<stt<<std::endl;
-     //Try_Execute_Top_Level();
-  }
-  void resetPl(){
-    Pl_Reset_Prolog ();
-  }
-  int startPl(){
-    return Start_Prolog(1, new char*());
-  }
-  void stopPl(){Stop_Prolog();}
-  // /** \brief Destructor
-  //  * 
-  //  * add desc
-  //  *
-  //  */
-  ~prologparse(){
-    //Stop_Prolog();
-  }
-  // PlTerm to_gEvent(std::string type_, std::string location_, unsigned long begin_, unsigned long end_);
-
-  //bool intersect(int au,)
-
-  int rule(std::string name){
-    Pl_Reset_Prolog ();
-    PlTerm plt[1];
-    
-    int func;
-    int gRes=-1;
-    func = Find_Atom(const_cast<char*>(name.c_str()));
-    Pl_Query_Begin(PL_FALSE);
-    std::cout<<func<<std::endl;
-    gRes = Pl_Query_Call(func, 1, plt);
-    Pl_Query_End(PL_KEEP_FOR_PROLOG);
-    if(gRes==1){
-      std::cout<<"true"<<std::endl;
-    }
-    gEvents.clear();
-    return gRes;
-    //std::cout<<gRes << " "<<true<<std::endl;
-  }
-
-  template<typename Value,typename... Values> 
-  int rule(std::string name,Value val,Values... vals){
-    Pl_Reset_Prolog ();
-    unstack(val,vals...);
-    std::tuple<Value,Values...> tupl(val,vals...);
-    //gEvents.push_back(Mk_Variable());
-    PlTerm* plt=&gEvents[0];
-        std::cout<<gEvents.size()<<std::endl;
-
-    int func;
-    int result=-1;
-    func = Find_Atom(const_cast<char*>(name.c_str()));
-    std::cout<<func<<" "<<Rd_Float(plt[0])<<std::endl;
-    //plt[0]=1;plt[1]=1;plt[2]=1;plt[3]=1;plt[4]=1;plt[5]=1;plt[6]=1;
-    
-    Pl_Query_Begin(PL_FALSE);
-    result=Pl_Query_Call(func, gEvents.size(), plt);
-    Pl_Query_End(PL_KEEP_FOR_PROLOG);
-    if(result==1){
-      std::cout<<"true"<<std::endl;
-    }else{
-      if(result==0){
-    	std::cout<<"false"<<std::endl;
-      }
-    }
-    gEvents.clear();
-    return result;
-  }
-
-  template<typename Value>
-  void process_one_type(){
-    std::cout<<typeid(Value).name()<<" ";
-  }
-  
-  template <typename... Values>
-  void unpack(){
-    int _[]={0,(process_one_type<Values>(),0)...};
-    (void)_;
-    std::cout<<std::endl;
-  }
-  
-};
-
-#endif // PROLOGPARSE_HH