std::vector<YAPTerm> YAPPairTerm::listToVector() { Term *tailp; Term t1 = gt(); Int l = Yap_SkipList(&t1, &tailp); if (l < 0) { throw YAPError(SOURCE(), TYPE_ERROR_LIST, (t), nullptr); } std::vector<YAPTerm> o = *new std::vector<YAPTerm>(l); int i = 0; Term t = gt(); while (t != TermNil) { o[i++] = YAPTerm(HeadOfTerm(t)); t = TailOfTerm(t); } return o; }
YAPTerm YAPApplTerm::getArg(int arg) { BACKUP_H(); YAPTerm to = YAPTerm( ArgOfTerm(arg, gt() ) ); RECOVER_H(); return to; }
const char *YAPQuery::text() { return YAPTerm(goal).text(); }