summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2019-09-20 10:11:34 -0400
committerLeo Tenenbaum <pommicket@gmail.com>2019-09-20 10:11:34 -0400
commitd0e50fa8fbfc5de2c0d938671a7dab982163409d (patch)
tree541e8bd1e7a82b91dfcbe503d788c406cc56ff6f /eval.c
parenta3ff9a3526dbc9ed785017835352d83edae8c8ac (diff)
cleaning up stuff; mul & div
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index c9ecfaa..f14ab79 100644
--- a/eval.c
+++ b/eval.c
@@ -41,7 +41,9 @@ static bool eval_expr_as_int(Expression *e, Integer *i) {
switch (e->binary.op) {
case BINARY_PLUS:
- case BINARY_MINUS: {
+ case BINARY_MINUS:
+ case BINARY_MUL:
+ case BINARY_DIV: {
Integer lhs, rhs;
if (!eval_expr_as_int(e->binary.lhs, &lhs)) return false;
if (!eval_expr_as_int(e->binary.rhs, &rhs)) return false;
@@ -52,6 +54,12 @@ static bool eval_expr_as_int(Expression *e, Integer *i) {
case BINARY_MINUS:
*i = lhs - rhs;
return true;
+ case BINARY_MUL:
+ *i = lhs * rhs;
+ return true;
+ case BINARY_DIV:
+ *i = lhs / rhs;
+ return true;
default: assert(0); return false;
}
}