From fbfa407c261222b61bfac8454c2c26287b987aa6 Mon Sep 17 00:00:00 2001 From: Jakob Herrmann Date: Tue, 17 Jan 2017 20:59:42 +0100 Subject: [PATCH] More converters & cleanup. --- .../parser/SyntaxTreeGenerator.java | 46 +++++++++++++++++-- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator.java index c81bb537..2da9691e 100644 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator.java +++ b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator.java @@ -55,21 +55,59 @@ public class SyntaxTreeGenerator{ for(Java8Parser.TypeDeclarationContext typeDecl : ctx.typeDeclaration()){ ClassOrInterface newClass = null; if(typeDecl.classDeclaration() != null){ - newClass = convertCl(typeDecl.classDeclaration()); + newClass = convertClass(typeDecl.classDeclaration()); } else{ - newClass = convertIf(typeDecl.interfaceDeclaration()); + newClass = convertInterface(typeDecl.interfaceDeclaration()); } classes.add(newClass); } return new SourceFile(this.pkgName, classes, this.imports); } - private ClassOrInterface convertCl(Java8Parser.ClassDeclarationContext ctx) { + private ClassOrInterface convertClass(Java8Parser.ClassDeclarationContext ctx) { + ClassOrInterface newClass = null; + if(ctx.normalClassDeclaration() != null){ + newClass = convertNormal(ctx.normalClassDeclaration()); + } + else{ + newClass = convertEnum(ctx.enumDeclaration()); + } + return newClass; + } + + private ClassOrInterface convertNormal(Java8Parser.NormalClassDeclarationContext ctx){ + Modifiers modifiers = null; + JavaClassName name = convert(ctx.Identifier()); + Block class_block = null; + List fielddecl = null; + GenericDeclarationList genericClassParameters = null; + int offset = 0; + RefType superClass = null; + Boolean isInterface = false; + List implementedInterfaces = null; + return new ClassOrInterface(modifiers, name, class_block, fielddecl, genericClassParameters, offset, superClass, isInterface, implementedInterfaces); + } + + /** + Converts a TerminalNode to JavaClassName. If pkgName is set, it will be included like expected. + **/ + private JavaClassName convert(TerminalNode t){ + String name = ""; + if(this.pkgName != null){ + name = this.pkgName + "." + t.toString(); + } + else{ + name = t.toString(); + } + return new JavaClassName(name); + } + + private ClassOrInterface convertEnum(Java8Parser.EnumDeclarationContext ctx){ return null; } - private ClassOrInterface convertIf(Java8Parser.InterfaceDeclarationContext ctx){ + private ClassOrInterface convertInterface(Java8Parser.InterfaceDeclarationContext ctx){ return null; } }