From c6502600cc31cf83aad28ad9bebb83810da7c787 Mon Sep 17 00:00:00 2001 From: "Fikus, Evelyn (WWI2012D)" Date: Tue, 16 Jun 2015 13:53:32 +0200 Subject: [PATCH] =?UTF-8?q?Weitere=20=C3=9Cberlegung=20im=20Bereich=20Cons?= =?UTF-8?q?tructor=20/=20Method?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/dhbwstuttgart/syntaxtree/Constructor.java | 4 ++-- src/de/dhbwstuttgart/syntaxtree/Method.java | 16 +++++++++------- .../dhbwstuttgart/syntaxtree/SyntaxTreeNode.java | 5 ++++- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/de/dhbwstuttgart/syntaxtree/Constructor.java b/src/de/dhbwstuttgart/syntaxtree/Constructor.java index 253788bd..b775ba2e 100644 --- a/src/de/dhbwstuttgart/syntaxtree/Constructor.java +++ b/src/de/dhbwstuttgart/syntaxtree/Constructor.java @@ -53,9 +53,9 @@ public class Constructor extends Method { @Override public void genByteCode(ClassGen cg) { - //ConstantPoolGen _cp = cg.getConstantPool(); + ConstantPoolGen _cp = cg.getConstantPool(); //InstructionFactory _factory = new InstructionFactory(cg, _cp); - //InstructionList il = new InstructionList(); + InstructionList il = new InstructionList(); Class parentClass = this.getParentClass(); //TODO: Hier return type und Argument-Typen dynamisch generieren. return type mittels method.getReturnType() ermitteln diff --git a/src/de/dhbwstuttgart/syntaxtree/Method.java b/src/de/dhbwstuttgart/syntaxtree/Method.java index f618ce0c..e8588859 100755 --- a/src/de/dhbwstuttgart/syntaxtree/Method.java +++ b/src/de/dhbwstuttgart/syntaxtree/Method.java @@ -727,14 +727,16 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable Class parentClass = this.getParentClass(); //TODO: Hier return type und Argument-Typen dynamisch generieren. return type mittels method.getReturnType() ermitteln - //Über Statements iterieren um den Block abzurufen - //Muss dafür ein Statement Array erstellt werden, sodass ich über alle Statements in einem Block iterieren kann? - for(Statement statements : block.get_Statement()){ - statements.genByteCode(cg); - } - MethodGen method = new MethodGen(Constants.ACC_PUBLIC, org.apache.bcel.generic.Type.getReturnType(Constructor.createEmptyMethod(getTypeInformation(), parent).getType().get_Name()), org.apache.bcel.generic.Type.NO_ARGS , new String[] { }, "", parentClass.name, il, _cp); - + //Über Constructor iterieren, um alle Methoden zu bekommen + for(Method methode : ){ + + //Über Statements iterieren um den Block abzurufen + for(Statement statements : block.get_Statement()){ + statements.genByteCode(cg); + } + } + //GenByteCode Constructor method.setMaxStack(); diff --git a/src/de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.java b/src/de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.java index 5a8e494a..deb03d89 100644 --- a/src/de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.java +++ b/src/de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.java @@ -1,7 +1,8 @@ package de.dhbwstuttgart.syntaxtree; -import de.dhbwstuttgart.typeinference.Menge; +import org.apache.bcel.generic.ClassGen; +import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.core.IItemWithOffset; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.type.Type; @@ -126,4 +127,6 @@ public abstract class SyntaxTreeNode implements IItemWithOffset{ return this.getParent().getGTVDeclarationContext(); } + + }