Start of redesign

This commit is contained in:
2025-10-18 19:55:02 +11:00
parent c98f248245
commit 5fa47dc377
12 changed files with 140 additions and 202 deletions

View File

@@ -1,45 +1,31 @@
class Line:
def __init__(self, keyword: str, argument: str):
self.keyword: str = keyword
self.argument: str = argument
def preprocess(code: str) -> list[Line]:
token : str = ""
keyword : str = ""
tokenise : list[Line] = []
def preprocess(code: str) -> list[list[str]]:
token : str = ''
tokenise : list[list[str]] = [[]]
isString : bool = False
isComment : bool = False
isKeyword : bool = True
isComment : bool = False
for i in code:
if i == "\n":
if i == '\n':
isComment = False
elif i == "#":
isComment = True
if tokenise[-1] != []:
if token != '':
tokenise[-1].append(token)
tokenise.append([])
token = ''
elif isComment:
pass
elif i == '"':
isString = not(isString)
elif i == '#':
isComment = True
elif (i != ' ') | isString:
token += i
elif isString:
token += i
elif (i == ';') | (i == '{') | (i == '}'):
if i != ';':
token += i
tokenise.append(Line(keyword, token))
if (i == '\"'):
isString = not(isString)
else:
tokenise[-1].append(token)
token = ''
keyword = ''
isKeyword = True
elif (i != ' '):
if (i == '('):
isKeyword = False
if isKeyword:
keyword += i
else:
token += i
if (i == '='):
isKeyword = False
tokenise.append(Line(keyword, token))
if token != '':
tokenise[-1].append(token)
token = ''
if tokenise[-1] == []:
tokenise = tokenise[:-1]
return tokenise