aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/Backend.java10
-rw-r--r--src/main/java/org/zwobble/couscous/CouscousCompiler.java5
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/PythonBackend.java4
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);