예제 #1
0
def mapping(r, s, v):
    mapping = {}
    mapping_1 = {}
    seq = Seq()
    cabezaY = v.cabeza.argumentos
    varsX = r.orden
    j = 0
    for y in s.orden:
        if cabezaY.has_key(y):
            mapping[y] = varsX[j]
            mapping_1[varsX[j]] = y
        else:
            mapping[y] = seq.nuevaVar(y)
        j = j + 1
    return mapping, mapping_1
예제 #2
0
def mapping(r, s, v):
    mapping = {}
    mapping_1 = {}
    seq = Seq()
    cabezaY = v.cabeza.argumentos
    varsX = r.orden
    j = 0
    for y in s.orden:
        if cabezaY.has_key(y):
            mapping[y] = varsX[j]
            mapping_1[varsX[j]] = y
        else:
            mapping[y] = seq.nuevaVar(y)
        j = j + 1
    return mapping, mapping_1
예제 #3
0
def congelarCuerpo(q):
    freeze = {}
    map = {}
    seq = Seq()
    for subob in q.cuerpo:
        pred = subob.predicado
        args = subob.argumentos
        varsc = []
        for var in subob.orden:
            if args[var] == 0:
                if map.has_key(var):
                    varsc.append(map[var])
                else:
                    ctte = seq.next()
                    varsc.append(ctte)
                    map[var] = ctte
        subobcon = SubObjetivo(pred, {}, varsc)
        if freeze.has_key(pred):
            freeze[pred].append(subobcon)
        else:
            freeze[pred] = [subobcon]
    return (freeze, map)