From 9b8d10eb585f3bd57c092e2f086eeb9e151530fe Mon Sep 17 00:00:00 2001 From: Shaik Dadapeer <69897636+DaduDev@users.noreply.github.com> Date: Sun, 1 Oct 2023 14:24:24 +0530 Subject: [PATCH 1/3] Update lexer.py adding modulo operation into operation symbols. --- lexer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lexer.py b/lexer.py index babc99e..36d05b5 100644 --- a/lexer.py +++ b/lexer.py @@ -6,7 +6,7 @@ class Lexer: # while do digits = "0123456789" letters = "abcdefghijklmnopqrstuvwxyz" - operations = "+-/*()=" + operations = "+-/*%()=" stopwords = [" "] declarations = ["make"] boolean = ["and", "or", "not"] From 3b6243bdb8f0f14f33ab2763becb14eb383ff024 Mon Sep 17 00:00:00 2001 From: Shaik Dadapeer <69897636+DaduDev@users.noreply.github.com> Date: Sun, 1 Oct 2023 14:25:03 +0530 Subject: [PATCH 2/3] Update parse.py adding modulo opeartion --- parse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parse.py b/parse.py index 5fb9f96..3fbf6d6 100644 --- a/parse.py +++ b/parse.py @@ -30,7 +30,7 @@ def term(self): left_node = self.factor() self.move() - while self.token.value == "*" or self.token.value == "/": + while self.token.value == "*" or self.token.value == "/" or self.token.value == "%": operator = self.token self.move() right_node = self.factor() From 40f956366e0cc0e206e93f3d52f96df02c2638b7 Mon Sep 17 00:00:00 2001 From: Shaik Dadapeer <69897636+DaduDev@users.noreply.github.com> Date: Sun, 1 Oct 2023 14:26:05 +0530 Subject: [PATCH 3/3] Update interpreter.py making the modulo operation into action --- interpreter.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/interpreter.py b/interpreter.py index 6a4c264..0f58deb 100644 --- a/interpreter.py +++ b/interpreter.py @@ -36,6 +36,8 @@ def compute_bin(self, left, op, right): output = left * right elif op.value == "/": output = left / right + elif op.value == "%": + output = left % right elif op.value == ">": output = 1 if left > right else 0 elif op.value == ">=":