use flags to control and float

This commit is contained in:
Vítor Santos Costa 2015-10-27 23:07:11 +00:00
parent 3f58566ac8
commit 48f5a824e0

View File

@ -739,18 +739,22 @@ p_write_depth ( USES_REGS1 )
} }
static Int static Int
p_float_format( USES_REGS1 ) dollar_var( USES_REGS1 )
{ {
Term in = Deref(ARG1); Term in = Deref(ARG1);
if (IsVarTerm(in)) if (IsVarTerm(in)) {
return Yap_unify(ARG1, MkAtomTerm(AtomFloatFormat)); Term t2;
AtomFloatFormat = AtomOfTerm(in); if (!IsVarTerm(t2=Deref(ARG2))) {
return TRUE; if (IsApplTerm(t2) &&
} FunctorOfTerm( t2 ) == LOCAL_FunctorVar ) {
return Yap_unify(ArgOfTerm(1, t2), ARG1);
static Int }
p_dollar_var( USE_REGS1 ) Yap_Error( TYPE_ERROR_COMPOUND, ARG2 , "");
{ return false;
} else {
Yap_Error( INSTANTIATION_ERROR, ARG2 , "");
}
}
Term tv = Yap_MkApplTerm(LOCAL_FunctorVar, 1, &ARG1); Term tv = Yap_MkApplTerm(LOCAL_FunctorVar, 1, &ARG1);
return Yap_unify(tv, ARG2); return Yap_unify(tv, ARG2);
} }
@ -773,7 +777,6 @@ Yap_InitWriteTPreds(void)
Yap_InitCPred ("print", 2, print, SyncPredFlag); Yap_InitCPred ("print", 2, print, SyncPredFlag);
Yap_InitCPred ("write_depth", 3, p_write_depth, SafePredFlag|SyncPredFlag); Yap_InitCPred ("write_depth", 3, p_write_depth, SafePredFlag|SyncPredFlag);
; ;
Yap_InitCPred ("$VAR", 2, p_dollar_var, SafePredFlag); Yap_InitCPred ("$VAR", 2, dollar_var, SafePredFlag);
; ;
Yap_InitCPred ("$float_format", 1, p_float_format, SafePredFlag|SyncPredFlag);
} }