From c8f500bd280068900273281cf267f76447b6a554 Mon Sep 17 00:00:00 2001 From: mryouse Date: Tue, 24 May 2022 01:47:20 +0000 Subject: bugfix: handle integer division --- interpreter.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'interpreter.py') diff --git a/interpreter.py b/interpreter.py index 98eaa1c..576af47 100644 --- a/interpreter.py +++ b/interpreter.py @@ -205,7 +205,11 @@ def interpretFactor(symbol, args, env): denom = evaluate(args[1], env) if not isinstance(denom, Literal) or type(denom.value) not in (int, float): raise Exception("denominator must be a number") - return Literal(num.value / denom.value) # TODO floats and ints + ret = num.value / denom.value + if int(ret) == ret: + return Literal(int(ret)) + else: + return Literal(ret) else: if len(args) < 2: raise Exception("'*' requires at least two operands") -- cgit v1.2.3