remove support for confusing manipulation of $VAR

This commit is contained in:
Vítor Santos Costa 2015-12-15 08:48:53 +00:00
parent 2bd2de1b9f
commit e51de5f83c
9 changed files with 26 additions and 23 deletions

View File

@ -3652,7 +3652,7 @@ Term YAP_UnNumberVars(Term t) {
}
int YAP_IsNumberedVariable(Term t) {
return IsApplTerm(t) && FunctorOfTerm(t) == FunctorVar &&
return IsApplTerm(t) && FunctorOfTerm(t) == FunctorDollarVar &&
IsIntegerTerm(ArgOfTerm(1, t));
}

View File

@ -558,7 +558,7 @@ static int p_grab_tokens() {
char ch, IdChars[256], *chp;
IdFunctor = FunctorId;
VarFunctor = FunctorVar;
VarFunctor = FunctorDollarVar;
p0 = p;
ch = Yap_PlGetchar();
while (1) {

View File

@ -4584,7 +4584,7 @@ numbervar(Int id USES_REGS)
{
Term ts[1];
ts[0] = MkIntegerTerm(id);
return Yap_MkApplTerm(LOCAL_FunctorVar, 1, ts);
return Yap_MkApplTerm(FunctorDollarVar, 1, ts);
}
static Term
@ -4592,7 +4592,7 @@ numbervar_singleton(USES_REGS1)
{
Term ts[1];
ts[0] = MkIntegerTerm(-1);
return Yap_MkApplTerm(LOCAL_FunctorVar, 1, ts);
return Yap_MkApplTerm(FunctorDollarVar, 1, ts);
}
static void
@ -4904,7 +4904,7 @@ unnumber_complex_term(CELL *pt0, CELL *pt0_end, CELL *ptf, CELL *HLow, int share
*ptf++ = d0; /* you can just unnumber other extensions. */
continue;
}
if (f == FunctorVar) {
if (f == FunctorDollarVar) {
Int id = IntegerOfTerm(ap2[1]);
ground = FALSE;
if (id < -1) {

View File

@ -1117,14 +1117,17 @@ static void writeTerm(Term t, int p, int depth, int rinfixarg,
if (op > p) {
wrclose_bracket(wglb, TRUE);
}
} else if (wglb->Handle_vars && functor == LOCAL_FunctorVar) {
} else if ( functor == FunctorDollarVar) {
Term ti = ArgOfTerm(1, t);
if (lastw == alphanum) {
wrputc(' ', wglb->stream);
}
if (!IsVarTerm(ti) &&
(IsIntTerm(ti) || IsCodesTerm(ti) ||
IsAtomTerm(ti) || IsStringTerm(ti) )) {
if (wglb->Handle_vars &&
!IsVarTerm(ti) &&
(IsIntTerm(ti) ||
IsCodesTerm(ti) ||
IsAtomTerm(ti) ||
IsStringTerm(ti) )) {
if (IsIntTerm(ti)) {
Int k = IntOfTerm(ti);
if (k == -1) {

View File

@ -390,8 +390,8 @@
AtomUserErr = Yap_LookupAtom("user_error");
AtomUserIn = Yap_LookupAtom("user_input");
AtomUserOut = Yap_LookupAtom("user_output");
AtomDollarVar = Yap_LookupAtom("$VAR");
AtomVBar = Yap_LookupAtom("|");
AtomVar = Yap_FullLookupAtom("$VAR");
AtomVarBranches = Yap_LookupAtom("var_branches");
AtomVariableNames = Yap_LookupAtom("variable_names");
AtomHiddenVar = Yap_FullLookupAtom("$V");
@ -443,6 +443,7 @@
FunctorDoLogUpdClause0 = Yap_MkFunctor(AtomDoLogUpdClause0,6);
FunctorDoLogUpdClauseErase = Yap_MkFunctor(AtomDoLogUpdClauseErase,6);
FunctorDoStaticClause = Yap_MkFunctor(AtomDoStaticClause,5);
FunctorDollarVar = Yap_MkFunctor(AtomDollarVar,1);
FunctorDomainError = Yap_MkFunctor(AtomDomainError,2);
FunctorDot = Yap_MkFunctor(AtomDot,2);
FunctorDot10 = Yap_MkFunctor(AtomDot,10);
@ -531,5 +532,4 @@
FunctorUMinus = Yap_MkFunctor(AtomMinus,1);
FunctorUPlus = Yap_MkFunctor(AtomPlus,1);
FunctorVBar = Yap_MkFunctor(AtomVBar,2);
FunctorVar = Yap_MkFunctor(AtomVar,1);
FunctorHiddenVar = Yap_MkFunctor(AtomHiddenVar,1);

View File

@ -133,6 +133,7 @@
AtomFail = AtomAdjust(AtomFail);
AtomFalse = AtomAdjust(AtomFalse);
AtomFast = AtomAdjust(AtomFast);
AtomFastFail = AtomAdjust(AtomFastFail);
AtomFileErrors = AtomAdjust(AtomFileErrors);
AtomFileerrors = AtomAdjust(AtomFileerrors);
AtomFileType = AtomAdjust(AtomFileType);
@ -390,8 +391,8 @@
AtomUserErr = AtomAdjust(AtomUserErr);
AtomUserIn = AtomAdjust(AtomUserIn);
AtomUserOut = AtomAdjust(AtomUserOut);
AtomDollarVar = AtomAdjust(AtomDollarVar);
AtomVBar = AtomAdjust(AtomVBar);
AtomVar = AtomAdjust(AtomVar);
AtomVarBranches = AtomAdjust(AtomVarBranches);
AtomVariableNames = AtomAdjust(AtomVariableNames);
AtomHiddenVar = AtomAdjust(AtomHiddenVar);
@ -443,6 +444,7 @@
FunctorDoLogUpdClause0 = FuncAdjust(FunctorDoLogUpdClause0);
FunctorDoLogUpdClauseErase = FuncAdjust(FunctorDoLogUpdClauseErase);
FunctorDoStaticClause = FuncAdjust(FunctorDoStaticClause);
FunctorDollarVar = FuncAdjust(FunctorDollarVar);
FunctorDomainError = FuncAdjust(FunctorDomainError);
FunctorDot = FuncAdjust(FunctorDot);
FunctorDot10 = FuncAdjust(FunctorDot10);
@ -531,5 +533,4 @@
FunctorUMinus = FuncAdjust(FunctorUMinus);
FunctorUPlus = FuncAdjust(FunctorUPlus);
FunctorVBar = FuncAdjust(FunctorVBar);
FunctorVar = FuncAdjust(FunctorVar);
FunctorHiddenVar = FuncAdjust(FunctorHiddenVar);

View File

@ -1166,12 +1166,12 @@
Atom AtomUserOut_;
#define AtomUserOut Yap_heap_regs->AtomUserOut_
#define TermUserOut MkAtomTerm( Yap_heap_regs->AtomUserOut_ )
Atom AtomDollarVar_;
#define AtomDollarVar Yap_heap_regs->AtomDollarVar_
#define TermDollarVar MkAtomTerm( Yap_heap_regs->AtomDollarVar_ )
Atom AtomVBar_;
#define AtomVBar Yap_heap_regs->AtomVBar_
#define TermVBar MkAtomTerm( Yap_heap_regs->AtomVBar_ )
Atom AtomVar_;
#define AtomVar Yap_heap_regs->AtomVar_
#define TermVar MkAtomTerm( Yap_heap_regs->AtomVar_ )
Atom AtomVarBranches_;
#define AtomVarBranches Yap_heap_regs->AtomVarBranches_
#define TermVarBranches MkAtomTerm( Yap_heap_regs->AtomVarBranches_ )
@ -1287,6 +1287,8 @@
#define FunctorDoLogUpdClauseErase Yap_heap_regs->FunctorDoLogUpdClauseErase_
Functor FunctorDoStaticClause_;
#define FunctorDoStaticClause Yap_heap_regs->FunctorDoStaticClause_
Functor FunctorDollarVar_;
#define FunctorDollarVar Yap_heap_regs->FunctorDollarVar_
Functor FunctorDomainError_;
#define FunctorDomainError Yap_heap_regs->FunctorDomainError_
Functor FunctorDot_;
@ -1463,7 +1465,5 @@
#define FunctorUPlus Yap_heap_regs->FunctorUPlus_
Functor FunctorVBar_;
#define FunctorVBar Yap_heap_regs->FunctorVBar_
Functor FunctorVar_;
#define FunctorVar Yap_heap_regs->FunctorVar_
Functor FunctorHiddenVar_;
#define FunctorHiddenVar Yap_heap_regs->FunctorHiddenVar_

View File

@ -396,7 +396,6 @@ A UserErr N "user_error"
A UserIn N "user_input"
A UserOut N "user_output"
A VBar N "|"
A Var F "$VAR"
A VarBranches N "var_branches"
A VariableNames N "variable_names"
A HiddenVar F "$V"
@ -448,6 +447,7 @@ F DoLogUpdClause DoLogUpdClause 6
F DoLogUpdClause0 DoLogUpdClause0 6
F DoLogUpdClauseErase DoLogUpdClauseErase 6
F DoStaticClause DoStaticClause 5
F DollarVar DollarVar 1
F DomainError DomainError 2
F Dot Dot 2
F Dot10 Dot 10
@ -536,6 +536,5 @@ F TypeError TypeError 2
F UMinus Minus 1
F UPlus Plus 1
F VBar VBar 2
F Var Var 1
F HiddenVar HiddenVar 1

View File

@ -173,7 +173,7 @@ bind_variable_names(Term t USES_REGS)
return false;
}
t2 = ArgOfTerm(2, tl);
tv = Yap_MkApplTerm(LOCAL_FunctorVar, 1, &t1);
tv = Yap_MkApplTerm(FunctorDollarVar, 1, &t1);
if (IsVarTerm(t2)) {
Bind(VarOfTerm(t2), tv);
}
@ -746,7 +746,7 @@ dollar_var( USES_REGS1 )
Term t2;
if (!IsVarTerm(t2=Deref(ARG2))) {
if (IsApplTerm(t2) &&
FunctorOfTerm( t2 ) == LOCAL_FunctorVar ) {
FunctorOfTerm( t2 ) == FunctorDollarVar ) {
return Yap_unify(ArgOfTerm(1, t2), ARG1);
}
Yap_Error( TYPE_ERROR_COMPOUND, ARG2 , "");
@ -756,7 +756,7 @@ dollar_var( USES_REGS1 )
}
}
Term t2 = Yap_unify( MkVarTerm(), ARG1);
Term tv = Yap_MkApplTerm(LOCAL_FunctorVar, 1, &t2);
Term tv = Yap_MkApplTerm(FunctorDollarVar, 1, &t2);
return Yap_unify(tv, ARG2);
}