Selaa lähdekoodia

ok with dashes and not one digit

Olesya Ivanova 3 vuotta sitten
vanhempi
commit
869a8b324e
2 muutettua tiedostoa jossa 9 lisäystä ja 4 poistoa
  1. 8 3
      interpreter/interpreter.py
  2. 1 1
      main.py

+ 8 - 3
interpreter/interpreter.py

@@ -19,9 +19,7 @@ class Interpreter():
                 self._skip()
                 continue
             if self._current_char.isdigit():
-                char = self._current_char
-                self._forward()
-                return Token(TokenType.INTEGER, char)
+                return Token(TokenType.INTEGER, self._integer())
             if self._current_char == "+":
                 char = self._current_char
                 self._forward()
@@ -44,6 +42,13 @@ class Interpreter():
         while self._current_char and self._current_char == " ":
             self._forward()
 
+    def _integer(self):
+        result: list = []
+        while self._current_char and self._current_char.isdigit():
+            result += self._current_char
+            self._forward()
+        return "".join(result)
+
     def _check_token_type(self, type_: TokenType):
         if self._current_token.type_ == type_:
             self._current_token = self._next_token()

+ 1 - 1
main.py

@@ -2,5 +2,5 @@ from interpreter import Interpreter
 
 if __name__ == "__main__":
     interpreter = Interpreter()
-    print(interpreter("2+2"))
+    print(interpreter("22+22"))
     print(interpreter.interpret("   3 + 3 "))