'Takes one step in the analysis (called by run()).'

def step(self):

    self.pre_tick()
    self.tick()
    self.spill()
    self.post_tick()
    self._current_step += 1
    l.debug('After    iteration:    %s', self)
    return self
