import token delimiters = ["=", ">", "<", "+", "-", "*", "/", " "] quick_tokens = [">", "<", "+", "-", "*", "/"] def doNothing(): return def process_line(process: str) -> list[token.Token]: buf = "" tokens: list[token.Token] = [] prevEquals = False for c in process: if c in delimiters and buf != "": tokens.append(token.Token(buf)) buf = "" if prevEquals and c != '=': tokens.append(token.Token("=")) prevEquals = False if c in quick_tokens: tokens.append(token.Token(c)) if buf != "": tokens.append(token.Token(buf)) buf = "" else: match c: case '\n': doNothing() case ' ': doNothing() case '=': if prevEquals: prevEquals = False tokens.append(token.Token("==")) else: prevEquals = True case _: buf += c if buf != "": tokens.append(token.Token(buf)) return tokens