# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.0
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.





from sys import version_info
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_yap', [dirname(__file__)])
        except ImportError:
            import _yap
            return _yap
        if fp is not None:
            try:
                _mod = imp.load_module('_yap', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _yap = swig_import_helper()
    del swig_import_helper
else:
    import _yap
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError(name)

def _swig_repr(self):
    try: strthis = "proxy of " + self.this.__repr__()
    except: strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0


YAP_CPP_INTERFACE = _yap.YAP_CPP_INTERFACE

def Yap_StringToTerm(*args):
  return _yap.Yap_StringToTerm(*args)
Yap_StringToTerm = _yap.Yap_StringToTerm
class YAPTerm(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPTerm, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPTerm, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPTerm(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _yap.delete_YAPTerm
    __del__ = lambda self : None;
    def term(self): return _yap.YAPTerm_term(self)
    def tag(self): return _yap.YAPTerm_tag(self)
    def deepCopy(self): return _yap.YAPTerm_deepCopy(self)
    def exactlyEqual(self, *args): return _yap.YAPTerm_exactlyEqual(self, *args)
    def unify(self, *args): return _yap.YAPTerm_unify(self, *args)
    def unifiable(self, *args): return _yap.YAPTerm_unifiable(self, *args)
    def variant(self, *args): return _yap.YAPTerm_variant(self, *args)
    def hash(self, *args): return _yap.YAPTerm_hash(self, *args)
    def isVar(self): return _yap.YAPTerm_isVar(self)
    def isAtom(self): return _yap.YAPTerm_isAtom(self)
    def isInteger(self): return _yap.YAPTerm_isInteger(self)
    def isFloat(self): return _yap.YAPTerm_isFloat(self)
    def isCompound(self): return _yap.YAPTerm_isCompound(self)
    def isAppl(self): return _yap.YAPTerm_isAppl(self)
    def isPair(self): return _yap.YAPTerm_isPair(self)
    def isGround(self): return _yap.YAPTerm_isGround(self)
    def isList(self): return _yap.YAPTerm_isList(self)
    def isString(self): return _yap.YAPTerm_isString(self)
    def text(self): return _yap.YAPTerm_text(self)
YAPTerm_swigregister = _yap.YAPTerm_swigregister
YAPTerm_swigregister(YAPTerm)

class YAPVarTerm(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPVarTerm, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPVarTerm, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _yap.new_YAPVarTerm()
        try: self.this.append(this)
        except: self.this = this
    def getVar(self): return _yap.YAPVarTerm_getVar(self)
    def unbound(self): return _yap.YAPVarTerm_unbound(self)
    __swig_destroy__ = _yap.delete_YAPVarTerm
    __del__ = lambda self : None;
YAPVarTerm_swigregister = _yap.YAPVarTerm_swigregister
YAPVarTerm_swigregister(YAPVarTerm)

class YAPApplTerm(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPApplTerm, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPApplTerm, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPApplTerm(*args)
        try: self.this.append(this)
        except: self.this = this
    def getFunctor(self): return _yap.YAPApplTerm_getFunctor(self)
    def getArg(self, *args): return _yap.YAPApplTerm_getArg(self, *args)
    __swig_destroy__ = _yap.delete_YAPApplTerm
    __del__ = lambda self : None;
YAPApplTerm_swigregister = _yap.YAPApplTerm_swigregister
YAPApplTerm_swigregister(YAPApplTerm)

class YAPPairTerm(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPPairTerm, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPPairTerm, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPPairTerm(*args)
        try: self.this.append(this)
        except: self.this = this
    def getHead(self): return _yap.YAPPairTerm_getHead(self)
    def getTail(self): return _yap.YAPPairTerm_getTail(self)
    __swig_destroy__ = _yap.delete_YAPPairTerm
    __del__ = lambda self : None;
YAPPairTerm_swigregister = _yap.YAPPairTerm_swigregister
YAPPairTerm_swigregister(YAPPairTerm)

class YAPIntegerTerm(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPIntegerTerm, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPIntegerTerm, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPIntegerTerm(*args)
        try: self.this.append(this)
        except: self.this = this
    def getInteger(self): return _yap.YAPIntegerTerm_getInteger(self)
    def isTagged(self): return _yap.YAPIntegerTerm_isTagged(self)
    __swig_destroy__ = _yap.delete_YAPIntegerTerm
    __del__ = lambda self : None;
YAPIntegerTerm_swigregister = _yap.YAPIntegerTerm_swigregister
YAPIntegerTerm_swigregister(YAPIntegerTerm)

class YAPListTerm(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPListTerm, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPListTerm, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPListTerm(*args)
        try: self.this.append(this)
        except: self.this = this
    def length(self): return _yap.YAPListTerm_length(self)
    def car(self): return _yap.YAPListTerm_car(self)
    def cdr(self): return _yap.YAPListTerm_cdr(self)
    def nil(self): return _yap.YAPListTerm_nil(self)
    __swig_destroy__ = _yap.delete_YAPListTerm
    __del__ = lambda self : None;
YAPListTerm_swigregister = _yap.YAPListTerm_swigregister
YAPListTerm_swigregister(YAPListTerm)

class YAPAtom(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPAtom, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPAtom, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPAtom(*args)
        try: self.this.append(this)
        except: self.this = this
    def name(self): return _yap.YAPAtom_name(self)
    __swig_destroy__ = _yap.delete_YAPAtom
    __del__ = lambda self : None;
YAPAtom_swigregister = _yap.YAPAtom_swigregister
YAPAtom_swigregister(YAPAtom)

class YAPStringTerm(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPStringTerm, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPStringTerm, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPStringTerm(*args)
        try: self.this.append(this)
        except: self.this = this
    def getString(self): return _yap.YAPStringTerm_getString(self)
    __swig_destroy__ = _yap.delete_YAPStringTerm
    __del__ = lambda self : None;
YAPStringTerm_swigregister = _yap.YAPStringTerm_swigregister
YAPStringTerm_swigregister(YAPStringTerm)

class YAPAtomTerm(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPAtomTerm, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPAtomTerm, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPAtomTerm(*args)
        try: self.this.append(this)
        except: self.this = this
    def getAtom(self): return _yap.YAPAtomTerm_getAtom(self)
    __swig_destroy__ = _yap.delete_YAPAtomTerm
    __del__ = lambda self : None;
YAPAtomTerm_swigregister = _yap.YAPAtomTerm_swigregister
YAPAtomTerm_swigregister(YAPAtomTerm)

class YAPFunctor(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPFunctor, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPFunctor, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPFunctor(*args)
        try: self.this.append(this)
        except: self.this = this
    def name(self): return _yap.YAPFunctor_name(self)
    def arity(self): return _yap.YAPFunctor_arity(self)
    __swig_destroy__ = _yap.delete_YAPFunctor
    __del__ = lambda self : None;
YAPFunctor_swigregister = _yap.YAPFunctor_swigregister
YAPFunctor_swigregister(YAPFunctor)

class YAPTermHandle(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPTermHandle, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPTermHandle, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPTermHandle(*args)
        try: self.this.append(this)
        except: self.this = this
    def set(self, *args): return _yap.YAPTermHandle_set(self, *args)
    __swig_destroy__ = _yap.delete_YAPTermHandle
    __del__ = lambda self : None;
YAPTermHandle_swigregister = _yap.YAPTermHandle_swigregister
YAPTermHandle_swigregister(YAPTermHandle)

class YAPPredicate(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPPredicate, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPPredicate, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPPredicate(*args)
        try: self.this.append(this)
        except: self.this = this
    def call(self, *args): return _yap.YAPPredicate_call(self, *args)
    def arity(self): return _yap.YAPPredicate_arity(self)
    def module(self): return _yap.YAPPredicate_module(self)
    def name(self): return _yap.YAPPredicate_name(self)
    __swig_destroy__ = _yap.delete_YAPPredicate
    __del__ = lambda self : None;
YAPPredicate_swigregister = _yap.YAPPredicate_swigregister
YAPPredicate_swigregister(YAPPredicate)

class YAPQuery(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPQuery, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPQuery, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPQuery(*args)
        try: self.this.append(this)
        except: self.this = this
    def first(self): return _yap.YAPQuery_first(self)
    def next(self): return _yap.YAPQuery_next(self)
    def cut(self): return _yap.YAPQuery_cut(self)
    def close(self): return _yap.YAPQuery_close(self)
    def namedVars(self): return _yap.YAPQuery_namedVars(self)
    __swig_destroy__ = _yap.delete_YAPQuery
    __del__ = lambda self : None;
YAPQuery_swigregister = _yap.YAPQuery_swigregister
YAPQuery_swigregister(YAPQuery)

class YAPEngine(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPEngine, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPEngine, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _yap.new_YAPEngine(*args)
        try: self.this.append(this)
        except: self.this = this
    def query(self, *args): return _yap.YAPEngine_query(self, *args)
    __swig_destroy__ = _yap.delete_YAPEngine
    __del__ = lambda self : None;
YAPEngine_swigregister = _yap.YAPEngine_swigregister
YAPEngine_swigregister(YAPEngine)

class YAPParams(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, YAPParams, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, YAPParams, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _yap.new_YAPParams()
        try: self.this.append(this)
        except: self.this = this
    def savedState(self, *args): return _yap.YAPParams_savedState(self, *args)
    def stackSize(self, *args): return _yap.YAPParams_stackSize(self, *args)
    def trailSize(self, *args): return _yap.YAPParams_trailSize(self, *args)
    def maxStackSize(self, *args): return _yap.YAPParams_maxStackSize(self, *args)
    def maxTrailSize(self, *args): return _yap.YAPParams_maxTrailSize(self, *args)
    def libDir(self, *args): return _yap.YAPParams_libDir(self, *args)
    def bootFile(self, *args): return _yap.YAPParams_bootFile(self, *args)
    def goal(self, *args): return _yap.YAPParams_goal(self, *args)
    def topLevel(self, *args): return _yap.YAPParams_topLevel(self, *args)
    def script(self, *args): return _yap.YAPParams_script(self, *args)
    def fastBoot(self, *args): return _yap.YAPParams_fastBoot(self, *args)
    __swig_destroy__ = _yap.delete_YAPParams
    __del__ = lambda self : None;
YAPParams_swigregister = _yap.YAPParams_swigregister
YAPParams_swigregister(YAPParams)

# This file is compatible with both classic and new-style classes.