From 8a9136a57fe9d64ff1c99b0c9369fc670eddf053 Mon Sep 17 00:00:00 2001 From: ahmedsamyh Date: Sat, 16 Nov 2024 23:19:08 +0500 Subject: [PATCH] Can Parse . - Update tests. --- main.momo | 7 +++++-- main.py | 5 +++++ tests/06-single-char-symbols.momo | 2 +- tests/06-single-char-symbols.momo.test | 1 + 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/main.momo b/main.momo index 229bc10..356da73 100644 --- a/main.momo +++ b/main.momo @@ -1,3 +1,6 @@ -69 +() {} [] -> +- + / * % += ! +>= > < <= != == +, : ; . -100 diff --git a/main.py b/main.py index a4443c2..1b00a67 100644 --- a/main.py +++ b/main.py @@ -59,6 +59,7 @@ class TokenType(IntEnum): COMMA = auto() COLON = auto() SEMICOLON = auto() + DOT = auto() LEFT_SQUARE_BRACE = auto() RIGHT_SQUARE_BRACE = auto() @@ -89,6 +90,7 @@ token_type_as_str_map: { TokenType : str } = { TokenType.COMMA : "Comma", TokenType.COLON : "Colon", TokenType.SEMICOLON : "Semicolon", + TokenType.DOT : "Dot", TokenType.LEFT_SQUARE_BRACE : "Left Square Brace", TokenType.RIGHT_SQUARE_BRACE : "Right Square Brace", TokenType.NUMBER : "Number" @@ -279,6 +281,9 @@ class Parser: elif c == ']': loc = Loc(self.filename, self.line, self.row()) return Token(TokenType.RIGHT_SQUARE_BRACE, self.consume_char(), loc) + elif c == '.': + loc = Loc(self.filename, self.line, self.row()) + return Token(TokenType.DOT, self.consume_char(), loc) elif c.isdigit(): num, loc = self.consume_number() return Token(TokenType.NUMBER, num, loc) diff --git a/tests/06-single-char-symbols.momo b/tests/06-single-char-symbols.momo index 41c73a8..356da73 100644 --- a/tests/06-single-char-symbols.momo +++ b/tests/06-single-char-symbols.momo @@ -2,5 +2,5 @@ - + / * % = ! >= > < <= != == -, : ; +, : ; . diff --git a/tests/06-single-char-symbols.momo.test b/tests/06-single-char-symbols.momo.test index 7ff8f6f..78b6e3c 100644 --- a/tests/06-single-char-symbols.momo.test +++ b/tests/06-single-char-symbols.momo.test @@ -21,4 +21,5 @@ "Token (Comma, ',', ./tests/06-single-char-symbols.momo:5:0)" "Token (Colon, ':', ./tests/06-single-char-symbols.momo:5:2)" "Token (Semicolon, ';', ./tests/06-single-char-symbols.momo:5:4)" +"Token (Dot, '.', ./tests/06-single-char-symbols.momo:5:6)" 'None' -- 2.39.5