Weitere Überlegung im Bereich Constructor / Method

This commit is contained in:
Fikus, Evelyn (WWI2012D) 2015-06-16 13:53:32 +02:00
parent e9c6170d15
commit c6502600cc
3 changed files with 15 additions and 10 deletions

View File

@ -53,9 +53,9 @@ public class Constructor extends Method {
@Override @Override
public void genByteCode(ClassGen cg) { public void genByteCode(ClassGen cg) {
//ConstantPoolGen _cp = cg.getConstantPool(); ConstantPoolGen _cp = cg.getConstantPool();
//InstructionFactory _factory = new InstructionFactory(cg, _cp); //InstructionFactory _factory = new InstructionFactory(cg, _cp);
//InstructionList il = new InstructionList(); InstructionList il = new InstructionList();
Class parentClass = this.getParentClass(); Class parentClass = this.getParentClass();
//TODO: Hier return type und Argument-Typen dynamisch generieren. return type mittels method.getReturnType() ermitteln //TODO: Hier return type und Argument-Typen dynamisch generieren. return type mittels method.getReturnType() ermitteln

View File

@ -727,13 +727,15 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable
Class parentClass = this.getParentClass(); Class parentClass = this.getParentClass();
//TODO: Hier return type und Argument-Typen dynamisch generieren. return type mittels method.getReturnType() ermitteln //TODO: Hier return type und Argument-Typen dynamisch generieren. return type mittels method.getReturnType() ermitteln
//Über Constructor iterieren, um alle Methoden zu bekommen
for(Method methode : ){
//Über Statements iterieren um den Block abzurufen //Ü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()){ for(Statement statements : block.get_Statement()){
statements.genByteCode(cg); 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[] { }, "<init>", parentClass.name, il, _cp);
//GenByteCode Constructor //GenByteCode Constructor

View File

@ -1,7 +1,8 @@
package de.dhbwstuttgart.syntaxtree; 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.core.IItemWithOffset;
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
import de.dhbwstuttgart.syntaxtree.type.Type; import de.dhbwstuttgart.syntaxtree.type.Type;
@ -126,4 +127,6 @@ public abstract class SyntaxTreeNode implements IItemWithOffset{
return this.getParent().getGTVDeclarationContext(); return this.getParent().getGTVDeclarationContext();
} }
} }