parameters: (filename, clean_lines, linenum, error)
docstring: Checks for horizontal spacing around parentheses.
  
    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: Checks for horizontal spacing around parentheses.
docstring_tokens: Checks for horizontal spacing around parentheses .
function: def CheckParenthesisSpacing(filename, clean_lines, linenum, error):
    """Checks for horizontal spacing around parentheses.
  
    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]
  
    # No spaces after an if, while, switch, or for
    match = Search(r' (if\(|for\(|while\(|switch\()', line)
    if match:
      error(filename, linenum, 'whitespace/parens', 5,
            'Missing space before ( in %s' % match.group(1))
  
    # For if/for/while/switch, the left and right parens should be
    # consistent about how many spaces are inside the parens, and
    # there should either be zero or one spaces inside the parens.
    # We don't want: "if ( foo)" or "if ( foo   )".
    # Exception: "for ( ; foo; bar)" and "for (foo; bar; )" are allowed.
    match = Search(r'\b(if|for|while|switch)\s*'
                   r'\(([ ]*)(.).*[^ ]+([ ]*)\)\s*{\s*$',
                   line)
    if match:
      if len(match.group(2)) != len(match.group(4)):
        if not (match.group(3) == ';' and
                len(match.group(2)) == 1 + len(match.group(4)) or
                not match.group(2) and Search(r'\bfor\s*\(.*; \)', line)):
          error(filename, linenum, 'whitespace/parens', 5,
                'Mismatching spaces inside () in %s' % match.group(1))
      if len(match.group(2)) not in [0, 1]:
        error(filename, linenum, 'whitespace/parens', 5,
              'Should have zero or one spaces inside ( and ) in %s' %
              match.group(1))
function_tokens: def CheckParenthesisSpacing ( filename , clean_lines , linenum , error ) : line = clean_lines . elided [ linenum ] # No spaces after an if, while, switch, or for match = Search ( r' (if\(|for\(|while\(|switch\()' , line ) if match : error ( filename , linenum , 'whitespace/parens' , 5 , 'Missing space before ( in %s' % match . group ( 1 ) ) # For if/for/while/switch, the left and right parens should be # consistent about how many spaces are inside the parens, and # there should either be zero or one spaces inside the parens. # We don't want: "if ( foo)" or "if ( foo   )". # Exception: "for ( ; foo; bar)" and "for (foo; bar; )" are allowed. match = Search ( r'\b(if|for|while|switch)\s*' r'\(([ ]*)(.).*[^ ]+([ ]*)\)\s*{\s*$' , line ) if match : if len ( match . group ( 2 ) ) != len ( match . group ( 4 ) ) : if not ( match . group ( 3 ) == ';' and len ( match . group ( 2 ) ) == 1 + len ( match . group ( 4 ) ) or not match . group ( 2 ) and Search ( r'\bfor\s*\(.*; \)' , line ) ) : error ( filename , linenum , 'whitespace/parens' , 5 , 'Mismatching spaces inside () in %s' % match . group ( 1 ) ) if len ( match . group ( 2 ) ) not in [ 0 , 1 ] : error ( filename , linenum , 'whitespace/parens' , 5 , 'Should have zero or one spaces inside ( and ) in %s' % match . group ( 1 ) )