# python commands

import sys
import yap

#
# initialize engine
engine = yap.YAPEngine();
# engine = yap.YAPEngine(yap.YAPParams());

def query( s ):
    q = engine.query(s)
    while q.next():
        vs = q.namedVars()
        if vs.length() == 0:
            print( "yes" )
            return
        else:
            while vs.length() > 0:
                eq = vs.car()
                print( eq.getArg(1).text() + " = " + eq.getArg(2).text() )
                vs = vs.cdr()
            if q.deterministic():
                return
            s = input("next: ?")
            if s.find(';') != 0 :
                return
    print( "no more answers" )
    return

def live():
    loop = True
    while loop:
        try:
            s = input("?- ")
            query( s )
        except SyntaxError as err:
            print("Syntax Error error: {0}".format(err))
        except EOFError:
            return
        except RuntimeError as err:
            print("YAP Execution Error: {0}".format(err))
        except ValueError:
            print("Could not convert data to an integer.")
        except:
            print("Unexpected error:", sys.exc_info()[0])
            raise


live()