#ifndef __PREDICATE_H__ #define __PREDICATE_H__ #include "parameter.h" #include #include using namespace std; class predicate { public: string id; vector pred_list; string toString() { //schemes stringstream s; s << id << "("; for(unsigned int i = 0; i < pred_list.size(); i++) { s << pred_list[i].param; if(i < pred_list.size()-1) { s << ","; } } s << ")\n"; return s.str(); } string toString(bool a) { //facts stringstream s; s << id << "("; for(unsigned int i = 0; i < pred_list.size(); i++) { s << "'" << pred_list[i].param << "'"; if(i < pred_list.size()-1) { s << ","; } } s << ").\n"; return s.str(); } string toString(double a) { //query stringstream s; s << id << "("; for(unsigned int i = 0; i < pred_list.size(); i++) { if(pred_list[i].type == "STRING") { s << "'" << pred_list[i].param << "'"; if(i < pred_list.size()-1) { s << ","; } } if(pred_list[i].type == "ID") { s << pred_list[i].param; if(i < pred_list.size()-1) { s << ","; } } } s << ")?\n"; return s.str(); } string toString(int a) { //rules stringstream s; s << id << "("; for(unsigned int i = 0; i < pred_list.size(); i++) { if(pred_list[i].type == "STRING") { s << "'" << pred_list[i].param << "'"; if(i < pred_list.size()-1) { s << ","; } } if(pred_list[i].type == "ID") { s << pred_list[i].param; if(i < pred_list.size()-1) { s << ","; } } } s << ")"; return s.str(); } }; #endif