Merge branch 'master' of yap.dcc.fc.up.pt:yap-6
This commit is contained in:
commit
fb6c4f966c
25
C/attvar.c
25
C/attvar.c
@ -357,6 +357,15 @@ DelAtts(attvar_record *attv, Term oatt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
DelAllAtts(attvar_record *attv)
|
||||||
|
{
|
||||||
|
if (RepAppl(attv->Atts) >= HB)
|
||||||
|
RESET_VARIABLE(&attv->Atts);
|
||||||
|
else
|
||||||
|
MaBind(&(attv->Atts), MkVarTerm());
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
PutAtt(Int pos, Term atts, Term att)
|
PutAtt(Int pos, Term atts, Term att)
|
||||||
{
|
{
|
||||||
@ -638,6 +647,21 @@ p_del_atts(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Int
|
||||||
|
p_del_all_atts(void) {
|
||||||
|
/* receive a variable in ARG1 */
|
||||||
|
Term inp = Deref(ARG1);
|
||||||
|
|
||||||
|
/* if this is unbound, ok */
|
||||||
|
if (IsVarTerm(inp) && IsAttachedTerm(inp)) {
|
||||||
|
attvar_record *attv;
|
||||||
|
|
||||||
|
attv = (attvar_record *)VarOfTerm(inp);
|
||||||
|
DelAllAtts(attv);
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static Int
|
static Int
|
||||||
p_get_att(void) {
|
p_get_att(void) {
|
||||||
/* receive a variable in ARG1 */
|
/* receive a variable in ARG1 */
|
||||||
@ -1010,6 +1034,7 @@ void Yap_InitAttVarPreds(void)
|
|||||||
Yap_InitCPred("put_att_term", 2, p_put_att_term, 0);
|
Yap_InitCPred("put_att_term", 2, p_put_att_term, 0);
|
||||||
Yap_InitCPred("put_module_atts", 2, p_put_atts, 0);
|
Yap_InitCPred("put_module_atts", 2, p_put_atts, 0);
|
||||||
Yap_InitCPred("del_all_module_atts", 2, p_del_atts, 0);
|
Yap_InitCPred("del_all_module_atts", 2, p_del_atts, 0);
|
||||||
|
Yap_InitCPred("del_all_atts", 1, p_del_all_atts, 0);
|
||||||
Yap_InitCPred("rm_att", 4, p_rm_att, 0);
|
Yap_InitCPred("rm_att", 4, p_rm_att, 0);
|
||||||
Yap_InitCPred("bind_attvar", 1, p_bind_attvar, SafePredFlag);
|
Yap_InitCPred("bind_attvar", 1, p_bind_attvar, SafePredFlag);
|
||||||
Yap_InitCPred("unbind_attvar", 1, p_unbind_attvar, SafePredFlag);
|
Yap_InitCPred("unbind_attvar", 1, p_unbind_attvar, SafePredFlag);
|
||||||
|
@ -284,6 +284,9 @@ prolog:del_attr(Var, Mod) :-
|
|||||||
functor(AttTerm, Mod, 2),
|
functor(AttTerm, Mod, 2),
|
||||||
attributes:del_all_module_atts(Var, AttTerm).
|
attributes:del_all_module_atts(Var, AttTerm).
|
||||||
|
|
||||||
|
prolog:del_attrs(Var) :-
|
||||||
|
attributes:del_all_atts(Var).
|
||||||
|
|
||||||
prolog:get_attrs(AttVar, SWIAtts) :-
|
prolog:get_attrs(AttVar, SWIAtts) :-
|
||||||
get_all_swi_atts(AttVar,SWIAtts).
|
get_all_swi_atts(AttVar,SWIAtts).
|
||||||
|
|
||||||
|
@ -196,9 +196,9 @@ consult(Fs) :-
|
|||||||
'$consult'(Fs,Module) :-
|
'$consult'(Fs,Module) :-
|
||||||
'$access_yap_flags'(8, 2), % SICStus Prolog compatibility
|
'$access_yap_flags'(8, 2), % SICStus Prolog compatibility
|
||||||
!,
|
!,
|
||||||
'$load_files'(Module:Fs,[],Fs).
|
'$load_files'(Module:Fs,[],consult(Fs)).
|
||||||
'$consult'(Fs, Module) :-
|
'$consult'(Fs, Module) :-
|
||||||
'$load_files'(Module:Fs,[consult(consult)],Fs).
|
'$load_files'(Module:Fs,[consult(consult)],consult(Fs)).
|
||||||
|
|
||||||
reconsult(Fs) :-
|
reconsult(Fs) :-
|
||||||
'$load_files'(Fs, [], reconsult(Fs)).
|
'$load_files'(Fs, [], reconsult(Fs)).
|
||||||
|
Reference in New Issue
Block a user