From 67fd155b7a9c97a44d28dee579911e25cd7a6f37 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 15 Nov 2015 13:08:00 +0000 Subject: Extract readOperator to new JavaOperators class --- .../couscous/frontends/java/JavaOperators.java | 60 ++++++++++++++++++++++ .../couscous/frontends/java/JavaReader.java | 53 +------------------ 2 files changed, 61 insertions(+), 52 deletions(-) create mode 100644 src/main/java/org/zwobble/couscous/frontends/java/JavaOperators.java (limited to 'src/main/java') 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(); -- cgit v1.2.3