From 7f059660935a480a020e9f4cb80a766ab37e46a3 Mon Sep 17 00:00:00 2001 From: Jakob Herrmann Date: Wed, 15 Feb 2017 00:51:34 +0100 Subject: [PATCH] Idea to resolve the problem with initial fields. --- .../parser/SyntaxTreeGenerator.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator.java index eb319b5e..685841ad 100644 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator.java +++ b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator.java @@ -5,7 +5,7 @@ import de.dhbwstuttgart.syntaxtree.*; import de.dhbwstuttgart.syntaxtree.modifier.*; import de.dhbwstuttgart.syntaxtree.modifier.fieldModifier.*; import de.dhbwstuttgart.syntaxtree.modifier.methodModifier.MethodModifier; -import de.dhbwstuttgart.syntaxtree.statement.Block; +import de.dhbwstuttgart.syntaxtree.statement.*; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPH; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; @@ -198,21 +198,25 @@ public class SyntaxTreeGenerator{ List ret = new ArrayList<>(); List modifiers = new ArrayList<>(); for(Java8Parser.FieldModifierContext fieldModifierContext : fieldDeclarationContext.fieldModifier()){ - //TODO + modifiers.add(convert(fieldModifierContext)); } RefTypeOrTPH fieldType = convert(fieldDeclarationContext.unannType()); for(Java8Parser.VariableDeclaratorContext varCtx : fieldDeclarationContext.variableDeclaratorList().variableDeclarator()){ String fieldName = varCtx.variableDeclaratorId().getText(); if(varCtx.variableInitializer() != null){ - //Feld mit Initialwert - //TODO - }else{ - //Feld ohne Initialwert + initializeField(fieldDeclarationContext); + } + else{ ret.add(new Field(fieldName,fieldType,modifiers,varCtx.getStart())); } } return ret; } + + // Initialize a field by creating implicit constructor. + private void initializeField(Java8Parser.FieldDeclarationContext ctx){ + //TODO + } private RefTypeOrTPH convert(Java8Parser.UnannTypeContext unannTypeContext) { if(unannTypeContext.unannPrimitiveType()!=null){