aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/frontends
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-10 20:15:08 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-10 20:16:18 +0100
commite856154d732a8ea798dc679f671e0834d9cbb395 (patch)
tree9695f7e20f6faac142e63e9c15d1e3a72e7542c3 /src/main/java/org/zwobble/couscous/frontends
parente687d9cf6246bc0d1b3a407a87599039080b7b9e (diff)
Add reading of empty enums
Diffstat (limited to 'src/main/java/org/zwobble/couscous/frontends')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java15
1 files changed, 13 insertions, 2 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 44cbfab..a83be40 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -88,14 +88,25 @@ public class JavaReader {
}
private void readCompilationUnit(CompilationUnit ast) {
- TypeDeclaration type = (TypeDeclaration)ast.types().get(0);
- classes.add(readTypeDeclaration(type));
+ AbstractTypeDeclaration type = (AbstractTypeDeclaration) ast.types().get(0);
+ if (type instanceof TypeDeclaration) {
+ classes.add(readTypeDeclaration((TypeDeclaration) type));
+ } else if (type instanceof EnumDeclaration) {
+ classes.add(readEnumDeclaration((EnumDeclaration)type));
+ } else {
+ throw new UnsupportedOperationException();
+ }
}
private List<TypeNode> types() {
return this.classes.build();
}
+ private TypeNode readEnumDeclaration(EnumDeclaration type) {
+ ScalarType name = (ScalarType) typeOf(type.resolveBinding());
+ return new EnumNode(name);
+ }
+
private TypeNode readTypeDeclaration(TypeDeclaration type) {
ScalarType name = erasure(typeOf(type.resolveBinding()));
Scope scope = topScope.enterClass(name);