code: def merge_continued_lines(lines):
      
  
      # Before a continuation line L1 is merged with the line L0 before it (and
      # presumably the one L1 is continuing), ensure that L0 is not a comment.
      # If L0 is a comment, swap L0 and L1.
      chg = True
      while chg:
          chg = False
          i = 0
          while i < len(lines) - 1:
              ln0, ln1 = lines[i], lines[i + 1]
              if line_is_comment(ln0[1]) and line_is_continuation(ln1[1]):
                  # swap the code portions of lines[i] and lines[i+1]
                  lines[i], lines[i + 1] = (ln0[0], ln1[1]), (ln1[0], ln0[1])
                  chg = True
              i += 1
  
      # Merge continuation lines
      chg = True
      while chg:
          chg = False
          i = 0
          while i < len(lines):
              line = lines[i]
              if line_is_continuation(line[1]):
                  assert i > 0
                  (prev_linenum, prev_line_code) = lines[i - 1]
                  curr_line_code = line[1].lstrip()[
                      1:
                  ]  # remove continuation  char
                  merged_code = prev_line_code.rstrip() + curr_line_code.lstrip()
  
                  lines[i - 1] = (prev_linenum, merged_code)
                  lines.pop(i)
                  chg = True
              i += 1
  
      return lines
docs: Given a list of numered Fortran source code lines, i.e., pairs of the
         form (n, code_line) where n is a line number and code_line is a line
         of code, merge_continued_lines() merges sequences of lines that are
         indicated to be continuation lines.