aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/TryNode.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-17 17:17:34 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-17 17:17:34 +0100
commit936968730c0f882f2ba8dfa91164abb901ac3c95 (patch)
treef611b3cbf582c9a3cdb876da3910c12ceb3c6e4f /src/main/java/org/zwobble/couscous/ast/TryNode.java
parent188051b4be316db4de8b6f48d634f249dd2e4986 (diff)
Read finally clauses of try statements
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/TryNode.java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/TryNode.java22
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