checkTokens.py 559 Bytes
import sys

def indent(l: str) -> int:
	i = 0
	while l[i] == '\t': i += 2
	return i / 2

if __name__ == '__main__':
	with open(sys.argv[1]) as i:
		ab = None
		readNext = False
		prevBeg = -1
		for l in i:
			if readNext:
				ab = l
				readNext = False
			elif indent(l) == 1:
				readNext = True
				prevBeg = -1
			elif indent(l) == 3:
				split = l.split('; ')
				beg = int(split[1])
				end = beg + int(split[2])
				if ab[beg:end] != split[3]: print("Token error at\n" + l)
				if beg <= prevBeg: print("Monotonicity error at\n" + l)
				prevBeg = beg