This commit is contained in:
Vitor Santos Costa 2016-08-26 00:14:01 -05:00
commit 76638bb7d8
2 changed files with 8 additions and 49 deletions

View File

@ -3640,6 +3640,7 @@ static yamop **expand_index(struct intermediates *cint) {
if (s_reg[-1] != (CELL)FunctorDBREF) {
ipc = alt;
alt = NULL;
break;
}
t = AbsAppl(s_reg - 1);
sp[-1].extra = t;
@ -3647,9 +3648,10 @@ static yamop **expand_index(struct intermediates *cint) {
ipc = NEXTOP(ipc, e);
break;
case _index_blob:
if (s_reg[-1] != (CELL)FunctorBigInt) {
if (s_reg[-1] != (CELL)FunctorDouble) {
ipc = alt;
alt = NULL;
break;
}
t = Yap_DoubleP_key(s_reg);
sp[-1].extra = AbsAppl(s_reg - 1);
@ -3660,6 +3662,7 @@ static yamop **expand_index(struct intermediates *cint) {
if (s_reg[-1] != (CELL)FunctorLongInt) {
ipc = alt;
alt = NULL;
break;
}
t = Yap_IntP_key(s_reg);
sp[-1].extra = AbsAppl(s_reg - 1);
@ -6583,14 +6586,16 @@ LogUpdClause *Yap_FollowIndexingCode(PredEntry *ap, yamop *ipc, Term Terms[3],
case _index_dbref:
if (s_reg[-1] != (CELL)FunctorDBREF) {
ipc = FAILCODE;
break;
}
t = AbsAppl(s_reg - 1);
blob_term = FALSE;
ipc = NEXTOP(ipc, e);
break;
case _index_blob:
if (s_reg[-1] != (CELL)FunctorBigInt) {
if (s_reg[-1] != (CELL)FunctorDouble) {
ipc = FAILCODE;
break;
}
t = Yap_DoubleP_key(s_reg);
blob_term = TRUE;
@ -6599,6 +6604,7 @@ LogUpdClause *Yap_FollowIndexingCode(PredEntry *ap, yamop *ipc, Term Terms[3],
case _index_long:
if (s_reg[-1] != (CELL)FunctorLongInt) {
ipc = FAILCODE;
break;
}
t = Yap_IntP_key(s_reg);
blob_term = TRUE;

View File

@ -1,47 +0,0 @@
# python commands
import sys
# import collections
# generated by swig
import yap
# make sure Python knows about engine
engine = None
# Mappings between functors and types
#
# they are used to have the same type f1or several occurences
# of the same functor, and to ensure that an object is indeed
# a Prolog compound term.
#
dictF2P = {}
class A:
"""Represents a non-interned Prolog atom"""
def __init__(self, s):
self.a = s
def __repr__(self):
return "A(" + self.a + ")"
def __str__(self):
return self.a
class V:
"""Wraps a term, or a reference to a logical variables"""
def __init__(self, t):
print(type(t))
self.v = t
def __repr__(self):
return "V(" + str(self.v) + ")"
def __str__(self):
return engine.getTerm(self.v).text()
def handle(self):
return self.v