aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/Executor.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-11-14 14:30:50 +0000
committerMichael Williamson <mike@zwobble.org>2015-11-14 14:30:50 +0000
commit8a7cb643ac9b0e895123c176803af15b75f90cf1 (patch)
tree046f0b48f76734451fb0c8a39236212e6108bf6f /src/main/java/org/zwobble/couscous/interpreter/Executor.java
parentf398933835e7fa7a80b0abd7feda6790370804c8 (diff)
Parse while loops
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/Executor.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/Executor.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/Executor.java b/src/main/java/org/zwobble/couscous/interpreter/Executor.java
index 6f33b4d..9e34c42 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/Executor.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/Executor.java
@@ -4,13 +4,7 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
-import org.zwobble.couscous.ast.CallableNode;
-import org.zwobble.couscous.ast.ExpressionStatementNode;
-import org.zwobble.couscous.ast.IfStatementNode;
-import org.zwobble.couscous.ast.LocalVariableDeclarationNode;
-import org.zwobble.couscous.ast.ReturnNode;
-import org.zwobble.couscous.ast.StatementNode;
-import org.zwobble.couscous.ast.VariableNode;
+import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.ast.visitors.StatementNodeMapper;
import org.zwobble.couscous.interpreter.values.BooleanInterpreterValue;
import org.zwobble.couscous.interpreter.values.InterpreterValue;
@@ -61,6 +55,12 @@ public class Executor implements StatementNodeMapper<Optional<InterpreterValue>>
// TODO: Handle declarations in branches
return Stream.empty();
}
+
+ @Override
+ public Stream<VariableNode> visit(WhileNode whileLoop) {
+ // TODO: Handle declarations in branches
+ return Stream.empty();
+ }
}));
}
@@ -100,6 +100,11 @@ public class Executor implements StatementNodeMapper<Optional<InterpreterValue>>
return Optional.empty();
}
+ @Override
+ public Optional<InterpreterValue> visit(WhileNode whileLoop) {
+ throw new UnsupportedOperationException();
+ }
+
private Optional<InterpreterValue> exec(List<StatementNode> statements) {
for (StatementNode statement : statements) {
Optional<InterpreterValue> result = exec(environment, statement);