diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-31 18:45:36 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-31 18:45:36 +0000 |
| commit | 07f9c22cc9d38da06871d5712608161c5fbac339 (patch) | |
| tree | 7c5592c3c8358197f8a9481f8eb4629d77d394d7 /src/main/java/org/zwobble/couscous/ast/Operator.java | |
| parent | f4fb0398bc874e575044c6f32336afd3aac677e0 (diff) | |
Support infix operations in C# backend
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/Operator.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/Operator.java | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/Operator.java b/src/main/java/org/zwobble/couscous/ast/Operator.java index 2a6ebfa..a77a135 100644 --- a/src/main/java/org/zwobble/couscous/ast/Operator.java +++ b/src/main/java/org/zwobble/couscous/ast/Operator.java @@ -1,29 +1,31 @@ package org.zwobble.couscous.ast; public enum Operator { - BOOLEAN_AND("&&", true), - BOOLEAN_OR("||", true), - BOOLEAN_NOT("!", true), - - ADD("+", false), - SUBTRACT("-", false), - MULTIPLY("*", false), - DIVIDE("/", false), - MOD("%", false), - - EQUALS("==", true), - NOT_EQUALS("!=", true), - GREATER_THAN(">", true), - GREATER_THAN_OR_EQUAL(">=", true), - LESS_THAN("<", true), - LESS_THAN_OR_EQUAL("<=", true); + BOOLEAN_AND("&&", true, OperatorType.INFIX), + BOOLEAN_OR("||", true, OperatorType.INFIX), + BOOLEAN_NOT("!", true, OperatorType.PREFIX), + + ADD("+", false, OperatorType.INFIX), + SUBTRACT("-", false, OperatorType.INFIX), + MULTIPLY("*", false, OperatorType.INFIX), + DIVIDE("/", false, OperatorType.INFIX), + MOD("%", false, OperatorType.INFIX), + + EQUALS("==", true, OperatorType.INFIX), + NOT_EQUALS("!=", true, OperatorType.INFIX), + GREATER_THAN(">", true, OperatorType.INFIX), + GREATER_THAN_OR_EQUAL(">=", true, OperatorType.INFIX), + LESS_THAN("<", true, OperatorType.INFIX), + LESS_THAN_OR_EQUAL("<=", true, OperatorType.INFIX); private final String symbol; private final boolean isBoolean; + private final OperatorType type; - Operator(String symbol, boolean isBoolean) { + Operator(String symbol, boolean isBoolean, OperatorType type) { this.symbol = symbol; this.isBoolean = isBoolean; + this.type = type; } public String getSymbol() { @@ -33,4 +35,8 @@ public enum Operator { public boolean isBoolean() { return isBoolean; } + + public OperatorType getType() { + return type; + } } |
