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) {