aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authormryouse2022-05-24 01:47:20 +0000
committermryouse2022-05-24 01:47:20 +0000
commitc8f500bd280068900273281cf267f76447b6a554 (patch)
tree0c2fef42c0e214cb133dcdccfbd1e5f1a49ab947 /interpreter.py
parent75b2595299f0602142e5833b841702c8d0ac94af (diff)
bugfix: handle integer division
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py6
1 files changed, 5 insertions, 1 deletions
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")