diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/Evaluator.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/interpreter/Evaluator.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java index 6586f6a..232441c 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java +++ b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java @@ -45,8 +45,11 @@ public class Evaluator implements ExpressionNodeVisitor<InterpreterValue> { @Override public InterpreterValue visit(TernaryConditionalNode ternaryConditional) { - val condition = (BooleanValue)eval(ternaryConditional.getCondition()); - val branch = condition.getValue() + val condition = eval(ternaryConditional.getCondition()); + if (!(condition instanceof BooleanValue)) { + throw new ConditionMustBeBoolean(condition); + } + val branch = ((BooleanValue)condition).getValue() ? ternaryConditional.getIfTrue() : ternaryConditional.getIfFalse(); return eval(branch); |
