parameters: (self, bm)
return_statement: return tuples
docstring: Separates a bitmask into a list of (l, r) tuples,
          corresponding to the empty regions in the row between 0 and
          self.w.
docstring_summary: Separates a bitmask into a list of (l, r) tuples,
          corresponding to the empty regions in the row between 0 and
          self.w.
docstring_tokens: Separates a bitmask into a list of ( l r ) tuples corresponding to the empty regions in the row between 0 and self . w .
function: def findEmptyRuns(self, bm):
          """ Separates a bitmask into a list of (l, r) tuples,
          corresponding to the empty regions in the row between 0 and
          self.w. """
  
          tuples = set()
          l = bm.getLowestOffBit()
          assert l != -1
          if l < self.w:
              r = bm.getNextHigherDifferentBit(l)
              if r == l or r >= self.w:
                  r = self.w
              tuples.add((l, r))
              l = bm.getNextHigherDifferentBit(r)
              while l != r and l < self.w:
                  r = bm.getNextHigherDifferentBit(l)
                  if r == l or r >= self.w:
                      r = self.w
                  tuples.add((l, r))
                  l = bm.getNextHigherDifferentBit(r)
  
          return tuples
function_tokens: def findEmptyRuns ( self , bm ) : tuples = set ( ) l = bm . getLowestOffBit ( ) assert l != - 1 if l < self . w : r = bm . getNextHigherDifferentBit ( l ) if r == l or r >= self . w : r = self . w tuples . add ( ( l , r ) ) l = bm . getNextHigherDifferentBit ( r ) while l != r and l < self . w : r = bm . getNextHigherDifferentBit ( l ) if r == l or r >= self . w : r = self . w tuples . add ( ( l , r ) ) l = bm . getNextHigherDifferentBit ( r ) return tuples