all global symbols should now start with _YAP
global functions should not be called from within file (bug in binutils/WIN32). git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@675 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
83
C/mavar.c
83
C/mavar.c
@@ -35,32 +35,32 @@ p_setarg(void)
|
||||
CELL ti = Deref(ARG1), ts = Deref(ARG2);
|
||||
Int i;
|
||||
if (IsVarTerm(ti)) {
|
||||
Error(INSTANTIATION_ERROR,ti,"setarg/3");
|
||||
_YAP_Error(INSTANTIATION_ERROR,ti,"setarg/3");
|
||||
return(FALSE);
|
||||
} else {
|
||||
if (IsIntTerm(ti))
|
||||
i = IntOfTerm(ti);
|
||||
else {
|
||||
union arith_ret v;
|
||||
if (Eval(ti, &v) == long_int_e) {
|
||||
if (_YAP_Eval(ti, &v) == long_int_e) {
|
||||
i = v.Int;
|
||||
} else {
|
||||
Error(TYPE_ERROR_INTEGER,ti,"setarg/3");
|
||||
_YAP_Error(TYPE_ERROR_INTEGER,ti,"setarg/3");
|
||||
return(FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (IsVarTerm(ts)) {
|
||||
Error(INSTANTIATION_ERROR,ts,"setarg/3");
|
||||
_YAP_Error(INSTANTIATION_ERROR,ts,"setarg/3");
|
||||
} else if(IsApplTerm(ts)) {
|
||||
CELL *pt;
|
||||
if (IsExtensionFunctor(FunctorOfTerm(ts))) {
|
||||
Error(TYPE_ERROR_COMPOUND,ts,"setarg/3");
|
||||
_YAP_Error(TYPE_ERROR_COMPOUND,ts,"setarg/3");
|
||||
return(FALSE);
|
||||
}
|
||||
if (i < 0 || i > (Int)ArityOfFunctor(FunctorOfTerm(ts))) {
|
||||
if (i<0)
|
||||
Error(DOMAIN_ERROR_NOT_LESS_THAN_ZERO,ts,"setarg/3");
|
||||
_YAP_Error(DOMAIN_ERROR_NOT_LESS_THAN_ZERO,ts,"setarg/3");
|
||||
return(FALSE);
|
||||
}
|
||||
pt = RepAppl(ts)+i;
|
||||
@@ -70,14 +70,14 @@ p_setarg(void)
|
||||
CELL *pt;
|
||||
if (i != 1 || i != 2) {
|
||||
if (i<0)
|
||||
Error(DOMAIN_ERROR_NOT_LESS_THAN_ZERO,ts,"setarg/3");
|
||||
_YAP_Error(DOMAIN_ERROR_NOT_LESS_THAN_ZERO,ts,"setarg/3");
|
||||
return(FALSE);
|
||||
}
|
||||
pt = RepPair(ts)+i-1;
|
||||
/* the evil deed is to be done now */
|
||||
MaBind(pt, Deref(ARG3));
|
||||
} else {
|
||||
Error(TYPE_ERROR_COMPOUND,ts,"setarg/3");
|
||||
_YAP_Error(TYPE_ERROR_COMPOUND,ts,"setarg/3");
|
||||
return(FALSE);
|
||||
}
|
||||
return(TRUE);
|
||||
@@ -112,7 +112,7 @@ static void
|
||||
CreateTimedVar(Term val)
|
||||
{
|
||||
timed_var *tv = (timed_var *)H;
|
||||
tv->clock = MkIntegerTerm(B->cp_tr-(tr_fr_ptr)TrailBase);
|
||||
tv->clock = MkIntegerTerm(B->cp_tr-(tr_fr_ptr)_YAP_TrailBase);
|
||||
if (B->cp_tr == TR) {
|
||||
/* we run the risk of not making non-determinate bindings before
|
||||
the end of the night */
|
||||
@@ -127,7 +127,7 @@ static void
|
||||
CreateEmptyTimedVar(void)
|
||||
{
|
||||
timed_var *tv = (timed_var *)H;
|
||||
tv->clock = MkIntegerTerm(B->cp_tr-(tr_fr_ptr)TrailBase);
|
||||
tv->clock = MkIntegerTerm(B->cp_tr-(tr_fr_ptr)_YAP_TrailBase);
|
||||
if (B->cp_tr == TR) {
|
||||
/* we run the risk of not making non-determinate bindings before
|
||||
the end of the night */
|
||||
@@ -139,7 +139,8 @@ CreateEmptyTimedVar(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
Term NewTimedVar(CELL val)
|
||||
static Term
|
||||
NewTimedVar(CELL val)
|
||||
{
|
||||
Term out = AbsAppl(H);
|
||||
#if FROZEN_STACKS
|
||||
@@ -156,7 +157,14 @@ Term NewTimedVar(CELL val)
|
||||
return(out);
|
||||
}
|
||||
|
||||
Term NewEmptyTimedVar(void)
|
||||
Term
|
||||
_YAP_NewTimedVar(CELL val)
|
||||
{
|
||||
return NewTimedVar(val);
|
||||
}
|
||||
|
||||
Term
|
||||
_YAP_NewEmptyTimedVar(void)
|
||||
{
|
||||
Term out = AbsAppl(H);
|
||||
#if FROZEN_STACKS
|
||||
@@ -173,20 +181,28 @@ Term NewEmptyTimedVar(void)
|
||||
return(out);
|
||||
}
|
||||
|
||||
Term ReadTimedVar(Term inv)
|
||||
static Term
|
||||
ReadTimedVar(Term inv)
|
||||
{
|
||||
timed_var *tv = (timed_var *)(RepAppl(inv)+1);
|
||||
return(tv->value);
|
||||
}
|
||||
|
||||
Term
|
||||
_YAP_ReadTimedVar(Term inv)
|
||||
{
|
||||
return ReadTimedVar(inv);
|
||||
}
|
||||
|
||||
|
||||
/* update a timed var with a new value */
|
||||
Term UpdateTimedVar(Term inv, Term new)
|
||||
static Term
|
||||
UpdateTimedVar(Term inv, Term new)
|
||||
{
|
||||
timed_var *tv = (timed_var *)(RepAppl(inv)+1);
|
||||
CELL t = tv->value;
|
||||
#if FROZEN_STACKS
|
||||
tr_fr_ptr timestmp = (tr_fr_ptr)TrailBase + IntegerOfTerm(tv->clock);
|
||||
tr_fr_ptr timestmp = (tr_fr_ptr)_YAP_TrailBase + IntegerOfTerm(tv->clock);
|
||||
|
||||
if (B->cp_tr <= timestmp && timestmp <= TR) {
|
||||
/* last assignment more recent than last B */
|
||||
@@ -203,7 +219,7 @@ Term UpdateTimedVar(Term inv, Term new)
|
||||
} else {
|
||||
Term nclock;
|
||||
MaBind(&(tv->value), new);
|
||||
nclock = MkIntegerTerm(TR-(tr_fr_ptr)TrailBase);
|
||||
nclock = MkIntegerTerm(TR-(tr_fr_ptr)_YAP_TrailBase);
|
||||
MaBind(&(tv->clock), nclock);
|
||||
}
|
||||
#else
|
||||
@@ -228,11 +244,18 @@ Term UpdateTimedVar(Term inv, Term new)
|
||||
return(t);
|
||||
}
|
||||
|
||||
/* update a timed var with a new value */
|
||||
Term
|
||||
_YAP_UpdateTimedVar(Term inv, Term new)
|
||||
{
|
||||
return UpdateTimedVar(inv, new);
|
||||
}
|
||||
|
||||
static Int
|
||||
p_create_mutable(void)
|
||||
{
|
||||
Term t = NewTimedVar(Deref(ARG1));
|
||||
return(unify(ARG2,t));
|
||||
return(_YAP_unify(ARG2,t));
|
||||
}
|
||||
|
||||
static Int
|
||||
@@ -240,19 +263,19 @@ p_get_mutable(void)
|
||||
{
|
||||
Term t = Deref(ARG2);
|
||||
if (IsVarTerm(t)) {
|
||||
Error(INSTANTIATION_ERROR, t, "get_mutable/3");
|
||||
_YAP_Error(INSTANTIATION_ERROR, t, "get_mutable/3");
|
||||
return(FALSE);
|
||||
}
|
||||
if (!IsApplTerm(t)) {
|
||||
Error(TYPE_ERROR_COMPOUND,t,"get_mutable/3");
|
||||
_YAP_Error(TYPE_ERROR_COMPOUND,t,"get_mutable/3");
|
||||
return(FALSE);
|
||||
}
|
||||
if (FunctorOfTerm(t) != FunctorMutable) {
|
||||
Error(DOMAIN_ERROR_MUTABLE,t,"get_mutable/3");
|
||||
_YAP_Error(DOMAIN_ERROR_MUTABLE,t,"get_mutable/3");
|
||||
return(FALSE);
|
||||
}
|
||||
t = ReadTimedVar(t);
|
||||
return(unify(ARG1, t));
|
||||
return(_YAP_unify(ARG1, t));
|
||||
}
|
||||
|
||||
static Int
|
||||
@@ -260,15 +283,15 @@ p_update_mutable(void)
|
||||
{
|
||||
Term t = Deref(ARG2);
|
||||
if (IsVarTerm(t)) {
|
||||
Error(INSTANTIATION_ERROR, t, "update_mutable/3");
|
||||
_YAP_Error(INSTANTIATION_ERROR, t, "update_mutable/3");
|
||||
return(FALSE);
|
||||
}
|
||||
if (!IsApplTerm(t)) {
|
||||
Error(TYPE_ERROR_COMPOUND,t,"update_mutable/3");
|
||||
_YAP_Error(TYPE_ERROR_COMPOUND,t,"update_mutable/3");
|
||||
return(FALSE);
|
||||
}
|
||||
if (FunctorOfTerm(t) != FunctorMutable) {
|
||||
Error(DOMAIN_ERROR_MUTABLE,t,"update_mutable/3");
|
||||
_YAP_Error(DOMAIN_ERROR_MUTABLE,t,"update_mutable/3");
|
||||
return(FALSE);
|
||||
}
|
||||
UpdateTimedVar(t, Deref(ARG1));
|
||||
@@ -294,14 +317,14 @@ p_is_mutable(void)
|
||||
#endif
|
||||
|
||||
void
|
||||
InitMaVarCPreds(void)
|
||||
_YAP_InitMaVarCPreds(void)
|
||||
{
|
||||
#ifdef MULTI_ASSIGNMENT_VARIABLES
|
||||
/* The most famous contributions of SICStus to the Prolog language */
|
||||
InitCPred("setarg", 3, p_setarg, SafePredFlag);
|
||||
InitCPred("create_mutable", 2, p_create_mutable, SafePredFlag);
|
||||
InitCPred("get_mutable", 2, p_get_mutable, SafePredFlag);
|
||||
InitCPred("update_mutable", 2, p_update_mutable, SafePredFlag);
|
||||
InitCPred("is_mutable", 1, p_is_mutable, SafePredFlag);
|
||||
_YAP_InitCPred("setarg", 3, p_setarg, SafePredFlag);
|
||||
_YAP_InitCPred("create_mutable", 2, p_create_mutable, SafePredFlag);
|
||||
_YAP_InitCPred("get_mutable", 2, p_get_mutable, SafePredFlag);
|
||||
_YAP_InitCPred("update_mutable", 2, p_update_mutable, SafePredFlag);
|
||||
_YAP_InitCPred("is_mutable", 1, p_is_mutable, SafePredFlag);
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user