import dump

def dump_KNode (self, out, indent, comp, namers):
    # default implementation does nothing
    return

def dump_InstanceKNode (self, out, indent, comp, namers):
    out.write ('%*sTypes: %s\n' % (indent, "", repr (self.types)))
    pass

def dump_ClassKNode (self, out, indent, comp, namers):
    out.write ('%*sName: %s\n' % (indent, "", self.get_name ()))
    out.write ('%*sInstance Attributes:\n' % (indent, ""))
    for edge in self.get_instance_attrs ():
        dump.dump_knode (out, indent+2, comp, namers, edge.label, edge.node)
        pass
    out.write ('%*sClass Attributes:\n' % (indent, ""))
    pass

def dump_FunctionKNode (self, out, indent, comp, namers):
    for edge in self.get_parameters ():
        dump.dump_knode (out, indent, comp, namers,
                         "Parameter %s" % edge.label, edge.node)
        pass
    for jit in self.get_jitted_versions ():
        out.write ('%*sJitted Version %s:\n' % (indent, "", namers.jit(jit)))
        dump.dump_jitted_version (out, indent+2, comp, jit, namers)
        pass
    for func in self.get_sub_functions ():
        dump.dump_knode (out, indent, comp, namers, 'Subfunction', func)
        pass
    pass

