import inspect class Parser: def __init__(self, debug=False): self.code = "" self.debug = debug self.position = "" self.token = "" self.error = "" def show(self, msg=""): if self.debug: caller = inspect.stack()[1][3] print(self.code+"\n"+" "*self.position+"^") print(" "+msg+" from "+caller+" token="+self.token+" error="+self.error) def nextToken(self): self.token = "" # Leerschläge ignorieren while self.position=len(self.code): self.error = "done" return # Tokens mit einem Zeichen if self.code[self.position] in "()+-*/": self.token = self.code[self.position] self.position+=1 return # Zahlen while self.position %f" % r) else: print("FAIL on "+test)