diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-11-07 23:14:26 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-11-07 23:14:26 +0000 |
| commit | 22f699108050535e74e4b43fc42d0b4f7cfe9353 (patch) | |
| tree | 3bd34dc8b43704fc60b2d0b2a6cc6c610aa0e089 /src/main | |
| parent | d8cfe057ba5683dd4c9fe3871aa5af28f977919d (diff) | |
Extract Backend interface from PythonBackend
Diffstat (limited to 'src/main')
3 files changed, 15 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/couscous/Backend.java b/src/main/java/org/zwobble/couscous/Backend.java new file mode 100644 index 0000000..4415593 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/Backend.java @@ -0,0 +1,10 @@ +package org.zwobble.couscous; + +import java.io.IOException; +import java.util.List; + +import org.zwobble.couscous.ast.ClassNode; + +public interface Backend { + void compile(List<ClassNode> classes) throws IOException; +} diff --git a/src/main/java/org/zwobble/couscous/CouscousCompiler.java b/src/main/java/org/zwobble/couscous/CouscousCompiler.java index 7c088a4..a1e0787 100644 --- a/src/main/java/org/zwobble/couscous/CouscousCompiler.java +++ b/src/main/java/org/zwobble/couscous/CouscousCompiler.java @@ -5,13 +5,12 @@ import java.nio.file.Path; import java.util.List; import org.zwobble.couscous.ast.ClassNode; -import org.zwobble.couscous.backends.python.PythonBackend; import org.zwobble.couscous.frontends.java.JavaFrontend; public class CouscousCompiler { - private final PythonBackend backend; + private final Backend backend; - public CouscousCompiler(PythonBackend backend) { + public CouscousCompiler(Backend backend) { this.backend = backend; } diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonBackend.java b/src/main/java/org/zwobble/couscous/backends/python/PythonBackend.java index 5c3d0c5..ca5fe34 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonBackend.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonBackend.java @@ -7,6 +7,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import org.zwobble.couscous.Backend; import org.zwobble.couscous.ast.ClassNode; import com.google.common.io.Resources; @@ -15,7 +16,7 @@ import static java.util.Arrays.asList; import static org.zwobble.couscous.backends.python.PythonCodeGenerator.generateCode; import static org.zwobble.couscous.backends.python.PythonSerializer.serialize; -public class PythonBackend { +public class PythonBackend implements Backend { private static final List<String> RUNTIME_FILES = asList( "java.lang.Object", "java.lang.Integer", @@ -29,6 +30,7 @@ public class PythonBackend { this.packageName = packageName; } + @Override public void compile(List<ClassNode> classes) throws IOException { for (ClassNode classNode : classes) { compileClass(classNode); |
