aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-06 11:02:51 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-06 11:02:51 +0100
commit56470c01483077849dae33f65364bad987afac7a (patch)
tree2954d1d44f6c11a6c27299496014b0723e7d6e8d /src/main/java/org/zwobble/couscous/ast
parenta7669795d1d58e4962f16272cb5e92783cf01c64 (diff)
Combine type reference and class name into type name
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/AssignmentNode.java3
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNode.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ExpressionNode.java3
-rw-r--r--src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/LiteralNode.java3
-rw-r--r--src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java3
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodCallNode.java5
-rw-r--r--src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java7
-rw-r--r--src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java3
-rw-r--r--src/main/java/org/zwobble/couscous/ast/TypeName.java (renamed from src/main/java/org/zwobble/couscous/ast/ClassName.java)6
-rw-r--r--src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java3
12 files changed, 18 insertions, 30 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java b/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java
index 349b492..d7ea09f 100644
--- a/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java
@@ -1,7 +1,6 @@
package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
-import org.zwobble.couscous.values.TypeReference;
import static org.zwobble.couscous.ast.VariableReferenceNode.reference;
@@ -22,7 +21,7 @@ public class AssignmentNode implements ExpressionNode {
}
@Override
- public TypeReference getType() {
+ public TypeName getType() {
return value.getType();
}
}
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNode.java b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
index f1cbcc2..5f08d38 100644
--- a/src/main/java/org/zwobble/couscous/ast/ClassNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
@@ -30,11 +30,11 @@ public class ClassNode implements Node {
}
public ClassNode build() {
- return new ClassNode(ClassName.of(name), methods.build());
+ return new ClassNode(TypeName.of(name), methods.build());
}
}
- ClassName name;
+ TypeName name;
@Singular
List<MethodNode> methods;
diff --git a/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java b/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
index 297133d..5add277 100644
--- a/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
@@ -2,10 +2,9 @@ package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeVisitor;
-import org.zwobble.couscous.values.TypeReference;
public interface ExpressionNode extends Node {
- TypeReference getType();
+ TypeName getType();
<T> T accept(ExpressionNodeMapper<T> visitor);
@Override
diff --git a/src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java b/src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java
index 736322e..d1d521e 100644
--- a/src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java
@@ -1,14 +1,12 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.values.TypeReference;
-
import lombok.Value;
@Value(staticConstructor="formalArg")
public class FormalArgumentNode implements VariableNode {
VariableDeclaration declaration;
- public TypeReference getType() {
+ public TypeName getType() {
return declaration.getType();
}
diff --git a/src/main/java/org/zwobble/couscous/ast/LiteralNode.java b/src/main/java/org/zwobble/couscous/ast/LiteralNode.java
index a608104..cd92291 100644
--- a/src/main/java/org/zwobble/couscous/ast/LiteralNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/LiteralNode.java
@@ -5,7 +5,6 @@ import org.zwobble.couscous.values.BooleanValue;
import org.zwobble.couscous.values.IntegerValue;
import org.zwobble.couscous.values.PrimitiveValue;
import org.zwobble.couscous.values.StringValue;
-import org.zwobble.couscous.values.TypeReference;
import static org.zwobble.couscous.values.PrimitiveValues.value;
@@ -30,7 +29,7 @@ public class LiteralNode implements ExpressionNode {
}
PrimitiveValue value;
- TypeReference type;
+ TypeName type;
@Override
public <T> T accept(ExpressionNodeMapper<T> visitor) {
diff --git a/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java b/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java
index 2b5c63a..66d06aa 100644
--- a/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java
@@ -1,7 +1,6 @@
package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.visitors.StatementNodeMapper;
-import org.zwobble.couscous.values.TypeReference;
import static org.zwobble.couscous.ast.VariableDeclaration.var;
@@ -12,7 +11,7 @@ public class LocalVariableDeclarationNode implements VariableNode, StatementNode
public static LocalVariableDeclarationNode localVariableDeclaration(
int id,
String name,
- TypeReference type,
+ TypeName type,
ExpressionNode initialValue) {
return localVariableDeclaration(var(id, name, type), initialValue);
}
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java b/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java
index e1358c2..aa81c6c 100644
--- a/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java
@@ -3,7 +3,6 @@ package org.zwobble.couscous.ast;
import java.util.List;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
-import org.zwobble.couscous.values.TypeReference;
import lombok.Value;
@@ -12,13 +11,13 @@ public class MethodCallNode implements ExpressionNode {
ExpressionNode receiver;
String methodName;
List<ExpressionNode> arguments;
- TypeReference type;
+ TypeName type;
public static MethodCallNode methodCall(
ExpressionNode receiver,
String methodName,
List<ExpressionNode> arguments,
- TypeReference type) {
+ TypeName type) {
return new MethodCallNode(receiver, methodName, arguments, type);
}
diff --git a/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java b/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java
index 235566f..e0566cf 100644
--- a/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java
@@ -3,7 +3,6 @@ package org.zwobble.couscous.ast;
import java.util.List;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
-import org.zwobble.couscous.values.TypeReference;
import static java.util.Arrays.asList;
@@ -16,10 +15,10 @@ public class StaticMethodCallNode implements ExpressionNode {
}
public static StaticMethodCallNode staticMethodCall(String className, String methodName, List<ExpressionNode> arguments) {
- return staticMethodCall(ClassName.of(className), methodName, arguments);
+ return staticMethodCall(TypeName.of(className), methodName, arguments);
}
- ClassName className;
+ TypeName className;
String methodName;
List<ExpressionNode> arguments;
@@ -29,7 +28,7 @@ public class StaticMethodCallNode implements ExpressionNode {
}
@Override
- public TypeReference getType() {
+ public TypeName getType() {
throw new UnsupportedOperationException();
}
}
diff --git a/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java b/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java
index 99b5f60..a6ffad3 100644
--- a/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java
@@ -1,7 +1,6 @@
package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
-import org.zwobble.couscous.values.TypeReference;
import lombok.Value;
@@ -17,7 +16,7 @@ public class TernaryConditionalNode implements ExpressionNode {
}
@Override
- public TypeReference getType() {
+ public TypeName getType() {
return ifTrue.getType();
}
}
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassName.java b/src/main/java/org/zwobble/couscous/ast/TypeName.java
index 7358cf7..ce80f82 100644
--- a/src/main/java/org/zwobble/couscous/ast/ClassName.java
+++ b/src/main/java/org/zwobble/couscous/ast/TypeName.java
@@ -6,9 +6,9 @@ import lombok.Value;
@Value
@AllArgsConstructor(access=AccessLevel.PRIVATE)
-public class ClassName {
- public static ClassName of(String qualifiedName) {
- return new ClassName(
+public class TypeName {
+ public static TypeName of(String qualifiedName) {
+ return new TypeName(
qualifiedName,
qualifiedName.substring(qualifiedName.lastIndexOf(".") + 1));
}
diff --git a/src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java b/src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java
index 3a60412..009dea4 100644
--- a/src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java
+++ b/src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java
@@ -1,12 +1,10 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.values.TypeReference;
-
import lombok.Value;
@Value(staticConstructor="var")
public class VariableDeclaration {
int id;
String name;
- TypeReference type;
+ TypeName type;
}
diff --git a/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java b/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java
index fe47a84..a07006e 100644
--- a/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java
@@ -1,7 +1,6 @@
package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
-import org.zwobble.couscous.values.TypeReference;
import lombok.Value;
@@ -23,7 +22,7 @@ public class VariableReferenceNode implements ExpressionNode {
}
@Override
- public TypeReference getType() {
+ public TypeName getType() {
return referent.getType();
}
}