36 lines
906 B
Python
36 lines
906 B
Python
import token
|
|
|
|
delimiters = ["=", ">", "<", "+", "-", "*", "/", " "]
|
|
|
|
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
|
|
match c:
|
|
case '\n':
|
|
doNothing()
|
|
case ' ':
|
|
doNothing()
|
|
case '=':
|
|
if prevEquals:
|
|
prevEquals = False
|
|
tokens.append(token.Token(buf))
|
|
else:
|
|
prevEquals = True
|
|
case _:
|
|
buf += c
|
|
if buf != "":
|
|
tokens.append(token.Token(buf))
|
|
|
|
|
|
return tokens |