aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-05 12:55:11 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-05 12:55:11 +0100
commitcc1543421aafac336be05ac0b75cecc2da4b6818 (patch)
tree584570ddd0af5ec866173354aa442ce215de0fab /src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
parent2f9374c7f32a761413da4c5484bec88a76c855d2 (diff)
Split interpreter values from primitives
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/Evaluator.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/Evaluator.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
index 6b61b7f..9362698 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
@@ -11,8 +11,9 @@ import org.zwobble.couscous.ast.StaticMethodCallNode;
import org.zwobble.couscous.ast.TernaryConditionalNode;
import org.zwobble.couscous.ast.VariableReferenceNode;
import org.zwobble.couscous.ast.visitors.ExpressionNodeVisitor;
-import org.zwobble.couscous.interpreter.values.BooleanValue;
+import org.zwobble.couscous.interpreter.values.BooleanInterpreterValue;
import org.zwobble.couscous.interpreter.values.InterpreterValue;
+import org.zwobble.couscous.interpreter.values.InterpreterValues;
import lombok.val;
@@ -33,7 +34,7 @@ public class Evaluator implements ExpressionNodeVisitor<InterpreterValue> {
@Override
public InterpreterValue visit(LiteralNode literal) {
- return literal.getValue();
+ return InterpreterValues.value(literal.getValue());
}
@Override
@@ -51,10 +52,10 @@ public class Evaluator implements ExpressionNodeVisitor<InterpreterValue> {
@Override
public InterpreterValue visit(TernaryConditionalNode ternaryConditional) {
val condition = eval(ternaryConditional.getCondition());
- if (!(condition instanceof BooleanValue)) {
+ if (!(condition instanceof BooleanInterpreterValue)) {
throw new ConditionMustBeBoolean(condition);
}
- val branch = ((BooleanValue)condition).getValue()
+ val branch = ((BooleanInterpreterValue)condition).getValue()
? ternaryConditional.getIfTrue()
: ternaryConditional.getIfFalse();
return eval(branch);