diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/TryNode.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/TryNode.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/TryNode.java b/src/main/java/org/zwobble/couscous/ast/TryNode.java index af0a892..bb276ee 100644 --- a/src/main/java/org/zwobble/couscous/ast/TryNode.java +++ b/src/main/java/org/zwobble/couscous/ast/TryNode.java @@ -8,16 +8,26 @@ import java.util.List; import static org.zwobble.couscous.util.ExtraLists.eagerMap; public class TryNode implements StatementNode { - public static TryNode tryStatement(List<StatementNode> body, List<ExceptionHandlerNode> exceptionHandlers) { - return new TryNode(body, exceptionHandlers); + public static TryNode tryStatement( + List<StatementNode> body, + List<ExceptionHandlerNode> exceptionHandlers, + List<StatementNode> finallyBody) + { + return new TryNode(body, exceptionHandlers, finallyBody); } private final List<StatementNode> body; private final List<ExceptionHandlerNode> exceptionHandlers; + private final List<StatementNode> finallyBody; - public TryNode(List<StatementNode> body, List<ExceptionHandlerNode> exceptionHandlers) { + public TryNode( + List<StatementNode> body, + List<ExceptionHandlerNode> exceptionHandlers, + List<StatementNode> finallyBody) + { this.body = body; this.exceptionHandlers = exceptionHandlers; + this.finallyBody = finallyBody; } public List<StatementNode> getBody() { @@ -28,6 +38,10 @@ public class TryNode implements StatementNode { return exceptionHandlers; } + public List<StatementNode> getFinallyBody() { + return finallyBody; + } + @Override public <T> T accept(StatementNodeMapper<T> visitor) { return visitor.visit(this); @@ -39,7 +53,7 @@ public class TryNode implements StatementNode { transformer.transformStatements(body), eagerMap(exceptionHandlers, handler -> new ExceptionHandlerNode( transformer.transform(handler.getDeclaration()), - transformer.transformStatements(handler.getBody())))); + transformer.transformStatements(handler.getBody()))), finallyBody); } @Override |
