remove support for confusing manipulation of $VAR
This commit is contained in:
parent
2bd2de1b9f
commit
e51de5f83c
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
11
C/write.c
11
C/write.c
@ -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) {
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
10
H/tatoms.h
10
H/tatoms.h
@ -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_
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user