diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-01 21:04:37 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-01 21:04:37 +0100 |
| commit | 8187130b8a8aabbcf983e530413d6969141d6da2 (patch) | |
| tree | d72dcb499d08812e7391b95cdf780dff054b3a3c /src/main/java/org/zwobble/couscous/ast | |
| parent | 36f3fdbcad95dcc5bfec785fffca4f42b24d1307 (diff) | |
Allow static method calls
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java | 25 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeVisitor.java | 2 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java b/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java new file mode 100644 index 0000000..390c37f --- /dev/null +++ b/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java @@ -0,0 +1,25 @@ +package org.zwobble.couscous.ast; + +import java.util.List; + +import org.zwobble.couscous.ast.visitors.ExpressionNodeVisitor; + +import static java.util.Arrays.asList; + +import lombok.Value; + +@Value +public class StaticMethodCallNode implements ExpressionNode { + public static StaticMethodCallNode staticMethodCall(String className, String methodName, ExpressionNode... arguments) { + return new StaticMethodCallNode(className, methodName, asList(arguments)); + } + + String className; + String methodName; + List<ExpressionNode> arguments; + + @Override + public <T> T accept(ExpressionNodeVisitor<T> visitor) { + return visitor.visit(this); + } +} diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeVisitor.java b/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeVisitor.java index f083625..5d3ea9b 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeVisitor.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/ExpressionNodeVisitor.java @@ -3,6 +3,7 @@ package org.zwobble.couscous.ast.visitors; import org.zwobble.couscous.ast.Assignment; import org.zwobble.couscous.ast.LiteralNode; import org.zwobble.couscous.ast.MethodCallNode; +import org.zwobble.couscous.ast.StaticMethodCallNode; import org.zwobble.couscous.ast.TernaryConditionalNode; import org.zwobble.couscous.ast.VariableReferenceNode; @@ -12,4 +13,5 @@ public interface ExpressionNodeVisitor<T> { T visit(Assignment assignment); T visit(TernaryConditionalNode ternaryConditional); T visit(MethodCallNode methodCall); + T visit(StaticMethodCallNode staticMethodCall); } |
