aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-12 20:53:27 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-12 20:53:27 +0100
commit2353887c3cca9a6f4c4bdf6a0005c2d4bd630601 (patch)
tree56f0ce147d516387ac2c85615022c8fc316d01ae /src/main/java/org
parentc35c7890249860ea38c4f1324c57cde9ae6afe88 (diff)
Support Java assignment nodes
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java11
1 files changed, 11 insertions, 0 deletions
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 9cb6097..c3898c5 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -4,6 +4,7 @@ import java.nio.file.Path;
import java.util.List;
import org.eclipse.jdt.core.dom.ASTNode;
+import org.eclipse.jdt.core.dom.Assignment;
import org.eclipse.jdt.core.dom.BooleanLiteral;
import org.eclipse.jdt.core.dom.ClassInstanceCreation;
import org.eclipse.jdt.core.dom.CompilationUnit;
@@ -21,6 +22,8 @@ import org.eclipse.jdt.core.dom.Statement;
import org.eclipse.jdt.core.dom.StringLiteral;
import org.eclipse.jdt.core.dom.ThisExpression;
import org.eclipse.jdt.core.dom.TypeDeclaration;
+import org.zwobble.couscous.ast.AssignableExpressionNode;
+import org.zwobble.couscous.ast.AssignmentNode;
import org.zwobble.couscous.ast.ClassNode;
import org.zwobble.couscous.ast.ClassNodeBuilder;
import org.zwobble.couscous.ast.ConstructorCallNode;
@@ -105,6 +108,8 @@ public class JavaReader {
return readClassInstanceCreation((ClassInstanceCreation)expression);
case ASTNode.CONDITIONAL_EXPRESSION:
return readConditionalExpression((ConditionalExpression)expression);
+ case ASTNode.ASSIGNMENT:
+ return readAssignment((Assignment)expression);
default:
throw new RuntimeException("Unsupported expression: " + expression.getClass());
}
@@ -195,6 +200,12 @@ public class JavaReader {
readExpression(expression.getElseExpression()));
}
+ private static ExpressionNode readAssignment(Assignment expression) {
+ return AssignmentNode.assign(
+ (AssignableExpressionNode)readExpression(expression.getLeftHandSide()),
+ readExpression(expression.getRightHandSide()));
+ }
+
private static String generateClassName(CompilationUnit ast) {
val type = (TypeDeclaration)ast.types().get(0);
return ast.getPackage().getName().getFullyQualifiedName() + "." + type.getName().getFullyQualifiedName();