remove support for confusing manipulation of $VAR
This commit is contained in:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user