diff options
| author | mryouse | 2022-05-24 01:47:20 +0000 |
|---|---|---|
| committer | mryouse | 2022-05-24 01:47:20 +0000 |
| commit | c8f500bd280068900273281cf267f76447b6a554 (patch) | |
| tree | 0c2fef42c0e214cb133dcdccfbd1e5f1a49ab947 /interpreter.py | |
| parent | 75b2595299f0602142e5833b841702c8d0ac94af (diff) | |
bugfix: handle integer division
Diffstat (limited to 'interpreter.py')
| -rw-r--r-- | interpreter.py | 6 |
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") |
