diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-04-10 20:15:08 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-04-10 20:16:18 +0100 |
| commit | e856154d732a8ea798dc679f671e0834d9cbb395 (patch) | |
| tree | 9695f7e20f6faac142e63e9c15d1e3a72e7542c3 /src/main/java/org/zwobble/couscous/frontends | |
| parent | e687d9cf6246bc0d1b3a407a87599039080b7b9e (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.java | 15 |
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); |
