Start of redesign
This commit is contained in:
		@@ -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
 | 
			
		||||
		Reference in New Issue
	
	Block a user