pyaccuwage-checkseq now reports error lines when it encounters out-of-sequence field comments
This commit is contained in:
parent
c6df6c5452
commit
6bff5da58b
1 changed files with 19 additions and 9 deletions
|
@ -18,19 +18,27 @@ args = parser.parse_args()
|
||||||
class ClassEntry(object):
|
class ClassEntry(object):
|
||||||
re_rangecomment = re.compile('#\s+(\d+)\-?(\d*)$')
|
re_rangecomment = re.compile('#\s+(\d+)\-?(\d*)$')
|
||||||
|
|
||||||
def __init__(self, classname, subclassof):
|
def __init__(self, classname, line):
|
||||||
self.classname = classname
|
self.classname = classname,
|
||||||
self.subclassof = subclassof
|
self.line = line
|
||||||
self.lines = []
|
self.lines = []
|
||||||
|
|
||||||
def add_line(self, line):
|
def add_line(self, line):
|
||||||
self.lines.append(line)
|
self.lines.append(line)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
for line in self.lines:
|
i = 0
|
||||||
|
for (line_no, line) in enumerate(self.lines):
|
||||||
match = self.re_rangecomment.search(line)
|
match = self.re_rangecomment.search(line)
|
||||||
if match:
|
if match:
|
||||||
print match.groups()
|
(a, b) = match.groups()
|
||||||
|
a = int(a)
|
||||||
|
|
||||||
|
if (i + 1) != a:
|
||||||
|
line_number = self.line + line_no
|
||||||
|
print("ERROR\tline:%d\tnear:%s\texpected:%d\tsaw:%d" % (line_number, line.split(' ')[0].strip(), i+1, a))
|
||||||
|
|
||||||
|
i = int(b) if b else a
|
||||||
|
|
||||||
class ModelDefParser(object):
|
class ModelDefParser(object):
|
||||||
re_triplequote = re.compile('"""')
|
re_triplequote = re.compile('"""')
|
||||||
|
@ -39,14 +47,15 @@ class ModelDefParser(object):
|
||||||
|
|
||||||
def __init__(self, infile):
|
def __init__(self, infile):
|
||||||
self.infile = infile
|
self.infile = infile
|
||||||
|
self.line = 0
|
||||||
|
|
||||||
def endclass(self):
|
def endclass(self):
|
||||||
if self.current_class:
|
if self.current_class:
|
||||||
self.current_class.validate()
|
self.current_class.validate()
|
||||||
self.current_class = None
|
self.current_class = None
|
||||||
|
|
||||||
def beginclass(self, classname, subclass_of):
|
def beginclass(self, classname, line):
|
||||||
self.current_class = ClassEntry(classname, subclass_of)
|
self.current_class = ClassEntry(classname, line)
|
||||||
|
|
||||||
def parse(self):
|
def parse(self):
|
||||||
infile = self.infile
|
infile = self.infile
|
||||||
|
@ -55,6 +64,8 @@ class ModelDefParser(object):
|
||||||
self.current_class = None
|
self.current_class = None
|
||||||
|
|
||||||
for line in infile:
|
for line in infile:
|
||||||
|
self.line += 1
|
||||||
|
|
||||||
if line.startswith('#'):
|
if line.startswith('#'):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -73,10 +84,9 @@ class ModelDefParser(object):
|
||||||
classmatch = self.re_classdef.match(line)
|
classmatch = self.re_classdef.match(line)
|
||||||
if classmatch:
|
if classmatch:
|
||||||
classname, subclass = classmatch.groups()
|
classname, subclass = classmatch.groups()
|
||||||
self.beginclass(classname, subclass)
|
self.beginclass(classname, self.line)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
print match_whitespace
|
|
||||||
if match_whitespace < whitespace:
|
if match_whitespace < whitespace:
|
||||||
whitespace = match_whitespace
|
whitespace = match_whitespace
|
||||||
self.endclass()
|
self.endclass()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue