aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-24 16:01:06 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-24 16:01:06 +0000
commitf2ed6b591da6149319c149d1c78694bfa9641a73 (patch)
tree65cbe4fe98c28d4e0e4c130936d0dff8098bc489 /src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
parente448dbcfaab619dc85d0d6d7f4b3dfe827646e38 (diff)
Implement visitors on OperationNode instead of desugarring
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/Evaluator.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/Evaluator.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
index e715caa..dbb02c8 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java
@@ -113,7 +113,12 @@ public class Evaluator implements ExpressionNodeMapper<InterpreterValue> {
List<InterpreterValue> arguments = evalArguments(call.getArguments());
return clazz.callConstructor(environment, arguments);
}
-
+
+ @Override
+ public InterpreterValue visit(OperationNode operation) {
+ return eval(operation.desugar());
+ }
+
@Override
public InterpreterValue visit(FieldAccessNode fieldAccess) {
InterpreterValue left = eval(fieldAccess.getLeft());