diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-10 16:24:22 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-10 16:24:22 +0000 |
| commit | 647e0df77671564527e4bd8a0d4cad673d0656f3 (patch) | |
| tree | cb436dda239e5cdfc716e86ffea1020587559dde /src/main/java/org/zwobble/couscous/ast/Operations.java | |
| parent | 72cd9d3ef576c3bb9037b1692781a1b46297e998 (diff) | |
Remove StaticMethodCallNode
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/Operations.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/Operations.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/Operations.java b/src/main/java/org/zwobble/couscous/ast/Operations.java index 5691891..40d9672 100644 --- a/src/main/java/org/zwobble/couscous/ast/Operations.java +++ b/src/main/java/org/zwobble/couscous/ast/Operations.java @@ -2,13 +2,21 @@ package org.zwobble.couscous.ast; import org.zwobble.couscous.values.BooleanValue; import org.zwobble.couscous.values.IntegerValue; +import org.zwobble.couscous.values.InternalCouscousValue; +import org.zwobble.couscous.values.ObjectValues; import java.util.Collections; import static org.zwobble.couscous.ast.MethodCallNode.methodCall; +import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall; +import static org.zwobble.couscous.ast.TypeCoercionNode.typeCoercion; import static org.zwobble.couscous.util.ExtraLists.list; public class Operations { + public static ExpressionNode same(ExpressionNode left, ExpressionNode right) { + return staticMethodCall(InternalCouscousValue.REF, "same", list(left, right), BooleanValue.REF); + } + public static ExpressionNode not(ExpressionNode value) { if (value.getType().equals(BooleanValue.REF)) { return methodCall(value, "negate", Collections.emptyList(), BooleanValue.REF); @@ -76,4 +84,13 @@ public class Operations { private static ExpressionNode booleanOperation(String methodName, ExpressionNode left, ExpressionNode right) { return methodCall(left, methodName, list(right), BooleanValue.REF); } + + public static ExpressionNode boxInt(ExpressionNode value) { + return typeCoercion(value, ObjectValues.BOXED_INT); + } + + public static ExpressionNode unboxInt(ExpressionNode value) { + return typeCoercion(value, IntegerValue.REF); + } + } |
