Added negative number support in the tokenizer.

This commit is contained in:
2020-04-22 02:52:52 -05:00
parent d43f8ef6be
commit f3ed00e5f2
+16
View File
@@ -24,6 +24,17 @@ def get_tokens_from_expression_string(expression_string):
parsing_number = True parsing_number = True
tmp = tmp + c tmp = tmp + c
continue continue
elif c == '-' and not parsing_number:
if expression_string[i + 1] == '.' or expression_string[i + 1].isdigit():
tmp = "-"
parsing_number = True
else:
tokens.append(token.Token(c, token.TokenType.get_operator(c)))
parsing_number = False
tmp = ""
continue
elif c == '(': elif c == '(':
if parsing_number: if parsing_number:
tokens.append(token.Token(tmp, token.TokenType.constant)) tokens.append(token.Token(tmp, token.TokenType.constant))
@@ -73,6 +84,11 @@ def get_tokens_from_expression_string(expression_string):
return tokens return tokens
def peek_list(tokens):
if tokens:
return tokens[-1]
else:
raise IndexError("The token list is empty.", tokens)
def replace_variables(tokens, new_constants): def replace_variables(tokens, new_constants):
newTokenList = [] newTokenList = []