From e9c6170d1541442594ec148919ffea0409976d75 Mon Sep 17 00:00:00 2001 From: "Fikus, Evelyn (WWI2012D)" Date: Tue, 16 Jun 2015 13:19:01 +0200 Subject: [PATCH] =?UTF-8?q?Iteration=20=C3=BCber=20Statements=20innerhalb?= =?UTF-8?q?=20method.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/dhbwstuttgart/syntaxtree/Method.java | 3 ++- src/de/dhbwstuttgart/syntaxtree/statement/Block.java | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/de/dhbwstuttgart/syntaxtree/Method.java b/src/de/dhbwstuttgart/syntaxtree/Method.java index 4b2f159a..f618ce0c 100755 --- a/src/de/dhbwstuttgart/syntaxtree/Method.java +++ b/src/de/dhbwstuttgart/syntaxtree/Method.java @@ -728,7 +728,8 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable //TODO: Hier return type und Argument-Typen dynamisch generieren. return type mittels method.getReturnType() ermitteln //Über Statements iterieren um den Block abzurufen - for(Statement statements : ){ + //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); } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Block.java b/src/de/dhbwstuttgart/syntaxtree/statement/Block.java index 47f5a709..6ec92ad5 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Block.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Block.java @@ -261,12 +261,13 @@ public class Block extends Statement //ConstantPoolGen _cp = cg.getConstantPool(); InstructionFactory _factory = new InstructionFactory(cg, _cp); InstructionList il = new InstructionList(); - //Instructionhandle dynamisch + //Frage: Wenn Block von Statements erbt, und Block selbst keinen BCEL Code besitzt, ist das hier dann nicht eine Sackgasse? - InstructionHandle ih_0 = il.append(_factory.createLoad(org.apache.bcel.generic.Type.OBJECT, 0)); //creates Constructor + //Instructionhandle dynamisch + InstructionHandle ih_0 = il.append(_factory.createLoad(org.apache.bcel.generic.Type.OBJECT, 0)); il.append(_factory.createInvoke(this.getParentClass().superclassid.toString(), "", org.apache.bcel.generic.Type.VOID, org.apache.bcel.generic.Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createReturn(org.apache.bcel.generic.Type.VOID)); //creates Constructor + InstructionHandle ih_4 = il.append(_factory.createReturn(org.apache.bcel.generic.Type.VOID)); il.dispose();