Exemplo n.º 1
0
def _lit_to_pygp(literal: Atom, var_store=None):
    if var_store is None:
        var_store = {}
    pred = pygprolog.pygp_Find_Atom(literal.get_predicate().get_name())
    if pred < 0:
        pred = pygprolog.pygp_Create_Allocate_Atom(literal.get_predicate().get_name())
    args = [_to_pygp(x, var_store) for x in literal.get_arguments()]

    return pygprolog.pygp_Mk_Compound(pred, literal.get_predicate().get_arity(), args)
Exemplo n.º 2
0
def _pair_to_pygp(p: Pair, lit_var_store: Dict[Variable, int]):
    left = _to_pygp(p.get_left(), lit_var_store)
    right = _to_pygp(p.get_right(), lit_var_store)

    functor = pygprolog.pygp_Find_Atom('.')
    if functor < 0:
        functor = pygprolog.pygp_Create_Allocate_Atom('.')

    args = [left, right]
    return pygprolog.pygp_Mk_Compound(functor, 2, args)
Exemplo n.º 3
0
def _const_to_pygp(c: Constant):
    return pygprolog.pygp_Mk_Atom(
        pygprolog.pygp_Create_Allocate_Atom(c.get_name())
    )