pyaccuwage-checkseq now reports error lines when it encounters out-of-sequence field comments

This commit is contained in:
Binh 2013-04-13 12:31:11 -05:00
parent c6df6c5452
commit 6bff5da58b

View file

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