docs: def get_lines(self, first, last):
          """Return SourceLines for lines between and including first & last."""
          line = 1
          linestring = []
          linestrings = []
          for char in self.string:
              if line >= first and line <= last:
                  linestring.append(char)
                  if char == '\n':
                      linestrings.append((''.join(linestring), line))
                      linestring = []
              elif line > last:
                  break
  
              if char == '\n':
                  line += 1
          if linestring:
              linestrings.append((''.join(linestring), line))
          elif not linestrings:
              return None
  
          return [SourceLine(string, lineno) for string, lineno in linestrings]