Added negative number support in the tokenizer.
This commit is contained in:
@@ -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 = []
|
||||||
|
|||||||
Reference in New Issue
Block a user