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 == ">=": 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"] 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()