code: def fortranSourceLines(fo):
      """Return an iterator over statement lines of a Fortran source file.
  
      Comment and blank lines are stripped out, and continuation lines are
      merged.
      """
      numberingiter = LineIterator(fo)
      # add an extra '' at the end
      with_extra = itertools.chain(numberingiter, [""])
      pushbackiter = PushbackIterator(with_extra)
      for line in pushbackiter:
          t = lineType(line)
          if t == COMMENT:
              continue
          elif t == STATEMENT:
              lines = [line]
              # this is where we need the extra '', so we don't finish reading
              # the iterator when we don't want to handle that
              for next_line in pushbackiter:
                  t = lineType(next_line)
                  if t == CONTINUATION:
                      lines.append(next_line[6:])
                  else:
                      pushbackiter.pushback(next_line)
                      break
              yield numberingiter.lineno, "".join(lines)
          else:
              raise ValueError(
                  "jammed: continuation line not expected: %s:%d"
                  % (fo.name, numberingiter.lineno)
              )
  
file_path: numpy/numpy/linalg/lapack_lite/fortran.py
imports: import re
  import itertools
label_desc: Use image node_id 6 for calling a global function with example usage: fortranSourceLines(fo) without return types