Refactored to allow ConceptEvaluator

This commit is contained in:
2019-11-14 22:04:38 +01:00
parent 576ce77740
commit 9e10e77737
30 changed files with 2406 additions and 1007 deletions
+23 -13
View File
@@ -32,19 +32,17 @@ class TokenKind(Enum):
AMPER = "amper"
EQUALS = "="
AT = "at"
BACK_QUOTE = "bquote" # `
BACK_SLASH = "bslash" # \
CARAT = "carat" # ^
DOLLAR = "dollar" # $
EMARK = "emark" # !
GREATER = "greater" # >
LESS = "less" # <
HASH = "HASH" # #
TILDE = "tilde" # ~
UNDERSCORE = "underscore" # _
DEGREE = "degree" # °
BACK_QUOTE = "bquote" # `
BACK_SLASH = "bslash" # \
CARAT = "carat" # ^
DOLLAR = "dollar" # $
EMARK = "emark" # !
GREATER = "greater" # >
LESS = "less" # <
HASH = "HASH" # #
TILDE = "tilde" # ~
UNDERSCORE = "underscore" # _
DEGREE = "degree" # °
@dataclass()
@@ -55,6 +53,18 @@ class Token:
line: int
column: int
def __repr__(self):
if type == TokenKind.IDENTIFIER:
value = "ident:" + str(self.value)
elif type == TokenKind.WHITESPACE:
value = " "
elif type == TokenKind.NEWLINE:
value = r"\n"
else:
value = self.value
return f"Token({value})"
@dataclass()
class LexerError(Exception):