diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-04-17 15:47:28 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-04-17 15:47:28 +0100 |
| commit | a5f76463dfc74d9b126f65416a51905a995c711d (patch) | |
| tree | b1f1970250c5d8fb080c5d2f888d411b95ea68be /src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | |
| parent | ac60bfdc353f27253282224f5bc6b34b587643f0 (diff) | |
C# serializer: serialize try statements
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 16 |
1 files changed, 15 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 954e03a..c334334 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -385,7 +385,21 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(TryNode tryStatement) { - throw new UnsupportedOperationException(); + writer.writeStatement(() -> { + writer.writeKeyword("try"); + writeBlock(tryStatement.getBody()); + for (ExceptionHandlerNode handler : tryStatement.getExceptionHandlers()) { + writer.writeSpace(); + writer.writeKeyword("catch"); + writer.writeSpace(); + writer.writeSymbol("("); + writeTypeReference(handler.getExceptionType()); + writer.writeSpace(); + writer.writeIdentifier(handler.getExceptionName()); + writer.writeSymbol(")"); + writeBlock(handler.getBody()); + } + }); } @Override |
