# 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, '_dag')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_dag')
    _dag = 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('_dag', [dirname(__file__)])
        except ImportError:
            import _dag
            return _dag
        if fp is not None:
            try:
                _mod = imp.load_module('_dag', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _dag = swig_import_helper()
    del swig_import_helper
else:
    import _dag
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 = _dag.PRIuPTR
PRIdPTR = _dag.PRIdPTR
LLU = _dag.LLU
LLO = _dag.LLO
LLX = _dag.LLX
false = _dag.false
true = _dag.true
OUTCOME_GENERIC_ERROR = _dag.OUTCOME_GENERIC_ERROR
OUTCOME_PARSER_ERROR = _dag.OUTCOME_PARSER_ERROR
OUTCOME_SYNTAX_ERROR = _dag.OUTCOME_SYNTAX_ERROR
OUTCOME_FILE_ERROR = _dag.OUTCOME_FILE_ERROR
OUTCOME_SUCCESS_REQUIRED_HELP = _dag.OUTCOME_SUCCESS_REQUIRED_HELP
OUTCOME_SUCCESS = _dag.OUTCOME_SUCCESS
DAG_DEFAULT_VERTICES_NO = _dag.DAG_DEFAULT_VERTICES_NO
DAG_DEFAULT_DENSITY = _dag.DAG_DEFAULT_DENSITY
DAG_DEFAULT_GROWTH = _dag.DAG_DEFAULT_GROWTH
class Dag_Vertex(_object):
    """Proxy of C Dag_Vertex struct."""

    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Dag_Vertex, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Dag_Vertex, name)
    __repr__ = _swig_repr
    __swig_setmethods__["symbol"] = _dag.Dag_Vertex_symbol_set
    __swig_getmethods__["symbol"] = _dag.Dag_Vertex_symbol_get
    if _newclass:
        symbol = _swig_property(_dag.Dag_Vertex_symbol_get, _dag.Dag_Vertex_symbol_set)
    __swig_setmethods__["data"] = _dag.Dag_Vertex_data_set
    __swig_getmethods__["data"] = _dag.Dag_Vertex_data_get
    if _newclass:
        data = _swig_property(_dag.Dag_Vertex_data_get, _dag.Dag_Vertex_data_set)
    __swig_setmethods__["outList"] = _dag.Dag_Vertex_outList_set
    __swig_getmethods__["outList"] = _dag.Dag_Vertex_outList_get
    if _newclass:
        outList = _swig_property(_dag.Dag_Vertex_outList_get, _dag.Dag_Vertex_outList_set)
    __swig_setmethods__["numSons"] = _dag.Dag_Vertex_numSons_set
    __swig_getmethods__["numSons"] = _dag.Dag_Vertex_numSons_get
    if _newclass:
        numSons = _swig_property(_dag.Dag_Vertex_numSons_get, _dag.Dag_Vertex_numSons_set)
    __swig_setmethods__["dag"] = _dag.Dag_Vertex_dag_set
    __swig_getmethods__["dag"] = _dag.Dag_Vertex_dag_get
    if _newclass:
        dag = _swig_property(_dag.Dag_Vertex_dag_get, _dag.Dag_Vertex_dag_set)
    __swig_setmethods__["mark"] = _dag.Dag_Vertex_mark_set
    __swig_getmethods__["mark"] = _dag.Dag_Vertex_mark_get
    if _newclass:
        mark = _swig_property(_dag.Dag_Vertex_mark_get, _dag.Dag_Vertex_mark_set)
    __swig_setmethods__["visit"] = _dag.Dag_Vertex_visit_set
    __swig_getmethods__["visit"] = _dag.Dag_Vertex_visit_get
    if _newclass:
        visit = _swig_property(_dag.Dag_Vertex_visit_get, _dag.Dag_Vertex_visit_set)
    __swig_setmethods__["vHandle"] = _dag.Dag_Vertex_vHandle_set
    __swig_getmethods__["vHandle"] = _dag.Dag_Vertex_vHandle_get
    if _newclass:
        vHandle = _swig_property(_dag.Dag_Vertex_vHandle_get, _dag.Dag_Vertex_vHandle_set)
    __swig_setmethods__["gRef"] = _dag.Dag_Vertex_gRef_set
    __swig_getmethods__["gRef"] = _dag.Dag_Vertex_gRef_get
    if _newclass:
        gRef = _swig_property(_dag.Dag_Vertex_gRef_get, _dag.Dag_Vertex_gRef_set)
    __swig_setmethods__["iRef"] = _dag.Dag_Vertex_iRef_set
    __swig_getmethods__["iRef"] = _dag.Dag_Vertex_iRef_get
    if _newclass:
        iRef = _swig_property(_dag.Dag_Vertex_iRef_get, _dag.Dag_Vertex_iRef_set)

    def __init__(self):
        """__init__(Dag_Vertex self) -> Dag_Vertex"""
        this = _dag.new_Dag_Vertex()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _dag.delete_Dag_Vertex
    __del__ = lambda self: None
Dag_Vertex_swigregister = _dag.Dag_Vertex_swigregister
Dag_Vertex_swigregister(Dag_Vertex)

class Dag_DfsFunctions(_object):
    """Proxy of C Dag_DfsFunctions struct."""

    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Dag_DfsFunctions, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Dag_DfsFunctions, name)
    __repr__ = _swig_repr
    __swig_setmethods__["Set"] = _dag.Dag_DfsFunctions_Set_set
    __swig_getmethods__["Set"] = _dag.Dag_DfsFunctions_Set_get
    if _newclass:
        Set = _swig_property(_dag.Dag_DfsFunctions_Set_get, _dag.Dag_DfsFunctions_Set_set)
    __swig_setmethods__["FirstVisit"] = _dag.Dag_DfsFunctions_FirstVisit_set
    __swig_getmethods__["FirstVisit"] = _dag.Dag_DfsFunctions_FirstVisit_get
    if _newclass:
        FirstVisit = _swig_property(_dag.Dag_DfsFunctions_FirstVisit_get, _dag.Dag_DfsFunctions_FirstVisit_set)
    __swig_setmethods__["BackVisit"] = _dag.Dag_DfsFunctions_BackVisit_set
    __swig_getmethods__["BackVisit"] = _dag.Dag_DfsFunctions_BackVisit_get
    if _newclass:
        BackVisit = _swig_property(_dag.Dag_DfsFunctions_BackVisit_get, _dag.Dag_DfsFunctions_BackVisit_set)
    __swig_setmethods__["LastVisit"] = _dag.Dag_DfsFunctions_LastVisit_set
    __swig_getmethods__["LastVisit"] = _dag.Dag_DfsFunctions_LastVisit_get
    if _newclass:
        LastVisit = _swig_property(_dag.Dag_DfsFunctions_LastVisit_get, _dag.Dag_DfsFunctions_LastVisit_set)

    def __init__(self):
        """__init__(Dag_DfsFunctions self) -> Dag_DfsFunctions"""
        this = _dag.new_Dag_DfsFunctions()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _dag.delete_Dag_DfsFunctions
    __del__ = lambda self: None
Dag_DfsFunctions_swigregister = _dag.Dag_DfsFunctions_swigregister
Dag_DfsFunctions_swigregister(Dag_DfsFunctions)


def Dag_Dfs(dfsRoot: 'Dag_Vertex', dfsFun: 'Dag_DfsFunctions', dfsData: 'char *') -> "void":
    """Dag_Dfs(Dag_Vertex dfsRoot, Dag_DfsFunctions dfsFun, char * dfsData)"""
    return _dag.Dag_Dfs(dfsRoot, dfsFun, dfsData)

def Dag_ManagerAlloc() -> "Dag_Manager_t *":
    """Dag_ManagerAlloc() -> Dag_Manager_t *"""
    return _dag.Dag_ManagerAlloc()

def Dag_ManagerFree(dagManager: 'Dag_Manager_t *', freeData: 'Dag_ProcPtr_t', freeGen: 'Dag_ProcPtr_t') -> "void":
    """Dag_ManagerFree(Dag_Manager_t * dagManager, Dag_ProcPtr_t freeData, Dag_ProcPtr_t freeGen)"""
    return _dag.Dag_ManagerFree(dagManager, freeData, freeGen)

def Dag_ManagerGC(dagManager: 'Dag_Manager_t *', freeData: 'Dag_ProcPtr_t', freeGen: 'Dag_ProcPtr_t') -> "void":
    """Dag_ManagerGC(Dag_Manager_t * dagManager, Dag_ProcPtr_t freeData, Dag_ProcPtr_t freeGen)"""
    return _dag.Dag_ManagerGC(dagManager, freeData, freeGen)

def Dag_PrintStats(dagManager: 'Dag_Manager_t *', clustSz: 'int', outFile: 'FILE *') -> "void":
    """Dag_PrintStats(Dag_Manager_t * dagManager, int clustSz, FILE * outFile)"""
    return _dag.Dag_PrintStats(dagManager, clustSz, outFile)

def Dag_VertexLookup(dagManager: 'Dag_Manager_t *', vSymb: 'int', vData: 'char *', vSons: 'Dag_Vertex_t **', numSons: 'unsigned int') -> "Dag_Vertex_t *":
    """Dag_VertexLookup(Dag_Manager_t * dagManager, int vSymb, char * vData, Dag_Vertex_t ** vSons, unsigned int numSons) -> Dag_Vertex"""
    return _dag.Dag_VertexLookup(dagManager, vSymb, vData, vSons, numSons)

def Dag_VertexInsert(dagManager: 'Dag_Manager_t *', vSymb: 'int', vData: 'char *', vSons: 'Dag_Vertex_t **', numSons: 'unsigned int') -> "Dag_Vertex_t *":
    """Dag_VertexInsert(Dag_Manager_t * dagManager, int vSymb, char * vData, Dag_Vertex_t ** vSons, unsigned int numSons) -> Dag_Vertex"""
    return _dag.Dag_VertexInsert(dagManager, vSymb, vData, vSons, numSons)

def Dag_VertexMark(v: 'Dag_Vertex') -> "void":
    """Dag_VertexMark(Dag_Vertex v)"""
    return _dag.Dag_VertexMark(v)

def Dag_VertexUnmark(v: 'Dag_Vertex') -> "void":
    """Dag_VertexUnmark(Dag_Vertex v)"""
    return _dag.Dag_VertexUnmark(v)

def PrintStat(dfsRoot: 'Dag_Vertex', statFile: 'FILE *', prefix: 'char *') -> "void":
    """PrintStat(Dag_Vertex dfsRoot, FILE * statFile, char * prefix)"""
    return _dag.PrintStat(dfsRoot, statFile, prefix)
# This file is compatible with both classic and new-style classes.

cvar = _dag.cvar

