              self.parseC(tokens.c, tokens.length, nr_feat, nr_class)
              tokens.is_parsed = True
          # Check for KeyboardInterrupt etc. Untested
          PyErr_CheckSignals()
  
      def pipe(self, stream, int batch_size=1000, int n_threads=2):
          cdef Pool mem = Pool()
          cdef TokenC** doc_ptr = <TokenC**>mem.alloc(batch_size, sizeof(TokenC*))
          cdef int* lengths = <int*>mem.alloc(batch_size, sizeof(int))
          cdef Doc doc
 
</s> remove     def __init__(self, StringStore strings, transition_system, ParserModel model):
 </s> add     def __init__(self, StringStore strings, transition_system, ParserModel model, int projectivize = 0): </s> remove                 # If this head is still to the right of us, we can skip to it
                # No token that's between this token and this head could be our
                # child.
                if (ptr.head < 0) and ((ptr + ptr.head) > self.c):
                    ptr += ptr.head
                elif ptr + ptr.head == self.c:
 </s> add                 if ptr + ptr.head == self.c: </s> remove                 # If this head is still to the right of us, we can skip to it
                # No token that's between this token and this head could be our
                # child.
                if (ptr.head >= 1) and (ptr + ptr.head) < self.c:
                    ptr += ptr.head

                elif ptr + ptr.head == self.c:
 </s> add                 if ptr + ptr.head == self.c:
        # projectivize output
        if self._projectivize:
            PseudoProjectivity.deprojectivize(tokens)
              self.parseC(tokens.c, tokens.length, nr_feat, nr_class)
              tokens.is_parsed = True
          # Check for KeyboardInterrupt etc. Untested
          PyErr_CheckSignals()
        # projectivize output
        if self._projectivize:
            PseudoProjectivity.deprojectivize(tokens)
  
      def pipe(self, stream, int batch_size=1000, int n_threads=2):
          cdef Pool mem = Pool()
          cdef TokenC** doc_ptr = <TokenC**>mem.alloc(batch_size, sizeof(TokenC*))
          cdef int* lengths = <int*>mem.alloc(batch_size, sizeof(int))
          cdef Doc doc
keep keep keep add keep keep keep keep keep keep
 integrated pseudo-projective parsing into parser

- nonproj.pyx holds a class PseudoProjectivity which currently holds
  all functionality to implement Nivre & Nilsson 2005's pseudo-projective
  parsing using the HEAD decoration scheme
- changed lefts/rights in Token to account for possible non-projective
  structures 
spacy/syntax/parser.pyx