util: Add verifier for opening braces of classes
Make sure that opening braces of classes are not declared in the same line of the class name. This does not work for multi-line classes. Change-Id: I232df1a9ebd974b9f4f66e1d96d03b12513bd49f Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/39016 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Gabe Black <gabe.black@gmail.com>
This commit is contained in:
committed by
Daniel Carvalho
parent
469f0671d1
commit
f96de41fcf
@@ -456,6 +456,33 @@ class BoolCompare(LineVerifier):
|
||||
"comparisons with false/False.\n")
|
||||
return line
|
||||
|
||||
class ClassBraces(LineVerifier):
|
||||
""" Check if the opening braces of classes are not on the same line of
|
||||
the class name.
|
||||
|
||||
@todo Make this work for multi-line class declarations. e.g.,
|
||||
|
||||
class MultiLineClass
|
||||
: public BaseClass {
|
||||
"""
|
||||
|
||||
languages = set(('C', 'C++'))
|
||||
test_name = 'class opening brace position'
|
||||
opt_name = 'classbrace'
|
||||
|
||||
regex = re.compile(r'\A(\s*)(class\s+[A-Z].*\S)\s*\{')
|
||||
|
||||
def check_line(self, line, **kwargs):
|
||||
return self.regex.search(line) == None
|
||||
|
||||
def fix_line(self, line, **kwargs):
|
||||
match = self.regex.search(line)
|
||||
if match:
|
||||
# Group 1 is indentation, group 2 is class declaration
|
||||
line = match.group(1) + match.group(2) + "\n" + \
|
||||
match.group(1) + "{"
|
||||
return line
|
||||
|
||||
def is_verifier(cls):
|
||||
"""Determine if a class is a Verifier that can be instantiated"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user