# Path: krakatau-lib/src/main/resources/Lib/Krakatau/ssa/functionbase.py
# class SSAFunctionBase(object):
#     def __init__(self, parent, arguments):
#         self.parent = parent
#         self.params = list(arguments)
#         assert(None not in self.params)
# 
#     def replaceVars(self, rdict):
#         self.params = [rdict.get(x,x) for x in self.params]
#         assert(None not in self.params)
# 
# Path: krakatau-lib/src/main/resources/Lib/Krakatau/ssa/ssa_types.py
# SSA_OBJECT = 'obj',
# 
# SSA_MONAD = 'monad',


from ..functionbase import SSAFunctionBase
from ..ssa_types import SSA_OBJECT, SSA_MONAD

class BaseOp(SSAFunctionBase):
    def __init__(self, parent, arguments, makeException=False, makeMonad=False):
        super(BaseOp, self).__init__(parent,arguments)

        self.rval = None
        self.outException = None
        self.outMonad = None

        if makeException:

# Path: krakatau-lib/src/main/resources/Lib/Krakatau/ssa/functionbase.py
# class SSAFunctionBase(object):
#     def __init__(self, parent, arguments):
#         self.parent = parent
#         self.params = list(arguments)
#         assert(None not in self.params)
# 
#     def replaceVars(self, rdict):
#         self.params = [rdict.get(x,x) for x in self.params]
#         assert(None not in self.params)
# 
# Path: krakatau-lib/src/main/resources/Lib/Krakatau/ssa/ssa_types.py
# SSA_OBJECT = 'obj',
# 
# SSA_MONAD = 'monad',


# Path: krakatau-lib/src/main/resources/Lib/Krakatau/ssa/ssa_ops/base.py
from ..functionbase import SSAFunctionBase
from ..ssa_types import SSA_OBJECT, SSA_MONAD


class BaseOp(SSAFunctionBase):
    def __init__(self, parent, arguments, makeException=False, makeMonad=False):
        super(BaseOp, self).__init__(parent,arguments)

        self.rval = None
        self.outException = None
        self.outMonad = None

        if makeException:

            self.outException = parent.makeVariable(SSA_OBJECT, origin=self)