diff options
Diffstat (limited to 'src/main/java/org')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 24 |
1 files changed, 17 insertions, 7 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 e66d114..fd7f953 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -88,7 +88,7 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(ThisReferenceNode reference) { - throw new UnsupportedOperationException(); + writer.writeKeyword("this"); } @Override @@ -231,7 +231,14 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(FieldDeclarationNode declaration) { - throw new UnsupportedOperationException(); + writer.writeStatement(() -> { + writer.writeKeyword("internal"); + writer.writeSpace(); + writeTypeReference(declaration.getType()); + writer.writeSpace(); + writer.writeIdentifier(declaration.getName()); + writer.writeSymbol(";"); + }); } @Override @@ -251,17 +258,20 @@ public class CsharpSerializer implements NodeVisitor { writer.writeSpace(); writer.writeIdentifier(classNode.getSimpleName()); writer.startBlock(); - - for (MethodNode method : classNode.getMethods()) { - write(method); - } - + writeAll(classNode.getFields()); + writeAll(classNode.getMethods()); writer.endBlock(); }); writer.endBlock(); } + private void writeAll(List<? extends Node> nodes) { + for (Node method : nodes) { + write(method); + } + } + private void writeTypeReference(TypeName value) { // TODO: process the nodes before serialization if (PRIMITIVES.containsKey(value)) { |
