diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-05 12:55:11 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-05 12:55:11 +0100 |
| commit | cc1543421aafac336be05ac0b75cecc2da4b6818 (patch) | |
| tree | 584570ddd0af5ec866173354aa442ce215de0fab /src/main/java/org/zwobble/couscous/interpreter/Evaluator.java | |
| parent | 2f9374c7f32a761413da4c5484bec88a76c855d2 (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.java | 9 |
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); |
