parameters: (file_lines, line_number)
return_statement: return retval
docstring: Returns the line-number for the comment-lines preceding the given linenum.
  
    Looking at file_lines, look at the lines immediately preceding the
    given line-number.  If they're comment lines, return the first line
    of the comment lines preceding the given line.  Otherwise, return
    the given line number.
  
    As a special case, if the comments go all the way up to the first
    line of the file (line 1), we assume they're comment lines, which
    are special -- they're not associated with any source code line --
    and we return line_number in that case.
  
    Arguments:
      file_lines: an array of LineInfo objects, with .type fields filled in.
      line_number: an index into file_lines.
  
    Returns:
      The first line number of the preceding comments, or line_number
        if there are no preceding comments or they appear to be a
        top-of-file copyright notice.
docstring_summary: Returns the line-number for the comment-lines preceding the given linenum.
docstring_tokens: Returns the line - number for the comment - lines preceding the given linenum .
function: def _LineNumberStartingPrecedingComments(file_lines, line_number):
    """Returns the line-number for the comment-lines preceding the given linenum.
  
    Looking at file_lines, look at the lines immediately preceding the
    given line-number.  If they're comment lines, return the first line
    of the comment lines preceding the given line.  Otherwise, return
    the given line number.
  
    As a special case, if the comments go all the way up to the first
    line of the file (line 1), we assume they're comment lines, which
    are special -- they're not associated with any source code line --
    and we return line_number in that case.
  
    Arguments:
      file_lines: an array of LineInfo objects, with .type fields filled in.
      line_number: an index into file_lines.
  
    Returns:
      The first line number of the preceding comments, or line_number
        if there are no preceding comments or they appear to be a
        top-of-file copyright notice.
    """
    retval = line_number
    while retval > 0 and file_lines[retval - 1].type == _COMMENT_LINE_RE:
      retval -= 1
    if retval <= 1:          # top-of-line comments
      retval = line_number   # so ignore all the comment lines
    return retval
function_tokens: def _LineNumberStartingPrecedingComments ( file_lines , line_number ) : retval = line_number while retval > 0 and file_lines [ retval - 1 ] . type == _COMMENT_LINE_RE : retval -= 1 if retval <= 1 : # top-of-line comments retval = line_number # so ignore all the comment lines return retval