From 56987f6cff5f56e5bbdff7d9e94d301cae0f5a6e Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Tue, 7 Jul 2026 00:10:33 +0200 Subject: [PATCH] fix(parser): parse int literals as integers avoid casting to float when the literal is an integer --- midas/lexer/midas.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/midas/lexer/midas.py b/midas/lexer/midas.py index f926310..25969ac 100644 --- a/midas/lexer/midas.py +++ b/midas/lexer/midas.py @@ -108,12 +108,15 @@ class MidasLexer(Lexer): while self.peek().isdigit(): self.advance() + is_float: bool = False if self.peek() == "." and self.peek_next().isdigit(): + is_float = True self.advance() while self.peek().isdigit(): self.advance() - value: float = float(self.source[self.start : self.idx]) + value_str: str = self.source[self.start : self.idx] + value: int | float = float(value_str) if is_float else int(value_str) self.add_token(TokenType.NUMBER, value) def scan_identifier(self):