Use .span() for positions, and separate line_no argument in Match
This reverts a previous change where line_no was removed and put into a triple tuple. It was discovered that re.Match.span() conveniently returns (start, end), so separating line_no again makes the code cleaner. The legibility of the code heavily outweighs the issues pointed out by Pylint (hence disabled). Signed-off-by: Yuto Takano <yuto.takano@arm.com>
This commit is contained in:
parent
b1417b4554
commit
704b0f77e1
1 changed files with 18 additions and 14 deletions
|
@ -67,13 +67,15 @@ class Match(): # pylint: disable=too-few-public-methods
|
|||
Fields:
|
||||
* filename: the file that the match was in.
|
||||
* line: the full line containing the match.
|
||||
* pos: a tuple of (line_no, start, end) positions on the file line where the
|
||||
match is.
|
||||
* line_no: the line number.
|
||||
* pos: a tuple of (start, end) positions on the line where the match is.
|
||||
* name: the match itself.
|
||||
"""
|
||||
def __init__(self, filename, line, pos, name):
|
||||
def __init__(self, filename, line, line_no, pos, name):
|
||||
# pylint: disable=too-many-arguments
|
||||
self.filename = filename
|
||||
self.line = line
|
||||
self.line_no = line_no
|
||||
self.pos = pos
|
||||
self.name = name
|
||||
|
||||
|
@ -81,8 +83,8 @@ class Match(): # pylint: disable=too-few-public-methods
|
|||
"""
|
||||
Return a formatted code listing representation of the erroneous line.
|
||||
"""
|
||||
gutter = format(self.pos[0], "4d")
|
||||
underline = self.pos[1] * " " + (self.pos[2] - self.pos[1]) * "^"
|
||||
gutter = format(self.line_no, "4d")
|
||||
underline = self.pos[0] * " " + (self.pos[1] - self.pos[0]) * "^"
|
||||
|
||||
return (
|
||||
" {0} |\n".format(" " * len(gutter)) +
|
||||
|
@ -338,7 +340,8 @@ class CodeParser():
|
|||
macros.append(Match(
|
||||
header_file,
|
||||
line,
|
||||
(line_no, macro.start(), macro.end()),
|
||||
line_no,
|
||||
macro.span("macro"),
|
||||
macro.group("macro")))
|
||||
|
||||
return macros
|
||||
|
@ -372,9 +375,9 @@ class CodeParser():
|
|||
mbed_words.append(Match(
|
||||
filename,
|
||||
line,
|
||||
(line_no, name.start(), name.end()),
|
||||
name.group(0)
|
||||
))
|
||||
line_no,
|
||||
name.span(0),
|
||||
name.group(0)))
|
||||
|
||||
return mbed_words
|
||||
|
||||
|
@ -425,9 +428,8 @@ class CodeParser():
|
|||
enum_consts.append(Match(
|
||||
header_file,
|
||||
line,
|
||||
(line_no,
|
||||
enum_const.start("enum_const"),
|
||||
enum_const.end("enum_const")),
|
||||
line_no,
|
||||
enum_const.span("enum_const"),
|
||||
enum_const.group("enum_const")))
|
||||
|
||||
return enum_consts
|
||||
|
@ -533,7 +535,8 @@ class CodeParser():
|
|||
identifiers.append(Match(
|
||||
header_file,
|
||||
line,
|
||||
(line_no, identifier.start(), identifier.end()),
|
||||
line_no,
|
||||
identifier.span(),
|
||||
group))
|
||||
|
||||
return identifiers
|
||||
|
@ -722,7 +725,8 @@ class NameChecker():
|
|||
problems.append(PatternMismatch(check_pattern, item_match))
|
||||
# Double underscore should not be used for names
|
||||
if re.search(r".*__.*", item_match.name):
|
||||
problems.append(PatternMismatch("double underscore", item_match))
|
||||
problems.append(
|
||||
PatternMismatch("no double underscore allowed", item_match))
|
||||
|
||||
self.output_check_result(
|
||||
"Naming patterns of {}".format(group_to_check),
|
||||
|
|
Loading…
Reference in a new issue