def CheckParenthesisSpacing()

in cpplint.py [0:0]


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))