aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/visitors
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-17 13:44:07 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-17 13:44:07 +0100
commit726843973481739adec537ddf7ed5bee06415521 (patch)
tree6de2d277fc3b09e3598dcd7f63b8a60ea417a864 /src/main/java/org/zwobble/couscous/ast/visitors
parent0217b88e7214d32b9cf625e877d70f505928d7cc (diff)
Add throw node
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/visitors')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java1
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java7
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java5
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java1
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/StatementNodeMapper.java2
5 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
index 3edece1..1a42060 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapper.java
@@ -20,6 +20,7 @@ public interface NodeMapper<T> {
T visit(StaticReceiver receiver);
T visit(ReturnNode returnNode);
+ T visit(ThrowNode throwNode);
T visit(ExpressionStatementNode expressionStatement);
T visit(LocalVariableDeclarationNode localVariableDeclaration);
T visit(IfStatementNode ifStatement);
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
index c67116d..9344f86 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeMapperWithDefault.java
@@ -83,7 +83,12 @@ public class NodeMapperWithDefault<T> implements NodeMapper<T> {
public T visit(ReturnNode returnNode) {
return defaultValue;
}
-
+
+ @Override
+ public T visit(ThrowNode throwNode) {
+ return defaultValue;
+ }
+
@Override
public T visit(ExpressionStatementNode expressionStatement) {
return defaultValue;
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
index f52bedc..e1e9837 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
@@ -106,6 +106,11 @@ public class NodeTransformer {
}
@Override
+ public Node visit(ThrowNode throwNode) {
+ return transformStatement(throwNode);
+ }
+
+ @Override
public Node visit(ExpressionStatementNode expressionStatement) {
return transformStatement(expressionStatement);
}
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
index 167e89b..adbcb87 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeVisitor.java
@@ -20,6 +20,7 @@ public interface NodeVisitor {
void visit(StaticReceiver receiver);
void visit(ReturnNode returnNode);
+ void visit(ThrowNode throwNode);
void visit(ExpressionStatementNode expressionStatement);
void visit(LocalVariableDeclarationNode localVariableDeclaration);
void visit(IfStatementNode ifStatement);
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/StatementNodeMapper.java b/src/main/java/org/zwobble/couscous/ast/visitors/StatementNodeMapper.java
index 33fbbd3..516a4b9 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/StatementNodeMapper.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/StatementNodeMapper.java
@@ -4,8 +4,10 @@ import org.zwobble.couscous.ast.*;
public interface StatementNodeMapper<T> {
T visit(ReturnNode returnNode);
+ T visit(ThrowNode throwNode);
T visit(ExpressionStatementNode expressionStatement);
T visit(LocalVariableDeclarationNode localVariableDeclaration);
T visit(IfStatementNode ifStatement);
T visit(WhileNode whileLoop);
+
}