diff --git a/scripts/pyaccuwage-checkseq.py b/scripts/pyaccuwage-checkseq.py index fcf3ab0..194a014 100755 --- a/scripts/pyaccuwage-checkseq.py +++ b/scripts/pyaccuwage-checkseq.py @@ -18,19 +18,27 @@ args = parser.parse_args() class ClassEntry(object): re_rangecomment = re.compile('#\s+(\d+)\-?(\d*)$') - def __init__(self, classname, subclassof): - self.classname = classname - self.subclassof = subclassof + def __init__(self, classname, line): + self.classname = classname, + self.line = line self.lines = [] def add_line(self, line): self.lines.append(line) def validate(self): - for line in self.lines: + i = 0 + for (line_no, line) in enumerate(self.lines): match = self.re_rangecomment.search(line) 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): re_triplequote = re.compile('"""') @@ -39,14 +47,15 @@ class ModelDefParser(object): def __init__(self, infile): self.infile = infile + self.line = 0 def endclass(self): if self.current_class: self.current_class.validate() self.current_class = None - def beginclass(self, classname, subclass_of): - self.current_class = ClassEntry(classname, subclass_of) + def beginclass(self, classname, line): + self.current_class = ClassEntry(classname, line) def parse(self): infile = self.infile @@ -55,6 +64,8 @@ class ModelDefParser(object): self.current_class = None for line in infile: + self.line += 1 + if line.startswith('#'): continue @@ -73,10 +84,9 @@ class ModelDefParser(object): classmatch = self.re_classdef.match(line) if classmatch: classname, subclass = classmatch.groups() - self.beginclass(classname, subclass) + self.beginclass(classname, self.line) continue - print match_whitespace if match_whitespace < whitespace: whitespace = match_whitespace self.endclass()