def get_kobjects(self, addr):
    mt = type_env[self.member_type]
    if (isinstance(mt, KobjectType) and (mt.name == STACK_TYPE)):
        (*dimensions, stacksize) = self.elements
        num_members = 1
        for e in dimensions:
            num_members = (num_members * e)
        ret = {}
        for i in range(num_members):
            a = (addr + (i * stacksize))
            o = mt.get_kobjects(a)
            o[a].data = stacksize
            ret.update(o)
        return ret
    objs = {}
    num_members = 1
    for e in self.elements:
        num_members = (num_members * e)
    for i in range(num_members):
        objs.update(mt.get_kobjects((addr + (i * mt.size))))
    return objs
def get_kobjects(self, addr):
    mt = type_env[self.member_type]
    if (isinstance(mt, KobjectType) and (mt.name == STACK_TYPE)):
        (*dimensions, stacksize) = self.elements
        num_members = 1
        for e in dimensions:
            num_members = (num_members * e)
        ret = {}
        for i in range(num_members):
            a = (addr + (i * stacksize))
            o = mt.get_kobjects(a)
            o[a].data = stacksize
            ret.update(o)
        return ret
    objs = {}
    num_members = 1
    for e in self.elements:
        num_members = (num_members * e)
    for i in range(num_members):
        objs.update(mt.get_kobjects((addr + (i * mt.size))))
    return objs