From d8abd198a39e7c5ba6df1b04359288d833913cf8 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 28 Feb 2016 13:59:04 +0000 Subject: C#: Write empty interfaces --- .../couscous/backends/csharp/CsharpSerializer.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/main/java') 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) { -- cgit v1.2.3