diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-16 15:59:34 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-16 15:59:34 +0000 |
| commit | bf5edcdb86ea8a659e35662902c6f98f9b457c9b (patch) | |
| tree | bb89d9a1697aa824af11b299a526c0189348470c /src/main | |
| parent | 16a0f4c3ef8fdb8cb25c07e7238f17fc9d3e18fa (diff) | |
Add this and field reference serialization to C# backend
Diffstat (limited to 'src/main')
| -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)) { |
