          second = words[self.S(1)] + '_%d' % self.S_(1).head
          third = words[self.S(2)] + '_%d' % self.S_(2).head
          n0 = words[self.B(0)] 
          n1 = words[self.B(1)] 
          return ' '.join((str(self.buffer_length()), str(self.stack_depth()), third, second, top, '|', n0, n1))
   
  
  # From https://en.wikipedia.org/wiki/Hamming_weight
  cdef inline uint32_t _popcount(uint32_t x) nogil:
      """Find number of non-zero bits."""
 
</s> remove         # When we break, we can't reach any arcs between stack and buffer
        # So cost is number of deps between S0...Sn and B0...Nn
        cdef int cost = 0
        cdef int i, j, B_i, S_i
        for i in range(s.buffer_length()):
            B_i = s.B(i)
            for j in range(s.stack_depth()):
                S_i = s.S(j)
                cost += gold.heads[B_i] == S_i
                cost += gold.heads[S_i] == B_i
        return cost
 </s> add         # Check for sentence boundary --- if it's here, we can't have any deps
        # between stack and buffer, so rest of action is irrelevant.
        s0_root = _get_root(s.S(0), gold)
        b0_root = _get_root(s.B(0), gold)
        if s0_root == -1 or b0_root == -1 or s0_root != b0_root:
            return 0
        else:
            return 1 </s> remove     cdef void set_break(self, int i) nogil:
        if 0 <= i < self.length:
            self._sent[i].sent_end = True
            self._break = i
 </s> add     cdef void set_break(self, int _) nogil:
        self._sent[self.B(0)].sent_end = True
        self._break = self._b_i </s> remove         if self._b_i >= self._break:
 </s> add         if self._b_i > self._break:
        return ' '.join((str(self.buffer_length()), str(self.B_(0).sent_end), str(self._b_i), str(self._break), str(self.length), str(self.stack_depth()), third, second, top, '|', n0, n1))
          second = words[self.S(1)] + '_%d' % self.S_(1).head
          third = words[self.S(2)] + '_%d' % self.S_(2).head
          n0 = words[self.B(0)] 
          n1 = words[self.B(1)] 
        return ' '.join((str(self.buffer_length()), str(self.B_(0).sent_end), str(self._b_i), str(self._break), str(self.length), str(self.stack_depth()), third, second, top, '|', n0, n1))
   
  
  # From https://en.wikipedia.org/wiki/Hamming_weight
  cdef inline uint32_t _popcount(uint32_t x) nogil:
      """Find number of non-zero bits."""
keep keep keep keep replace keep keep keep keep keep
 * Fixes to unshift/fast-forward strategy. Getting 91.55 greedy on NW dev, gold preproc 
spacy/syntax/stateclass.pyx