# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.10
#
# 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 as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_sexp')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_sexp')
    _sexp = swig_import_helper()
    del swig_import_helper
elif _swig_python_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('_sexp', [dirname(__file__)])
        except ImportError:
            import _sexp
            return _sexp
        if fp is not None:
            try:
                _mod = imp.load_module('_sexp', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _sexp = swig_import_helper()
    del swig_import_helper
else:
    import _sexp
del _swig_python_version_info
try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            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("'%s' object has no attribute '%s'" % (class_type.__name__, name))


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

try:
    _object = object
    _newclass = 1
except __builtin__.Exception:
    class _object:
        pass
    _newclass = 0

PRIuPTR = _sexp.PRIuPTR
PRIdPTR = _sexp.PRIdPTR
LLU = _sexp.LLU
LLO = _sexp.LLO
LLX = _sexp.LLX
false = _sexp.false
true = _sexp.true
OUTCOME_GENERIC_ERROR = _sexp.OUTCOME_GENERIC_ERROR
OUTCOME_PARSER_ERROR = _sexp.OUTCOME_PARSER_ERROR
OUTCOME_SYNTAX_ERROR = _sexp.OUTCOME_SYNTAX_ERROR
OUTCOME_FILE_ERROR = _sexp.OUTCOME_FILE_ERROR
OUTCOME_SUCCESS_REQUIRED_HELP = _sexp.OUTCOME_SUCCESS_REQUIRED_HELP
OUTCOME_SUCCESS = _sexp.OUTCOME_SUCCESS

def SexpInliner_create(st: 'SymbTable_ptr', fixpoint_limit: 'size_t const') -> "SexpInliner_ptr":
    """SexpInliner_create(SymbTable_ptr st, size_t const fixpoint_limit) -> SexpInliner_ptr"""
    return _sexp.SexpInliner_create(st, fixpoint_limit)

def SexpInliner_copy(arg1: 'SexpInliner_ptr const') -> "SexpInliner_ptr":
    """SexpInliner_copy(SexpInliner_ptr const arg1) -> SexpInliner_ptr"""
    return _sexp.SexpInliner_copy(arg1)

def SexpInliner_destroy(arg1: 'SexpInliner_ptr') -> "void":
    """SexpInliner_destroy(SexpInliner_ptr arg1)"""
    return _sexp.SexpInliner_destroy(arg1)

def SexpInliner_get_symb_table(arg1: 'SexpInliner_ptr const') -> "SymbTable_ptr":
    """SexpInliner_get_symb_table(SexpInliner_ptr const arg1) -> SymbTable_ptr"""
    return _sexp.SexpInliner_get_symb_table(arg1)

def SexpInliner_force_equivalence(arg1: 'SexpInliner_ptr', var: 'node_ptr', expr: 'Expr_ptr') -> "boolean":
    """SexpInliner_force_equivalence(SexpInliner_ptr arg1, node_ptr var, Expr_ptr expr) -> boolean"""
    return _sexp.SexpInliner_force_equivalence(arg1, var, expr)

def SexpInliner_force_equivalences(arg1: 'SexpInliner_ptr', equivs: 'Set_t') -> "boolean":
    """SexpInliner_force_equivalences(SexpInliner_ptr arg1, Set_t equivs) -> boolean"""
    return _sexp.SexpInliner_force_equivalences(arg1, equivs)

def SexpInliner_force_invariant(arg1: 'SexpInliner_ptr', var: 'node_ptr', expr: 'Expr_ptr') -> "boolean":
    """SexpInliner_force_invariant(SexpInliner_ptr arg1, node_ptr var, Expr_ptr expr) -> boolean"""
    return _sexp.SexpInliner_force_invariant(arg1, var, expr)

def SexpInliner_force_invariants(arg1: 'SexpInliner_ptr', invars: 'Set_t') -> "boolean":
    """SexpInliner_force_invariants(SexpInliner_ptr arg1, Set_t invars) -> boolean"""
    return _sexp.SexpInliner_force_invariants(arg1, invars)

def SexpInliner_blacklist_name(arg1: 'SexpInliner_ptr', var: 'node_ptr') -> "void":
    """SexpInliner_blacklist_name(SexpInliner_ptr arg1, node_ptr var)"""
    return _sexp.SexpInliner_blacklist_name(arg1, var)

def SexpInliner_clear_equivalences(arg1: 'SexpInliner_ptr') -> "void":
    """SexpInliner_clear_equivalences(SexpInliner_ptr arg1)"""
    return _sexp.SexpInliner_clear_equivalences(arg1)

def SexpInliner_clear_invariants(arg1: 'SexpInliner_ptr') -> "void":
    """SexpInliner_clear_invariants(SexpInliner_ptr arg1)"""
    return _sexp.SexpInliner_clear_invariants(arg1)

def SexpInliner_clear_blacklist(arg1: 'SexpInliner_ptr') -> "void":
    """SexpInliner_clear_blacklist(SexpInliner_ptr arg1)"""
    return _sexp.SexpInliner_clear_blacklist(arg1)

def SexpInliner_inline(arg1: 'SexpInliner_ptr', expr: 'Expr_ptr', changed: 'boolean *') -> "InlineRes_ptr":
    """SexpInliner_inline(SexpInliner_ptr arg1, Expr_ptr expr, boolean * changed) -> InlineRes_ptr"""
    return _sexp.SexpInliner_inline(arg1, expr, changed)

def SexpInliner_inline_no_learning(arg1: 'SexpInliner_ptr', expr: 'Expr_ptr', changed: 'boolean *') -> "Expr_ptr":
    """SexpInliner_inline_no_learning(SexpInliner_ptr arg1, Expr_ptr expr, boolean * changed) -> Expr_ptr"""
    return _sexp.SexpInliner_inline_no_learning(arg1, expr, changed)

def SexpInliner_get_var2expr_hash(arg1: 'SexpInliner_ptr') -> "hash_ptr":
    """SexpInliner_get_var2expr_hash(SexpInliner_ptr arg1) -> hash_ptr"""
    return _sexp.SexpInliner_get_var2expr_hash(arg1)

def SexpInliner_get_var2invar_hash(arg1: 'SexpInliner_ptr') -> "hash_ptr":
    """SexpInliner_get_var2invar_hash(SexpInliner_ptr arg1) -> hash_ptr"""
    return _sexp.SexpInliner_get_var2invar_hash(arg1)

def InlineRes_destroy(arg1: 'InlineRes_ptr') -> "void":
    """InlineRes_destroy(InlineRes_ptr arg1)"""
    return _sexp.InlineRes_destroy(arg1)

def InlineRes_get_original_expr(arg1: 'InlineRes_ptr const') -> "Expr_ptr":
    """InlineRes_get_original_expr(InlineRes_ptr const arg1) -> Expr_ptr"""
    return _sexp.InlineRes_get_original_expr(arg1)

def InlineRes_get_result(arg1: 'InlineRes_ptr const') -> "Expr_ptr":
    """InlineRes_get_result(InlineRes_ptr const arg1) -> Expr_ptr"""
    return _sexp.InlineRes_get_result(arg1)

def InlineRes_get_result_unique(arg1: 'InlineRes_ptr const') -> "Expr_ptr":
    """InlineRes_get_result_unique(InlineRes_ptr const arg1) -> Expr_ptr"""
    return _sexp.InlineRes_get_result_unique(arg1)

def InlineRes_get_inlined_expr(arg1: 'InlineRes_ptr const') -> "Expr_ptr":
    """InlineRes_get_inlined_expr(InlineRes_ptr const arg1) -> Expr_ptr"""
    return _sexp.InlineRes_get_inlined_expr(arg1)

def InlineRes_get_equivalences_expr(arg1: 'InlineRes_ptr const') -> "Expr_ptr":
    """InlineRes_get_equivalences_expr(InlineRes_ptr const arg1) -> Expr_ptr"""
    return _sexp.InlineRes_get_equivalences_expr(arg1)

def InlineRes_get_equivalences(arg1: 'InlineRes_ptr const') -> "Set_t":
    """InlineRes_get_equivalences(InlineRes_ptr const arg1) -> Set_t"""
    return _sexp.InlineRes_get_equivalences(arg1)

def InlineRes_get_invariant_expr(arg1: 'InlineRes_ptr const') -> "Expr_ptr":
    """InlineRes_get_invariant_expr(InlineRes_ptr const arg1) -> Expr_ptr"""
    return _sexp.InlineRes_get_invariant_expr(arg1)

def InlineRes_get_invariants(arg1: 'InlineRes_ptr const') -> "Set_t":
    """InlineRes_get_invariants(InlineRes_ptr const arg1) -> Set_t"""
    return _sexp.InlineRes_get_invariants(arg1)
# This file is compatible with both classic and new-style classes.


