aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaOperators.java60
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java53
2 files changed, 61 insertions, 52 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaOperators.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaOperators.java
new file mode 100644
index 0000000..09d880f
--- /dev/null
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaOperators.java
@@ -0,0 +1,60 @@
+package org.zwobble.couscous.frontends.java;
+
+import org.eclipse.jdt.core.dom.Assignment;
+import org.eclipse.jdt.core.dom.InfixExpression;
+import org.eclipse.jdt.core.dom.PrefixExpression;
+import org.zwobble.couscous.ast.Operator;
+
+public class JavaOperators {
+ static Operator readOperator(PrefixExpression.Operator operator) {
+ if (operator == PrefixExpression.Operator.INCREMENT) {
+ return Operator.ADD;
+ } else if (operator == PrefixExpression.Operator.DECREMENT) {
+ return Operator.SUBTRACT;
+ } else {
+ throw new RuntimeException("Unrecognised operator: " + operator);
+ }
+ }
+
+ static Operator readOperator(InfixExpression.Operator operator) {
+ if (operator == InfixExpression.Operator.PLUS) {
+ return Operator.ADD;
+ } else if (operator == InfixExpression.Operator.MINUS) {
+ return Operator.SUBTRACT;
+ } else if (operator == InfixExpression.Operator.TIMES) {
+ return Operator.MULTIPLY;
+ } else if (operator == InfixExpression.Operator.DIVIDE) {
+ return Operator.DIVIDE;
+ } else if (operator == InfixExpression.Operator.REMAINDER) {
+ return Operator.MOD;
+ } else if (operator == InfixExpression.Operator.EQUALS) {
+ return Operator.EQUALS;
+ } else if (operator == InfixExpression.Operator.GREATER) {
+ return Operator.GREATER_THAN;
+ } else if (operator == InfixExpression.Operator.GREATER_EQUALS) {
+ return Operator.GREATER_THAN_OR_EQUAL;
+ } else if (operator == InfixExpression.Operator.LESS) {
+ return Operator.LESS_THAN;
+ } else if (operator == InfixExpression.Operator.LESS_EQUALS) {
+ return Operator.LESS_THAN_OR_EQUAL;
+ } else {
+ throw new RuntimeException("Unrecognised operator: " + operator);
+ }
+ }
+
+ static Operator readOperator(Assignment.Operator operator) {
+ if (operator == Assignment.Operator.PLUS_ASSIGN) {
+ return Operator.ADD;
+ } else if (operator == Assignment.Operator.MINUS_ASSIGN) {
+ return Operator.SUBTRACT;
+ } else if (operator == Assignment.Operator.TIMES_ASSIGN) {
+ return Operator.MULTIPLY;
+ } else if (operator == Assignment.Operator.DIVIDE_ASSIGN) {
+ return Operator.DIVIDE;
+ } else if (operator == Assignment.Operator.REMAINDER_ASSIGN) {
+ return Operator.MOD;
+ } else {
+ throw new RuntimeException("Unrecognised operator: " + operator);
+ }
+ }
+}
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
index 2bf6048..196f50c 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -20,6 +20,7 @@ import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariabl
import static org.zwobble.couscous.ast.VariableDeclaration.var;
import static org.zwobble.couscous.ast.VariableReferenceNode.reference;
import static org.zwobble.couscous.ast.WhileNode.whileLoop;
+import static org.zwobble.couscous.frontends.java.JavaOperators.readOperator;
import static org.zwobble.couscous.util.ExtraLists.eagerMap;
public class JavaReader {
@@ -365,42 +366,6 @@ public class JavaReader {
IntegerValue.REF));
}
- private static Operator readOperator(PrefixExpression.Operator operator) {
- if (operator == PrefixExpression.Operator.INCREMENT) {
- return Operator.ADD;
- } else if (operator == PrefixExpression.Operator.DECREMENT) {
- return Operator.SUBTRACT;
- } else {
- throw new RuntimeException("Unrecognised operator: " + operator);
- }
- }
-
- private static Operator readOperator(InfixExpression.Operator operator) {
- if (operator == InfixExpression.Operator.PLUS) {
- return Operator.ADD;
- } else if (operator == InfixExpression.Operator.MINUS) {
- return Operator.SUBTRACT;
- } else if (operator == InfixExpression.Operator.TIMES) {
- return Operator.MULTIPLY;
- } else if (operator == InfixExpression.Operator.DIVIDE) {
- return Operator.DIVIDE;
- } else if (operator == InfixExpression.Operator.REMAINDER) {
- return Operator.MOD;
- } else if (operator == InfixExpression.Operator.EQUALS) {
- return Operator.EQUALS;
- } else if (operator == InfixExpression.Operator.GREATER) {
- return Operator.GREATER_THAN;
- } else if (operator == InfixExpression.Operator.GREATER_EQUALS) {
- return Operator.GREATER_THAN_OR_EQUAL;
- } else if (operator == InfixExpression.Operator.LESS) {
- return Operator.LESS_THAN;
- } else if (operator == InfixExpression.Operator.LESS_EQUALS) {
- return Operator.LESS_THAN_OR_EQUAL;
- } else {
- throw new RuntimeException("Unrecognised operator: " + operator);
- }
- }
-
private static ExpressionNode readConditionalExpression(ConditionalExpression expression) {
TypeName type = typeOf(expression);
return TernaryConditionalNode.ternaryConditional(
@@ -435,22 +400,6 @@ public class JavaReader {
expression);
}
- private static Operator readOperator(Assignment.Operator operator) {
- if (operator == Assignment.Operator.PLUS_ASSIGN) {
- return Operator.ADD;
- } else if (operator == Assignment.Operator.MINUS_ASSIGN) {
- return Operator.SUBTRACT;
- } else if (operator == Assignment.Operator.TIMES_ASSIGN) {
- return Operator.MULTIPLY;
- } else if (operator == Assignment.Operator.DIVIDE_ASSIGN) {
- return Operator.DIVIDE;
- } else if (operator == Assignment.Operator.REMAINDER_ASSIGN) {
- return Operator.MOD;
- } else {
- throw new RuntimeException("Unrecognised operator: " + operator);
- }
- }
-
private static String generateClassName(CompilationUnit ast) {
TypeDeclaration type = (TypeDeclaration)ast.types().get(0);
return ast.getPackage().getName().getFullyQualifiedName() + "." + type.getName().getFullyQualifiedName();