aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-26 20:54:03 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-26 20:54:03 +0100
commitcaa7e3a069fa0dfe81834d48850384c38594dd3a (patch)
treea3f89b7c2c1c9f8351dc4808be0d1e29b127200c /src/main
parentf17d45931c79198b31781a5f0e761b4bb4caefec (diff)
Remove C# runtime from main, use for tests only
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java31
-rw-r--r--src/main/resources/csharp/runtime/java/lang/Integer.cs14
-rw-r--r--src/main/resources/csharp/runtime/java/lang/Iterable.cs6
-rw-r--r--src/main/resources/csharp/runtime/java/lang/Object.cs11
-rw-r--r--src/main/resources/csharp/runtime/java/util/Arrays.cs37
-rw-r--r--src/main/resources/csharp/runtime/java/util/Iterator.cs7
6 files changed, 3 insertions, 103 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java
index bccbe98..a086fe2 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java
@@ -1,13 +1,9 @@
package org.zwobble.couscous.backends.csharp;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.common.io.Resources;
import org.zwobble.couscous.Backend;
import org.zwobble.couscous.ast.TypeNode;
import java.io.IOException;
-import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
@@ -15,14 +11,6 @@ import java.util.List;
import static com.google.common.collect.Iterables.transform;
public class CsharpBackend implements Backend {
- private static final List<String> RUNTIME_FILES = ImmutableList.of(
- "java/lang/Integer.cs",
- "java/lang/Object.cs",
- "java/util/Arrays.cs",
- // TODO: implement Iterable/Iterator in Java
- "java/lang/Iterable.cs",
- "java/util/Iterator.cs");
-
private final Path outputFilePath;
private final String namespace;
@@ -36,22 +24,9 @@ public class CsharpBackend implements Backend {
outputFilePath.getParent().toFile().mkdirs();
Files.write(
outputFilePath,
- Iterables.<String>concat(
- transform(
- classes,
- classNode -> compileClass(classNode)),
- transform(
- RUNTIME_FILES,
- runtimeFile -> readRuntimeFile(runtimeFile))));
- }
-
- private String readRuntimeFile(String runtimeFile) {
- try {
- return Resources.toString(Resources.getResource("csharp/runtime/" + runtimeFile), StandardCharsets.UTF_8)
- .replace("namespace Couscous", "namespace " + namespace);
- } catch (IOException exception) {
- throw new RuntimeException(exception);
- }
+ transform(
+ classes,
+ classNode -> compileClass(classNode)));
}
private String compileClass(TypeNode classNode) {
diff --git a/src/main/resources/csharp/runtime/java/lang/Integer.cs b/src/main/resources/csharp/runtime/java/lang/Integer.cs
deleted file mode 100644
index 6ed87db..0000000
--- a/src/main/resources/csharp/runtime/java/lang/Integer.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-namespace Couscous.java.lang {
- internal class Integer : Object {
- private readonly int _value;
-
- internal Integer(int value) {
- _value = value;
- }
-
- internal override bool equals(Object other) {
- var integer = other as Integer;
- return integer != null && integer._value == _value;
- }
- }
-}
diff --git a/src/main/resources/csharp/runtime/java/lang/Iterable.cs b/src/main/resources/csharp/runtime/java/lang/Iterable.cs
deleted file mode 100644
index 314dbce..0000000
--- a/src/main/resources/csharp/runtime/java/lang/Iterable.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace Couscous.java.lang {
- // TODO: implement in Java
- internal interface Iterable<out T> {
- java.util.Iterator<T> iterator();
- }
-}
diff --git a/src/main/resources/csharp/runtime/java/lang/Object.cs b/src/main/resources/csharp/runtime/java/lang/Object.cs
deleted file mode 100644
index 14a8f44..0000000
--- a/src/main/resources/csharp/runtime/java/lang/Object.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace Couscous.java.lang {
- internal class Object {
- internal virtual bool equals(Object other) {
- return System.Object.ReferenceEquals(this, other);
- }
-
- public static implicit operator Object(int value) {
- return new Integer(value);
- }
- }
-}
diff --git a/src/main/resources/csharp/runtime/java/util/Arrays.cs b/src/main/resources/csharp/runtime/java/util/Arrays.cs
deleted file mode 100644
index 96b31d4..0000000
--- a/src/main/resources/csharp/runtime/java/util/Arrays.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-namespace Couscous.java.util {
- internal static class Arrays {
- internal static java.lang.Iterable<T> asList<T>(T[] values) {
- return new _ArrayList<T>(values);
- }
- }
-
- internal class _ArrayList<T> : java.lang.Iterable<T> {
- private readonly T[] values;
-
- internal _ArrayList(T[] values) {
- this.values = values;
- }
-
- public java.util.Iterator<T> iterator() {
- return new _ArrayIterator<T>(values);
- }
- }
-
- internal class _ArrayIterator<T> : java.util.Iterator<T> {
- private readonly T[] values;
- private int nextIndex;
-
- internal _ArrayIterator(T[] values) {
- this.values = values;
- this.nextIndex = 0;
- }
-
- public bool hasNext() {
- return nextIndex < values.Length;
- }
-
- public T next() {
- return values[nextIndex++];
- }
- }
-}
diff --git a/src/main/resources/csharp/runtime/java/util/Iterator.cs b/src/main/resources/csharp/runtime/java/util/Iterator.cs
deleted file mode 100644
index 9c0098a..0000000
--- a/src/main/resources/csharp/runtime/java/util/Iterator.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Couscous.java.util {
- // TODO: implement in Java
- internal interface Iterator<out T> {
- bool hasNext();
- T next();
- }
-}