move to more recent interface.

This commit is contained in:
Vitor Santos Costa 2010-01-15 00:49:05 +00:00
parent 2727c04935
commit ff628b8e78
2 changed files with 50 additions and 33 deletions

View File

@ -341,22 +341,22 @@ extern X_API atom_t PL_functor_name(functor_t);
extern X_API int PL_functor_arity(functor_t);
/* end PL_new_* functions =============================*/
/* begin PL_put_* functions =============================*/
extern X_API void PL_cons_functor(term_t, functor_t,...);
extern X_API void PL_cons_functor_v(term_t, functor_t,term_t);
extern X_API void PL_cons_list(term_t, term_t, term_t);
extern X_API void PL_put_atom(term_t, atom_t);
extern X_API void PL_put_atom_chars(term_t, const char *);
extern X_API void PL_put_float(term_t, double);
extern X_API void PL_put_functor(term_t, functor_t t);
extern X_API void PL_put_int64(term_t, int64_t);
extern X_API void PL_put_integer(term_t, long);
extern X_API void PL_put_list(term_t);
extern X_API void PL_put_list_chars(term_t, const char *);
extern X_API int PL_cons_functor(term_t, functor_t,...);
extern X_API int PL_cons_functor_v(term_t, functor_t,term_t);
extern X_API int PL_cons_list(term_t, term_t, term_t);
extern X_API int PL_put_atom(term_t, atom_t);
extern X_API int PL_put_atom_chars(term_t, const char *);
extern X_API int PL_put_float(term_t, double);
extern X_API int PL_put_functor(term_t, functor_t t);
extern X_API int PL_put_int64(term_t, int64_t);
extern X_API int PL_put_integer(term_t, long);
extern X_API int PL_put_list(term_t);
extern X_API int PL_put_list_chars(term_t, const char *);
extern X_API void PL_put_nil(term_t);
extern X_API void PL_put_pointer(term_t, void *);
extern X_API void PL_put_string_chars(term_t, const char *);
extern X_API void PL_put_term(term_t, term_t);
extern X_API void PL_put_variable(term_t);
extern X_API int PL_put_pointer(term_t, void *);
extern X_API int PL_put_string_chars(term_t, const char *);
extern X_API int PL_put_term(term_t, term_t);
extern X_API int PL_put_variable(term_t);
extern X_API int PL_compare(term_t, term_t);
/* end PL_put_* functions =============================*/
/* begin PL_unify_* functions =============================*/

View File

@ -788,7 +788,7 @@ X_API int PL_functor_arity(functor_t f)
/* begin PL_put_* functions =============================*/
X_API void PL_cons_functor(term_t d, functor_t f,...)
X_API int PL_cons_functor(term_t d, functor_t f,...)
{
va_list ap;
int arity, i;
@ -797,12 +797,12 @@ X_API void PL_cons_functor(term_t d, functor_t f,...)
if (IsAtomTerm((Term)ff)) {
Yap_PutInSlot(d, (YAP_Term)f);
return;
return TRUE;
}
arity = ArityOfFunctor(ff);
if (arity > TMP_BUF_SIZE/sizeof(YAP_CELL)) {
fprintf(stderr,"PL_cons_functor: arity too large (%d)\n", arity);
return;
return FALSE;
}
va_start (ap, f);
for (i = 0; i < arity; i++) {
@ -813,45 +813,51 @@ X_API void PL_cons_functor(term_t d, functor_t f,...)
Yap_PutInSlot(d,YAP_MkPairTerm(tmp[0],tmp[1]));
else
Yap_PutInSlot(d,YAP_MkApplTerm((YAP_Functor)ff,arity,tmp));
return TRUE;
}
X_API void PL_cons_functor_v(term_t d, functor_t f,term_t a0)
X_API int PL_cons_functor_v(term_t d, functor_t f,term_t a0)
{
int arity;
Functor ff = SWIFunctorToFunctor(f);
if (IsAtomTerm((Term)ff)) {
Yap_PutInSlot(d,(Term)ff);
return;
return TRUE;
}
arity = ArityOfFunctor(ff);
if (arity == 2 && ff == FunctorDot)
Yap_PutInSlot(d,YAP_MkPairTerm(Yap_GetFromSlot(a0),Yap_GetFromSlot(a0+1)));
else
Yap_PutInSlot(d,YAP_MkApplTerm((YAP_Functor)ff,arity,YAP_AddressFromSlot(a0)));
return TRUE;
}
X_API void PL_cons_list(term_t d, term_t h, term_t t)
X_API int PL_cons_list(term_t d, term_t h, term_t t)
{
Yap_PutInSlot(d,YAP_MkPairTerm(Yap_GetFromSlot(h),Yap_GetFromSlot(t)));
return TRUE;
}
X_API void PL_put_atom(term_t t, atom_t a)
X_API int PL_put_atom(term_t t, atom_t a)
{
Yap_PutInSlot(t,MkAtomTerm(SWIAtomToAtom(a)));
return TRUE;
}
X_API void PL_put_atom_chars(term_t t, const char *s)
X_API int PL_put_atom_chars(term_t t, const char *s)
{
Yap_PutInSlot(t,MkAtomTerm(Yap_LookupAtom((char *)s)));
return TRUE;
}
X_API void PL_put_float(term_t t, double fl)
X_API int PL_put_float(term_t t, double fl)
{
Yap_PutInSlot(t,YAP_MkFloatTerm(fl));
return TRUE;
}
X_API void PL_put_functor(term_t t, functor_t f)
X_API int PL_put_functor(term_t t, functor_t f)
{
long int arity;
Functor ff = SWIFunctorToFunctor(f);
@ -865,14 +871,16 @@ X_API void PL_put_functor(term_t t, functor_t f)
else
Yap_PutInSlot(t,YAP_MkNewApplTerm((YAP_Functor)ff,arity));
}
return TRUE;
}
X_API void PL_put_integer(term_t t, long n)
X_API int PL_put_integer(term_t t, long n)
{
Yap_PutInSlot(t,YAP_MkIntTerm(n));
return TRUE;
}
X_API void PL_put_int64(term_t t, int64_t n)
X_API int PL_put_int64(term_t t, int64_t n)
{
#if USE_GMP
char s[64];
@ -881,17 +889,22 @@ X_API void PL_put_int64(term_t t, int64_t n)
sprintf(s, "%lld", (long long int)n);
mpz_init_set_str (&rop, s, 10);
Yap_PutInSlot(t,YAP_MkBigNumTerm((void *)&rop));
return TRUE;
#else
return FALSE;
#endif
}
X_API void PL_put_list(term_t t)
X_API int PL_put_list(term_t t)
{
Yap_PutInSlot(t,YAP_MkNewPairTerm());
return TRUE;
}
X_API void PL_put_list_chars(term_t t, const char *s)
X_API int PL_put_list_chars(term_t t, const char *s)
{
Yap_PutInSlot(t,YAP_BufferToString((char *)s));
return TRUE;
}
X_API void PL_put_nil(term_t t)
@ -902,25 +915,29 @@ X_API void PL_put_nil(term_t t)
/* SWI: void PL_put_pointer(term_t -t, void *ptr)
YAP: NO EQUIVALENT */
/* SAM TO DO */
X_API void PL_put_pointer(term_t t, void *ptr)
X_API int PL_put_pointer(term_t t, void *ptr)
{
YAP_Term tptr = YAP_MkIntTerm((long int)ptr);
Yap_PutInSlot(t,tptr);
return TRUE;
}
X_API void PL_put_string_chars(term_t t, const char *s)
X_API int PL_put_string_chars(term_t t, const char *s)
{
Yap_PutInSlot(t,YAP_BufferToString((char *)s));
return TRUE;
}
X_API void PL_put_term(term_t d, term_t s)
X_API int PL_put_term(term_t d, term_t s)
{
Yap_PutInSlot(d,Yap_GetFromSlot(s));
return TRUE;
}
X_API void PL_put_variable(term_t t)
X_API int PL_put_variable(term_t t)
{
Yap_PutInSlot(t,YAP_MkVarTerm());
return TRUE;
}
/* end PL_put_* functions =============================*/