parameters: (filename, clean_lines, linenum, error)
docstring: Logs an error if we see /* ... */ or "..." that extend past one line.
  
    /* ... */ comments are legit inside macros, for one line.
    Otherwise, we prefer // comments, so it's ok to warn about the
    other.  Likewise, it's ok for strings to extend across multiple
    lines, as long as a line continuation character (backslash)
    terminates each line. Although not currently prohibited by the C++
    style guide, it's ugly and unnecessary. We don't do well with either
    in this lint program, so we warn about both.
  
    Args:
      filename: The name of the current file.
      clean_lines: A CleansedLines instance containing the file.
      linenum: The number of the line to check.
      error: The function to call with any errors found.
docstring_summary: Logs an error if we see /* ... */ or "..." that extend past one line.
docstring_tokens: Logs an error if we see / * ... * / or ... that extend past one line .
function: def CheckForMultilineCommentsAndStrings(filename, clean_lines, linenum, error):
    """Logs an error if we see /* ... */ or "..." that extend past one line.
  
    /* ... */ comments are legit inside macros, for one line.
    Otherwise, we prefer // comments, so it's ok to warn about the
    other.  Likewise, it's ok for strings to extend across multiple
    lines, as long as a line continuation character (backslash)
    terminates each line. Although not currently prohibited by the C++
    style guide, it's ugly and unnecessary. We don't do well with either
    in this lint program, so we warn about both.
  
    Args:
      filename: The name of the current file.
      clean_lines: A CleansedLines instance containing the file.
      linenum: The number of the line to check.
      error: The function to call with any errors found.
    """
    line = clean_lines.elided[linenum]
  
    # Remove all \\ (escaped backslashes) from the line. They are OK, and the
    # second (escaped) slash may trigger later \" detection erroneously.
    line = line.replace('\\\\', '')
  
    if line.count('/*') > line.count('*/'):
      error(filename, linenum, 'readability/multiline_comment', 5,
            'Complex multi-line /*...*/-style comment found. '
            'Lint may give bogus warnings.  '
            'Consider replacing these with //-style comments, '
            'with #if 0...#endif, '
            'or with more clearly structured multi-line comments.')
  
    if (line.count('"') - line.count('\\"')) % 2:
      error(filename, linenum, 'readability/multiline_string', 5,
            'Multi-line string ("...") found.  This lint script doesn\'t '
            'do well with such strings, and may give bogus warnings.  '
            'Use C++11 raw strings or concatenation instead.')
function_tokens: def CheckForMultilineCommentsAndStrings ( filename , clean_lines , linenum , error ) : line = clean_lines . elided [ linenum ] # Remove all \\ (escaped backslashes) from the line. They are OK, and the # second (escaped) slash may trigger later \" detection erroneously. line = line . replace ( '\\\\' , '' ) if line . count ( '/*' ) > line . count ( '*/' ) : error ( filename , linenum , 'readability/multiline_comment' , 5 , 'Complex multi-line /*...*/-style comment found. ' 'Lint may give bogus warnings.  ' 'Consider replacing these with //-style comments, ' 'with #if 0...#endif, ' 'or with more clearly structured multi-line comments.' ) if ( line . count ( '"' ) - line . count ( '\\"' ) ) % 2 : error ( filename , linenum , 'readability/multiline_string' , 5 , 'Multi-line string ("...") found.  This lint script doesn\'t ' 'do well with such strings, and may give bogus warnings.  ' 'Use C++11 raw strings or concatenation instead.' )