diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-01 21:49:18 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-01 21:49:18 +0100 |
| commit | 30d2215800deafbdcfb134f1356777ec0139bb7a (patch) | |
| tree | e687fa289e269bd91ab19b027d6d8a96b9c96b4d /src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java | |
| parent | 8187130b8a8aabbcf983e530413d6969141d6da2 (diff) | |
Use normal method call exec in interpreter entry point
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java index bfdadf8..c764261 100644 --- a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java +++ b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java @@ -1,9 +1,6 @@ package org.zwobble.couscous.tests.interpreter; -import java.util.Map; - import org.junit.Test; -import org.zwobble.couscous.Project; import org.zwobble.couscous.ast.Assignment; import org.zwobble.couscous.ast.ClassNode; import org.zwobble.couscous.ast.ExpressionStatementNode; @@ -13,6 +10,7 @@ import org.zwobble.couscous.ast.MethodNode; import org.zwobble.couscous.ast.ReturnNode; import org.zwobble.couscous.interpreter.Interpreter; import org.zwobble.couscous.interpreter.WrongNumberOfArguments; +import org.zwobble.couscous.values.ConcreteType; import org.zwobble.couscous.values.InterpreterValue; import org.zwobble.couscous.values.StringValue; @@ -47,7 +45,7 @@ public class InterpreterTests { @Test public void canPassValueToMethod() { - val arg = new FormalArgumentNode(42, "x"); + val arg = new FormalArgumentNode(42, () -> StringValue.TYPE, "x"); val method = staticMethod("hello") .argument(arg) .statement(new ReturnNode(reference(arg))); @@ -68,7 +66,7 @@ public class InterpreterTests { @Test public void canReassignValueToArgument() { - val arg = new FormalArgumentNode(42, "x"); + val arg = new FormalArgumentNode(42, () -> StringValue.TYPE, "x"); val method = staticMethod("hello") .argument(arg) .statement(new ExpressionStatementNode(new Assignment(reference(arg), LiteralNode.literal("[updated value]")))) @@ -85,22 +83,8 @@ public class InterpreterTests { .build(); val className = "com.example.Program"; val interpreter = new Interpreter(new MapBackedProject(ImmutableMap.of( - className, classNode))); + className, ConcreteType.fromNode(classNode)))); return interpreter.run(className, method.getName(), asList(arguments)); } - - private static class MapBackedProject implements Project { - private Map<String, ClassNode> classes; - - public MapBackedProject(Map<String, ClassNode> classes) { - this.classes = classes; - } - - @Override - public ClassNode findClass(String name) { - return classes.get(name); - } - - } } |
