From: ahmedsamyh Date: Wed, 20 Nov 2024 06:04:09 +0000 (+0500) Subject: TokenType.NUMBER splitted to TokenType.{INT, FLOAT} X-Git-Url: https://www.git.momoyon.org/?a=commitdiff_plain;h=e4084937181a4f5331481e3099c3fe6dc3dcfe65;p=lang.git TokenType.NUMBER splitted to TokenType.{INT, FLOAT} --- diff --git a/main.py b/main.py index b071625..4706e51 100644 --- a/main.py +++ b/main.py @@ -64,7 +64,8 @@ class TokenType(IntEnum): LEFT_SQUARE_BRACE = auto() RIGHT_SQUARE_BRACE = auto() - NUMBER = auto() + INT = auto() + FLOAT = auto() COUNT = auto() token_type_as_str_map: { TokenType : str } = { @@ -95,10 +96,11 @@ token_type_as_str_map: { TokenType : str } = { TokenType.HASH : "Hash", TokenType.LEFT_SQUARE_BRACE : "Left Square Brace", TokenType.RIGHT_SQUARE_BRACE : "Right Square Brace", - TokenType.NUMBER : "Number" + TokenType.INT : "Int", + TokenType.FLOAT : "Float", } # NOTE: TokenType.COUNT - 1 because auto() starts from 1 -assert len(token_type_as_str_map) == TokenType.COUNT-1 +assert len(token_type_as_str_map) == TokenType.COUNT-1, "Every TokenType is not handled in token_type_as_str_map" class Token: def __init__(self, typ: TokenType, lexeme: str, loc: Loc): @@ -195,7 +197,6 @@ class Lexer: return (number, number_loc) - def left_trim(self): while not self.eof() and self.current_char().isspace(): if self.current_char() == '\n': @@ -298,7 +299,7 @@ class Lexer: return Token(TokenType.HASH, self.consume_char(), loc) elif c.isdigit(): num, loc = self.consume_number() - return Token(TokenType.NUMBER, num, loc) + return Token(TokenType.FLOAT if num.find(".") != -1 else TokenType.INT, num, loc) else: fatal(f"Unrecognized character '{c}'") diff --git a/tests/07-numbers.momo.test b/tests/07-numbers.momo.test index 87abb27..9f1e6c2 100644 --- a/tests/07-numbers.momo.test +++ b/tests/07-numbers.momo.test @@ -1,2 +1,2 @@ -"Token (Number, '69', ./tests/07-numbers.momo:1:1)" -"Token (Number, '100', ./tests/07-numbers.momo:3:1)" +"Token (Int, '69', ./tests/07-numbers.momo:1:1)" +"Token (Int, '100', ./tests/07-numbers.momo:3:1)" diff --git a/tests/08-floating-point-numbers.momo.test b/tests/08-floating-point-numbers.momo.test index 70ba7c3..908ddcf 100644 --- a/tests/08-floating-point-numbers.momo.test +++ b/tests/08-floating-point-numbers.momo.test @@ -1,3 +1,3 @@ -"Token (Number, '69.0', ./tests/08-floating-point-numbers.momo:1:1)" -"Token (Number, '100.15134324', ./tests/08-floating-point-numbers.momo:2:1)" -"Token (Number, '420.11', ./tests/08-floating-point-numbers.momo:3:1)" +"Token (Float, '69.0', ./tests/08-floating-point-numbers.momo:1:1)" +"Token (Float, '100.15134324', ./tests/08-floating-point-numbers.momo:2:1)" +"Token (Float, '420.11', ./tests/08-floating-point-numbers.momo:3:1)"