aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-28 13:59:04 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-28 13:59:13 +0000
commitd8abd198a39e7c5ba6df1b04359288d833913cf8 (patch)
tree8760e1210843ae0be3268639c97a424a7e9bdff5 /src/main/java
parenteee46d13e629c79f4acb60cc29aa773e2ed735c1 (diff)
C#: Write empty interfaces
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
index 3cfcd33..81c5b78 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -326,7 +326,25 @@ public class CsharpSerializer implements NodeVisitor {
@Override
public void visit(InterfaceNode interfaceNode) {
- throw new UnsupportedOperationException();
+ // TODO: factor out duplication with visit(ClassNode)
+ writer.writeStatement(() -> {
+ writer.writeKeyword("namespace");
+ writer.writeSpace();
+ writer.writeIdentifier(interfaceNode.getName().getPackage().get());
+ writer.startBlock();
+ writer.writeStatement(() -> {
+ writer.writeKeyword("internal");
+ writer.writeSpace();
+ writer.writeKeyword("interface");
+ writer.writeSpace();
+ writer.writeIdentifier(interfaceNode.getName().getSimpleName());
+ writer.startBlock();
+ writeAll(interfaceNode.getMethods());
+ writer.endBlock();
+ });
+
+ writer.endBlock();
+ });
}
private void writeStaticConstructor(ClassNode classNode) {