summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/Evaluator.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice-lang/src/bjc/dicelang/Evaluator.java')
-rw-r--r--dice-lang/src/bjc/dicelang/Evaluator.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/dice-lang/src/bjc/dicelang/Evaluator.java b/dice-lang/src/bjc/dicelang/Evaluator.java
index d537ada..0a583c8 100644
--- a/dice-lang/src/bjc/dicelang/Evaluator.java
+++ b/dice-lang/src/bjc/dicelang/Evaluator.java
@@ -141,9 +141,11 @@ public class Evaluator {
switch (nd.operatorType) {
case COERCE:
return TopDownTransformResult.RTRANSFORM;
+
default:
return TopDownTransformResult.PUSHDOWN;
}
+
default:
return TopDownTransformResult.PUSHDOWN;
}
@@ -154,14 +156,19 @@ public class Evaluator {
switch (ast.getHead().type) {
case UNARYOP:
return evaluateUnaryOp(ast, ctx);
+
case BINOP:
return evaluateBinaryOp(ast, ctx);
+
case TOKREF:
return evaluateTokenRef(ast.getHead().tokenVal, ctx);
+
case ROOT:
return ast.getChild(ast.getChildrenCount() - 1);
+
case RESULT:
return ast;
+
default:
Errors.inst.printError(EK_EVAL_INVNODE, ast.getHead().type.toString());
return new Tree<>(FAIL(ast));
@@ -419,9 +426,9 @@ public class Evaluator {
if (left.type == STRING || right.type == STRING) {
Errors.inst.printError(EK_EVAL_STRINGMATH);
return new Tree<>(FAIL());
- } else if (left.type == FAILURE || right.type == FAILURE)
+ } else if (left.type == FAILURE || right.type == FAILURE) {
return new Tree<>(FAIL());
- else if (left.type == INT && right.type != INT) {
+ } else if (left.type == INT && right.type != INT) {
Errors.inst.printError(EK_EVAL_MISMATH);
return new Tree<>(FAIL(right));
} else if (left.type == FLOAT && right.type != FLOAT) {