aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-09-29 20:19:28 +0100
committerMichael Williamson <mike@zwobble.org>2015-09-29 20:19:28 +0100
commita6447679032d997d861f4f397ae3e21806726739 (patch)
tree5dd39e577f7f630ba4871302a21121dc3461135c /src/main/java/org/zwobble/couscous/interpreter/Interpreter.java
parentccac9247fe4663874be8026ab9cc968ecec7157b (diff)
Move Evaluator to its own class
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/Interpreter.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/Interpreter.java34
1 files changed, 0 insertions, 34 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java b/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java
index 49c651b..8bf6479 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java
@@ -6,14 +6,9 @@ import java.util.Optional;
import java.util.stream.IntStream;
import org.zwobble.couscous.Project;
-import org.zwobble.couscous.ast.Assignment;
-import org.zwobble.couscous.ast.ExpressionNode;
import org.zwobble.couscous.ast.ExpressionStatementNode;
-import org.zwobble.couscous.ast.LiteralNode;
import org.zwobble.couscous.ast.MethodNode;
import org.zwobble.couscous.ast.ReturnNode;
-import org.zwobble.couscous.ast.VariableReferenceNode;
-import org.zwobble.couscous.ast.visitors.ExpressionNodeVisitor;
import org.zwobble.couscous.ast.visitors.StatementNodeVisitor;
import org.zwobble.couscous.values.InterpreterValue;
@@ -78,33 +73,4 @@ public class Interpreter {
return Optional.empty();
}
}
-
- private class Evaluator implements ExpressionNodeVisitor<InterpreterValue> {
- private final Map<Integer, InterpreterValue> stackFrame;
-
- public Evaluator(Map<Integer, InterpreterValue> stackFrame) {
- this.stackFrame = stackFrame;
- }
-
- public InterpreterValue eval(ExpressionNode expression) {
- return expression.accept(this);
- }
-
- @Override
- public InterpreterValue visit(LiteralNode literal) {
- return literal.getValue();
- }
-
- @Override
- public InterpreterValue visit(VariableReferenceNode variableReference) {
- return stackFrame.get(variableReference.getReferentId());
- }
-
- @Override
- public InterpreterValue visit(Assignment assignment) {
- val value = eval(assignment.getValue());
- stackFrame.put(assignment.getTarget().getReferentId(), value);
- return value;
- }
- }
}