aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/Operator.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-31 18:45:36 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-31 18:45:36 +0000
commit07f9c22cc9d38da06871d5712608161c5fbac339 (patch)
tree7c5592c3c8358197f8a9481f8eb4629d77d394d7 /src/main/java/org/zwobble/couscous/ast/Operator.java
parentf4fb0398bc874e575044c6f32336afd3aac677e0 (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.java40
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;
+ }
}